我想显示有关使用 HiGHS 求解器与 Pyomo 时的求解过程的信息。
通常,对于其他求解器,例如
gurobi
或 cbc
,当设置标志 tee=True
时,会显示有关问题、求解器状态等的更多信息。但对于 highs
来说,该标志似乎不起作用,而且我也无法在 HiGHS 文档 中找到正确的选项。
这是一个改编自Pyomo论坛的小例子:
from pyomo.environ import *
# Create model object
model = ConcreteModel()
# Declare decision variables
model.l = Var(within=NonNegativeReals)
model.g = Var(within=NonNegativeReals)
# Declare objective function
model.maximizeProfit = Objective(expr=200 * model.l + 300 * model.g,
sense=maximize)
# Declare constraints
# Farmer Brown has only 100 hours
model.LaborConstraint = Constraint(expr=3 * model.l + 2 * model.g <= 100)
# He only has $120 for medical
model.MedicalConstraint = Constraint(expr=2 * model.l + 4 * model.g <= 120)
# He only has 45 acres
model.LandConstraint = Constraint(expr=model.l + model.g <= 45)
# Show all available solvers
print(SolverFactory.__dict__["_cls"].keys())
print("")
# Test for availability of solver
my_solver = "highs"
if SolverFactory(my_solver).available():
print("Solver " + my_solver + " is available.")
else:
print("Solver " + my_solver + " is not available.")
optimizer = SolverFactory(my_solver)
optimizer.solve(model, options={"threads": 4}, tee=True)
model.display()
分别
requirements.txt
:
pyomo==6.7.1
highspy==1.5.3
有关如何获取求解器输出的任何提示?
提前致谢!