3

私は、速度を大幅に向上させる必要があるmatlabアプリケーションに取り組んでいます。私は linprog を使用して、0 と 1 で囲まれた約 10,000 の変数を持つ 2 制約線形計画法を解いています。Linprog は私のアプリケーションでは非常に遅いです。速度を改善するために再定式化できる方法はありますか? または、便利な matlab 互換のシェアウェア (私は予算が限られています) を知っていますか?

4

2 に答える 2

1

matlab にはないが MEX を使用してインターフェイスされた実装を気にしない場合は、glpk と glpkmex が役立つ可能性があります

http://glpkmex.sourceforge.net/

あるいは、lpsolve も役立つかもしれませんが、大規模な問題には glpk ライブラリほどではありません: http://web.mit.edu/lpsolve/doc/MATLAB.htm

実際に手に入れることができれば、IBM ILOG CPLEX は大規模な問題に最適なツールの 1 つです。matlab へのインターフェース (http://www-01.ibm.com/software/integration/optimization/cplex-optimizer/connectors/) があり、ライセンスを持っていない場合は拡張試用版を試すことができます。 .

特殊なケースでは、目的関数の係数を調べて、制約の内容に応じてアクティブになる制約を決定することで、問題を大幅に単純化できる場合があります。アクティブな制約に参加しない変数は、目的関数を最小化すると仮定して、目的関数の係数が正または負であるかどうかに応じて、最小値または最大値 (説明に従って 0 または 1) に設定できます。最大化を行っている場合は、その逆を行います。これにより、変数の数が削減されます =)。

于 2012-07-17T13:14:25.563 に答える
0

ボックス制約 (バインドされた制約と呼ばれる場合もあります) を持つ線形プログラムのように思えます。それらのボックス制約を適切に設定しましたか? 詳細については、リファレンスを参照してください。

于 2010-06-24T09:01:31.400 に答える