c++调用cplex求解例子_python 调用cplex(设置 CPLEX 的 Python API)

本文要解决的问题(默认你已经对python有一定的使用经验):如何用python调用cplex求解器。

这次不能信官网,害我踩了一下午坑(其实是官网表述文件和实际不符,而且还少了一个重要环节,就是用管理员授权运行)。真是忍不住想吐槽一下,害我走了好多弯路,花了一天时间,差点当场哭死!

下面是两个用python调用cplex的方法:

方法一:从python的角度解决问题,非常简单,pip安装即可。

如果只是用python调用cplex解决一些小问题可以直接使用(但是,它相当于只是安装了一个社区版的cplex求解器,对比较大的模型求解问题是运行不了的,会直接报错)。

方法二:从cplex角度解决问题,要先安装’CPLEX_Studio129(可以在官网申请下载)‘(我安装的是这个版本的教育版[1]),然后按官方网站[2](我的方法)的安装提示进行操作(还是以我为准吧,官网有点坑)。这个安装成功后就没有社区版的限制了。

官网提示和我遇到的实际情况不符,所特意在此作纪录(详情参考下文的方法二)。安装版本python3.7,cplex1290。

方法一:

正确的安装方法,非常简单:

pip install cplex

0f91b0500bb3281c165fb68fcddcd10d.png

pip成功后直接运行,没有问题了。

eaa686b88ff3eaff1d7000d15a215634.png

但是出现一个问题:运行比较大的lp模型时,会报错!因为这样安装的只是一个社区版。

报错信息如下:

CplexSolverError

1473f709175f37ef0d6feebfd783bc50.png

为解决方法一的问题可以参考用方法二。

方法二:

官网的设置 CPLEX 的 Python API[3]的网页上是这样写的:

a307a1681739622fb114bd22b4d4cfbd.png

第一步:先安装CPLEX_Studio129,我安装时全部选的默认安装路径,并没有官网网站所提到的文件夹yourCPLEXhome/python/VERSION/PLATFORM。我的安装文件夹如下图所示,但是好在有setup.py文件,打开此文件后浏览代码内容,确认它确实是一个安装文件。

9380c051fce662f6366f7465ab0c9327.png

第二步,按照官网的使用脚本 setup.py,进行下一步,结果安装都失败

python 

c8e2639a0b49af0288f77dac7e27e2f1.png

提示错误为:

(base) C:Program FilesIBMILOGCPLEX_Studio129python>python setup.py install
['C:Program FilesIBMILOGCPLEX_Studio129cplexpython3.7x64_win64cplex']
['C:Program FilesIBMILOGCPLEX_Studio129cplexpython3.7x64_win64setup.py']
Invoking ['C:UserspcAnaconda3python.exe', 'setup.py', 'install'] in C:Program FilesIBMILOGCPLEX_Studio129cplexpython3.7x64_win64
running install
running build
running build_py
creating build
error: could not create 'build': 拒绝访问。
Installation of CPLEX failed, code = 1

第三步:由于不存在此文件夹yourCplexhome/python/VERSION/PLATFORM,所以官网提示的设置环境变量 PYTHONPATH 的方法也不能使用了。

第四步:查找第二步中安装失败的原因:需要管理员授权运行[4]

在下面这个网站找到了一个相关回答,具体答案如下图所示:

CPLEX Optimizers​www.ibm.com
73893ec5e413bb701e50b0d98e18624d.png

624234ce3d5b9272968ccb3c6bce6a09.png

05aa850b0a429bfc0e0bcf9d7213ce07.png

93a644aef14f3cfa297351a414f91151.png

最后,在jupyter lab编辑器里用,python调用cplex,求解实际的lp模型成功。

747f18d257afde561b87998ed299e279.png

参考

  1. ^https://my15.digitalexperience.ibm.com/b73a5759-c6a6-4033-ab6b-d9d4f9a6d65b/dxsites/151914d1-03d2-48fe-97d9-d21166848e65/technology/data-science?cc=cn&mhsrc=ibmsearch_dd
  2. ^https://www.ibm.com/support/knowledgecenter/zh/SSSA5P_12.9.0/ilog.odms.cplex.help/CPLEX/GettingStarted/topics/set_up/Python_setup.html
  3. ^https://www.ibm.com/support/knowledgecenter/zh/SSSA5P_12.9.0/ilog.odms.cplex.help/CPLEX/GettingStarted/topics/set_up/Python_setup.html
  4. ^https://www.ibm.com/developerworks/community/forums/html/topic?id=352e55b1-d168-4c13-9328-abe864658a26
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值