线性规划 - 问题 - Python Gekko
Linear Programming - Question - Python Gekko
我最近在学习 Python Gekko,我对线性规划非常陌生,所以请原谅我在某些主题上的无知。
我有一个变量,其值应为 0 或应大于 20。
后来才知道这叫半连续变量。我的问题如下
- 是否可以将上述条件转化为一次方程
- Gekko 是否支持半连续变量,因为我在文档中找不到任何相关信息。
您可以使用 if3()
函数来强制执行该约束。该函数使用二进制变量作为开关条件,因此它将问题从线性规划 (LP) 问题转换为混合整数线性规划 (MILP) 问题。
from gekko import GEKKO
import numpy as np
import matplotlib.pyplot as plt
m = GEKKO()
p = m.Param(np.linspace(0,50))
y = m.if3(p-20,0,p)
m.options.IMODE=2
m.solve()
# plot solution
plt.plot(p.value,'r-',lw=3)
plt.plot(y.value,'b.-')
plt.show()
我最近在学习 Python Gekko,我对线性规划非常陌生,所以请原谅我在某些主题上的无知。
我有一个变量,其值应为 0 或应大于 20。
后来才知道这叫半连续变量。我的问题如下
- 是否可以将上述条件转化为一次方程
- Gekko 是否支持半连续变量,因为我在文档中找不到任何相关信息。
您可以使用 if3()
函数来强制执行该约束。该函数使用二进制变量作为开关条件,因此它将问题从线性规划 (LP) 问题转换为混合整数线性规划 (MILP) 问题。
from gekko import GEKKO
import numpy as np
import matplotlib.pyplot as plt
m = GEKKO()
p = m.Param(np.linspace(0,50))
y = m.if3(p-20,0,p)
m.options.IMODE=2
m.solve()
# plot solution
plt.plot(p.value,'r-',lw=3)
plt.plot(y.value,'b.-')
plt.show()