맨위로가기

CPLEX

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

CPLEX는 C 언어로 구현된 최적화 프로그램으로, 선형 계획법 문제를 해결하기 위해 개발되었다. 1988년 로버트 E. 빅스비에 의해 개발되었고, CPLEX Optimization Inc.를 통해 상업적으로 판매되었다. 이후 ILOG에 인수되었다가 2009년 IBM에 인수되었으며, 현재까지 IBM에서 개발을 이어가고 있다. CPLEX는 정수 계획법, 선형 계획법, 이차 계획법 등 다양한 최적화 문제 유형을 지원하며, C++, C#, Java, Python 등 여러 프로그래밍 언어 인터페이스를 제공한다. 또한, AIMMS, AMPL, GAMS, OptimJ, TOMLAB 등 다양한 모델링 시스템과 연동하여 사용할 수 있다.

더 읽어볼만한 페이지

  • IBM 소프트웨어 - IBM 시스템 R
  • IBM 소프트웨어 - PL/I
    PL/I는 1960년대 IBM이 과학 및 상업 분야의 다양한 프로그래밍 요구를 위해 개발한 고급 프로그래밍 언어로, 포트란, 코볼, 알골의 특징을 융합하여 시스템 프로그래밍, 이벤트 기반 프로그래밍 등 다양한 분야에 사용될 수 있도록 설계되었다.
CPLEX - [IT 관련 정보]에 관한 문서
CPLEX 정보
개발사IBM
최신 릴리스 버전20.1.0
장르기술 컴퓨팅
라이선스사유
웹사이트CPLEX 공식 웹사이트

2. 역사

CPLEX Optimizer는 C 프로그래밍 언어로 구현된 단순 방법에서 이름을 따왔다. 오늘날에는 다른 유형의 수학적 최적화도 지원하며 C 외에도 다른 인터페이스를 제공한다. CPLEX는 원래 로버트 E. 빅스비가 개발하였으며 1988년 그가 설립한 CPLEX Optimization Inc.에서 상업적으로 판매되었다. 1997년 ILOG에 인수되었고, 2009년 1월 ILOG가 IBM에 인수되면서[2] IBM의 제품이 되었다. CPLEX는 현재도 IBM에서 활발히 개발하고 있다.

2. 1. 초기 개발 (1988-1997)

로버트 E. 빅스비는 C 프로그래밍 언어를 기반으로 CPLEX Optimizer를 개발하고, 1988년 CPLEX Optimization Inc.를 설립하여 상용화하였다.[2] 1997년 ILOG에 인수되었으며, ILOG는 2009년 1월 IBM에 인수되었다.[2] CPLEX는 IBM에 의해 계속 활발히 개발되고 있다.

2. 2. ILOG 인수 (1997-2009)

ILOG는 1997년에 CPLEX Optimization Inc.를 인수했으며,[2] 2009년 1월에 IBM에 인수되었다.[2]

2. 3. IBM 인수 (2009-현재)

IBM은 2009년 1월 ILOG를 인수했으며,[2] CPLEX는 계속해서 IBM에 의해 활발히 개발되고 있다.

3. 주요 기능

IBM ILOG CPLEX Optimizer는 다음과 같은 다양한 최적화 문제들을 해결하는 기능을 제공한다.[3]


  • 선형 계획법 문제: 주/쌍대 단순법, 배리어 내점법 등을 사용하여 매우 큰 규모의 문제를 해결한다.[3]
  • 정수 계획법 문제 해결[3]
  • 이차 계획법 문제: 볼록 및 비볼록 이차 계획법 문제를 해결한다.[3]
  • 이차 제약 문제: 볼록 이차 제약 문제 (이차 원뿔 계획법 또는 SOCP)를 해결한다.[3]


CPLEX Optimizer는 C++, C#, 자바, 파이썬 등 다양한 프로그래밍 언어를 지원하며, AIMMS, AMPL, GAMS 등과 같은 독립적인 모델링 시스템을 통해 접근할 수 있다. 또한, 디버깅 및 기타 목적을 위한 독립 실행형 Interactive Optimizer 실행 파일도 제공된다.[3]

3. 1. 지원하는 최적화 문제 유형

CPLEX는 다음과 같은 최적화 문제 유형들을 지원한다.

  • 선형 계획법(Linear Programming, LP): 주/쌍대 단순법, 배리어 내점법 등을 사용하여 매우 큰 규모의 LP 문제를 해결한다.[3]
  • 정수 계획법(Integer Programming, IP): 정수 계획법 문제를 해결한다.
  • 이차 계획법(Quadratic Programming, QP): 볼록 및 비볼록 이차 계획법 문제를 해결한다.
  • 이차 제약 계획법(Quadratically Constrained Programming, QCP): 볼록 이차 제약 문제 (이차 원뿔 계획법, SOCP)를 해결한다.[3]

3. 2. 모델링 인터페이스

Concert Technology는 C++, C#, 자바 언어에 대한 인터페이스를 제공하는 모델링 레이어이다. C 인터페이스를 기반으로 하는 파이썬 언어 인터페이스도 있다. 마지막으로, 디버깅 및 기타 목적을 위한 독립 실행형 Interactive Optimizer 실행 파일이 제공된다.[3]

3. 3. 모델링 시스템 지원

AIMMS, AMPL, GAMS, OptimJ, TOMLAB과 같은 독립적인 모델링 시스템을 통해 CPLEX Optimizer를 사용할 수 있다.[3] AMPL은 CPLEX CP Optimizer에 대한 인터페이스도 제공한다.[3]

3. 4. 기타 기능

IBM ILOG CPLEX Optimization Studio는 수학적 프로그래밍을 위한 CPLEX Optimizer, 제약 프로그래밍을 위한 CP Optimizer[4], 최적화 프로그래밍 언어(OPL), 그리고 긴밀하게 통합된 IDE로 구성된다.

4. 버전별 릴리스 기록

IBM이 ILOG를 인수하기 전, CPLEX 팀은 CPLEX의 릴리스 이력을 발표했다.[5] 다음은 CPLEX Optimizer의 주요 버전별 출시일과 주요 기능 개선 사항을 요약한 표이다.

버전릴리스 날짜주요 기능
1.01988년프라이멀 심플렉스 방법
1.21991년듀얼 심플렉스 방법 및 CPLEX 혼합 정수 최적화기 지원
2.01992년 4월성능 개선
2.11993년 3월CPLEX Presolve 알고리즘 도입
3.01994년 4월CPLEX 배리어 솔버 도입
3.0.81995년 3월병렬 CPLEX 배리어 솔버 도입
4.01995년 12월스레드 안전 애플리케이션을 허용하도록 고급 프로그래밍 인터페이스(API) 재설계
4.0.51996년 3월병렬 CPLEX 혼합 정수 솔버 도입
5.01997년 9월쉬운 C++ 통합을 위한 새로운 메모리 모델 도입
6.01998년 4월프라이멀 및 듀얼 심플렉스 방법 및 CPLEX 배리어 최적화기에서 상당한 성능 개선
6.51999년 3월프라이멀 및 듀얼 심플렉스 방법과 ILOG CPLEX 혼합 정수 최적화기에서 상당한 성능 개선
7.02000년 10월C++ 사용자를 위한 ILOG Concert Technology 추가
7.52001년 12월Java 사용자를 위한 ILOG Concert Technology 추가
8.02002년 7월MIP 성능 개선 및 혼합 정수 2차 프로그램 지원
9.02003년 12월프라이멀 및 듀얼 심플렉스 방법 및 MIP 최적화기에서 성능 개선. .NET 사용자를 위한 ILOG Concert Technology와 2차 제약 프로그램 지원
10.02006년 1월프라이멀 심플렉스 및 배리어 방법, MIP 최적화기에서 성능 개선. 지표 제약 조건 및 솔루션 연마 휴리스틱 도입, 비가용성 분석 개선
11.02007년 10월혼합 정수 프로그래밍(MIP) 모델 성능 향상 및 병렬 MIP 최적화 개선. MIP 솔루션 풀 기능 및 성능 튜닝 유틸리티 도입
12.02009년 4월IBM이 ILOG를 인수한 후 첫 번째 버전. Python, MATLAB, 엑셀용 커넥터 포함, 결정적 병렬 배리어 포함
12.22010년 6월루트 노드에서 더 많은 병렬 처리, 결정적 병렬 동시 LP 최적화, 일부 추가 배리어 성능 개선 및 MIP에서 조건이 불량한 기본 행렬을 진단하기 위한 추가 도구 도입
12.32011년 6월64비트 인덱싱이 필요한 큰 비제로 개수 지원, 비볼록 QP의 지역 최적값 및 전역화
12.42011년 11월결정적 시간 제한 지원, SOCP의 듀얼, Concert의 2차식 API, 모든 알고리즘에서 성능 개선 (특히 MIP)
12.52012년 10월MIP 성능 개선, 성능 가변성을 해결하기 위한 임의 시드 매개변수, 원격 객체, QCP의 듀얼, 결정적 튜닝 도구 도입
12.62013년 12월비볼록 QP 및 MIQP 지원, 분산 병렬 MIP 및 MIP의 루트 노드에서 더 많은 병렬 처리
12.6.22015년 6월성능 개선 (주로 SOCP, MISOCP, 비볼록 QP), 클라우드 기반 최적화 지원
12.72016년 11월자동화된 벤더스 분해, 모델링 지원 도구, 성능 가변성을 더 잘 평가하기 위한 runseeds 명령 도입
12.82017년 12월일반 콜백, 디버깅을 용이하게 하는 API 레코더, subMIP 제어 매개변수, Download and Go 제공
12.92019년 3월다목적 최적화 직접 지원, 콜백 기능 개선
12.102019년 12월MIP 성능 개선 및 버전 12.8에서 도입된 다른 일반 콜백에 대한 일반 브랜칭 콜백 추가
20.12020년 12월MIP 성능 개선, 새로운 emphasis MIP 5 모드 등 도입
22.1.02022년 3월Python 3.9 및 3.10 지원 추가, 새로운 솔버 매개변수 추가
22.1.12022년 12월Python 3.7 지원 중단, 새로운 솔버 매개변수 추가


4. 1. 버전 22.1.1 (2022년 12월)

2022년 12월에 CPLEX 버전 22.1.1이 릴리스되었다. 이 버전에서는 Python 3.7 지원이 중단되었고, 새로운 솔버 매개변수가 추가되었다.[6]

4. 2. 버전 22.1.0 (2022년 3월)

CPLEX 버전 22.1.0은 2022년 3월에 릴리스되었다.[7] 이 버전에서는 Python 3.9 및 3.10 지원이 추가되었고, 새로운 솔버 매개변수가 추가되었다.[7]

4. 3. 버전 20.1 (2020년 12월)

2020년 12월에 CPLEX 버전 20.1이 릴리스되었다.[8] 이 버전에서는 MIP(혼합 정수 계획법) 성능이 개선되었고, 'emphasis MIP 5' 모드가 새롭게 추가되었다.[8]

4. 4. 버전 12.10 (2019년 12월)

MIP 성능이 개선되었고, 버전 12.8에서 도입된 다른 일반 콜백에 대한 일반 브랜칭 콜백이 추가되었다.[5]

4. 5. 버전 12.9 (2019년 3월)

2019년 3월에 출시된 CPLEX 버전 12.9는 다목적 최적화를 직접 지원하며, 콜백 기능이 개선되었다.[5]

4. 6. 버전 12.8 (2017년 12월)

2017년 12월에 CPLEX 버전 12.8이 릴리스되었다. 주요 기능은 다음과 같다.[5]

  • 일반 콜백
  • 디버깅을 용이하게 하는 API 레코더
  • subMIP 제어 매개변수
  • Download and Go 제공

4. 7. 버전 12.7 (2016년 11월)

CPLEX 버전 12.7은 2016년 11월에 출시되었다.[5] 이 버전에서는 자동화된 벤더스 분해, 모델링 지원 도구, 성능 변동성을 더 잘 평가하기 위한 `runseeds` 명령이 도입되었다.

4. 8. 버전 12.6.2 (2015년 6월)

CPLEX 버전 12.6.2는 2015년 6월에 출시되었다.[5] 주로 SOCP, MISOCP, 비볼록 QP의 성능 개선과 클라우드 기반 최적화를 지원한다.

4. 9. 버전 12.6 (2013년 12월)

CPLEX 버전 12.6은 2013년 12월에 출시되었다.[5] 이 버전에서는 비볼록 QP 및 MIQP를 지원하며, 분산 병렬 MIP와 MIP의 루트 노드에서 더 많은 병렬 처리를 제공한다.[5]

4. 10. 버전 12.5 (2012년 10월)

MIP (혼합 정수 계획법) 성능이 개선되었고, 성능 가변성을 해결하기 위한 임의 시드 매개변수가 추가되었다.[5] 또한 원격 객체, QCP의 듀얼, 결정적 튜닝 도구가 제공된다.[5]

4. 11. 버전 12.4 (2011년 11월)

2011년 11월에 출시된 CPLEX 버전 12.4는 결정적 시간 제한 기능을 지원한다. 또한, 2차 원뿔 계획법(SOCP)의 쌍대(Dual) 문제와 Concert 기술의 2차식 API를 지원한다. 이 버전에서는 모든 알고리즘, 특히 혼합 정수 계획법(MIP)의 성능이 향상되었다.[5]

4. 12. 버전 12.3 (2011년 6월)

2011년 6월에 CPLEX 버전 12.3이 출시되었다.[5] 이 버전에서는 큰 비제로(non-zero) 개수를 지원하기 위해 64비트 인덱싱을 도입했으며, 비볼록 QP(Quadratic Programming, 이차 계획법)의 지역 최적값 및 전역화를 지원한다.[5]

4. 13. 버전 12.2 (2010년 6월)

2010년 6월에 출시된 CPLEX 버전 12.2에서는 루트 노드 병렬 처리, 결정적 병렬 동시 LP 최적화, 배리어(barrier) 알고리즘 성능 개선, 그리고 혼합 정수 계획법(MIP)에서 조건이 나쁜(ill-conditioned) 기저 행렬을 진단하는 도구가 추가되었다.[5]

4. 14. 버전 12.0 (2009년 4월)

CPLEX영어 버전 12.0은 2009년 4월에 출시되었으며, IBM이 ILOG를 인수한 후 첫 번째 버전이다.[5] 이 버전에는 Python, MATLAB, 엑셀용 커넥터가 포함되어 있으며, 결정적 병렬 배리어 기능도 포함되어 있다.

4. 15. 버전 11.0 (2007년 10월)

2007년 10월에 출시된 버전 11.0에서는 혼합 정수 프로그래밍(MIP) 모델의 성능이 크게 향상되었고, 병렬 MIP 최적화 기능이 개선되었다. 또한 MIP 솔루션 풀 기능과 성능 튜닝 유틸리티가 새로 도입되었다.[5]

4. 16. 버전 10.0 (2006년 1월)

2006년 1월에 버전 10.0이 릴리스되었다.[5] 프라이멀 심플렉스 및 배리어 방법, MIP 최적화기에서 성능이 개선되었다.[5] 지표 제약 조건 및 솔루션 연마 휴리스틱이 도입되었으며 비가용성 분석이 개선되었다.[5]

4. 17. 버전 9.0 (2003년 12월)

프라이멀 및 듀얼 심플렉스 방법과 MIP 최적화기에서 성능이 개선되었다.[5] .NET 사용자를 위해 ILOG Concert Technology를 지원하며, 2차 제약 프로그램을 지원한다.

4. 18. 버전 8.0 (2002년 7월)

MIP 성능이 개선되었고, 혼합 정수 2차 프로그램을 지원하게 되었다.[5]

4. 19. 버전 7.5 (2001년 12월)

Concert Technology영어는 Java 사용자를 위한 기술이었다.[5]

4. 20. 버전 7.0 (2000년 10월)

2000년 10월, C++ 사용자를 위한 ILOG Concert Technology가 추가되었다.[5]

4. 21. 버전 6.5 (1999년 3월)

1999년 3월에 출시된 CPLEX 버전 6.5에서는 프라이멀 및 듀얼 심플렉스 방법과 ILOG CPLEX 혼합 정수 최적화기의 성능이 크게 향상되었다.[5]

4. 22. 버전 6.0 (1998년 4월)

1998년 4월에 출시된 버전 6.0에서는 프라이멀 및 듀얼 심플렉스 방법과 CPLEX 배리어 최적화기의 성능이 크게 향상되었다.[5]

4. 23. 버전 5.0 (1997년 9월)

쉬운 C++영어 통합을 위한 새로운 메모리 모델이 도입되었다.[5]

4. 24. 버전 4.0.5 (1996년 3월)

병렬 CPLEX 혼합 정수 솔버가 도입되었다.[5]

4. 25. 버전 4.0 (1995년 12월)

스레드 안전 애플리케이션을 허용하도록 고급 프로그래밍 인터페이스(API)를 재설계했다.[5]

4. 26. 버전 3.0.8 (1995년 3월)

1995년 3월, 버전 3.0.8이 출시되면서 병렬 CPLEX 배리어 솔버가 도입되었다.[5]

4. 27. 버전 3.0 (1994년 4월)

1994년 4월, CPLEX영어 배리어 솔버가 도입되었다.[5]

4. 28. 버전 2.1 (1993년 3월)

CPLEX영어 Presolve 알고리즘이 도입되었다.[5]

4. 29. 버전 2.0 (1992년 4월)

CPLEX영어 팀은 1992년 4월에 성능이 개선된 버전 2.0을 출시했다.[5]

4. 30. 버전 1.2 (1991)

듀얼 심플렉스 방법 및 CPLEX 혼합 정수 최적화기를 지원한다.[5]

4. 31. 버전 1.0 (1988)

CPLEX영어 버전 1.0은 1988년에 출시되었으며, 프라이멀 심플렉스 방법을 제공했다.[5]

참조

[1] 웹사이트 CPLEX Optimization Studio 20.1 is available https://community.ib[...]
[2] 간행물 IBM Completes Acquisition of ILOG https://www-03.ibm.c[...] 2009-01-06
[3] 간행물 Recent Benchmarks of Optimization Software Dept of Math and Stats Arizona State University 2007-07-10
[4] 논문 IBM ILOG CP optimizer for scheduling 2018
[5] 웹사이트 CPLEX History http://www.ilog.com/[...] 2020-06-24
[6] 웹사이트 Release notes for CPLEX 22.1.1 https://www.ibm.com/[...] 2023-01-11
[7] 웹사이트 Release notes for CPLEX 22.1.0 https://www.ibm.com/[...] 2023-01-11
[8] 웹사이트 CPLEX 20.1 Release Notes https://www.ibm.com/[...] 2021-03-04
[9] 웹인용 CPLEX Optimization Studio 20.1 is available https://community.ib[...]



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com