- 締切済み
線形計画法について
min w1+w2+0*z1+0*z2 s.t. z1>=w1+w2+1 z2>=w1-w2+1 w1+w2=0 z1+z2=0 z1>=0、z2>=0、w1>=0、w2>=0 を考える. いま、Matlabの線形計画問題を解く関数linprog() http://dl.cybernet.co.jp/matlab/support/manual/r13/toolbox/optim/linprog.shtml を使って解くことをしたいので、 上記リンク先において、 X=[w1,w2,z1,z2] f=[1,1,0,0] Aeq=[1,1,0,0; 0,0,1,1] Beq=[0,0] となると思います。 問題は、Ax>=B の箇所なのですが、 z1>=w1+w2+1 z2>=w1-w2+1 を移項して、 -z1+w1+w2<=-1 -z2+w1-w2<=-1 として、 A=[-1,0,1,1; 0,-1,1,-1] B=[-1,-1]; とするのでしょうか? どうも、このようにしてlinprog()に走らせると、最適化は終了するのですが、得られたパラメータが等式制約をみたしていない状態になります。 (実際、走らせた問題は微妙に違うものですが・・・) 原因として、この「Ax<=B」の入れ方だと思うのですが、上記のやり方では間違いなのでしょうか? 実行可能解の領域が閉空間でなく開空間になってしまっているのではないか思っています。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- arrysthmia
- ベストアンサー率38% (442/1154)
これは、数値計算プログラムのバグ取りか何か なんでしょうか? z1 >= w1 + w2 + 1 w1 + w2 = 0 より、z1 >= 1 z1 + z2 = 0 z2 >= 0 より、z1 <= 0 ですから、 可能解は、閉空間でも開空間でもなく、空集合です。 問題の min は、存在しません。 つい、 w1 + w2 = 0 より、 min{ w1 + w2 + 0*z1 + 0*z2 } = 0 + 0 + 0 と、やってしまいそうになりますが。
元の式がおかしいと思うのですが。 > w1+w2=0 > w1>=0、w2>=0 なら、もう答えは、 w1=0,w2=0 しかないのでは? z1,z2も同様です。