2017-04-21 17 views
0

GAMS를 오랫동안 사용해 왔지만 GAMS에서 CPLEX의 모든 기능을 사용할 수는 없습니다. Pyomo를 사용하여 그렇게 할 수 있습니까? 또는 CPLEX를 Python에서 직접 사용 하시겠습니까? 감사!python의 cplex와 python의 cplex의 장점

답변

0

Pyomo의 장점은 문제 해결에 사용되는 기본 솔버와는 독립적 인 모델링 언어라는 점입니다. 예를 들어 모델을 작성한 다음 glpk로 모델을 해석 할 수 있습니다. 커맨드 라인 옵션을 변경하면 CPLEX, Gurobi 등으로 동일한 모델을 풀 수 있습니다. 분산 최적화 지원과 같은 많은 기능을 제공하며 원하는 경우 사용자 정의 솔버를 사용할 수 있습니다 (문서 참조).

CPLEX Python API은 스펙트럼의 반대편에 있습니다. 모델링 언어가 아닙니다. 기본 CPLEX Callable Library (C API)을 감싸는 비교적 가벼운 레이어입니다. 변수, 제약 조건 등은 인덱스 또는 이름으로 참조됩니다. 호출 가능 라이브러리에서 수행 할 수있는 거의 모든 작업을 수행 할 수 있습니다. 이러한 의미에서 CPLEX 기능 (콜백과 같은 고급 기능까지도)에 가장 많이 액세스 할 수 있습니다.

가운데 어딘가에있는 옵션은 DOCplex입니다. DOCplex는 IBM에서 제공하는 오픈 소스 모델링 언어이며 클라우드 또는 로컬에서 해결할 수 있습니다. 수학 프로그래밍을위한 CPLEX를 지원하지만 제약 프로그래밍을위한 CP Optimizer도 지원합니다.

+0

감사합니다. rkersh! pyomo가 CPLEX 기능에 액세스하는 측면에서 gams와 어떻게 비교되는지 알고 있습니까? 예를 들어, gams에서 새로운 기존 솔루션이 발견 될 때마다 brach 및 bound 알고리즘을 중지 할 수 있습니다. 이것도 pyomo에서 할 수 있습니까? – Salva

+0

나는 그것이 의심 스럽다. [다음은 일부 표시입니다.] (https://groups.google.com/forum/#!topic/pyomo-forum/lJTUjlAjw3s) 다른 상용 솔루션에 대한 이야기입니다. 이것은 또한 높은 수준의 최적화 언어, 특히 오픈 소스 언어에서는 공통적이지 않은 무언가이기도합니다. 내가 아는 유일한 사람은 [JuMP] (https://jump.readthedocs.io/en/latest/)입니다. 하지만 그건 파이썬이 아닙니다. – sascha