【问题标题】:How to declare an objective function (Minimize) and it's constraints with upper and lower limits on Python?如何声明目标函数(最小化)及其对 Python 的上限和下限的约束?
【发布时间】:2020-08-12 23:56:01
【问题描述】:
我有一个包含 8 个变量的线性规划问题。如何在 Python 上生成一组具有上限和下限的约束(等式和/或不等式)以最小化目标函数?如果可能,我特别要求使用 Pyomo 求解器,如果不在 Python 上使用任何其他求解器(例如,Gurobi、Cplex 等)很好,我只是想知道如何在 Python 上解决这个问题。
【问题讨论】:
标签:
python
optimization
anaconda
linear-programming
pyomo
【解决方案1】:
非常simple bus and zoo example:
import pyomo.environ as pyo
from pyomo.opt import SolverFactory
opt = pyo.SolverFactory('cplex')
model = pyo.ConcreteModel()
model.nbBus = pyo.Var([40,30], domain=pyo.PositiveIntegers)
model.OBJ = pyo.Objective(expr = 500*model.nbBus[40] + 400*model.nbBus[30])
model.Constraint1 = pyo.Constraint(expr = 40*model.nbBus[40] + 30*model.nbBus[30] >= 300)
results = opt.solve(model)
print("nbBus40=",model.nbBus[40].value)
print("nbBus30=",model.nbBus[30].value)