2012-05-19 2 views
6

Linux에서 정수 프로그램을 해결할 수있는 유용한 도구가 있습니까?리눅스에서 정수 프로그램을 풀 수있는 좋은 도구가 있습니까?

시간을 절약하기 위해 계산하고 싶은 작은 문제가 있습니다. D. 그것은 일종의 합계 문제의 일종입니다. 저는 약 20 개의 Integer-Value 목록을 가지고 있으며 특정 최소값을 만족하는 가장 작은 합계로 하위 집합을 계산하려고합니다. 당신은 정수 프로그램이 공식화 할 수 ...

\sum_{i=1}^{n} w*x >= c with x \in \{0,1\} 

또는이 작업을 수행 할 수있는 다른 좋은 방법이와

\sum_{i=1}^{n} w*x -> min 

같은 것을? Lindo/Lingo을 시도 MATLAB

답변

9

GLPK 또는 SCIP 중 하나를 시도합니다.

그들은 자신의 모델링 언어를 가지고 있습니다. GLPK에는 GNU MathProg가 있고 SCIP에는 ZIMPL이 있으므로 LP 문제를 편리하게 코딩 할 수 있습니다.

GNU MathProg는 AMPL과 호환되는 이점이 있습니다. 따라서 CPLEX 또는 Gurobi를 사용하여 AMPL의 학생용 버전을 GNU MathProg 모델과 함께 사용해 볼 수 있습니다. AMPL, CPLEX 및 Gurobi는 상용 소프트웨어입니다.

+2

나는 glpk와 MathProg로 내 문제를 해결했다. [IBM] (http://www.ibm.com/developerworks/linux/library/l-glpk1/)에서 멋지고 간단한 소개를 찾았습니다. 감사. – mageta

0

당신은 GNU 옥타브를 시도 할 수 있습니다. 그들은 무료가 아니지만 시도해 볼 수 있습니다.

그들은 당신이 아주 청초한 수학적 방법으로 문제를 지정할 수있게 해줍니다.

+0

오래 전 GNU Octave를 사용해 보았을 때 GLPK가 호출되었습니다. – Ali

1

의 그것의 부분 집합 -

0

@Ali가 작성한 GLPK 제안에 하나 이상의 옵션을 추가하고 싶습니다. LPs/IP를 해결하는 데 관심이있는 사람이라면 R 언어가 제공하는 최적화 패키지를 살펴볼 것을 제안합니다.

R을 이미 알고 사용하고 있다면 올바른 패키지를 다운로드하는 것입니다. 그리고 그렇지 않더라도 R에 대해 소개하는 좋은 방법입니다. R은 실제로 분석 영역에서 시작됩니다.

vignette은 어떤 R 패키지가 적절한 지 알 수있는 좋은 방법입니다. 당신의 경우, RSymphony 또는 Rglpk으로 시작할 수 있습니다.

3

으로 해 보셨습니까? LibreOffice Calc 해 찾기 (http://help.libreoffice.org/Calc/Solver)?

모노 프레임 워크의 Microsoft Solver Foundation도 C#을 알고 있으면 작업을 수행 할 수 있습니다.

관련 문제