как 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 (академики), и я использую Pycharm для запуска кода.

setup.py был успешно запущен с питоном 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') в Pycharm.

но они кажутся бесполезными, в моей работе что-то не так?


person zhongyao zhang    schedule 21.11.2018    source источник


Ответы (1)


Я сделал это. Сначала , mdl = Model('name', agent='local') неверно, замените на solution = model.solver(agent='local'), этот код предназначен для принудительного локального решения.

если venc prcharm бесполезен, вы можете выбрать исходный питон в качестве интерпретатора. и откройте терминал в pycharm или добавьте свой cplex python api в pythonpath. В cmd запустить python setup.py install

таким образом, в вашем файле cplex-> python-> win64 (изначально есть только cplex и setup.py) будет новый файл с именем build.

если вы хотите проверить, является ли решатель локальным или нет, вы можете использовать `

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

напечатает cplex_local или в облаке

и, наконец, я обнаружил, что, возможно, docplex сначала вызывает CPLEX python API, а затем вызывает CPLEX, а не напрямую вызывает CPLEX.

Я новичок, надеюсь, ты сможешь получить кое-что полезное.

Надеюсь, IBM сможет продолжать улучшать DOcplex, не сокращайте это, я не хочу менять инструменты, лол.

person zhongyao zhang    schedule 22.11.2018