【CLPEX 메모】COS 도입이 끝난 환경에서 DO Python API를 이동한다

2760 단어 파이썬JupyterCPLEX

처음에



IBM 최적화 솔루션 CPLEX의 표준 개발 환경은 IBM ILOG CPLEX Optimization Studio (약칭 COS)입니다.
COS 도입이 끝난 PC에서는, 통상 Eclipse의 플러그인을 사용해 OPL이라고 불리는 최적화 전용의 언어로 모델 개발을 합니다만, Python API를 사용한 개발도 가능합니다.
이 절차의 메모를 설명합니다.

참고 링크



Setting up an optimization engine

전제



동작 확인은

MacOS: 10.14.6
CPLEX Optimization Studio: 12.9

환경에서 갔다.

설정 절차



COS 도입



COS의 경우 일반적인 방법으로 기본적으로 배포를 수행합니다.

아나콘다 도입



테스트는 Jupyter Notebook에서 실시했습니다.
그 전제의 anaconda에 관해서도, 통상의 방법으로, 전부 디폴트로 실시하고 있습니다.

COS/cplex 배포 경로 확인



다음 명령을 사용하여 COS 배포 경로를 확인합니다.
$ ls -l /Applications | grep CPLEX

수중 환경에서
drwxrwxr-x  11 [email protected]  admin  352  9 13 10:19 CPLEX_Optimizer129

라는 결과였습니다.

파이썬 버전 확인



다음 명령으로 확인합니다.
$ python -V

수중의 환경에서는, 다음의 결과였습니다.
Python 3.7.3

환경 변수 PYTHONPATH 설정



지금까지의 결과를 바탕으로 다음과 같은 줄을 ~/.bash_profile 에 추가합니다.
export PYTHONPATH=/Applications/CPLEX_Optimizer129/cplex/python/3.7/x86-64_osx
3.7/x86-64_osx 의 부분에 대해서는, Python 버젼과 플랫폼에 대응해 적절히 수정해 주세요.

라이브러리 도입



다음 pip 명령을 사용하여 DO Python API 라이브러리를 배포합니다.
$ pip install docplex

동작 확인



이것으로 필요한 준비가 완료되었습니다. 환경 변수 PYTHONPATH가 설정된 상태에서,
$ jupyter notebook

에서 Jupyter Notebook을 시작합니다.

Watson에서 순회 세일즈맨 문제 해결
에서 소개하고 있는 Jupyter Notebook 파일 를 다운로드하여 불러옵니다.

나중에 Shift + Enter로 셀을 차례로 실행하면 아래 그림과 같은 최적의 길순을 CPLEX가 찾는 것입니다.



기능 제약과 라이센스의 관계



COS에는 무료로 사용되는 평가판도 있습니다. 평가판을 사용하여 위의 설정을 수행하고 순회 판매 문제를 해결하려고 하면 다음과 같은 메시지가 표시됩니다.
CPLEX Error  1016: Community Edition. Problem size limits exceeded. Purchase at https://ibm.co/2s0wqSa.

이것은 말 그대로 평가판의 기능 제약(룰수 최대 1000개)로 일어난 에러입니다.
평가판의 경우, 순환 영업 문제로 점수(N)=5로 수정하여 실행하면 기능 제약에 히트하지 않게 되어 정상 종료하게 됩니다.

좋은 웹페이지 즐겨찾기