杉数求解器COPT安装及在python中使用

一、安装求解器

求解器的安装包与免费授权许可申请

安装教程

二、安装python

杉数求解器的Python接口支持Python 3.7-3.14版本

三、在python中配置COPT

Python接口安装说明

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")
相关推荐
Martina_03212 天前
AI生成的3D白模单帧没问题,镜头一移动就被挡?用6步检查遮挡与构图
图像处理·人工智能·数学建模·3d·ai·自然语言处理·游戏策划
YLCHUP2 天前
【思维&图论建模】题解:债权(debt)_图论_建模_思路转化_思维题目_C++算法竞赛
c++·笔记·算法·数学建模·贪心算法·深度优先·图论
lisw0512 天前
软体机器人手臂的混合控制策略!
数学建模·机器人
aichitang202414 天前
代数拓扑学与现代前沿视角
考研·算法·数学建模·ai·拓扑学·高考
Martina_032114 天前
AI生成的3D模型打印后沿层纹开裂?用6步检查方向、壁厚与填充
图像处理·人工智能·数学建模·3d·自然语言处理·游戏策划·1024程序员节
蒲公英eric14 天前
元胞自动机:从森林火灾到交通流
人工智能·数学建模·元胞自动机·数学建模模型
computersciencer14 天前
贝叶斯入门:由全概率公式引出贝叶斯公式
笔记·数学建模·概率论
蒲公英eric14 天前
蒙特卡洛方法:用随机抽样求解确定性问题
人工智能·数学建模·随机抽样·蒙特卡洛方法·数学建模模型
spssau18 天前
预测类模型全解析 | 指数平滑、ARIMA、SARIMA、灰色预测、VAR与机器学习预测
数学建模
FelixZhang02819 天前
不懂金融或不会编程,如何开始量化?从策略搭建到回测验证
人工智能·python·算法·数学建模·均值算法·自然语言处理·金融