SlideShare une entreprise Scribd logo
1  sur  37
Télécharger pour lire hors ligne
情報数理学概論

   線形計画法入門	


       梅谷 俊治
大学院情報科学研究科 情報数理学専攻

     2012年6月22日
講義概要	
目標:線形計画法を分かったつもりになる

•    線形計画問題
•    不等式標準形・等式標準形への変形
•    実行不可能・非有界な線形計画問題
•    単体法(シンプレックス法)
•    双対問題の作り方
•    双対定理
•    感度分析
線形計画問題の定義	
•  目的関数が線形関数,制約式も線形式の最適化問題	

    目的関数は「最大化」「最小化」の
    どちらでもOK


  minimize     3 x1 + 4 x 2 − 2 x3     制約式は「≧」「≦」「=」
                                       のどれでもOK
  subject to    2 x1 = 4,
               x1 − 2 x3 ≤ 8,
               3 x 2 + x3 ≥ 6,
               x1, x 2 ≥ 0.
                                     変数の非負制約はあってもな
                                     くてもOK
線形計画問題の例	
•  ある飲料メーカーでは野菜ジュースを製造しており,n種類の野菜を混合
   してm種類の栄養素を充足している.どの野菜をどれだけ購入するのが
   最も経済的だろうか?	


aij : 野菜jに含まれる栄養素の量
                 i       変数xjを野菜 j の購入量とすると	
bi : 栄養素iの必要量                   n

c j : 野菜jの1kg当たりの値段千円]
                   [     min    ∑c x   j    j
                                j =1
                                n
                         s.t.   ∑a x   ij   j   ≥ bi   (i = 1 2,…, m ),
                                                             ,
                                j =1

                                xj ≥ 0          ( j = 1 2,…, n ).
                                                       ,
線形計画問題の不等式標準形	
  •  任意の形の線形計画問題を扱うのは面倒 ⇒ 不等式標準形
  •  目的関数は「最大化」,制約式は「左辺≦右辺」,各変数は「非負」	

                                                          n
max    c1x1 + c 2 x 2 +  + c n x n
                                                 max     ∑c x   j     j
s.t.   a11 x1 + a12 x 2 + a1n x n ≤ b1,                 j =1
                                                          n
       a21 x1 + a22 x 2 +  a2n x n ≤ b2 ,
                                                 s.t.    ∑a x   ij    j   ≤ bi   (i = 1 2,…, m ),
                                                                                       ,
                                                        j =1

       am1x1 + am 2 x 2 +  amn x n ≤ bm ,                           xj ≥ 0      ( j = 1,2,…, n ).
       x1, x 2 ,…, x n ≥ 0.


                                                        max          cT x
            {
       max cT x Ax ≤ b, x ≥ 0                }          s.t.          Ax ≤ b, x ≥ 0.

           色々な表記が出てきますが全て同じ問題です.慣れて下さい.
標準形への変換	
•  全ての線形計画問題は不等式標準形に変換できる.
   制約式を分割
  n                                    n                          n

 ∑a x
  j =1
          ij        j       = bj   ⇔   ∑a x
                                       j =1
                                               ij     j   ≥ b j , ∑ aij x j ≤ b j
                                                                 j =1

 目的関数を-1倍
                    n                                     n
  max ∑ c j x j                    ⇔    min − ∑ c j x j
                    j =1                                  j =1
 制約式の両辺を-1
      n                                       n

  ∑a x
   j =1
               ij       j   ≥ bj   ⇔   − ∑ aij x j ≤ −b j
                                              j =1

 非負制約なしの変数を2つの非負制約あり変数で置き換え	
 x j (非負制約なし)                          ⇔             x j → (w j 1 − w j 2 ), w j 1 ≥ 0, w j 2 ≥ 0
不等式標準形への変形の例	
                                                                                       max      − 3 x1 − 4 x 2 + 2 x3
   min        3 x1 + 4 x 2 − 2 x 3          max      − (3 x1 + 4 x 2 − 2 x3 )
                                                                                       s.t.    2 x1 ≤ 4,
   s.t.       2 x1 = 4,                     s.t.    2 x1 = 4,
                                                                                               2 x1 ≥ 4,
             x1 − 2 x 3 ≤ 8,                        x1 − 2 x3 ≤ 8,
                                                                                               x1 − 2 x3 ≤ 8,
             3 x 2 + x 3 ≥ 6,                      3 x 2 + x3 ≥ 6,
                                                                                              3 x 2 + x3 ≥ 6,
             x1, x 2 ≥ 0.                           x1, x 2 ≥ 0.
                                                                                               x1, x2 ≥ 0.




max       − 3 x1 − 4 x 2 + 2 x3      max     − 3 x1 − 4 x 2 + 2(w 31 − w 32 )   max      − 3 x1 − 4 x 2 + 2w 31 − 2w 32
s.t.   2 x1 ≤ 4,                     s.t.   2 x1 ≤ 4,                           s.t.    2 x1 ≤ 4,
       − 2 x1 ≤ −4,                         − 2 x1 ≤ −4,                                − 2 x1 ≤ −4,
       x1 − 2 x3 ≤ 8,                       x1 − 2(w 31 − w 32 ) ≤ 8,                   x1 − 2w 31 + w 32 ≤ 8,
       − (3 x 2 + x3 ) ≤ −6,                − 3 x 2 − (w 31 − w 32 ) ≤ −6,              − 3 x 2 − w 31 + w 32 ≤ −6,
       x1, x2 ≥ 0.                          x1, x 2 ,w 31,w 32 ≥ 0.                     x1, x 2 ,w 31,w 32 ≥ 0.
線形計画問題の等式標準形	
•  目的関数は「最大化」,制約式は「左辺=右辺」,各変数は「非負」
max           c1x1 + c 2 x 2 +  + c n x n                                             n

s.t.          a11 x1 + a12 x 2 + a1n x n = b1,                         max            ∑c x   j     j
                                                                                       j =1
           a21 x1 + a22 x 2 +  a2n x n = b2 ,                                         n
                                                                        s.t.          ∑a x   ij    j   = bi   (i = 1,2,…, m ),
                                                                                       j =1
           am1x1 + am 2 x 2 +  amn x n = bm ,
                                                                                                   xj ≥ 0      ( j = 1,2,…, n ).
              x1, x 2 ,…, x n ≥ 0.
                                                                            max               cT x
              {
  max cT x Ax ≤ b, x ≥ 0                            }                           s.t.           Ax ≤ b, x ≥ 0.
•  全ての線形計画問題は等式標準形に変換できる.
   不等式に新たな変数を加えて等式にする	
       n                                 n

       ∑a x
       j =1
                ij   j   ≤ bj       ⇔   ∑a x
                                        j =1
                                               ij       j   + xn + i = b j , xn + i ≥ 0
        n                                n

       ∑a x
       j =1
                ij   j   ≥ bj       ⇔   ∑a x
                                        j =1
                                               ij       j   − xn + i = b j , xn + i ≥ 0
線形計画問題のバリエーション	
•  最小値最大化問題
   ある資源を n 人に配分するとき,各人の配分量を(x1,x2,…,xn)とする.
   このとき,配分量 xi の最小値をなるべく大きくするのはある意味で公平と言
   える.	
            max        min{x1, x2 ,…, xn }
            s.t.       Ax ≤ b
       min
  この問題に	
       {x1, x2,…, xn } ≥ zとなる変数 z を新たに導入する.	
         max       z
         s.t.      x1 ≥ z, x 2 ≥ z,…, x n ≥ z,
                   Ax ≤ b
線形計画問題のバリエーション(続き)	
•  絶対値の入った目的関数
   例えば目標値djからの絶対誤差を最小化する目的関数を考える	
                      n
        min           ∑c x         j    j       −dj
                      j =1
                           n
        s.t.          ∑a x         ij       j   = bi   (i = 1,2,…, m ).
                       j =1


  t j = c j x j − d j となる変数 tj を新たに導入する.	
                n
                                                                              制約式に絶対値が入って
      min      ∑t      j                                                      いる場合も適用できるが,
               j =1
                                                                              そもそも線形計画問題に
      s.t.     − tj ≤ cjxj − dj ≤ tj                      ( j = 1,2,…, n ),   変換できない例もあるの
                                                                              で注意!
               n
                                                                                   	
               ∑a x
               j =1
                       ij      j   = bi           (i = 1,2,…, m ).
線形計画問題のバリエーション(続き)	
•  分数計画問題
   以下の形の分数計画問題は実は線形計画問題として解ける.
                  d T x + d0 > 0
   任意の実行可能解 x について          と仮定する.
                         cT x + c 0
               min
                        d T x + d0
               s.t.Ax ≥ b.
                    1
  ここで新たな変数	
 t = T       , y = tx を導入すると,	
                d x + d0
            min cT y + c0t
            s.t.      Ay − bt ≥ 0.
                      d T y + d 0 t = 1.
実行不可能・非有界な線形計画問題	
•  実行不可能:実行可能解が存在しない
•  非有界:実行可能解を持つが目的関数値をいくらでも良くできてしまう	
 実行不可能な線形計画問題の例	
                  非有界な線形計画問題の例	
  max 3 x1 + 4 x 2 + x3             max 3 x1 + 3 x 2
  s.t.     − x1 + x 2 + x3 = −5,    s.t.   x1 + 2 x 2 ≥ 2,
           2 x1 + x 2 − x3 = 7,            2 x1 + x 2 ≥ 2,
           x1, x 2 , x3 ≥ 0.               x1, x 2 ≥ 0.
                                      x2
  2 × ( − x1 + x 2 + x3 = −5 )
+ 1 × ( 2 x1 + x 2 − x3 = 7   )                       最大化	
              3 x 2 + x3 = −3

                                                             x1
         x2 , x3 ≥ 0なので解なし	
       目的関数値を無限大にできる
線形計画問題を解く	
•  変数の数を n 個,制約式の数を m 本とする.
•  実行可能領域は (m+n)個の平面に囲まれている ⇒ 超凸多面体
•  n 本の平面が交差する頂点のどれかに最適解がある!	
                                x2
  max x1 + 2 x2                ⑤             最適解	
                                         ③
  s.t.   x1 + x2 ≤ 6, → ①
                                     ①
         x1 + 3 x2 ≤ 12, → ②                   最大化	
         2 x1 + x2 ≤ 10, → ③
         x1 ≥ 0, → ④                                 ②
         x 2 ≥ 0. → ⑤
                                                     ④   x1
                  ⎛ m + n ⎞ ( m + n )!
         調べる点の数は	
⎜
                  ⎜        ⎜ =         個ありうる!	
                  ⎝ n ⎠        m! n!
         総当り法では線形計画問題を効率良く解けない
単体法(シンプレックス法)	
•  凸多面体のある頂点(実行可能解)から出発して,目的関数値が改善す
   る隣接頂点への移動を繰返す
•  各頂点ではn本の線形式からなる連立方程式を解く
   (実際の単体法では連立方程式を解かなくて済むように工夫されている)	


   x2                 f (x1, x2)

                                   x2




                 x1                     x1
単体法の手続き	
•  与えられた線形計画問題を等式標準形に変形する.
•  各変数 x1~x5 が線形制約式に対応していることを確認する.	
 max x1 + 2 x 2                      制約式を等号で満たす=対応する変数の値が0	
 s.t.   x1 + x 2 ≤ 6,     ①                   x2
        x1 + 3 x 2 ≤ 12, ②                             ( x1, x2 , x3 , x4 , x5 ) = ( +,+,0,0,+)
                                                 ④
        2 x1 + x 2 ≤ 10, ③
                          ④ ⑤                       ① ③
        x1, x 2 ≥ 0.


 max x1 + 2 x 2                                                              ②
 s.t.   x1 + x 2 + x3 = 6,       ①
                                                                              ⑤      x1
        x1 + 3 x 2 + x 4 = 12,   ②

        2 x1 + x 2 + x5 = 10, ③
                                           ( x1, x2 , x3 , x4 , x5 ) = (0,0,+,+,+)
        x1, x 2 , x3 , x 4 , x5 ≥ 0. ④ ⑤
単体法の手続き(続き)	
•  変数 n 個,制約式 m 本だが,各変数の非負制約もあるので制約式は
   (m+n) 本ある.
•  ここから n 本の制約式を選んで(対応する変数の値を0にして),連立方
   程式を解く.
•  すると,凸多面体の頂点に対応する実行可能解が求まる.	

                                                max z
max x1 + 2 x 2
                                                s.t.   x3 = 6 − x1 − x 2 ,
s.t.   x1 + x 2 + x3 = 6,
                                                       x 4 = 12 − x1 − 3 x 2 ,
       x1 + 3 x 2 + x 4 = 12,
                                                       x5 = 10 − 2 x1 − x 2 ,
       2 x1 + x 2 + x5 = 10,          分かり易く
                                      書き直すと	
          z = x1 + 2 x 2 ,
       x1, x 2 , x3 , x 4 , x5 ≥ 0.
                                                       x1, x 2 , x3 , x 4 , x5 ≥ 0.
                                                x1=0,x2=0とすると実行可能解が求まる
単体法の手続き(続き)	
 •  現在の実行可能解に隣接する実行可能解を求めるには?	
                           ( x1, x2 , x3 , x4 , x5 , z) = (0,0,6,12,10,0)
                                          x1かx2を増加すると目的関数が改善しそう	
max z
s.t.    x3 = 6 − x1 − x 2 ,             x3 ≥ 0なのでx2 = 6まで増やせる	
                                                 	
                                                                                        x2=4まで
         x 4 = 12 − x1 − 3 x 2 ,        x4 ≥ 0なのでx2 = 4まで増やせる	
                                                 	
                                     増やせて
         x5 = 10 − 2 x1 − x 2 ,         x5 ≥ 0なので	
 2 = 10まで増やせる	
                                                 x                                      x4=0となる	
        z = x1 + 2 x 2 ,
                                                           max z
         x1, x 2 , x3 , x 4 , x5 ≥ 0.
                                                           s.t. x 3 = 2 − 2 3 x1 +1 3 x 4 ,
           1     1                                                  x 2 = 4 −1 3 x1 −1 3 x 4 ,
x2 = 4 −     x1 − x 4を代入して書き直すと
                              ・・・
           3     3
       (実は連立方程式を解いている)	
                                            x 5 = 6 − 5 3 x1 +1 3 x 4 ,
                                                                   z = 8 +1 3 x1 − 2 3 x 4 ,
  ( x1, x2 , x3 , x4 , x5 , z) = (0,4,2,0,6,8)
                                                                    x1,x 2 ,x 3 ,x 4 ,x 5 ≥ 0.
単体法の手続き(続き)	
•  前ページの手続きを図で確認すると・・・	
  max z
  s.t.   x3 = 6 − x1 − x 2 ,
                                         x2
                                                    ( x1, x2 , x3 , x4 , x5 , z) = (0,4,2,0,6,8)
         x 4 = 12 − x1 − 3 x 2 ,
         x5 = 10 − 2 x1 − x 2 ,
         z = x1 + 2 x 2 ,
         x1, x 2 , x3 , x 4 , x5 ≥ 0.


  max z
                                                                             x1
  s.t. x 3 = 2 − 2 3 x1 +1 3 x 4 ,
          x 2 = 4 −1 3 x1 −1 3 x 4 ,    ( x1, x2 , x3 , x4 , x5 , z) = (0,0,6,12,10,0)
          x 5 = 6 − 5 3 x1 +1 3 x 4 ,
         z = 8 +1 3 x1 − 2 3 x 4 ,
          x1,x 2 ,x 3 ,x 4 ,x 5 ≥ 0.
単体法の手続き(続き)	
  max z                                   x1を増加すると改善しそう	
                                                      	
  s.t.      x 3 = 2 − 2 3 x1 +1 3 x 4 , ← x1 ≤ 3
                                                             x1は3まで増やせて
            x 2 = 4 −1 3 x1 −1 3 x 4 , ← x1 ≤ 12             x3=0 となる	
           x 5 = 6 − 5 3 x1 +1 3 x 4 , ← x1 ≤ 18 5
           z = 8 +1 3 x1 − 2 3 x 4 ,           x2
                                                        ( x1, x2 , x3 , x4 , x5 , z) = (0,4,2,0,6,8)
            x1,x 2 ,x 3 ,x 4 ,x 5 ≥ 0.
           3      1
x1 = 3 −     x 3 + x 4 を代入して書き直すと	
           2      2
  max z
   s.t.     x1 = 3 − 3 2 x 3 +1 2 x 4 ,
            x 2 = 3 +1 2 x 3 −1 2 x 4 ,
            x 5 = 1+ 5 2 x 3 −1 2 x 4 ,
                                                                                    x1
            z = 9 −1 2 x 3 −1 2 x 4 ,
            x1,x 2 ,x 3 ,x 4 ,x 5 ≥ 0.
                                                                            (
                                                   (x1,x 2 ,x 3 ,x 4 ,x 5 ,z) = 3,3,0,0,1,9   )
                         もう改善できない!
初期実行可能解を求める(2段階法)	
•  線形計画問題を解くには初期実行可能解が必要.
•  自明な実行可能解が分からない場合には? ⇒ 補助問題を作る
•  補助問題=自明な実行可能解を持つ線形計画問題
   ⇒ 単体法を2回適用すると解ける(2段階法)

                                  人為変数 x4 , x5 を導入
                                  制約条件の違反度の合計を最小化	
 自明な実行可能解を持たない	
 min    − 2 x1 − x 2 − x3           min    x 4 + x5
 s.t.   x1 + 2 x 2 = 12,            s.t.   x1 + 2 x 2 + x 4 = 12,
        x1 + 4 x 2 + 2 x3 = 20,            x1 + 4 x 2 + 2 x3 + x5 = 20,
        x1, x 2 , x3 ≥ 0.                  x1, x 2 , x3 , x 4 , x5 ≥ 0.

                目的関数値が0 ⇒ 元の問題の実行可能解
                目的関数値が0より大 ⇒ 元の問題は実行不可能
非有界の判定	
•  線形計画問題が非有界かどうか単体法の手続き中に判定できる.	

 max z
                                                    x1を増やすと改善しそう	
 s.t.      x 4 = 4 + 2 x1 − 2 x 2 + x3 ,
          x5 = 4 + 2 x1                − 4 x3 ,
                                                    x1をいくら増やしてもx4,x5,x6は
          x 6 = 1 + 4 x1 − 3 x 2 + x3 ,             負にならない!	
          z = 0 + 2 x1 − x 2 − x3 ,
           x1, x 2 , x3 , x 4 , x5 , x 6 ≥ 0.
( x1, x2 , x3 , x4 , x5 , x6 , z) = (0,0,0,4,4,1)
最適値の上界を求める	
•  難しい最適化問題では簡単に最適値が求まらないことが多い.
•  与えられた最適化問題の最適値の上界と下界を簡単に求める方法は?
   ⇒ 実行可能解を求めれば下界は計算できる.では,上界は?	

          max    f (x)
          s.t.   x ∈S
 f (x )                      上界	
        実行不可能	

最                        最適値	
大
化                                   最
                                    大 実行可能	
	




                             下界	
   化




                                    	
                         x
          実行可能領域 S
線形計画問題の最適値の上界を求める	
•  制約式の1次結合を作ることで最適値の上界が求められる.	


                                6 × ( 3 x1 + x 2 ≤ 12 )
  max     20 x1 + 10 x 2        2 × ( x1 + 2 x2 ≤ 10 )
  s.t.   x1 + x 2 ≤ 6,              20 x1 + 10 x2 ≤ 92
         3 x1 + x 2 ≤ 12,
         x1 + 2 x 2 ≤ 10,       5 × ( x1 + x2 ≤ 6 )
         x1, x 2 ≥ 0.           5 × ( 3 x1 + x2 ≤ 12 )
                                    20 x1 + 10 x2 ≤ 90

                            線形計画問題の最適値の上界!
線形計画問題の最適値の上界を求める(続き)	
 •  線形計画問題の最適値の上界を求める一般的な手続きは?
 •  制約式の1次結合から上界を与える関数を求める
 •  最適値に近い方が良い推定 ⇒ 上界を与える関数を最小にする	
max      20 x1 + 10 x 2
                                                           min     6 y 1 + 12 y 2 + 10 y 3
s.t.    x1 + x 2 ≤ 6,
                               y 1 × ( x1 + x 2 ≤ 6)       s.t.    y 1 + 3 y 2 + y 3 ≥ 20,
        3 x1 + x 2 ≤ 12,
                               y 2 × (3 x1 + x 2 ≤ 12)             y 1 + y 2 + 2y 3 ≥ 10,
        x1 + 2 x 2 ≤ 10,
                               y 3 × ( x1 + 2 x 2 ≤ 10 )           y 1, y 2 , y 3 ≥ 0.
        x1, x 2 ≥ 0.

       不等号の向きが逆転すると                                        よく見慣れた問題に?	
       まずいので,y1,y2,y3≧0

         ( y1 + 3y 2 + y 3 )x1 + ( y1 + y 2 + 2y 2 )x2 ≤ 6y1 + 12y 2 + 10 y 3
                ≧




                                      ≧




                                                            最小化	
                20                    10
線形計画問題の双対問題	
 •  双対問題:最適化問題の最小の上界(最大の下界)を求める問題
 •  線形計画問題では,問題D(双対問題)の双対問題は問題P(主問題)と
    なる ⇒ 確かめてみよう!	

            n                                                                    不等号の向きが逆転すると
P : max                                                      主問題	
          ∑c x
           j =1
                        j                j
                                                                                 まずいので yi≧0

              n
   s.t.    ∑a x             ij               j   ≤ bi    (i = 1 2,…, m ),
                                                               ,            m     ⎛ n         ⎞ m
            j =1                                                            ∑ y i ⎜ ∑ aij x j ⎟ ≤ ∑ y i bi
                                                                                  ⎜           ⎟
            xj ≥ 0                                 ( j = 1,2,…, n ).        i =1  ⎝ j =1      ⎠ i =1
          m
D : min   ∑b y                                            双対問題	
             n
                   i             i                                                ⎛ m         ⎞ m
          i =1
           m
                                                                            ∑ x j ⎜ ∑ aij y i ⎟ ≤ ∑ y i bi
                                                                            j =1
                                                                                  ⎜
                                                                                  ⎝ i =1
                                                                                               ⎟
                                                                                               ⎠ i =1
   s.t.   ∑a y         ij            i           ≥ cj   ( j = 1,2,…, n ),


                                                                                       ≧	
          i =1

          y i ≥ 0. (i = 1 2,…, m ).
                         ,                                                             cj          最小化
線形計画問題の双対問題(続き)	
       •  線形計画問題の変数に非負制約がない場合は?
       •  線形計画問題が等式標準形の場合は?

                                                         n
                                                                                                                   不等号の向きが逆転する
                                              P : max    ∑c x     j         j                   主問題	
              とまずいので yi≧0
                                                         j =1
                                                          n
m               n                 n
           ⎛                ⎞                  s.t.    ∑a x                           ≤ bi   (i = 1,2,…, m ).
∑ y ⎜ ∑ a x
    ⎜ i              ij   j ⎟ = ∑ c j x j
                             ⎟                          j =1
                                                                  ij            j
                                                                                                                     m     ⎛ n         ⎞ m
i =1       ⎝ j =1           ⎠ j =1
                                                                                                                     ∑ y i ⎜ ∑ aij x j ⎟ ≤ ∑ y i bi
                                                                                                                           ⎜           ⎟
                    ≦




                                                                                                                     i =1  ⎝ j =1      ⎠ i =1
                              最大化	
                     bi
                                                                                                                      n
                                                                                                                           ⎛ m         ⎞ m
                                              D : min
                                                         m

                                                         ∑b y     i         i                  双対問題	
                                                                                                                     ∑ x j ⎜ ∑ aij y i ⎟ ≤ ∑ y i bi
                                                                                                                     j =1
                                                                                                                           ⎜
                                                                                                                           ⎝ i =1
                                                                                                                                        ⎟
                                                                                                                                        ⎠ i =1
                                                         i =1




                                                                                                                               =	
 n
      ⎛ m         ⎞ n                                      m
∑ x j ⎜ ∑ aij y i ⎟ = ∑ x j c j
      ⎜           ⎟                             s.t.    ∑a y                          = cj   ( j = 1 2,…, n ),
                                                                                                      ,
j =1  ⎝ i =1      ⎠ j =1                                 i =1

                                                           yi ≥ 0
                                                                       ij           i


                                                                                         (i = 1 2,…, m ).
                                                                                               ,
                                                                                                                               cj         最小化	

                                                                                                                   xjが負の値を取ると不等
           等号なのでxiの正負は関係なし	
                                                                                                                   号の向きが逆転する
緩和問題を用いて最適値の上界を求める	
 •  最適解を求めることが難しい最適化問題に対するアプローチ
 •  元の問題を簡単な問題(緩和問題)に置換えて上界を求める方法	

     原問題	
                          緩和問題	
     P : max    f (x)               RP : max       fRP ( x )
         s.t.   x ∈S                       s.t.    x ∈ SRP
                                    ただし,以下のR1,R2を満たす.	
                        fRP ( x )   (R1) SRP ⊇ S
最
大
化                                   (R2) fRP ( x ) ≥ f ( x ) ( x ∈ S )
                    f (x )
	




                                    x
                S            SRP
線形計画問題のラグランジュ緩和	
•  ラグランジュ緩和(罰金法):
   制約式を単に取り除くのではなく,その代わりに制約式を違反する解には
   ペナルティがかかるように,目的関数に制約式を繰り込む方法.
   (全ての制約式を取り除く必要はない)	

 原問題	
                     ラグランジュ緩和問題	
 max     20 x1 + 10 x 2    max    20 x1 + 10 x 2
 s.t.   x1 + x 2 ≤ 6,             − w 1( x1 + x 2 − 6)
        3 x1 + x 2 ≤ 12,          − w 2 (3 x1 + x 2 − 12 )
        x1 + 2 x 2 ≤ 10,          − w 3 ( x1 + 2 x 2 − 10 )
        x1, x 2 ≥ 0.       s.t.   x1, x 2 ≥ 0.
                           w1,w 2 ,w 3 ≥ 0は各制約式の重み係数

    ラグランジュ緩和を用いて線形計画問題の双対問題を導ける!
ラグランジュ緩和を用いて双対問題を導く	
•  最適値の良い(小さい)上界値を与えるラグランジュ緩和問題を作る
   ⇒ 重み係数 w を上手く調整したい ⇒ w に関する最適化問題	
z(w ) = max 20 x1 + 10 x2 − w1( x1 + x2 − 6) − w 2 (3 x1 + x2 − 12) − w 3 ( x1 + 2x2 − 10)
          x

s.t.    x1, x2 ≥ 0.
             最小化	
z(w ) = max (20 − w1 − 3w 2 − w 3 )x1 + (10 − w1 − w 2 − 2w 3 )x2 + 6w1 + 12w 2 + 10w 3
         x

s.t.   x1, x2 ≥ 0.

              0より大きいと上界値が∞(非有界)になる!⇒常に0以下	
                 そのような条件の下では常にx1,x2=0となる!	
                           min    z(w ) = 6w1 + 12w 2 + 10w 3
                           s.t.   20 − w1 − 3w 2 − w 3 ≤ 0,              双対問題の
                                                                         でき上がり!	
                                  10 − w 1 − w 2 − 2w 3 ≤ 0,
                                  w 1,w 2 ,w 3 ≥ 0.
ラグランジュ緩和を用いて双対問題を導く(続き)	
  •  不等式標準形の線形計画問題でも上手く双対問題を導けるだろうか?	

              n
max                                            主問題	
            wi ≥ 0(i = 12,…, m)は各制約式の重み係数
                                                                            ,
           ∑cj xj
              j =1                                                      n           m     ⎛ n
                n                                           ≦   max
                                                                                                           ⎞
                                                                       ∑ c j x j − ∑ w i ⎜ ∑ aij x j − bi ⎟
                                                                                          ⎜               ⎟
s.t.          ∑a x      ij   j    ≤ bi   (i = 1 2,…, m ),
                                               ,                       j =1        i =1   ⎝ j =1          ⎠
               j =1
                                                                s.t.   x j ≥ 0 ( j = 12,…, n ).
                                                                                        ,
               xj ≥ 0              ( j = 1 2,…, n ).
                                          ,

       m
                                                                        n              m
min    ∑ bi w i                              双対問題	
                          ⎛                 ⎞ m
       i =1                                                 ≧ max      ∑ x j ⎜ c j − ∑ aij w i ⎟ + ∑ bi w i
                                                                       j =1
                                                                             ⎜
                                                                             ⎝       i =1
                                                                                                ⎟
                                                                                                ⎠ i =1
                      m
s.t.   c j − ∑ aij w i ≤ 0 ( j = 1 2,…, n ),
                                  ,                             s.t.   x j ≥ 0 ( j = 1 2,…, n ).
                                                                                           ,
                      i =1

        wi ≥ 0                   (i = 1 2,…, m ).
                                       ,                    0より大きいと非有界になる!⇒ 常に0以下
                                                            そのような条件の下では常にxj=0(j =1,2,…,n)
ラグランジュ緩和を用いて双対問題を導く(続き)	
 •  等式標準形の線形計画問題の双対問題も上手く導けるだろうか?	
         n
max     ∑c x          j         j                 主問題	
        j =1                                                      wi ,v i ≥ 0(i = 12,…, m)は各制約式の重み係数
                                                                                   ,
           n                                                                          n             m          ⎛ n          ⎞
                                                                        max          ∑     c j x j − ∑ w i ⎜ ∑ aij x j − bi ⎟
s.t.     ∑a x
           j =1
                          ij        j   ≤ bi   (i = 1,2,…, m ),   ≦                   j =1           i =1
                                                                                                               ⎜
                                                                                                               ⎝ j =1
                                                                                                                             ⎟
                                                                                                                             ⎠
           n                                                                              m                n
                                                                                                 ⎛                    ⎞
        ∑a x              ij        j   ≥ bi   (i = 1,2,…, m )                       − ∑ v i ⎜ bi − ∑ aij x j ⎟
                                                                                                 ⎜                    ⎟
         j =1                                                                            i =1    ⎝       j =1         ⎠
           xj ≥ 0                        ( j = 1,2,…, n ).               s.t.        x j ≥ 0 ( j = 1,2,…, n ).

                          等式⇒2本の不等式に置き換え	
                                                                                 n              m            ⎛ n              ⎞
min
       m
                                                                  ≧   max       ∑    c j x j − ∑ (w i − v i )⎜ ∑ aij x j − bi ⎟
                                                                                                             ⎜                ⎟
       ∑b y
       i =1
                  i             i                       双対問題	
                  j =1           i =1          ⎝ j =1           ⎠
                                                                      s.t.      x j ≥ 0 ( j = 12,…, n ).
                                                                                                    ,
                               m
s.t.   c j − ∑ aij y i ≤ 0 ( j = 1,2,…, n ).
                               i =1
                                                                                                    yi に置き換える
主問題と双対問題の関係	
 •  弱双対定理
      主問題の実行可能解の目的関数値≦双対問題の実行可能解の目的関数値
 •  強双対定理
      主問題が最適解を持つなら双対問題も最適解を持ち,それらの最適値は一致する	


                     y
g (y )                                             双対問題	

 最         双対問題	
              主問題と          実行可能	
                                                         実行
 小                            双対問題の
 化                            組合せは?	
       有界	
   非有界	
 不能	
 	




                               実    有界	
     ○       ×      ×
 最                             行
                         主     可
 大                       問     能    非有界	
    ×       ×      ○
 化         主問題	
         題
                               	
 	




                         	




                                実行不能	
       ×       ○      ○
f (x )
                     x
主問題と双対問題の関係(続き)	
•  弱双対定理より以下の補題が成り立つ
   主問題(双対問題)が非有界 ⇒ 双対問題(主問題)は実行不能

•  ちなみに逆「主問題(双対問題)が実行不能 ⇒ 双対問題(主問題)が非
   有界」は成り立たないので注意すること.
   (主問題・双対問題ともに実行不能の場合がある)
感度分析	
•  線形計画問題は最適解を出すだけではない!
•  問題の条件や数値が変化 → 最適解の変化を分析したい
•  以下の生産計画問題の例で考えてみよう.	


生産計画問題の例	
あるシャトーでは3種類のブドウ,カルベネ,メルロー,セミヨンを原料として,
3種類のワイン,赤ワイン,白ワイン,ロゼワインを製造している.
収益が最大となる各ワインの1日当たりの製造量を求めよ.
	
種類	
     赤ワイン	
 白ワイン	
 ロゼワイン	
 供給量	
                                       max    p1x1 + p2 x2 + p3 x3
カルベネ	
      a11    a12     a13 b1      s.t.   a11x1 + a12 x2 + a13 x3 ≤ b1,
メルロー	
      a21    a22     a23 b2             a21x1 + a22 x2 + a23 x3 ≤ b2 ,
セミヨン	
      a31    a32     a33 b3             a31x1 + a32 x2 + a33 x3 ≤ b3 ,
収益	
         p1    p2       p3                x1, x2 , x3 ≥ 0.
感度分析(続き)	
•  3種類のブドウ,カルベネ,メルロー,セミヨンの供給量を増やしたいと考
   えている.どのブドウの供給量を増やすのが最もお得だろうか?	
   主問題	
              双対問題	
 max    p1x1 + p2 x2 + p3 x3                min    b1y 1 + b2 y 2 + b3 y 3
 s.t.   a11x1 + a12 x2 + a13 x3 ≤ b1,       s.t.   a11y 1 + a21y 2 + a31y 3 ≥ p1,
        a21x1 + a22 x2 + a23 x3 ≤ b2 ,             a12 y 1 + a22 y 2 + a32 y 3 ≥ p2 ,
        a31x1 + a32 x2 + a33 x3 ≤ b3 ,             a13 y 1 + a23 y 2 + a33 y 3 ≥ p3 ,
        x1, x2 , x3 ≥ 0.                           y 1, y 2 , y 3 ≥ 0.
                  *    *     *     *     *     *
            最適解( x1 , x2 , x3 )と( y1 , y 2 , y 3 )が得られたとすると	
               	
               	
                           	
 *         *          *  *  *    *
            目的関数値はp1x1 + p2 x2 + p3 x3 = b1y1 + b2 y 2 + b3 y 3
供給量をぞれぞれΔ1, Δ 2 , Δ 3                               *               *               *
                                         (b1 + Δ1 )y1 + (b2 + Δ 2 )y2 + (b3 + Δ 3 )y3
増やしたときの最適値
         は?

最適解における各双対変数の値は,各ブドウの潜在的な収益を表している!
(双対変数は潜在価格とも呼ばれる)
まとめ	
•    線形計画問題
•    不等式標準形・等式標準形への変形
•    実行不可能・非有界な線形計画問題
•    単体法(シンプレックス法)
•    双対問題の作り方
•    双対定理
•    感度分析
参考文献	
•    森雅夫,松井知己『オペレーションズ・リサーチ』朝倉書店,2004.
•    福嶋雅夫『(新版)数理計画入門』朝倉書店,2011.
•    加藤直樹『数理計画法』コロナ社,2008.
•    今野浩『線形計画法』日科技連,1987.
•    刀根薫『数理計画(増補版)』朝倉書店,2007.
•    V.Chvatal, Linear Programming, W.H.Freedman and Company,
     1983.

Contenu connexe

Tendances

機械学習のためのベイズ最適化入門
機械学習のためのベイズ最適化入門機械学習のためのベイズ最適化入門
機械学習のためのベイズ最適化入門hoxo_m
 
機械学習におけるオンライン確率的最適化の理論
機械学習におけるオンライン確率的最適化の理論機械学習におけるオンライン確率的最適化の理論
機械学習におけるオンライン確率的最適化の理論Taiji Suzuki
 
最適輸送の解き方
最適輸送の解き方最適輸送の解き方
最適輸送の解き方joisino
 
Optimizer入門&最新動向
Optimizer入門&最新動向Optimizer入門&最新動向
Optimizer入門&最新動向Motokawa Tetsuya
 
因果探索: 基本から最近の発展までを概説
因果探索: 基本から最近の発展までを概説因果探索: 基本から最近の発展までを概説
因果探索: 基本から最近の発展までを概説Shiga University, RIKEN
 
最適化超入門
最適化超入門最適化超入門
最適化超入門Takami Sato
 
最適輸送入門
最適輸送入門最適輸送入門
最適輸送入門joisino
 
グラフニューラルネットワークとグラフ組合せ問題
グラフニューラルネットワークとグラフ組合せ問題グラフニューラルネットワークとグラフ組合せ問題
グラフニューラルネットワークとグラフ組合せ問題joisino
 
Graph Neural Networks
Graph Neural NetworksGraph Neural Networks
Graph Neural Networkstm1966
 
深層学習の数理
深層学習の数理深層学習の数理
深層学習の数理Taiji Suzuki
 
充足可能性問題のいろいろ
充足可能性問題のいろいろ充足可能性問題のいろいろ
充足可能性問題のいろいろHiroshi Yamashita
 
強化学習における好奇心
強化学習における好奇心強化学習における好奇心
強化学習における好奇心Shota Imai
 
変分推論法(変分ベイズ法)(PRML第10章)
変分推論法(変分ベイズ法)(PRML第10章)変分推論法(変分ベイズ法)(PRML第10章)
変分推論法(変分ベイズ法)(PRML第10章)Takao Yamanaka
 
Active Learning 入門
Active Learning 入門Active Learning 入門
Active Learning 入門Shuyo Nakatani
 
Control as Inference (強化学習とベイズ統計)
Control as Inference (強化学習とベイズ統計)Control as Inference (強化学習とベイズ統計)
Control as Inference (強化学習とベイズ統計)Shohei Taniguchi
 
機械学習モデルの判断根拠の説明
機械学習モデルの判断根拠の説明機械学習モデルの判断根拠の説明
機械学習モデルの判断根拠の説明Satoshi Hara
 
合成変量とアンサンブル:回帰森と加法モデルの要点
合成変量とアンサンブル:回帰森と加法モデルの要点合成変量とアンサンブル:回帰森と加法モデルの要点
合成変量とアンサンブル:回帰森と加法モデルの要点Ichigaku Takigawa
 
[DL輪読会]Deep Learning 第5章 機械学習の基礎
[DL輪読会]Deep Learning 第5章 機械学習の基礎[DL輪読会]Deep Learning 第5章 機械学習の基礎
[DL輪読会]Deep Learning 第5章 機械学習の基礎Deep Learning JP
 
最近のDeep Learning (NLP) 界隈におけるAttention事情
最近のDeep Learning (NLP) 界隈におけるAttention事情最近のDeep Learning (NLP) 界隈におけるAttention事情
最近のDeep Learning (NLP) 界隈におけるAttention事情Yuta Kikuchi
 
Word Tour: One-dimensional Word Embeddings via the Traveling Salesman Problem...
Word Tour: One-dimensional Word Embeddings via the Traveling Salesman Problem...Word Tour: One-dimensional Word Embeddings via the Traveling Salesman Problem...
Word Tour: One-dimensional Word Embeddings via the Traveling Salesman Problem...joisino
 

Tendances (20)

機械学習のためのベイズ最適化入門
機械学習のためのベイズ最適化入門機械学習のためのベイズ最適化入門
機械学習のためのベイズ最適化入門
 
機械学習におけるオンライン確率的最適化の理論
機械学習におけるオンライン確率的最適化の理論機械学習におけるオンライン確率的最適化の理論
機械学習におけるオンライン確率的最適化の理論
 
最適輸送の解き方
最適輸送の解き方最適輸送の解き方
最適輸送の解き方
 
Optimizer入門&最新動向
Optimizer入門&最新動向Optimizer入門&最新動向
Optimizer入門&最新動向
 
因果探索: 基本から最近の発展までを概説
因果探索: 基本から最近の発展までを概説因果探索: 基本から最近の発展までを概説
因果探索: 基本から最近の発展までを概説
 
最適化超入門
最適化超入門最適化超入門
最適化超入門
 
最適輸送入門
最適輸送入門最適輸送入門
最適輸送入門
 
グラフニューラルネットワークとグラフ組合せ問題
グラフニューラルネットワークとグラフ組合せ問題グラフニューラルネットワークとグラフ組合せ問題
グラフニューラルネットワークとグラフ組合せ問題
 
Graph Neural Networks
Graph Neural NetworksGraph Neural Networks
Graph Neural Networks
 
深層学習の数理
深層学習の数理深層学習の数理
深層学習の数理
 
充足可能性問題のいろいろ
充足可能性問題のいろいろ充足可能性問題のいろいろ
充足可能性問題のいろいろ
 
強化学習における好奇心
強化学習における好奇心強化学習における好奇心
強化学習における好奇心
 
変分推論法(変分ベイズ法)(PRML第10章)
変分推論法(変分ベイズ法)(PRML第10章)変分推論法(変分ベイズ法)(PRML第10章)
変分推論法(変分ベイズ法)(PRML第10章)
 
Active Learning 入門
Active Learning 入門Active Learning 入門
Active Learning 入門
 
Control as Inference (強化学習とベイズ統計)
Control as Inference (強化学習とベイズ統計)Control as Inference (強化学習とベイズ統計)
Control as Inference (強化学習とベイズ統計)
 
機械学習モデルの判断根拠の説明
機械学習モデルの判断根拠の説明機械学習モデルの判断根拠の説明
機械学習モデルの判断根拠の説明
 
合成変量とアンサンブル:回帰森と加法モデルの要点
合成変量とアンサンブル:回帰森と加法モデルの要点合成変量とアンサンブル:回帰森と加法モデルの要点
合成変量とアンサンブル:回帰森と加法モデルの要点
 
[DL輪読会]Deep Learning 第5章 機械学習の基礎
[DL輪読会]Deep Learning 第5章 機械学習の基礎[DL輪読会]Deep Learning 第5章 機械学習の基礎
[DL輪読会]Deep Learning 第5章 機械学習の基礎
 
最近のDeep Learning (NLP) 界隈におけるAttention事情
最近のDeep Learning (NLP) 界隈におけるAttention事情最近のDeep Learning (NLP) 界隈におけるAttention事情
最近のDeep Learning (NLP) 界隈におけるAttention事情
 
Word Tour: One-dimensional Word Embeddings via the Traveling Salesman Problem...
Word Tour: One-dimensional Word Embeddings via the Traveling Salesman Problem...Word Tour: One-dimensional Word Embeddings via the Traveling Salesman Problem...
Word Tour: One-dimensional Word Embeddings via the Traveling Salesman Problem...
 

En vedette

TensorFlowで逆強化学習
TensorFlowで逆強化学習TensorFlowで逆強化学習
TensorFlowで逆強化学習Mitsuhisa Ohta
 
Inverse Reinforcement On POMDP
Inverse Reinforcement On POMDPInverse Reinforcement On POMDP
Inverse Reinforcement On POMDPMasato Nakai
 
ベイジアンディープニューラルネット
ベイジアンディープニューラルネットベイジアンディープニューラルネット
ベイジアンディープニューラルネットYuta Kashino
 
プログラミング言語 Julia の紹介
プログラミング言語 Julia の紹介プログラミング言語 Julia の紹介
プログラミング言語 Julia の紹介Kentaro Iizuka
 
Convex Optimization Modelling with CVXOPT
Convex Optimization Modelling with CVXOPTConvex Optimization Modelling with CVXOPT
Convex Optimization Modelling with CVXOPTandrewmart11
 

En vedette (6)

TensorFlowで逆強化学習
TensorFlowで逆強化学習TensorFlowで逆強化学習
TensorFlowで逆強化学習
 
Inverse Reinforcement On POMDP
Inverse Reinforcement On POMDPInverse Reinforcement On POMDP
Inverse Reinforcement On POMDP
 
ベイジアンディープニューラルネット
ベイジアンディープニューラルネットベイジアンディープニューラルネット
ベイジアンディープニューラルネット
 
プログラミング言語 Julia の紹介
プログラミング言語 Julia の紹介プログラミング言語 Julia の紹介
プログラミング言語 Julia の紹介
 
Juliaで並列計算
Juliaで並列計算Juliaで並列計算
Juliaで並列計算
 
Convex Optimization Modelling with CVXOPT
Convex Optimization Modelling with CVXOPTConvex Optimization Modelling with CVXOPT
Convex Optimization Modelling with CVXOPT
 

Similaire à 線形計画法入門

お披露目会05/2010
お披露目会05/2010お披露目会05/2010
お披露目会05/2010JAVA DM
 
東京都市大学 データ解析入門 6 回帰分析とモデル選択 1
東京都市大学 データ解析入門 6 回帰分析とモデル選択 1東京都市大学 データ解析入門 6 回帰分析とモデル選択 1
東京都市大学 データ解析入門 6 回帰分析とモデル選択 1hirokazutanaka
 
030 2変数の集計
030 2変数の集計030 2変数の集計
030 2変数の集計t2tarumi
 
070 統計的推測 母集団と推定
070 統計的推測 母集団と推定070 統計的推測 母集団と推定
070 統計的推測 母集団と推定t2tarumi
 
TopCoder SRM614 解説
TopCoder SRM614 解説TopCoder SRM614 解説
TopCoder SRM614 解説EmKjp
 
050 確率と確率分布
050 確率と確率分布050 確率と確率分布
050 確率と確率分布t2tarumi
 
20150922_楕円関数とおもしろい応用
20150922_楕円関数とおもしろい応用20150922_楕円関数とおもしろい応用
20150922_楕円関数とおもしろい応用matsumoring
 
単調増加と階数
単調増加と階数単調増加と階数
単調増加と階数政孝 鍋島
 
単調増加と階乗
単調増加と階乗単調増加と階乗
単調増加と階乗政孝 鍋島
 
これならわかる最適化数学8章_動的計画法
これならわかる最適化数学8章_動的計画法これならわかる最適化数学8章_動的計画法
これならわかる最適化数学8章_動的計画法kenyanonaka
 
PRML復々習レーン#2 2.3.6 - 2.3.7
PRML復々習レーン#2 2.3.6 - 2.3.7PRML復々習レーン#2 2.3.6 - 2.3.7
PRML復々習レーン#2 2.3.6 - 2.3.7sleepy_yoshi
 
コンピュータービジョン最先端ガイド2 3.4ベクトルデータに対するカーネル法(SVM)
コンピュータービジョン最先端ガイド2 3.4ベクトルデータに対するカーネル法(SVM) コンピュータービジョン最先端ガイド2 3.4ベクトルデータに対するカーネル法(SVM)
コンピュータービジョン最先端ガイド2 3.4ベクトルデータに対するカーネル法(SVM) Takahiro (Poly) Horikawa
 

Similaire à 線形計画法入門 (20)

PRML chapter7
PRML chapter7PRML chapter7
PRML chapter7
 
お披露目会05/2010
お披露目会05/2010お披露目会05/2010
お披露目会05/2010
 
東京都市大学 データ解析入門 6 回帰分析とモデル選択 1
東京都市大学 データ解析入門 6 回帰分析とモデル選択 1東京都市大学 データ解析入門 6 回帰分析とモデル選択 1
東京都市大学 データ解析入門 6 回帰分析とモデル選択 1
 
030 2変数の集計
030 2変数の集計030 2変数の集計
030 2変数の集計
 
双対性
双対性双対性
双対性
 
統計概論 isseing333
統計概論 isseing333統計概論 isseing333
統計概論 isseing333
 
070 統計的推測 母集団と推定
070 統計的推測 母集団と推定070 統計的推測 母集団と推定
070 統計的推測 母集団と推定
 
回帰
回帰回帰
回帰
 
Zetavalue
ZetavalueZetavalue
Zetavalue
 
TopCoder SRM614 解説
TopCoder SRM614 解説TopCoder SRM614 解説
TopCoder SRM614 解説
 
Prml07
Prml07Prml07
Prml07
 
050 確率と確率分布
050 確率と確率分布050 確率と確率分布
050 確率と確率分布
 
20150922_楕円関数とおもしろい応用
20150922_楕円関数とおもしろい応用20150922_楕円関数とおもしろい応用
20150922_楕円関数とおもしろい応用
 
単調増加と階数
単調増加と階数単調増加と階数
単調増加と階数
 
単調増加と階数
単調増加と階数単調増加と階数
単調増加と階数
 
単調増加と階乗
単調増加と階乗単調増加と階乗
単調増加と階乗
 
C03
C03C03
C03
 
これならわかる最適化数学8章_動的計画法
これならわかる最適化数学8章_動的計画法これならわかる最適化数学8章_動的計画法
これならわかる最適化数学8章_動的計画法
 
PRML復々習レーン#2 2.3.6 - 2.3.7
PRML復々習レーン#2 2.3.6 - 2.3.7PRML復々習レーン#2 2.3.6 - 2.3.7
PRML復々習レーン#2 2.3.6 - 2.3.7
 
コンピュータービジョン最先端ガイド2 3.4ベクトルデータに対するカーネル法(SVM)
コンピュータービジョン最先端ガイド2 3.4ベクトルデータに対するカーネル法(SVM) コンピュータービジョン最先端ガイド2 3.4ベクトルデータに対するカーネル法(SVM)
コンピュータービジョン最先端ガイド2 3.4ベクトルデータに対するカーネル法(SVM)
 

線形計画法入門

  • 1. 情報数理学概論 線形計画法入門 梅谷 俊治 大学院情報科学研究科 情報数理学専攻 2012年6月22日
  • 2. 講義概要 目標:線形計画法を分かったつもりになる •  線形計画問題 •  不等式標準形・等式標準形への変形 •  実行不可能・非有界な線形計画問題 •  単体法(シンプレックス法) •  双対問題の作り方 •  双対定理 •  感度分析
  • 3. 線形計画問題の定義 •  目的関数が線形関数,制約式も線形式の最適化問題 目的関数は「最大化」「最小化」の どちらでもOK minimize 3 x1 + 4 x 2 − 2 x3 制約式は「≧」「≦」「=」 のどれでもOK subject to 2 x1 = 4, x1 − 2 x3 ≤ 8, 3 x 2 + x3 ≥ 6, x1, x 2 ≥ 0. 変数の非負制約はあってもな くてもOK
  • 4. 線形計画問題の例 •  ある飲料メーカーでは野菜ジュースを製造しており,n種類の野菜を混合 してm種類の栄養素を充足している.どの野菜をどれだけ購入するのが 最も経済的だろうか? aij : 野菜jに含まれる栄養素の量 i 変数xjを野菜 j の購入量とすると bi : 栄養素iの必要量 n c j : 野菜jの1kg当たりの値段千円] [ min ∑c x j j j =1 n s.t. ∑a x ij j ≥ bi (i = 1 2,…, m ), , j =1 xj ≥ 0 ( j = 1 2,…, n ). ,
  • 5. 線形計画問題の不等式標準形 •  任意の形の線形計画問題を扱うのは面倒 ⇒ 不等式標準形 •  目的関数は「最大化」,制約式は「左辺≦右辺」,各変数は「非負」 n max c1x1 + c 2 x 2 +  + c n x n max ∑c x j j s.t. a11 x1 + a12 x 2 + a1n x n ≤ b1, j =1 n a21 x1 + a22 x 2 +  a2n x n ≤ b2 , s.t. ∑a x ij j ≤ bi (i = 1 2,…, m ), ,  j =1 am1x1 + am 2 x 2 +  amn x n ≤ bm , xj ≥ 0 ( j = 1,2,…, n ). x1, x 2 ,…, x n ≥ 0. max cT x { max cT x Ax ≤ b, x ≥ 0 } s.t. Ax ≤ b, x ≥ 0. 色々な表記が出てきますが全て同じ問題です.慣れて下さい.
  • 6. 標準形への変換 •  全ての線形計画問題は不等式標準形に変換できる. 制約式を分割 n n n ∑a x j =1 ij j = bj ⇔ ∑a x j =1 ij j ≥ b j , ∑ aij x j ≤ b j j =1 目的関数を-1倍 n n max ∑ c j x j ⇔ min − ∑ c j x j j =1 j =1 制約式の両辺を-1 n n ∑a x j =1 ij j ≥ bj ⇔ − ∑ aij x j ≤ −b j j =1 非負制約なしの変数を2つの非負制約あり変数で置き換え x j (非負制約なし) ⇔ x j → (w j 1 − w j 2 ), w j 1 ≥ 0, w j 2 ≥ 0
  • 7. 不等式標準形への変形の例 max − 3 x1 − 4 x 2 + 2 x3 min 3 x1 + 4 x 2 − 2 x 3 max − (3 x1 + 4 x 2 − 2 x3 ) s.t. 2 x1 ≤ 4, s.t. 2 x1 = 4, s.t. 2 x1 = 4, 2 x1 ≥ 4, x1 − 2 x 3 ≤ 8, x1 − 2 x3 ≤ 8, x1 − 2 x3 ≤ 8, 3 x 2 + x 3 ≥ 6, 3 x 2 + x3 ≥ 6, 3 x 2 + x3 ≥ 6, x1, x 2 ≥ 0. x1, x 2 ≥ 0. x1, x2 ≥ 0. max − 3 x1 − 4 x 2 + 2 x3 max − 3 x1 − 4 x 2 + 2(w 31 − w 32 ) max − 3 x1 − 4 x 2 + 2w 31 − 2w 32 s.t. 2 x1 ≤ 4, s.t. 2 x1 ≤ 4, s.t. 2 x1 ≤ 4, − 2 x1 ≤ −4, − 2 x1 ≤ −4, − 2 x1 ≤ −4, x1 − 2 x3 ≤ 8, x1 − 2(w 31 − w 32 ) ≤ 8, x1 − 2w 31 + w 32 ≤ 8, − (3 x 2 + x3 ) ≤ −6, − 3 x 2 − (w 31 − w 32 ) ≤ −6, − 3 x 2 − w 31 + w 32 ≤ −6, x1, x2 ≥ 0. x1, x 2 ,w 31,w 32 ≥ 0. x1, x 2 ,w 31,w 32 ≥ 0.
  • 8. 線形計画問題の等式標準形 •  目的関数は「最大化」,制約式は「左辺=右辺」,各変数は「非負」 max c1x1 + c 2 x 2 +  + c n x n n s.t. a11 x1 + a12 x 2 + a1n x n = b1, max ∑c x j j j =1 a21 x1 + a22 x 2 +  a2n x n = b2 , n  s.t. ∑a x ij j = bi (i = 1,2,…, m ), j =1 am1x1 + am 2 x 2 +  amn x n = bm , xj ≥ 0 ( j = 1,2,…, n ). x1, x 2 ,…, x n ≥ 0. max cT x { max cT x Ax ≤ b, x ≥ 0 } s.t. Ax ≤ b, x ≥ 0. •  全ての線形計画問題は等式標準形に変換できる. 不等式に新たな変数を加えて等式にする n n ∑a x j =1 ij j ≤ bj ⇔ ∑a x j =1 ij j + xn + i = b j , xn + i ≥ 0 n n ∑a x j =1 ij j ≥ bj ⇔ ∑a x j =1 ij j − xn + i = b j , xn + i ≥ 0
  • 9. 線形計画問題のバリエーション •  最小値最大化問題 ある資源を n 人に配分するとき,各人の配分量を(x1,x2,…,xn)とする. このとき,配分量 xi の最小値をなるべく大きくするのはある意味で公平と言 える. max min{x1, x2 ,…, xn } s.t. Ax ≤ b min この問題に {x1, x2,…, xn } ≥ zとなる変数 z を新たに導入する. max z s.t. x1 ≥ z, x 2 ≥ z,…, x n ≥ z, Ax ≤ b
  • 10. 線形計画問題のバリエーション(続き) •  絶対値の入った目的関数 例えば目標値djからの絶対誤差を最小化する目的関数を考える n min ∑c x j j −dj j =1 n s.t. ∑a x ij j = bi (i = 1,2,…, m ). j =1 t j = c j x j − d j となる変数 tj を新たに導入する. n 制約式に絶対値が入って min ∑t j いる場合も適用できるが, j =1 そもそも線形計画問題に s.t. − tj ≤ cjxj − dj ≤ tj ( j = 1,2,…, n ), 変換できない例もあるの で注意! n ∑a x j =1 ij j = bi (i = 1,2,…, m ).
  • 11. 線形計画問題のバリエーション(続き) •  分数計画問題 以下の形の分数計画問題は実は線形計画問題として解ける. d T x + d0 > 0 任意の実行可能解 x について          と仮定する. cT x + c 0 min d T x + d0 s.t.Ax ≥ b. 1 ここで新たな変数 t = T , y = tx を導入すると, d x + d0 min cT y + c0t s.t. Ay − bt ≥ 0. d T y + d 0 t = 1.
  • 12. 実行不可能・非有界な線形計画問題 •  実行不可能:実行可能解が存在しない •  非有界:実行可能解を持つが目的関数値をいくらでも良くできてしまう 実行不可能な線形計画問題の例 非有界な線形計画問題の例 max 3 x1 + 4 x 2 + x3 max 3 x1 + 3 x 2 s.t. − x1 + x 2 + x3 = −5, s.t. x1 + 2 x 2 ≥ 2, 2 x1 + x 2 − x3 = 7, 2 x1 + x 2 ≥ 2, x1, x 2 , x3 ≥ 0. x1, x 2 ≥ 0. x2 2 × ( − x1 + x 2 + x3 = −5 ) + 1 × ( 2 x1 + x 2 − x3 = 7 ) 最大化 3 x 2 + x3 = −3 x1 x2 , x3 ≥ 0なので解なし 目的関数値を無限大にできる
  • 13. 線形計画問題を解く •  変数の数を n 個,制約式の数を m 本とする. •  実行可能領域は (m+n)個の平面に囲まれている ⇒ 超凸多面体 •  n 本の平面が交差する頂点のどれかに最適解がある! x2 max x1 + 2 x2 ⑤ 最適解 ③ s.t. x1 + x2 ≤ 6, → ① ① x1 + 3 x2 ≤ 12, → ② 最大化 2 x1 + x2 ≤ 10, → ③ x1 ≥ 0, → ④ ② x 2 ≥ 0. → ⑤ ④ x1 ⎛ m + n ⎞ ( m + n )! 調べる点の数は ⎜ ⎜ ⎜ = 個ありうる! ⎝ n ⎠ m! n! 総当り法では線形計画問題を効率良く解けない
  • 14. 単体法(シンプレックス法) •  凸多面体のある頂点(実行可能解)から出発して,目的関数値が改善す る隣接頂点への移動を繰返す •  各頂点ではn本の線形式からなる連立方程式を解く (実際の単体法では連立方程式を解かなくて済むように工夫されている) x2 f (x1, x2) x2 x1 x1
  • 15. 単体法の手続き •  与えられた線形計画問題を等式標準形に変形する. •  各変数 x1~x5 が線形制約式に対応していることを確認する. max x1 + 2 x 2 制約式を等号で満たす=対応する変数の値が0 s.t. x1 + x 2 ≤ 6, ① x2 x1 + 3 x 2 ≤ 12, ② ( x1, x2 , x3 , x4 , x5 ) = ( +,+,0,0,+) ④ 2 x1 + x 2 ≤ 10, ③ ④ ⑤ ① ③ x1, x 2 ≥ 0. max x1 + 2 x 2 ② s.t. x1 + x 2 + x3 = 6, ① ⑤ x1 x1 + 3 x 2 + x 4 = 12, ② 2 x1 + x 2 + x5 = 10, ③ ( x1, x2 , x3 , x4 , x5 ) = (0,0,+,+,+) x1, x 2 , x3 , x 4 , x5 ≥ 0. ④ ⑤
  • 16. 単体法の手続き(続き) •  変数 n 個,制約式 m 本だが,各変数の非負制約もあるので制約式は (m+n) 本ある. •  ここから n 本の制約式を選んで(対応する変数の値を0にして),連立方 程式を解く. •  すると,凸多面体の頂点に対応する実行可能解が求まる. max z max x1 + 2 x 2 s.t. x3 = 6 − x1 − x 2 , s.t. x1 + x 2 + x3 = 6, x 4 = 12 − x1 − 3 x 2 , x1 + 3 x 2 + x 4 = 12, x5 = 10 − 2 x1 − x 2 , 2 x1 + x 2 + x5 = 10, 分かり易く 書き直すと z = x1 + 2 x 2 , x1, x 2 , x3 , x 4 , x5 ≥ 0. x1, x 2 , x3 , x 4 , x5 ≥ 0. x1=0,x2=0とすると実行可能解が求まる
  • 17. 単体法の手続き(続き) •  現在の実行可能解に隣接する実行可能解を求めるには? ( x1, x2 , x3 , x4 , x5 , z) = (0,0,6,12,10,0) x1かx2を増加すると目的関数が改善しそう max z s.t. x3 = 6 − x1 − x 2 , x3 ≥ 0なのでx2 = 6まで増やせる x2=4まで x 4 = 12 − x1 − 3 x 2 , x4 ≥ 0なのでx2 = 4まで増やせる 増やせて x5 = 10 − 2 x1 − x 2 , x5 ≥ 0なので 2 = 10まで増やせる x x4=0となる z = x1 + 2 x 2 , max z x1, x 2 , x3 , x 4 , x5 ≥ 0. s.t. x 3 = 2 − 2 3 x1 +1 3 x 4 , 1 1 x 2 = 4 −1 3 x1 −1 3 x 4 , x2 = 4 − x1 − x 4を代入して書き直すと ・・・ 3 3 (実は連立方程式を解いている) x 5 = 6 − 5 3 x1 +1 3 x 4 , z = 8 +1 3 x1 − 2 3 x 4 , ( x1, x2 , x3 , x4 , x5 , z) = (0,4,2,0,6,8) x1,x 2 ,x 3 ,x 4 ,x 5 ≥ 0.
  • 18. 単体法の手続き(続き) •  前ページの手続きを図で確認すると・・・ max z s.t. x3 = 6 − x1 − x 2 , x2 ( x1, x2 , x3 , x4 , x5 , z) = (0,4,2,0,6,8) x 4 = 12 − x1 − 3 x 2 , x5 = 10 − 2 x1 − x 2 , z = x1 + 2 x 2 , x1, x 2 , x3 , x 4 , x5 ≥ 0. max z x1 s.t. x 3 = 2 − 2 3 x1 +1 3 x 4 , x 2 = 4 −1 3 x1 −1 3 x 4 , ( x1, x2 , x3 , x4 , x5 , z) = (0,0,6,12,10,0) x 5 = 6 − 5 3 x1 +1 3 x 4 , z = 8 +1 3 x1 − 2 3 x 4 , x1,x 2 ,x 3 ,x 4 ,x 5 ≥ 0.
  • 19. 単体法の手続き(続き) max z x1を増加すると改善しそう s.t. x 3 = 2 − 2 3 x1 +1 3 x 4 , ← x1 ≤ 3 x1は3まで増やせて x 2 = 4 −1 3 x1 −1 3 x 4 , ← x1 ≤ 12 x3=0 となる x 5 = 6 − 5 3 x1 +1 3 x 4 , ← x1 ≤ 18 5 z = 8 +1 3 x1 − 2 3 x 4 , x2 ( x1, x2 , x3 , x4 , x5 , z) = (0,4,2,0,6,8) x1,x 2 ,x 3 ,x 4 ,x 5 ≥ 0. 3 1 x1 = 3 − x 3 + x 4 を代入して書き直すと 2 2 max z s.t. x1 = 3 − 3 2 x 3 +1 2 x 4 , x 2 = 3 +1 2 x 3 −1 2 x 4 , x 5 = 1+ 5 2 x 3 −1 2 x 4 , x1 z = 9 −1 2 x 3 −1 2 x 4 , x1,x 2 ,x 3 ,x 4 ,x 5 ≥ 0. ( (x1,x 2 ,x 3 ,x 4 ,x 5 ,z) = 3,3,0,0,1,9 ) もう改善できない!
  • 20. 初期実行可能解を求める(2段階法) •  線形計画問題を解くには初期実行可能解が必要. •  自明な実行可能解が分からない場合には? ⇒ 補助問題を作る •  補助問題=自明な実行可能解を持つ線形計画問題 ⇒ 単体法を2回適用すると解ける(2段階法) 人為変数 x4 , x5 を導入 制約条件の違反度の合計を最小化 自明な実行可能解を持たない min − 2 x1 − x 2 − x3 min x 4 + x5 s.t. x1 + 2 x 2 = 12, s.t. x1 + 2 x 2 + x 4 = 12, x1 + 4 x 2 + 2 x3 = 20, x1 + 4 x 2 + 2 x3 + x5 = 20, x1, x 2 , x3 ≥ 0. x1, x 2 , x3 , x 4 , x5 ≥ 0. 目的関数値が0 ⇒ 元の問題の実行可能解 目的関数値が0より大 ⇒ 元の問題は実行不可能
  • 21. 非有界の判定 •  線形計画問題が非有界かどうか単体法の手続き中に判定できる. max z x1を増やすと改善しそう s.t. x 4 = 4 + 2 x1 − 2 x 2 + x3 , x5 = 4 + 2 x1 − 4 x3 , x1をいくら増やしてもx4,x5,x6は x 6 = 1 + 4 x1 − 3 x 2 + x3 , 負にならない! z = 0 + 2 x1 − x 2 − x3 , x1, x 2 , x3 , x 4 , x5 , x 6 ≥ 0. ( x1, x2 , x3 , x4 , x5 , x6 , z) = (0,0,0,4,4,1)
  • 22. 最適値の上界を求める •  難しい最適化問題では簡単に最適値が求まらないことが多い. •  与えられた最適化問題の最適値の上界と下界を簡単に求める方法は? ⇒ 実行可能解を求めれば下界は計算できる.では,上界は? max f (x) s.t. x ∈S f (x ) 上界 実行不可能 最 最適値 大 化 最 大 実行可能 下界 化 x 実行可能領域 S
  • 23. 線形計画問題の最適値の上界を求める •  制約式の1次結合を作ることで最適値の上界が求められる. 6 × ( 3 x1 + x 2 ≤ 12 ) max 20 x1 + 10 x 2 2 × ( x1 + 2 x2 ≤ 10 ) s.t. x1 + x 2 ≤ 6, 20 x1 + 10 x2 ≤ 92 3 x1 + x 2 ≤ 12, x1 + 2 x 2 ≤ 10, 5 × ( x1 + x2 ≤ 6 ) x1, x 2 ≥ 0. 5 × ( 3 x1 + x2 ≤ 12 ) 20 x1 + 10 x2 ≤ 90 線形計画問題の最適値の上界!
  • 24. 線形計画問題の最適値の上界を求める(続き) •  線形計画問題の最適値の上界を求める一般的な手続きは? •  制約式の1次結合から上界を与える関数を求める •  最適値に近い方が良い推定 ⇒ 上界を与える関数を最小にする max 20 x1 + 10 x 2 min 6 y 1 + 12 y 2 + 10 y 3 s.t. x1 + x 2 ≤ 6, y 1 × ( x1 + x 2 ≤ 6) s.t. y 1 + 3 y 2 + y 3 ≥ 20, 3 x1 + x 2 ≤ 12, y 2 × (3 x1 + x 2 ≤ 12) y 1 + y 2 + 2y 3 ≥ 10, x1 + 2 x 2 ≤ 10, y 3 × ( x1 + 2 x 2 ≤ 10 ) y 1, y 2 , y 3 ≥ 0. x1, x 2 ≥ 0. 不等号の向きが逆転すると よく見慣れた問題に? まずいので,y1,y2,y3≧0 ( y1 + 3y 2 + y 3 )x1 + ( y1 + y 2 + 2y 2 )x2 ≤ 6y1 + 12y 2 + 10 y 3 ≧ ≧ 最小化 20 10
  • 25. 線形計画問題の双対問題 •  双対問題:最適化問題の最小の上界(最大の下界)を求める問題 •  線形計画問題では,問題D(双対問題)の双対問題は問題P(主問題)と なる ⇒ 確かめてみよう! n 不等号の向きが逆転すると P : max 主問題 ∑c x j =1 j j まずいので yi≧0 n s.t. ∑a x ij j ≤ bi (i = 1 2,…, m ), , m ⎛ n ⎞ m j =1 ∑ y i ⎜ ∑ aij x j ⎟ ≤ ∑ y i bi ⎜ ⎟ xj ≥ 0 ( j = 1,2,…, n ). i =1 ⎝ j =1 ⎠ i =1 m D : min ∑b y 双対問題 n i i ⎛ m ⎞ m i =1 m ∑ x j ⎜ ∑ aij y i ⎟ ≤ ∑ y i bi j =1 ⎜ ⎝ i =1 ⎟ ⎠ i =1 s.t. ∑a y ij i ≥ cj ( j = 1,2,…, n ), ≧ i =1 y i ≥ 0. (i = 1 2,…, m ). , cj 最小化
  • 26. 線形計画問題の双対問題(続き) •  線形計画問題の変数に非負制約がない場合は? •  線形計画問題が等式標準形の場合は? n 不等号の向きが逆転する P : max ∑c x j j 主問題 とまずいので yi≧0 j =1 n m n n ⎛ ⎞ s.t. ∑a x ≤ bi (i = 1,2,…, m ). ∑ y ⎜ ∑ a x ⎜ i ij j ⎟ = ∑ c j x j ⎟ j =1 ij j m ⎛ n ⎞ m i =1 ⎝ j =1 ⎠ j =1 ∑ y i ⎜ ∑ aij x j ⎟ ≤ ∑ y i bi ⎜ ⎟ ≦ i =1 ⎝ j =1 ⎠ i =1 最大化 bi n ⎛ m ⎞ m D : min m ∑b y i i 双対問題 ∑ x j ⎜ ∑ aij y i ⎟ ≤ ∑ y i bi j =1 ⎜ ⎝ i =1 ⎟ ⎠ i =1 i =1 = n ⎛ m ⎞ n m ∑ x j ⎜ ∑ aij y i ⎟ = ∑ x j c j ⎜ ⎟ s.t. ∑a y = cj ( j = 1 2,…, n ), , j =1 ⎝ i =1 ⎠ j =1 i =1 yi ≥ 0 ij i (i = 1 2,…, m ). , cj 最小化 xjが負の値を取ると不等 等号なのでxiの正負は関係なし 号の向きが逆転する
  • 27. 緩和問題を用いて最適値の上界を求める •  最適解を求めることが難しい最適化問題に対するアプローチ •  元の問題を簡単な問題(緩和問題)に置換えて上界を求める方法 原問題 緩和問題 P : max f (x) RP : max fRP ( x ) s.t. x ∈S s.t. x ∈ SRP ただし,以下のR1,R2を満たす. fRP ( x ) (R1) SRP ⊇ S 最 大 化 (R2) fRP ( x ) ≥ f ( x ) ( x ∈ S ) f (x ) x S SRP
  • 28. 線形計画問題のラグランジュ緩和 •  ラグランジュ緩和(罰金法): 制約式を単に取り除くのではなく,その代わりに制約式を違反する解には ペナルティがかかるように,目的関数に制約式を繰り込む方法. (全ての制約式を取り除く必要はない) 原問題 ラグランジュ緩和問題 max 20 x1 + 10 x 2 max 20 x1 + 10 x 2 s.t. x1 + x 2 ≤ 6, − w 1( x1 + x 2 − 6) 3 x1 + x 2 ≤ 12, − w 2 (3 x1 + x 2 − 12 ) x1 + 2 x 2 ≤ 10, − w 3 ( x1 + 2 x 2 − 10 ) x1, x 2 ≥ 0. s.t. x1, x 2 ≥ 0. w1,w 2 ,w 3 ≥ 0は各制約式の重み係数 ラグランジュ緩和を用いて線形計画問題の双対問題を導ける!
  • 29. ラグランジュ緩和を用いて双対問題を導く •  最適値の良い(小さい)上界値を与えるラグランジュ緩和問題を作る ⇒ 重み係数 w を上手く調整したい ⇒ w に関する最適化問題 z(w ) = max 20 x1 + 10 x2 − w1( x1 + x2 − 6) − w 2 (3 x1 + x2 − 12) − w 3 ( x1 + 2x2 − 10) x s.t. x1, x2 ≥ 0. 最小化 z(w ) = max (20 − w1 − 3w 2 − w 3 )x1 + (10 − w1 − w 2 − 2w 3 )x2 + 6w1 + 12w 2 + 10w 3 x s.t. x1, x2 ≥ 0. 0より大きいと上界値が∞(非有界)になる!⇒常に0以下 そのような条件の下では常にx1,x2=0となる! min z(w ) = 6w1 + 12w 2 + 10w 3 s.t. 20 − w1 − 3w 2 − w 3 ≤ 0, 双対問題の でき上がり! 10 − w 1 − w 2 − 2w 3 ≤ 0, w 1,w 2 ,w 3 ≥ 0.
  • 30. ラグランジュ緩和を用いて双対問題を導く(続き) •  不等式標準形の線形計画問題でも上手く双対問題を導けるだろうか? n max 主問題 wi ≥ 0(i = 12,…, m)は各制約式の重み係数 , ∑cj xj j =1 n m ⎛ n n ≦ max ⎞ ∑ c j x j − ∑ w i ⎜ ∑ aij x j − bi ⎟ ⎜ ⎟ s.t. ∑a x ij j ≤ bi (i = 1 2,…, m ), , j =1 i =1 ⎝ j =1 ⎠ j =1 s.t. x j ≥ 0 ( j = 12,…, n ). , xj ≥ 0 ( j = 1 2,…, n ). , m n m min ∑ bi w i 双対問題 ⎛ ⎞ m i =1 ≧ max ∑ x j ⎜ c j − ∑ aij w i ⎟ + ∑ bi w i j =1 ⎜ ⎝ i =1 ⎟ ⎠ i =1 m s.t. c j − ∑ aij w i ≤ 0 ( j = 1 2,…, n ), , s.t. x j ≥ 0 ( j = 1 2,…, n ). , i =1 wi ≥ 0 (i = 1 2,…, m ). , 0より大きいと非有界になる!⇒ 常に0以下 そのような条件の下では常にxj=0(j =1,2,…,n)
  • 31. ラグランジュ緩和を用いて双対問題を導く(続き) •  等式標準形の線形計画問題の双対問題も上手く導けるだろうか? n max ∑c x j j 主問題 j =1 wi ,v i ≥ 0(i = 12,…, m)は各制約式の重み係数 , n n m ⎛ n ⎞ max ∑ c j x j − ∑ w i ⎜ ∑ aij x j − bi ⎟ s.t. ∑a x j =1 ij j ≤ bi (i = 1,2,…, m ), ≦ j =1 i =1 ⎜ ⎝ j =1 ⎟ ⎠ n m n ⎛ ⎞ ∑a x ij j ≥ bi (i = 1,2,…, m ) − ∑ v i ⎜ bi − ∑ aij x j ⎟ ⎜ ⎟ j =1 i =1 ⎝ j =1 ⎠ xj ≥ 0 ( j = 1,2,…, n ). s.t. x j ≥ 0 ( j = 1,2,…, n ). 等式⇒2本の不等式に置き換え n m ⎛ n ⎞ min m ≧ max ∑ c j x j − ∑ (w i − v i )⎜ ∑ aij x j − bi ⎟ ⎜ ⎟ ∑b y i =1 i i 双対問題 j =1 i =1 ⎝ j =1 ⎠ s.t. x j ≥ 0 ( j = 12,…, n ). , m s.t. c j − ∑ aij y i ≤ 0 ( j = 1,2,…, n ). i =1 yi に置き換える
  • 32. 主問題と双対問題の関係 •  弱双対定理 主問題の実行可能解の目的関数値≦双対問題の実行可能解の目的関数値 •  強双対定理 主問題が最適解を持つなら双対問題も最適解を持ち,それらの最適値は一致する y g (y ) 双対問題 最 双対問題 主問題と 実行可能 実行 小 双対問題の 化 組合せは? 有界 非有界 不能 実 有界 ○ × × 最 行 主 可 大 問 能 非有界 × × ○ 化 主問題 題 実行不能 × ○ ○ f (x ) x
  • 33. 主問題と双対問題の関係(続き) •  弱双対定理より以下の補題が成り立つ 主問題(双対問題)が非有界 ⇒ 双対問題(主問題)は実行不能 •  ちなみに逆「主問題(双対問題)が実行不能 ⇒ 双対問題(主問題)が非 有界」は成り立たないので注意すること. (主問題・双対問題ともに実行不能の場合がある)
  • 34. 感度分析 •  線形計画問題は最適解を出すだけではない! •  問題の条件や数値が変化 → 最適解の変化を分析したい •  以下の生産計画問題の例で考えてみよう. 生産計画問題の例 あるシャトーでは3種類のブドウ,カルベネ,メルロー,セミヨンを原料として, 3種類のワイン,赤ワイン,白ワイン,ロゼワインを製造している. 収益が最大となる各ワインの1日当たりの製造量を求めよ. 種類 赤ワイン 白ワイン ロゼワイン 供給量 max p1x1 + p2 x2 + p3 x3 カルベネ a11 a12 a13 b1 s.t. a11x1 + a12 x2 + a13 x3 ≤ b1, メルロー a21 a22 a23 b2 a21x1 + a22 x2 + a23 x3 ≤ b2 , セミヨン a31 a32 a33 b3 a31x1 + a32 x2 + a33 x3 ≤ b3 , 収益 p1 p2 p3 x1, x2 , x3 ≥ 0.
  • 35. 感度分析(続き) •  3種類のブドウ,カルベネ,メルロー,セミヨンの供給量を増やしたいと考 えている.どのブドウの供給量を増やすのが最もお得だろうか? 主問題 双対問題 max p1x1 + p2 x2 + p3 x3 min b1y 1 + b2 y 2 + b3 y 3 s.t. a11x1 + a12 x2 + a13 x3 ≤ b1, s.t. a11y 1 + a21y 2 + a31y 3 ≥ p1, a21x1 + a22 x2 + a23 x3 ≤ b2 , a12 y 1 + a22 y 2 + a32 y 3 ≥ p2 , a31x1 + a32 x2 + a33 x3 ≤ b3 , a13 y 1 + a23 y 2 + a33 y 3 ≥ p3 , x1, x2 , x3 ≥ 0. y 1, y 2 , y 3 ≥ 0. * * * * * * 最適解( x1 , x2 , x3 )と( y1 , y 2 , y 3 )が得られたとすると * * * * * * 目的関数値はp1x1 + p2 x2 + p3 x3 = b1y1 + b2 y 2 + b3 y 3 供給量をぞれぞれΔ1, Δ 2 , Δ 3 * * * (b1 + Δ1 )y1 + (b2 + Δ 2 )y2 + (b3 + Δ 3 )y3 増やしたときの最適値 は? 最適解における各双対変数の値は,各ブドウの潜在的な収益を表している! (双対変数は潜在価格とも呼ばれる)
  • 36. まとめ •  線形計画問題 •  不等式標準形・等式標準形への変形 •  実行不可能・非有界な線形計画問題 •  単体法(シンプレックス法) •  双対問題の作り方 •  双対定理 •  感度分析
  • 37. 参考文献 •  森雅夫,松井知己『オペレーションズ・リサーチ』朝倉書店,2004. •  福嶋雅夫『(新版)数理計画入門』朝倉書店,2011. •  加藤直樹『数理計画法』コロナ社,2008. •  今野浩『線形計画法』日科技連,1987. •  刀根薫『数理計画(増補版)』朝倉書店,2007. •  V.Chvatal, Linear Programming, W.H.Freedman and Company, 1983.