スタートページWeb教材一覧オペレーションズリサーチ線形計画法

双対問題

学習のポイント

さきにシャドウ・プライスの概念を学習しました。その概念は双対問題へと発展します。

キーワード

線形計画法,双対問題,シャドウ・プライス


双対問題の概念

次のような問題が与えられていたとします。
  目的関数
   v+v+・・・+v → 最大
  制約条件
   a11+a12+・・・+a1n ≦ b
   a21+a22+・・・+a2n ≦ b
    ・・・・・・・・・・・
   am1+am2+・・・+amn ≦ b
      x,x,・・・,x ≧ 0

この問題を、m個の変数u,u,・・・,u を考えることにりり、次のように変形します。
 ・制約式の右辺 b を、目的関数の係数にする。
 ・目的関数の係数 v を、制約式の右辺にする。
 ・制約式の不等号の向きを反対にする。
 ・制約式の係数 aij の行と列をとりかえて、 aji を係数とする。
 ・最大値問題を最小問題にする。
すなわち、次の式になります。
  目的関数
   b+b+・・・+b → 最小
  制約条件
   a11+a21+・・・+am1 ≧ v
   a12+a22+・・・+am2 ≧ v
    ・・・・・・・・・・・
   a1n+a2n+・・・+anm ≧ v
      u,u,・・・,u ≧ 0

このように変形した問題を双対問題(双対-そうつい-Dual)といいます。これは元の問題を裏返しにした表現であり、元の問題は新しい問題の双対問題であるともいえます。
 元の問題と双対問題の解には、次の対応があります。
 ・最適値はどちらも同じになる。
 ・双対問題の最適解 uopt は、元の問題の制約式 b のシャドウ・プライスになる。
   (uopt が0ならば、b には余裕がある。)
 ・双対問題の v のシャドウ・プライスは、元の問題の制約式 x の最適解になる。
 元の問題でのシャドウ・プライスとは、「その制約が少し変化したら、最適値がどれだけ変化するか」を示しています。そのため、最大化を図るということは、改善の余地を最小にすること、すなわちシャドウ・プライスを最小にするだといえます。


数値例

非常に簡単な数値例により、具体的に説明します。
●元の問題
  目的関数
   6x+5x → 最大
  制約条件
   2x+1x ≦  5
   3x+4x ≦ 10
●双対問題
  目的関数
   5u+10u → 最小
  制約条件
   2u+3u ≧ 6
   1u+4u ≧ 5

双対問題の定式化では、次の表を用いると便利です。
         元の問題                 双対問題
       変数1 変数2  制約値        制約式1 制約式2 制約値
  目的関数  6   5  → 最小    制約値  6    5    最大
                            ∧    ∧     ↑
  制約式1  2   1  ≦  5    変数1  2    1     5
  制約式2  3   4  ≦ 10    変数2  3    4    10

元の問題の制約式を等号にしたときの点、x=2,x=1 が最適値であることは簡単にわかります。ここで、制約式を等号にするために、非負の変数λを導入します。
   2x+1x + λ    =  5
   3x+4x    + λ = 10
これを解くと、
   x = 2-0.8λ+0.2λ
   x = 1+0.6λ-0.4λ
となり、目的関数は
   6x+5x = 17-1.8λ-0.8λ
    となります。

 すなわち、制約式1のシャドウ・プライスは-1.8、制約式2のシャドウ・プライスは-0.8になります。

同様に双対問題で、変数εを導入すれば、
   2u+3u - ε    = 6
   1u+4u     - ε = 5
     u = 1.8+0.8ε-0.6ε
     u = 0.8-0.2ε+0.4ε
   5u+10u = 17+2ε+1ε
になります。
 これらから、前述した元の問題と双対問題での変数の最適値と制約式のシャドウ・プライスの関係が成立していることがわかります。

ここで、λとεについて考えてみましょう。
 元の問題での制約式1を、
   2x+1x ≦ 5 - λ
とすれば、双対問題での目的関数は、
   (5-λ)u+10u → 最小
となります。
 ここで、λ を1単位変化させることは、制約式1の制約を1だけ変化させることです。そのときに目的関数の値が u だけ変化するということは、u が制約式1のシャドウ・プライスであることを示しています。
 また、双対問題の制約式1を
   2u+3u ≧ 6+ε
とすると、元の問題の目的関数は、
   (6+ε)x+5 → 最大
となります。
 すなわち、εは、xの価値の増大分だと解釈できます。そして、制約式1の左辺は「xは、少なくとも6以上の 価値をもたなければならない」という意味だと解釈できます。双対問題の制約式は、変数xを使うことの価値、変数xをいくつにすればよいかに関する条件なのですから、そのシャドウ・プライスが変数xの最適値を示すことになるのです。