CPLEX

1=http://www.ibm.com/analytics/cplex-optimizer **IBM ILOG CPLEX Optimization Studio**는 흔히 단순히 **CPLEX**라 불리는 IBM의 수학적 최적화 소프트웨어 패키지이다.
# 역사
CPLEX 옵티마이저는 C 프로그래밍 언어로 구현된 단순법의 이름을 따서 명명되었다. 그러나 오늘날에는 다른 종류의 수학적 최적화도 지원하며 C 외의 인터페이스도 제공한다. 이 소프트웨어는 원래 로버트 E. 빅스비가 개발하여 1988년 CPLEX Optimization Inc.에서 상업적으로 판매했다. 이 회사는 1997년 ILOG에 인수되었고, ILOG는 2009년 1월 IBM에 인수되었다. CPLEX는 IBM에 의해 계속해서 활발하게 개발되고 있다.
# 기능
IBM ILOG CPLEX 옵티마이저는 정수 계획법 문제, 매우 큰 선형 계획법 문제를 단순법의 원시 또는 이중 변형 또는 장벽 내점법을 사용하여 해결하며, 볼록 및 비볼록 2차 계획법 문제, 그리고 볼록 2차 제약 문제(SOCP, 2차 원뿔 계획법을 통해 해결)를 해결한다. CPLEX 옵티마이저에는 C++, C 샤프, 자바 언어에 대한 인터페이스를 제공하는 Concert라는 모델링 계층이 있다. C 인터페이스를 기반으로 하는 파이썬 언어 인터페이스도 있다. 마지막으로, 디버깅 및 기타 목적을 위해 독립 실행형 대화형 옵티마이저 실행 파일이 제공된다. CPLEX 옵티마이저는 AIMMS, AMPL, 일반 대수 모델링 시스템, OptimJ, TOMLAB과 같은 독립적인 모델링 시스템을 통해 접근할 수 있다. 이 외에도 AMPL은 CPLEX CP 옵티마이저에 대한 인터페이스를 제공한다. 전체 IBM ILOG CPLEX Optimization Studio는 수학적 프로그래밍을 위한 CPLEX 옵티마이저, 제약 프로그래밍을 위한 CP 옵티마이저,doi=10.1007/s10601-018-9281-x 최적화 프로그래밍 언어(OPL), 그리고 긴밀하게 통합된 IDE로 구성된다.
# 출시 역사
IBM이 ILOG를 인수하기 전에 CPLEX 팀은 CPLEX의 출시 기록을 공개했다.accessdate=24 June 2020
{| class="wikitable" |+ ! 버전 ! 출시일 ! 주요 기능 |- | 22.1.1 | 2022년 12월 | Python 3.7 지원 중단, 새로운 솔버 매개변수 추가.url-status=live |- | 22.1.0 | 2022년 3월 | Python 3.9 및 3.10 지원 추가, 새로운 솔버 매개변수 추가.accessdate=11 January 2023 |- | 20.1 | 2020년 12월 | MIP 성능 개선, 새로운 'emphasis MIP 5' 모드 등.accessdate=4 March 2021 |- | 12.10 | 2019년 12월 | MIP 성능 개선 및 버전 12.8에서 도입된 다른 일반 콜백에 대한 일반 분기 콜백 추가. |- | 12.9 | 2019년 3월 | 다목적 최적화 직접 지원, 콜백 기능 개선. |- | 12.8 | 2017년 12월 | 일반 콜백, 디버깅을 용이하게 하는 API 레코더, subMIP 제어 매개변수, 다운로드 및 실행 제공. |- | 12.7 | 2016년 11월 | 자동 벤더스 분해, 모델링 지원 도구, 성능 변동성을 더 잘 평가하기 위한 runseeds 명령. |- | 12.6.2 | 2015년 6월 | 성능 개선 (주로 SOCP, MISOCP, 비볼록 QP), 클라우드 기반 최적화 지원. |- | 12.6 | 2013년 12월 | 비볼록 QP 및 MIQP 지원, 분산 병렬 MIP 및 MIP의 루트 노드에서 더 많은 병렬 처리. |- | 12.5 | 2012년 10월 | MIP 성능 개선, 성능 변동성을 해결하기 위한 랜덤 시드 매개변수, 원격 객체, QCP의 이중성, 결정론적 튜닝 도구. |- | 12.4 | 2011년 11월 | 결정론적 시간 제한 지원, SOCP의 이중성, Concert의 2차 표현 API, 모든 알고리즘 특히 MIP의 성능 개선. |- | 12.3 | 2011년 6월 | 64비트 인덱싱이 필요한 대규모 비영 개수 지원, 비볼록 QP의 지역 최적점, 전역화. |- | 12.2 | 2010년 6월 | 루트 노드에서 더 많은 병렬 처리, 결정론적 병렬 동시 LP 최적화, 추가적인 장벽 성능 개선 및 MIP에서 불량 조건 기저 행렬 진단을 위한 추가 도구. |- | 12.0 | 2009년 4월 | IBM이 ILOG를 인수한 후 첫 번째 버전. Python, MATLAB 및 Excel용 커넥터 포함. 결정론적 병렬 장벽도 포함. |- | 11.0 | 2007년 10월 | 혼합 정수 계획법(MIP) 모델의 획기적인 성능 향상 및 향상된 병렬 MIP 최적화. MIP 솔루션 풀 기능 및 성능 튜닝 유틸리티 도입. |- | 10.0 | 2006년 1월 | 원시 단순법 및 장벽 방법, 그리고 MIP 옵티마이저의 성능 개선. 지시 제약 조건 및 솔루션 다듬기 휴리스틱 도입 및 실행 불가능성 분석 개선. |- | 9.0 | 2003년 12월 | 원시 및 이중 단순법과 MIP 옵티마이저의 성능 개선. .NET 사용자를 위한 ILOG Concert Technology 및 2차 제약 프로그램 지원 포함. |- | 8.0 | 2002년 7월 | MIP 성능 개선 및 혼합 정수 2차 프로그램 지원. |- | 7.5 | 2001년 12월 | Java 사용자를 위한 ILOG Concert Technology. |- | 7.0 | 2000년 10월 | C++ 사용자를 위한 ILOG Concert Technology. |- | 6.5 | 1999년 3월 | 원시 및 이중 단순법, ILOG CPLEX 혼합 정수 옵티마이저의 상당한 성능 개선. |- | 6.0 | 1998년 4월 | 원시 및 이중 단순법, CPLEX 장벽 옵티마이저의 상당한 성능 개선. |- | 5.0 | 1997년 9월 | 쉬운 C++ 통합을 위한 새로운 메모리 모델. |- | 4.0.5 | 1996년 3월 | 병렬 CPLEX 혼합 정수 솔버 도입. |- | 4.0 | 1995년 12월 | 스레드 안전 애플리케이션을 허용하도록 재설계된 고급 프로그래밍 인터페이스(API). |- | 3.0.8 | 1995년 3월 | 병렬 CPLEX 장벽 솔버 도입. |- | 3.0 | 1994년 4월 | CPLEX 장벽 솔버 도입. |- | 2.1 | 1993년 3월 | CPLEX 사전 해결 알고리즘 도입. |- | 2.0 | 1992년 4월 | 성능 개선. |- | 1.2 | 1991년 | 이중 단순법 및 CPLEX 혼합 정수 옵티마이저 지원. |- | 1.0 | 1988년 | 원시 단순법 |}