下载安装COPT+如何在jupyter中使用(安装心得,windows,最新7.2版本)

目录

1.到杉树科技官网申请下载COPT

2.安装COPT&配置许可文件

3.在jupyter中使用COPT的python接口


最近看到一本和数学建模有关的新书:《数学建模与数学规划:方法、案例及编程实战》,作为数学建模老手,肯定要学习一下,这本书是国内为数不多的针对优化、规划类数学建模问题的实战教材,使用python语言,COPT和GUROBI求解器。

之前一直使用gurobi求解规划问题,这次正好是一个学习国产求解器杉树COPT的好机会,遂安装试用。以下是自己快速下载、安装的过程,从下载到安装到Anaconda自定义的环境中总花费时间不超过20分钟。

1.到杉树科技官网申请下载COPT

试用杉数求解器COPT-杉数科技

学生可以凭借学校邮箱申请学术用户,365天免费试用。

按照指示填写信息即可:

注意填写用户账号的时候,windows直接打开cmd窗口,可以得到计算机用户名,杉树官网下面也给出了具体获取的步骤,很贴心,这一步是因为软件的license试用许可仅在一台机器使用,并且会绑定计算机的用户名。

echo %USERNAME%

2.安装COPT&配置许可文件

点击提交申请之后,就可以在自己的学生邮箱中查看邮件了,邮记得下载软件许可文件和安装包。邮件里面有两个下载链接,直接下载这个-installer的压缩包就行,解压之后运行安装程序,可以自动完成一些安装工作(在邮件里面没有解释,在用户手册里面有解释,邮件里面有两个下载链接,-installer可以自动给配置环境变量。用户册在安装的位置下的docs/copt-userguide_cn.pdf

解压-installer文件夹,双击下面的安装程序,进行安装

安装程序安装过程简单,只需注意安装位置的选择即可,可以默认C盘,也可自定义安装位置。注意,安装之后要重启计算机,注意保存其它文件。

到这还没完,还要配置许可文件,在用户目录下(用户目录C:\Users\用户名)新建一个名为copt的文件夹,将邮件中的license.dat和license.key移动到这个文件夹下(这个步骤在用户手册的第16页,直接看16页就行)

注:用户手册14页应该是有个问题,邮件里面有许可文件了,应该不需要获取许可了,应该是少打了一个“无”字,杉树老师们可以看过来,是不是可以给用户手册勘误一下。

最后验证一下安装配置是否完成(用户手册20页),打开cmd,输入copt_cmd,显示以下界面,即可。

3.在jupyter中使用COPT的python接口

这里由于我只想安装到我自己已有的anaconda环境中,步骤如下:

打开Anaconda powershell Prompt

conda activate 环境名称
cd E:/copt72/lib/python
python setup.py install

就是先激活自己的环境,然后进入自己的copt安装文件位置下的python文件夹,运行里面的setup.py文件,即可安装coptpy和相关依赖包。

最后,验证是否能使用,cd进入安装文件夹下的examples/python文件夹,运行lp_ex1.py文件,显示如下的计算结果,证明安装coptpy包安装成功

最后可以打开jupyter,写一下示例代码,没有报错,执行成功!可以继续按照书进行学习啦!

import coptpy as cp
from coptpy import COPT

# Create COPT environment
env = cp.Envr()

# Create COPT model
model = env.createModel("lp_ex1")

# 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")

# Add constraints
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)

# Set objective function
model.setObjective(1.2*x + 1.8*y + 2.1*z, sense=COPT.MAXIMIZE)

# Set parameter
model.setParam(COPT.Param.TimeLimit, 10.0)

# Solve the model
model.solve()

# Analyze solution
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))

# 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")

### 使用杉树求解器创建 MPS 文件时出现错误的原因分析 当使用杉树求解器生成 MPS 文件并遇到 `Process finished with exit code -1073740791 (0xC0000409)` 错误时,这通常表示程序遇到了严重的内存访问冲突或非法操作。此类问题可能由多种原因引起: #### 1. 内存管理不当 如果应用程序尝试访问未分配或已释放的内存空间,则可能会触发此异常。确保所有动态分配的对象在其生命周期内被正确初始化和销毁。 #### 2. 数据结构损坏 在构建复杂的数学模型过程中,任何对内部数据结构(如矩阵、向量等)的操作都应遵循严格的规范。一旦这些对象遭到破坏,就可能导致不可预测的行为甚至崩溃[^1]。 #### 3. 软件版本兼容性 不同版本之间的API变更也可能引发类似的致命错误。建议确认所使用的库及其依赖项均为最新稳定版,并相互匹配良好。 #### 解决方案 针对上述潜在因素,可以采取以下措施来排查和修复该问题: - **验证输入数据的有效性和一致性**:仔细检查用于定义线性规划(LP) 或混合整数规划(MIP) 的各项系数以及约束条件是否合理合法; - **更新至最新的SDK和服务包**:获取官方发布的最新补丁以消除已知漏洞; - **启用调试模式运行环境变量配置**:通过设置特定标志位让程序抛出更详细的诊断信息以便定位具体位置; - **简化测试案例逐步增加复杂度**:先从最基础的情形做起,在每一步成功后再加入新的要素直至重现原场景为止。 ```python from coptpy import Model, readModel try: model = readModel('diet.mps') except Exception as e: print(f"Error reading MPS file: {e}") else: try: # 设置时间限制和其他必要参数 model.setParam("TimeLimit", 10) # 开始优化过程 status = model.optimize() if status == Model.OPTIMAL or status == Model.INTERRUPTED: solution_file = 'solution.txt' model.writeSolution(solution_file) print(f'Solution written to {solution_file}') else: print('Optimization failed.') except RuntimeError as re: print(f'Runtime error during optimization: {re}') finally: del model # 显式删除model实例以确保资源回收 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Terry_trans

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值