线性规划 - 问题 - Python Gekko

Linear Programming - Question - Python Gekko

我最近在学习 Python Gekko,我对线性规划非常陌生,所以请原谅我在某些主题上的无知。

我有一个变量,其值应为 0 或应大于 20。

后来才知道这叫半连续变量。我的问题如下

  1. 是否可以将上述条件转化为一次方程
  2. 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()