CPLEX (공식 명칭: IBM ILOG CPLEX Optimization Studio)는 IBM이 개발 및 유지보수하는 최적화 소프트웨어 패키지이다. 수학적 최적화(mathematical optimization) 및 의사결정 최적화(decision optimization) 문제를 해결하기 위한 솔버(solver)와 모델링 도구를 제공한다.
개요
CPLEX는 선형 계획법(Linear Programming, LP), 혼합 정수 계획법(Mixed Integer Programming, MIP), 2차 계획법(Quadratic Programming, QP), 2차 제약 계획법(Quadratically Constrained Programming, QCP) 등 다양한 수학적 최적화 문제를 해결할 수 있는 알고리즘을 포함한다. 단체법(Simplex method)의 primal 및 dual 변형, 내부점법(Barrier/Interior Point Method) 등을 지원한다.
명칭의 유래
CPLEX라는 이름은 C 프로그래밍 언어로 구현된 simplex 방법(단체법)에서 유래하였다. 그러나 현재는 C 외에도 C++, C#, Java, Python 등 여러 프로그래밍 언어 인터페이스를 제공한다.
역사
- 1988년: Robert E. Bixby에 의해 최초 개발되었으며, CPLEX Optimization Inc.를 통해 상용 판매가 시작되었다.
- 1997년: ILOG가 CPLEX Optimization Inc.를 인수하였다.
- 2009년 1월: IBM이 ILOG를 인수하면서 CPLEX는 IBM의 제품 포트폴리오에 편입되었다.
- 이후 IBM에 의해 지속적으로 개발 및 업데이트가 이루어지고 있다.
주요 구성 요소
IBM ILOG CPLEX Optimization Studio는 다음 구성 요소로 이루어져 있다:
- CPLEX Optimizer: 수학적 프로그래밍을 위한 솔버
- CP Optimizer: 제약 프로그래밍(Constraint Programming)을 위한 솔버
- OPL (Optimization Programming Language): 최적화 모델링 언어
- IDE: 통합 개발 환경
인터페이스 및 연동
CPLEX는 자체 모델링 계층인 Concert Technology를 통해 C++, C#, Java 인터페이스를 제공하며, Python 인터페이스(docplex)도 지원한다. 또한 AIMMS, AMPL, GAMS, TOMLAB 등 독립적인 모델링 시스템을 통해서도 접근 가능하다.
활용 분야
CPLEX는 공급망 최적화, 자원 할당, 일정 계획, 물류, 금융, 제조 등 다양한 산업 분야에서 의사결정 최적화 문제를 해결하는 데 사용된다. 학술 연구 및 교육 목적으로는 무료 라이선스가 제공된다.
라이선스
CPLEX는 IBM의 독점 소프트웨어(Proprietary software)이며, 상용 라이선스로 제공된다. 학생 및 학술 연구자를 위한 무료 버전이 별도로 존재한다.