当前位置: 首页 > article >正文

下载安装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")


http://www.kler.cn/a/378706.html

相关文章:

  • C#属性 Property
  • 深入探讨 Jenkins 中 HTML 格式无法正常显示的现象及解决方案
  • 运维工具之docker入门
  • html简易流程图
  • (蓝桥杯C/C++)—— 编程基础
  • 算法学习027 c++蛇形三角形填充 二维数组常规应用 中小学算法思维学习 比赛算法题解 信奥算法解析
  • postgresql增量备份系列一
  • TensorRT-LLM的k8s弹性伸缩部署方案
  • 数据转换 | Matlab基于SP符号递归图(Symbolic recurrence plots)一维数据转二维图像方法
  • Unity XR Interaction Toolkit 开发教程(4)XR Origin:追踪参考系与相机高度【3.0以上版本】
  • 三层交换技术,eNSP实验讲解
  • 【大模型开发指南】llamaindex配置deepseek、jina embedding及chromadb实现本地RAG及知识库(win系统、CPU适配)
  • Redis系列---数据管理
  • git入门教程8:git高级分支管理
  • YOLO11论文 | 重要性能衡量指标、训练结果评价及分析及影响mAP的因素【发论文关注的指标】
  • Docker Swarm集群配置与使用
  • 基于知识中台的智能法律咨询服务:革新法律服务的新篇章
  • sicp每日一题[2.65]
  • 【D3.js in Action 3 精译_039】4.3 D3 面积图的绘制方法及其边界标签的添加
  • RTP和RTCP的详细介绍及其C代码示例
  • UG NX二次开发(C#)-UFun-创建草图和草图曲线
  • Redis设计与实现 学习笔记 第十四章 服务器
  • RSTP的工作过程
  • CentOS 9 Stream 上安装 Redis
  • 从事人工智能相关岗位需要具备哪些技能?
  • 交叉编译工具链命名规则、以及如何生成交叉编译工具链步骤