2012-05-19 6 views
6

Linux上で整数プログラムを解決する良いツールはありますか?Linux上で整数プログラムを解決する良いツールはありますか?

時間を節約するために計算したいという小さな問題があります。これはサブセットの和問題のようなものです。私は約20のInteger-Valueのリストを持っており、特定の最小値を満たす最小の合計でサブセットを計算したいと考えています。あなたは、整数プログラムでこれを定式化することができ...

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

それともこれを行うには、他の良い方法があると

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

のようなものを?

答えて

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オクターブを試みることができる - MATLAB

+0

私がGNU Octaveを試していたのはずっと前ですが、ちょうどボンネットの下でGLPKと呼ばれていました。 – Ali

1

のそのサブセットがLindo/Lingoを試してみてください。彼らは無料ではありませんが、あなたはそれらを試すことができます。

これらを使用すると、問題を非常にきちんとした数学的方法で指定できます。

0

@Aliが作成したGLPK提案にもう1つのオプションを追加したいと考えました。 LPs/IPを解決することに興味がある人は、R言語が提供する最適化パッケージを調べることをお勧めします。

Rをすでに知っていて、Rを使用している場合は、適切なパッケージをダウンロードするだけです。また、そうでない場合でも、これはRに導入するための良い方法です。これは実際にアナリティクスの分野で始まっています。

このvignetteは、どのRパッケージが関連しているかを知る上で非常に良い方法です。 あなたのために、RSymphonyまたはRglpkで始まるものがあります。

3

でこれを実行しようとしましたか?LibreOffice Calcソルバー(http://help.libreoffice.org/Calc/Solver)?

Mono FrameworkのMicrosoft Solver Foundationも、C#を知っていればあなたの仕事をすることができます。

関連する問題