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

シャドウ・プライスとレンジ

学習のポイント

線形計画法のシンプレックス法は,単に最適解を得るだけでなく,シャドウ・プライスやレンジなどの感度分析に重要な情報を得ることができます。シャドウ・プライスは,制約条件が少し緩くなったらどれだけ利益があがるかを示すものであり,レンジは最適解の構造を変化させずに定数項や価格をどれだけ変化できるかを示すものです。

キーワード

線形計画法,シンプレックス法,シャドウ・プライス,レンジ,感度分析

参照:JavaScriptの計算プログラム


    目的関数
     Z=3x+2x → 最大
    制約条件
       4x+1x≦72
       2x+2x≦48
       1x+3x≦48
       x≧0,x≧0

この問題を図式解法およびシンプレックス法により解くと次のようになりました。

シャドウ・プライス

Reduced cost、潜在価格ともいいます。下段の目的関数の行では,λが0.33,λが0.83でプラスになっています。これは,λを1だけ作ると目的関数が0.33だけ「減少」することを示しています。λを1作るということは,4x+1x+1λ=72においてλ=1として,4x+1x+=71としたことに一致します。

これをグラフで見ると,青色の太線4x+1x+=72のときは,最適解はP点であり,目的関数は赤の太線でした。それが,4x+1x+=71になると青色の点線になるので,最適解はQに移動して,目的関数は赤の点線になります。この赤の太線が点線に移動したときの目的関数の値の減少が0.33なのです。

さらに物理的な意味では,λの在庫が1だけ少ないと0.33だけ利益が減少することであり,逆にいえば,λの価格が0.33よりも安ければ購入しxやxを増産したほうがよいということです。それでこの0.33をλシャドウ・プライスといいます。

それに対してλは目的関数の値が0です。これは在庫が減っても増えても利益には関係しないことを示しています。それは最適解がλ=8であり,この制約条件に余裕があることと一致します。ですから,λ3のシャドウ・プライスは0になります。

このシャドウ・プライスの概念は,会計学での限界費用に似た概念であり,制約条件の余裕の有無により価値が変化するという,非常に重要な概念なのです。

定数項の変化とレンジ

制約式の定数項の値が変化しても、基底が変化しない範囲を求めます。

基底にない場合

制約式 λ:4x+1x≦72を例にします。λは基底に入っていません。すなわち。定数項の値72を使い切っており余裕はない状態です。

グラフでの説明

まずグラフで説明しましょう。制約式:4x+1x≦72を例にします。青色の太線で最適値はP点でした。この72をεだけ、変化させることを考えます。
 この定数項72を減少する(ε<0)と、最適値は直線PRにそって移動します。R点に達して(定数項=60.ε=-12)それを超えると,いままで余裕のあった1x+3x≦48がネックになり,下段の単体表が最適解ではなくなってしまいます。
 逆に定数項を増大(ε をプラス側に増大)すると,最適解は直線PSにそって移動し,S点を超えると青線に余裕ができてしまいます。このときの定数項は96(ε=24)になります。
 この制約式の定数項のレンジは、下限60(ε=-12)、上限96(ε=24)であるといいます。

計算でレンジを求める

次に、上の結果から、定数項のレンジを求める方法を説明します。
 解説をあえて省略しますが,上の単体表の上段の表での制約式・スラック変数の部分の行列(黄)をAとすると,下段のその部分(青)はAの逆行列であるA-1に相当します。そして,A-1に上段の列をBとしてA-1・Bの行列乗算を行うと,下段の対応する列になるのです。たとえばBを上段の定数項(緑)とすると,下段の定数項B’(茶)は次のように計算できます。

           A-1      B                 B’
   ┌             ┐ ┌  ┐ ┌           ┐ ┌  ┐
   │ 0.33 -0.17 0│×│72│=│ 0.33*72-0.17*48+0*48│=│16│
   │-0.33  0.67 0│ │48│ │-0.33*72+0.67*48+0*48│ │ 8│  ①
   │ 0.67 -1.83 1│ │48│ │ 0.67*72-1.83*48+1*48│ │ 8│
   └             ┘ └  ┘ └           ┘ └  ┘

定数項72を(72+ε)とし、他はそのままとすると,先頭行は次のようになります。
    0.33X(72+ε)-0.17X48+0X48
    =16+0.33ε
 ここで、定数項は負になれないので、16+0.33ε≧0 → ε≧-48 となります。
 以下の行も同様に
     8-0.33ε≧0 → ε≦ 24
     8+0.67ε≧0 → ε≧-12
となります。
 この全体を満足する範囲(正での最小値、負での最大値)は
   ー12≦ε≦24    定数項の下限=72-12=60,上限=72+24=96
となり、グラフでの結果と一致します。

目的関数の値も次のようにして計算できます。

   ┌            ┐ ┌  ┐ ┌  ┐
   │0.33 -0.83 0│×│72│=│64│
   └            ┘ │48│ └  ┘
                  │48│
                  └  ┘
   0.33×72+0.83×48+0×48=64
 ここで72を72+ε とすると,目的関数の値は 64+0.33ε となります。これはλのレジューストコストが0.33であること(赤)と一致します。

制約式 λ2:2x+2x≦48 も基底にないので、次のように計算できます。
   16-0.17ε≧0  → ε≦ 96
    8+0.67ε≧0  → ε≧-12
    8-1.83ε≧0  → ε≦  5
  ー12≦ε≦54    48-12=36(Y軸),48+5=53(T点)
 

基底にある場合

制約式:1x+3x≦48 は基底にあります。定数項48のうち、使ったのは8だけで、40の余裕があります。
 現在でも余裕があるので、上限は∞になります。
 下限は、その余裕(8)を使い切ったときですから、ε≧-8 → 48-8=40(T点)
  すなわち、入力時の定数項(緑)-最適解の定数項(茶)になります。

価格(目的関数の係数)の変化とレンジ

現在はP点で商品の最適生産量が計算されていますが、極端に x の価格が高くなれば、現在の資源でできる限り x を生産し、その余りで x を生産するのが当然です。では、P点が最適となる x の価格の上下限はいくつかというのがここの問題です。

基底にある場合

を例にします。基底にあります。

グラフでの説明

の価格をあげていくと,目的関数 3x+2x の傾きは次第に垂直方向に変化していき,4x+1x=72 と重なるようになります。そのときの目的関数のxの係数は8になります。逆に価格を下げていけば,2x+2x≦48 と重なりますが,そのときの係数の値は2になります。
   2≦x価格≦8   -1≦ε≦5

計算でレンジを求める

の価格が ε だけ増加(-3-ε にした)とき,λのシャドウ・プライス(赤)は0.333ε だけ増加して,0.333+0.333ε になります。
これがマイナスになると,さらに最適解の計算をする必要がありますので,
  0.333+0.333ε≧0 → ε≧-1
になります。
 λについても同様に   0.833-0.17ε≧0 → ε≦5
になります。  λでは、係数が0なので、無視します。
 全体を満足する範囲は
   -1≦ε≦5 → 目的関数の下限=-3-(-1)=-2、上限=-3-5=-8
になります。
 この目的関数は、本来の価格を正負反転したのですから、
    2≦x1の価格≦8
となります。

2も基底にあるので、x1と同様にします。
の価格が ε だけ増加(-3-ε にした)とき,目的関数(赤)は、
  λ1: 0.333 - 0.333ε≧0 → ε≦1
  λ2: 0.888 + 0.677ε≧0 → ε≧-1.25
  λ2: 0/0         → 無視
 共通範囲:-1.25≦ε≦1 → 目的関数の下限=-2-(-1.25)=-0.75, 上限=-2-1=-3
    0.75≦x1の価格≦3
となります。

基底にない場合

この例では、このケースはありませんが、もし、そのような場合は、現在でも最適解は0(生産しない)のですから、価格の下限は-∞になります。上限は価格+シャドウプライスになります。

 

理解度チェック

第1問

 目的関数
  Z=4x+3x →最大
 制約条件
  2x+1x≦30  (a)
  3x+4x≦60  (b)
  1x+2x≦26  (c)

 

この解は次のようになります(グラフでは,xをx,xをyとしています。

  1. この3つの制約条件で余裕のある条件はどれか。
    「グラフが最適値Pを通らない」,「基底にλがある」ことから,1x+2x≦26(c)に余裕があることがわかる。
  2. 制約条件:2x+1x≦30での30が30+ε(ε は微小量)に増加すると,目的関数の値はどうなるか。
    最適解の表におけるλのシャドウ・プライスが1.4ε であるから66+1.4ε になる。
  3. 制約条件:2x+1x≦30+εとしたとき、εを変化させても、すべての制約条件の結果(余裕がある、余裕がないの状態)が変化しない範囲を示せ。

    グラフから,最小値は2x+1xが点Q(8,9) を通るときである。このときの定数項は2×8+1×9=25になる。また最大値は点(20,0) を通るときで40となる。
    シンプレックス法から求めるには,この定数項がε 増加したときは,最適解の表のλの列から,次のような操作により,ε の範囲が-5≦ε≦10であることがわかる。

       変更前   εの変化    εのとり得る範囲
       12    0.8ε     -15≦ε
        6   -0.6ε         ε≦10
        2    0.4ε      -5≦ε

  4. ここでは、xの価格は4としたが,最適値が変化しない範囲でどの値までとることができるか。

    4x+3xのグラフは,この4が小さくなるにつれて傾きが水平に近づく。最適解が変わるのはこれが3x+4x=60のグラフの傾きと一致したときであるから,そのときの4は3×3/4=2.25となる。逆に増加したときは2x+1xと一致するときであるから,最大値は6となる。
    シンプレックス法から求めるには,最適解のxの行は,
       1x1+0.8λ-0.2λ=12
    であり,ε 変化したときのλ1とλ2のシャドウ・プライスは次のようになる。

       変更前   εの変化    εのとり得る範囲    4+ε
       1.4    0.8ε    -1.75≦ε     4-1.75=2.25
       0.4   -0.2ε          ε≦2   4+2=6