docplex如何使用本地求解器?

时间:2018-11-21 13:02:31

标签: python-3.x cplex docplex

我想使用docplex在本地解决MIP模型,但是出错。

mdl = Model('name', agent='local')
  

docplex.mp.utils.DOcplexException:没有CPLEX DLL和没有DOcplexcloud   凭据:无法解决模型!

我的python版本是3.6.6,docplex的版本是2.8.125,CPLEX是12.8(academics),我使用Pycharm来运行代码。

setup.py已成功使用python setup.py install运行。

我也将<cosdir>/<cplexdir>/python/<python_version>/<platform>用于PYTHONPATH

sys.path.append(r'C:\ProgramFiles\IBM\ILOG\CPLEX_Studio_Community128\cplex\python\3.6\x64_win64')在皮查姆。

但是它们似乎没用,我的操作有什么错误吗?

1 个答案:

答案 0 :(得分:1)

我已经做到了。 首先,mdl = Model('name', agent='local')是错误的,用solution = model.solver(agent='local')代替,此代码是强制在本地求解。

如果prcharm的venc没用,则可以选择原始python作为解释器。并在pycharm中打开终端,或将cplex python api添加到pythonpath中。在cmd中运行python setup.py install

这样,在您的cplex-> python-> win64文件中(最初只有cplexsetup.py),将有一个名为build的新文件。

如果要检查求解器是否在本地 您可以使用`

solution = model.solver(agent='local')` 
print(solution.solved_by)

将打印cplex_local或在云端打印

最后,我发现也许docplex首先调用CPLEX python API,然后再调用CPLEX,而不是直接调用CPLEX。

我是新手,希望您能得到一些有用的东西。

希望IBM可以继续改进DOcplex,不要削减,我不想更改工具,大声笑。