スタートページ> Web教材一覧> オペレーションズリサーチ> 線形計画法
線形計画法(LP:リニアプログラミング)の概念を理解するために,簡単な例題を定式化して図式解法により解を求める方法を学習します。
典型的な(簡単な)線形計画法を掲げます。
「製品Xを1kg生産するには,原料Aを4kg,原料Bを2kg,原料Cを1kg必要とし,製品Yを1kg生産するには,原料A1kg,原料Bを2kg,原料Cを3kg必要とします。原料の在庫量は,Aは72kg,Bは48kg,Cは48kgあります。製品Xの売価は3万円/kg,製品Bの売価を2万円とするとき,利益(=売上高。原料や生産の費用は考えないことにします)を最大にするには,製品Xと製品Yをどれだけ生産すればよいでしょうか。」
この問題文を整理すると次表になります(製品を横,原料を縦にとるのがコツです)。
製品X 製品Y 原料在庫量
原料A 4 1 72
制約条件 原料B 2 2 48
原料C 1 3 48
目的関数 Z: 3 2 → 最大
製品Xをxkg,製品Yをykg生産するには原料Aを 4x+1y kg必要とします。ところが原料Aの在庫量は72kgですので,
4x+1y≦72
の式が成立します。
以下同様にして,上の問題は次のように定式化することができます。
制約条件
4x+1y≦72
2x+2y≦48
1x+3y≦48
(x≧0,y≧0)・・・暗黙の条件
のなかで,
目的関数
Z=3x+2y
を最大にする,xとyの値を求める。
この問題を抽象的に表現すれば,「一次不等式の制約条件の下で一次式を最大(最小)にする技法」だといえます。一次式はグラフに描くと直線,すなわち線形(リニア)になります。一次式を取り扱う数学の分野を線形数学といいます。線形数学を利用した計画法(プログラミング)という意味で線形計画法(リニア・プログラミング-LP)というのです。
一次式以外の制約条件や目的関数があるときは,非線形計画法といいます。また,制約条件の下で目的関数を最大化する技法を総称して数理計画法といいます。線形計画法は数学的計画法のなかで最もポピュラな技法で,実務的にも広く活用されています。さらに線形計画法には,特殊な条件を加えた整数計画法とか輸送問題・割当問題の解法など,多様な技法があります。
上の例では,変数がxとyの2つですから,グラフを描いて解くことができます。それを図式解法といいます。
1x+3y≦48をグラフで示すには,1x+3y=48のグラフにより二分されたどちらか一方です。そのグラフを描くのには,y=-(1/3)x+16と変形してもよいのですが,次のようにするほうが簡単です。

同様にして,4x+1y≦72,2x+2y≦48,1x+3y≦48およびx≧0,y≧0がすべて成立する範囲は,下図のメッシュの部分になります。これが制約条件です。すなわちメッシュされら内部(線も含む)の点は,制約条件をすべて満足しており,それ以外の点は制約条件の少なくとも1つは満足していないことになります。

例をあげて確認しましょう。メッシュの内部の点として(5,8),外部の点として(4,16)を用います。
制約条件 (5,8)のとき (4,16)のとき
4x+1y≦72 4×5+1×8=28 ○ 4・4×1・16=32 ○
2x+2y≦48 2×5+2×8=26 ○ 2・4×2・16=40 ○
1x+3y≦48 1×5+3×8=29 ○ 1・4×3・16=52 ×
(制約条件が不成立)
目的関数Z=3x+2yにおいて,Zを24,48,64,96としたときのグラフを描くと下図のようになります。すなわち傾きが-(2/3)の平行線で,右上になるほどZの値(目的関数の値)が大きくなることがわかります。

制約条件を満足するのはメッシュの内部であり,目的関数のグラフが右上にいくほど目的関数の値が大きくなるのですから,最大になるのは図の点P(16,8)を通るときです。すなわち,x=16,y=8が最適値であり,最大値はZ=64となります。これを元の問題で表現するのであれば,「製品Xを16kg,製品Yを8kg生産するのが最適であり,そのときの利益は64万円になる」となります。

なお,x=16,y=8のときは,4x+1y=72,2x+2y=48ですから原料Aと原料Bは全量使用したことになりますが,1x+3y=40≦48なので原料Cは8kg在庫が残っています。原料Aと原料Bには余裕がないが原料Cには余裕があることは上のグラフから読み取ることができます。
次のように定式化できます。
制約条件
2x+1y≦30
3x+4y≦60
1x+2y≦26
(x≧0,y≧0)・・・暗黙の条件
目的関数
Z=4x+3y →最大
グラフは右図のようになるので,
x=12kg,y=6kgのときZ=66万円
が解になります。