杉数求解器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")
相关推荐
lisw056 小时前
算法与软件的本质区别
驱动开发·算法·数学建模
热心网友俣先生18 小时前
2026年MathorCup大数据竞赛选题推荐
数学建模·1024程序员节
热心网友俣先生21 小时前
2026年MathorCup大数据竞赛-B题数据集分享
数学建模·1024程序员节
蒲公英eric1 天前
逻辑回归与信用违约预测:从S曲线到分类器
人工智能·数学建模·逻辑回归
lisw052 天前
发酵算法两大应用方向解析
算法·数学建模
茜茜数模2 天前
2026第七届MathorCup大数据竞赛B题 一等奖级完整解题方案
人工智能·数学建模
lisw052 天前
分岔论揭示演化突变密码
开发语言·算法·数学建模
Zhao-Jichao2 天前
赛道 B:泥石流灾害预报及防灾策略,2026 年 MathorCup 数学应用挑战赛——大数据竞赛
大数据·数学建模
Suprman2 天前
平面排版问题的数学建模与算法设计
算法·数学建模·排序算法·排版套料