2011-04-26 6 views
21

"파이썬 선형 프로그래밍"에 대한 빠른 검색은 많은 조회수를 나타냅니다 (예 : this one). 그 (것)들을 통해서 보면, 나는 구식 의존성, 빈약 한 문서 등에 관해 a fair number of complaints을 본다.파이썬에서 선형 프로그래밍에 어떤 라이브러리를 사용해야합니까?

파이썬을위한 두통없는 (예 : 빠르고, 잘 문서화되고, 설치가 용이 한, 깨끗한 API) 선형 프로그래밍 라이브러리를 권장 할 수 있는가?

+0

여기 좀 더 ... http://www.scipy.org/Topical_Software – dfb

답변

8

나는 및/또는 Pyomo보고 권 해드립니다.

+1

큰 인스턴스에 적합합니까? 적어도 hundered의 변수와 수천 개의 제약 조건을 말할 수 있습니다. –

+0

좋은 질문입니다. PULP와 Pyomo가 큰 문제에 어떻게 대응할 지 확신하지 못합니다. 그러나 대부분의 최적화 문제 (주로 집적 회로 레이아웃 용)를 사용하는 대부분의 친구들은 IBM CPLEX를 최적화 솔버로 사용한다고 말할 수 있습니다. 빠른 Google 검색을 기반으로 Python 용 CPLEX API가 있습니다. 그러나 CPLEX는 학업 목적 이외의 목적으로 무료로 제공되지 않습니다. – solvingPuzzles

+0

... 방금 Stackexchange 프로필 인 Andreas를 확인했는데 대학원생 인 것 같습니다. 무료 CPLEX 라이센스를 얻을 수 있습니다. :) – solvingPuzzles

2

구체적으로 무엇을 하려는지 모르지만 NumPy/SciPy는 대개 Python에서 수학과 관련된 모든 것을 찾는 첫 번째 장소입니다.

+0

Numpy는 배열 라이브러리이며 이전 버전과의 호환성을 위해 추가 기능이 추가되었습니다. Scipy는 몇 가지 최적화 루틴을 가지고 있지만, 지금은 일반적인 비선형 솔버라고 생각합니다. Scipy는 현재 선형 프로그램에 특화된 솔버를 가지고 있지 않습니다. – cjordan1

5

cvxopt은 Lieven Vandenberghe와 그의 공동 작업자 중 일부입니다. (이것은 Boyd와 Vandenberghe가 널리 사용하는 볼록 최적화 교과서의 Vandenberghe와 동일합니다.) 일반적인 convex conic 프로그래밍 솔버이고 내부 포인트 방법을 사용합니다. 더하기 측면에서 잘 문서화되어 있고 많은 예제가 있으며 사용하기 쉽습니다. Xpress, Gurobi 또는 cplex와 같은 상용 제품은 아니지만 상당히 잘 확장 할 수 있다고 생각합니다.

(pure python) 선형 프로그래밍 구현을 포함하는 scipy에 대한 요청이있는 것처럼 보입니다. 그래서 선형 프로그래밍 솔버는 미래에 scipy에있을 수 있습니다.

+0

기록은 다음과 같습니다 PR https://github.com/scipy/scipy/pull/218 – astrojuanlu

1

GLPK과 같이 널리 사용되는 선형 해석기에 대한 래퍼가 포함 된 or-tools을 살펴볼 수도 있습니다.

1

부터 scipy에는 scipy.optimize.linprog을 통해 선형 프로그래밍 모델을 직접 해결하는 방법이 포함되어 있습니다. 그것은 Simplex 알고리즘을 사용합니다.

관련 문제