Next: 区間型制約条件 Up: 線形計画法 Previous: 線形計画法

 

Scilabによる解法

Scilabによる解法ルーチンの利用の仕方を示そう。 例題として
    x1-x2 = 1  
    $\displaystyle 3x_1+5x_2 \leq 15$  
    $\displaystyle -2x_1-x_2 \leq -4$ (24)

という制約条件の下で、目的関数

y=x1+x2 (25)

を最小化するという問題を解いてみよう。

線形計画問題に対するScilabの解法関数としてはlinproを用いることができる。

   -->C=[1 -1;3 5; -2 -1];
   -->b=[1;15;-4];
   -->ci=[];
   -->cs=[];
   -->mi=1;
   -->p=[1;1];
   -->x0='v';
   -->[x,lagr,f]=linpro(p,C,b,ci,cs,mi,x0)
    f  =
       2.3333333
    lagr  =
   !   0.3333333 !
   !   0.        !
   !   0.6666667 !
    x  =
   !   1.6666667 !
   !   0.6666667 !
pは目的関数を与えるコストベクトルである。行列Cは線形等式および線形不等式 を表す係数行列で、線形等式、線形不等式の順で書く。miは線形等式の数である。 線形不等式部分は右辺ベクトルの方が大きくなるような向きに取っていることに 注意されたい。x0='v'という指定は、初期許容解がわかっていないことを意味す る。もし、初期許容解がわかっているなら、それを指定しても良い。



s oishi
2000-05-04