pyomo的简单使用

安装pyomo

pip install -q pyomo

简单例子

 maximize  40 x + 30 y  subject to :  x < = 40 x + y < = 80 2 x + y < = 100 \begin{aligned} & \text { maximize }40 x+30 y \\ & \text { subject to : } \\ & x<=40 \\ & x+y<=80 \\ & 2 x+y<=100 \end{aligned}  maximize 40x+30y subject to : x<=40x+y<=802x+y<=100

  • 导入模型库
from pyomo.environ import *
  • 创建模型
model = ConcreteModel()
  • 添加决策变量
model.x = Var(domain=NonNegativeReals)#NonNegativeReals代表非0实数
model.y = Var(domain=NonNegativeReals)
  • 添加目标函数
model.profit = Objective(expr=40*model.x + 30*model.y,sense = maximize)
  • 添加约束条件
model.demand = Constraint(expr = model.x <= 40)
model.laborA = Constraint(expr = model.x + model.y <= 80)
model.laborB = Constraint(expr = 2*model.x + model.y <= 100)
  • 打印模型
model.pprint()
  • 调用求解器求解
opt = SolverFactory('cplex') # 指定cplex为求解器
solution = opt.solve(model) # 调用求解器求解
  • 获取求解变量结果和目标值
model.x.value #获取变量model.x的值
# 或 value(model.x)
model.profit()#获取目标函数的值

参考

https://jckantor.github.io/ND-Pyomo-Cookbook/README.html

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值