线性规划
应用
在线性的目标和约束中,寻找出一个最优解。就是高中学过的用图解法的那种。
详解
参考这篇博客
python代码
因为在建模上都是用的Lingo,又不想再去下一个东西,所以在网上翻了翻,发现了python也有类似的包可以实现功能,就是pymprog。
- 这是官方的文档
- 下载安装很简单,
pip install pymprog
就行了 - 安装的时候遇到个错误,说什么没有wheel.wheelfile模块,然后把wheel升级了一下就行
- 示例来自官方如下,目的就是在 x < = 3 x <= 3 x<=3, y < = 4 y <= 4 y<=4和 x + y < = 5 x + y <= 5 x+y<=5的条件下找到 x x x和 y y y使得 15 x + 10 y 15x + 10y 15x+10y取得最大值
from pymprog import *
begin('bike production')
x, y = var('x, y') # 变量
maximize(15 * x + 10 * y, 'profit') # 目标函数
x <= 3 # 约束条件1
y <= 4 # 约束条件2
x + y <= 5 # 约束条件3
solve()
print('x取值:'+str(x.primal))
print('x取值:'+str(y.primal))
print('最优解为:'+str(vobj()))
输出为
- x取值:3.0
- y取值:2.0
- 最优解为:65.0
虽然看起来比lingo复杂些,但是也比较好看懂怎么回事,更多的用法和案例可以参考官方文档。