一、安装求解器
二、安装python
杉数求解器的Python接口支持Python 3.7-3.14版本
三、在python中配置COPT
bash
pip install coptpy
四、导入Python接口
bash
import coptpy as cp
from coptpy import COPT
五、创建环境
bash
env = cp.Envr()
六、创建问题
bash
model = env.createModel("lp_ex1")
七、添加变量
bash
# Add variables: x, y, z
x = model.addVar(lb=0.1, ub=0.6, name="x")
y = model.addVar(lb=0.2, ub=1.5, name="y")
z = model.addVar(lb=0.3, ub=2.8, name="z")
八、添加约束
bash
model.addConstr(1.5*x + 1.2*y + 1.8*z <= 2.6)
model.addConstr(0.8*x + 0.6*y + 0.9*z >= 1.2)
九、设置目标函数
bash
model.setObjective(1.2*x + 1.8*y + 2.1*z, sense=COPT.MAXIMIZE)
十、设置求解参数
bash
model.setParam(COPT.Param.TimeLimit, 10.0)
十一、求解模型
bash
model.solve()
十二、分析结果
bash
if model.status == COPT.OPTIMAL:
print("Objective value: {}".format(model.objval))
allvars = model.getVars()
print("Variable solution:")
for var in allvars:
print(" x[{0}]: {1}".format(var.index, var.x))
print("Variable basis status:")
for var in allvars:
print(" x[{0}]: {1}".format(var.index, var.basis))
十三、文件输出
bash
# Write model, solution and modified parameters to file
model.write("lp_ex1.mps")
model.write("lp_ex1.bas")
model.write("lp_ex1.sol")
model.write("lp_ex1.par")