微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

线性规划 - 问题 - Python Gekko

如何解决线性规划 - 问题 - Python Gekko

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

我有一个变量,它的值应该是 0 或大于 20。

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

  1. 是否可以将上述条件转化为线性方程
  2. 无论如何,Gekko 是否支持半连续变量,因为我在文档中找不到任何相关信息。

解决方法

您可以使用 if3() 函数来强制执行该约束。该函数使用二进制变量作为切换条件,因此它将问题从线性规划 (LP) 问题转换为混合整数线性规划 (MILP) 问题。

result

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,p)

m.options.IMODE=2
m.solve()

# plot solution
plt.plot(p.value,'r-',lw=3)
plt.plot(y.value,'b.-')
plt.show()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。