linear_prog
例:linear_prog([1],1,5,5,2,1,1,[6]);
- 機能:
- 線形計画法(シンプレックス法)
- 書式:
- linear_prog([A],off,m,n,m1,m2,m3,[ox])
- 解説:
- 線形計画法は、n個の変数x0,x1....xn-1についての1次関数
Z = a00x0 + a01x1 +...+ a0n-1xn-1
を最大にするx0,x1,....xn-1を見つけ出す問題を指します。但し、各変数は主制約条件
x0≧0, x1≧0,...., xn-1≧0
を満たし、更に次のm1+m2+m3個(m=m1+m2+m3+1)の補助制約条件も満足することとします。
ai0x0 + ai1x1 +...+ ain-1xn-1 ≦ bi (bi≧0) i=1,2,...,m1
aj0x0 + aj1x1 +...+ ajn-1xn-1 ≧ bj (bj≧0) j=m1+1, m1+2, ...,m1+m2
ak0x0 + ak1x1 +...+ akn-1xn-1 = bk (bk≧0) k=m1+m2+1, m1+m2+2,..,m1+m2+m3
関数Zと補助条件のm×n個係数aijは、行列([A],off,m,n )によって与えられます(aijは正でも負でも零でも良い)。
結果のx0,x1,...,xn-1は、存在しない場合(全ての制約条件が同時に成り立つことができない)と有界ではない場合(いくつかの変数が限りなく大きくしても条件が満たされるため、無数の解がある)もあります。
関数の戻り値として、求めた1次関数の最大値Zmaxを返します。
[A] ・・・・・・・・・・・・・・・・・ 補助条件の係数行列の1列目の数値組
off ・・・・・・・・・・・・・・・・・ 補助条件の係数行列の1行目のセル番号
m ・・・・・・・・・・・・・・・・・ 補助条件の係数行列の行数(m = m1+m2+m3+1)
n ・・・・・・・・・・・・・・・・・ 補助条件の係数行列の列数
m1,m2,m3 ・・・・・・・・・・・・・・・・・ 3種の補助条件の個数(m1+m2+m3+1= m)
[ox] ・・・・・・・・・・・・・・・・・ 求めた結果x0,x1,...,xn-1の出力数値組
return |