Matlabの溶液の形の式をプログラミングリニア:
オブジェクト「はFを最適化することを含む、請求* X、不等式制約、等式制約と境界制約変数。
線形最適化を解くMATLABではlinprog機能を提供する:
EG:
[X、FVAL、exitflagを、出力、λ= linprogは(F、A、B、式Aeq、BEQ、LB、UBは、オプション)
関数fを入力し、 、Fであり、Bは、式Aeqは、物体の最適化 BEQ、LBは、UBは、 具体的には、上記式で表されます。最後のオプションは、最適化のプロセスパラメータであり、主に次のとおりです。
オプション= optimoptions( 'linprogは'、 'アルゴリズム'、 '内点'、 '表示'、 'ITER'、 'MaxIterations'、10)
選択最適化:線形最適化
選択方法:内点法(線形最適化アルゴリズムがさらに提供)
:表示サイクル数
リミットサイクル
他のパラメータを設定することができますがあります。参考にして得られた特定の検索最適化オプションMatlabの参照。
例えば:
私たちは、次の線形計画問題を解決します:
f = [-2;-1;1];
A = [1 4 -1; 2 -2 1];
b = [4;12];
Aeq = [1 1 2];
beq = 6;
lb = zeros(3,1);
設定と解決に対応する最適化パラメータを与えるには:
options = optimoptions('linprog','Algorithm','dual-simplex','Display','iter','MaxIterations',10)
[x,fval,exitflag,output,lambda] = linprog(f,A,b,Aeq,beq,lb,ub,options)
私たちは、次のような結果を得ることができます。
options =
linprog options:
Options used by current Algorithm ('dual-simplex'):
(Other available algorithms: 'interior-point', 'interior-point-legacy')
Set properties:
Algorithm: 'dual-simplex'
Display: 'iter'
MaxIterations: 10
Default properties:
ConstraintTolerance: 1.0000e-04
MaxTime: Inf
OptimalityTolerance: 1.0000e-07
LP preprocessing removed 0 inequalities, 0 equalities,
0 variables, and added 0 non-zero elements.
Iter Time Fval Primal Infeas Dual Infeas
0 0.001 0.000000e+00 6.999174e+00 1.113300e+00
2 0.002 -1.080000e+01 1.750843e+00 0.000000e+00
4 0.002 -8.666667e+00 0.000000e+00 0.000000e+00
Optimal solution found.
x =
4.6667
0
0.6667
fval =
-8.6667
exitflag =
1
output =
struct with fields:
iterations: 4
constrviolation: 8.8818e-16
message: 'Optimal solution found.'
algorithm: 'dual-simplex'
firstorderopt: 7.4015e-16
lambda =
struct with fields:
lower: [3×1 double]
upper: [3×1 double]
eqlin: 0.3333
ineqlin: [2×1 double]
前記パラメータは、ディスプレイ、サイクルの各ステップのデータ、及び最も有利なの関数値の最終値を含みます。