数理ファイナンス入門
付録A 線形計画法
          第1版 2001年5月7日

■まとめ
(A.1)...主問題
 minimize cT
 A・X≧b
 X≧0
(A.2)...双対問題
 maximize YT
 AT・Y≦c
 Y≧0
主問題の解の存在と、双対問題の解の存在は同値であり、解が存在すれば目的関数の値も等しい。


■Q&A
1).線形計画法って何ですか?
 一次不等式で表された制限条件の中で、目的の達成度を最大にする最適の方法を求める数学的技法で、
 1947年に米国の数学者ダンツィグ(G.B. Dantzig)によって開発されました。
 Dantzigのシンプレックス法の開発によって、その後急速に注目されるようになりました。
 経営計画(経営資源の最適配分etc)・輸送計画などに多く利用され、リニアプログラミング(略してLP)とも呼ばれます。

2).線形計画法の良い教科書を教えてください。
この「数理ファイナンス入門」を理解するためだけに、線形計画法を別に勉強するのは
やめた方がいいと思います。この付録を大体理解できればそれで良しとしないと、時間がいくらあっても足りません。

<それでも...という方に>
線形計画法というタイトルの書籍は最近ちっとも店頭で見かけません。昔は多かったんですが...
 (線形代数の書籍は多いですね??数理計画法というタイトルの方が多いのかな?)
さて、大型書店に行ってみたら、
 「線形計画法」今野浩 /日科技連出版社 1987/03出版
だけがありました。教科書のような感じです。ちなみに、この本で問題回答のヒントを得ました。
あと絶版ですが、
 「線形計画法」上・下
   バシェク・フバ−タル/阪田省二郎 /啓学出版 1988/09出版
が良いテキストのようです。良く大学院レベルの講義で利用されているようです。

それと、線形計画法を含む数理計画概論のオンラインテキストを見つけましたので、紹介します。
東京大学 総合文化研究科・広域科学専攻・広域システム科学系の 大勝研究室
(ここの、数理計画の中の第3章「線形計画法」を参照のこと。良くできています)

3).双対はなんて読むのですか?
 「そうつい」です。上述の今野浩先生の本にもそう書いてあります。
 今野先生はDantzig先生の弟子筋に当たり、この分野の権威ですから間違いないでしょう。


■問題回答
問A.1
1).主問題の双対をとる
(A.1)
 minimize cT
 A・X≧b
 X≧0
これの双対をとると、
(A.2)
 maximize YT
 AT・Y≦c
 Y≧0
(*).経済分野の数学では、転置行列をATでなく、A’と表記することが多いようです。理工系ではまずみかけません。

2).(A.2)を主問題の形式に変形する
 b*≡−b
 A*≡−AT
 c*≡−b
と定義すると、(A.2)は
 maximize −YT*
 −A*・Y≦−c*
 Y≧0
となり、整理して
(A.3)
 minimize YT*
 A*・Y≧c*
 Y≧0
となって、主問題の形式になる。

3).(A.3)の双対問題
(A.3)の双対問題は、
(A.4)
 maxmize ZT・c*
 A*T・Z≦b*
 Z≧0
であり、b、A,cで表記すると
 maxmize −ZT・c
 −A・Z≦−b
 Z≧0
となり、
(A.5)
 minmize ZT・c=cT・ZT
 A・Z≧b
 Z≧0
より、(A.1)と同値になった。
以上より、(A.1)の双対の双対は(A.1)である。

以下の変形は線形計画法の常套手段らしいです。これを知らないと、以下の問題はちょっと解けません。
・等号の条件を不等式の条件に変形する手段
 A・x=bで、A*≡[A, −A]として、
 A*・x≧bに変形する
・不等号の条件を等号の条件に変形する手段
 A・x≦b、x≧0で、変数sを導入して
 (A・x)+s=b、x≧0、s≧0に変形する
・ベクトルxが無制約であることを制約条件に変形する手段
 x≡xA−xBとして、xA≧0、xB≧0とする。
  (*).こうすると、xA≧0、xB≧0でも、xは正負なんでもとれます。

問A.2
主問題は
 minimize cT
 A・X≧b
で、この双対問題が
 maximize YT
 AT・Y=c
 Y≧0
であることを証明する。

1).主問題を変形する。
X≡xA−xBとすると、主問題は
 minimize cT・(xA−xB
 A・(xA−xB)≧b
 xA≧0、xB≧0
となり、ここで
 A*としてA, −Aを横に並べたマトリクス、つまりA*≡[A, −A]
 X*としてxA, xBを縦に並べた列ベクトル
 c*をc, −cを縦に並べた列ベクトル
と定義すると
 minimize c* T・X*
 A*・X*≧b
 X*≧0
という標準的な主問題になる。

2).双対形式をとる
これの双対は
 maximize YT
 A* T・Y≦c*    ... (2-A)
 Y≧0
となり、A*=[A, −A]より、(2-A)式は
 AT・Y≦c
 −AT・Y≦−c
となり、整理して
 AT・Y≦c
 AT・Y≧c
であるから、
 AT・Y=c
である。
従って、双対形式は
 maximize YT
 AT・Y=c
 Y≧0
となり、証明できた。

問A.3
主問題は
 minimize cT
 A・X=b
 X≧0
で、この双対問題が
 maximize YT
 AT・Y≦c
であることを証明する。

1).主問題を変形する。
A・x=bは
A・x≧b、かつ−A・x≧−b
と同値なので、
 A*



−A



、 b*



−b



と定義すると、
主問題は、
 minimize cT
 A*・X≧b*
 X≧0
となる。

2).双対形式をとる
これの双対は、
 maximize T*
 A* T≦c*  ≧0
となり、≡[YA, YB]として整理すると
 maximize (YA−YBT
 AT・(YA−YB)≦c
 YA≧0、YB≧0
となり、新しくY≡(YA−YB)と定義すると、
 maximize YT
 AT・Y≦c
 Yは無制約
となり、証明できた。

問A.4
主問題は
 X1≧X2+1
 X1≦X2−2
と変形できるので、常にX2+1>X2−2なので、解を持たない。
双対問題は
 maximize −Y1+2Y2
  Y1−Y2≦1
 −Y1+Y2≦-2
 簡単すぎる問題だな〜。

問A.5
1).(A.2)⇒Dv≦0、dv>0が解を持つ
(A.2)が解を持つとすると、
 d=



-1



 とすれば、  D・v=


T−c
−Y



≦0となり、
 d・v=1>0も成り立つので、D・v≦0、d・v>0は解vを持つ。

2).Dv≦0、dv>0が解を持つ⇒(A.2)(実はこれは間違い)
Dv≦0、dv>0が解を持つとすると、
 d≡α・



-1



 とすれば、
 α・{AT・Y−c}≦0
 −α・Y≦0
 d・v=α
が成り立ち、d・v>0よりα>0だから、
 AT・Y≦c
 Y≧0
が解を持つことが分かる。
しかし、だからといって、max YT・bが存在するとは限りません。
 解があるからといって、max YT・bが存在するとは限りません。
 反例を示します。
  (いや〜、証明しようとして苦労しました。)
 反例
  A=−Iのマトリックスとすれば、
  Y≧−cかつY≧0が解であり、いくらでも大きいYが可能で、maxはとれない。

ということで、(A.2)⇒Dv≦0、dv>0が解を持つということは成立しますが、逆は成立しません。
本文中では、(A.2)が解を持たない⇒Dv≦0、dv>0が解を持たない⇒wD=d、w≧0が解を持つ⇒矛盾発生と、
証明が進んでいきますが、証明方法が間違いということですね。もちろん、結論は正しいのですが、

問A.6
 これは問題としては難しすぎると思いますが...
1).列ベクトルVA、VBが、VA≧VBの時
 列ベクトルY、Y≧0に対して、YT・VA≧YT・VBとなる。
証明
 P≡VA−VBとすれば、P≧0なので、Y≧0より、YT・P≧0
 従って、YT・(VA−VB)≧0より、YT・VA≧YT・VB

2).弱双対定理(と呼びます)
 主問題と双対問題に解X、Yが存在すれば、常にYT・b≦cTXが成立する
 つまり、双対問題の目的関数値≦主問題の目的関数値となる。
証明
 Y≧0かつA・X≧bより、YT・A・X≧YT・b
 X≧0かつAT・Y≦cより、YT・A・X=(AT・Y)T・X≦cT・Xとなり、
 YT・b≦cT・Xとなる。

3).Farkasの補題の系
 A・X≧b、X≧0が解を持つ⇔YTA≦0となる任意のY≧0でYT・b≦0
証明
 A・X≧b、X≧0⇔A・X-s・I=b、X≧0,s≧0⇔A*・X=b、X*≧0
 ただし、
 A*


 -1


 X*



s



 問1.10より、A*・X=b、X*≧0が解を持つ ⇔ YT*≦0、YT・b>0が解を持たない
 ⇔ YTA≦0、YT・b>0、Y≧0が解を持たない ⇔ YTA≦0、Y≧0となるすべてのYで、YT・b≦0

4).強双対定理(と呼ぶらしい)
 主問題、双対問題がいずれも解を持つ時、その目的関数の値は等しい
証明
 主問題、双対問題がいずれも解をもつとすると、以下条件を満たしている。
  A・X≧b、AT・Y≦c、X≧0、Y≧0     ...(1)
 この時に、YT・b−cT・X≧0          ...(2)
 であることを示せば、上述の弱双対定理のYT・b≦cT・Xとあわせて
 YT・b=cT・Xであることを示すことができる。
4-1).
 上述の条件(1)、(2)をマトリックス形式で整理して、
  





−cT

−AT
T












 ≧ 



−c
0



 、 







≧0が解を持つことを示せば良い。
これは、上述の3).Farkasの補題の系から
  


T


−A
−c









α



 ≦0を満足するすべての




α



≧0で、   ...(3)
  

T −cT  0






α



= pT・b−cT・q≦0    ...(4)
 となることと同値である。
 これをα>0と α=0の2通りに分けて証明する。

4-2).α>0の時
 X*≡q/α、Y*≡p/αと定義すれば、
 (3)式に代入すれば、A・X*≧b、A*T・Y≦c、X*≧0、Y*≧0となるから、
 上述2).の弱双対定理より、Y*T・b−cT・X* ≦ 0となる。
 (4)式を変形すれば、bT・p−cT・q=α・(bT・Y*T−cT・X*)≦0となるので
 常に(4)式を満たすことができる。

4-3).α=0の時
 条件(3)から、A・q≧0、q≧0
 また、条件(1)からAT・Y≦c、Y≧0であるので、
 弱双対定理より、(弱双対定理のXをq、bを0とみてください)
 YT・0≦cTqから、cT・q≧0   ... (5)
 同様に、条件(3)から、AT・p≦0,p≧0
 また、条件(1)からA・X≧b、X≧0であるので、
 弱双対定理より、(弱双対定理のYをp、cを0とみてください)
 pT・b≦0T・qから、pT・b≦0   ... (6)
 (5)と(6)から、pT・b−cT・q≦0となり、
 常に(4)式を満たすことができる。

4-4).
 以上より、条件(1)の時に、条件(2)は常に満足される。
 これと弱双対定理と合わせて、証明できた。


戻る