1

大規模な線形計画法の問題があります。「linprog」を使用してmatlab内で解決できます。ただし、ループ内にあり、2 回目の反復からループの最後までバイパスする必要があります。これは、以下の形式の単純な LP です。

a_i b_i st の合計を最小化します。...

a_is は私の変数で、b_is は係数です。各ループ反復では、b_is のみがわずかに変化します。この変更後に変数の新しい値が必要です。(matlab は大規模な問題に対してシンプレックス法を使用しないことに注意してください)。

ループで時間を節約し、LP を複数回解決しない方法はありますか?

ありがとう

4

1 に答える 1

2

LP/IP の感度分析は、MATLAB の強みの 1 つではありません。

オプション 1 : CPLEX または SAS を使用できる場合は、どちらも「ウォームスタート」メソッドを使用して、以前の基礎を持ち、何かを高速に考え出すことができます。(これは真の感度分析です。)

これは、初期ソリューションを設定するための IBM/CPLEX のリンクです。

同様に、SAS/OR にもウォームスタート オプションがあります。

オプション 2 : MATLAB にしかアクセスできない場合

Matlab のドキュメントから、Simplex を使用するように「強制」する方法を次に示します。

To use the simplex method, set 'LargeScale' to 'off' and 'Simplex' to 'on' in options.

options = optimset('LargeScale','off','Simplex','on')

注: デフォルトの内点法が特定の LP により適している場合は、最初に反復 1 で行っているように解いてください。次に、基本変数の上限と下限を解の値に設定し、linprog を設定します。シンプレックスを呼び出すためのオプション。あっさり解決してくれます。

ソリューション エンジンをsimplexを使用するように切り替えてみてください。係数をわずかに変更して、LP の 2 回目以降の反復で役立つかどうかを確認してください。

于 2012-01-13T03:43:49.503 に答える