このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
一般的な線形計画問題
この例では、次のような典型的な線形計画問題を解きます。
sc50b.mat
ファイルを読み込みます。このファイルはこの例を実行する際に使用でき、行列およびベクトル A
、Aeq
、b
、beq
、f
、ならびに下限 lb
が含まれます。
load sc50b
この問題には 48 の変数、30 の不等式、20 の等式があります。
disp(size(A))
30 48
disp(size(Aeq))
20 48
dual-simplex
アルゴリズムと反復表示を使用するようにオプションを設定します。
options = optimoptions(@linprog,'Algorithm','dual-simplex','Display','iter');
この問題に上限はないため、ub
を []
に設定します。
ub = [];
linprog
を呼び出して問題を解きます。
[x,fval,exitflag,output] = ...
linprog(f,A,b,Aeq,beq,lb,ub,options);
LP preprocessing removed 2 inequalities, 16 equalities, 16 variables, and 26 non-zero elements. Iter Time Fval Primal Infeas Dual Infeas 0 0.011 0.000000e+00 0.000000e+00 9.999644e-01 14 0.029 -1.435826e+02 6.556491e+02 0.000000e+00 33 0.031 -7.000000e+01 0.000000e+00 0.000000e+00 Optimal solution found.
問題を解くために linprog
によって使用される終了フラグ、解での目的関数値、および反復の回数を検証します。
exitflag,fval,output.iterations
exitflag = 1
fval = -70
ans = 33
反復表示で目的関数値および反復の回数を確認することもできます。