H 1 · ¢ -h O ÕµÄ~Û¿«µ sdksuzuki/teaching/ch1.pdf · H 1 · ¢ -h O ÕµÄ~Û¿«µ sd ......

42
1 線形計画法 ベスト・ミックスを探せ! この章では,線形計画法 の基礎を学びます. は, の基本的なツールの一つです.ここから派生した様々なツールが存在します. には数多くの応用例が存在しますが,まずは「ベスト・ミックス」を見つけ る方法なのだと理解してください. 1.1 クッキー販売の模擬店 1.1.1 営業方針 あなたの所属するサークルでは,毎年大学祭でクッキーをつくって販売しています.経済学部 に所属しているからという根拠の薄い理由で,今年のクッキー屋の責任者はあなたに決まってしま いました.責任者は,商品の選択,原材料の調達,当日のスケジュール調整,売上の管理まで,ほ とんどすべてを引き受けなくてはなりません.仕事はどれもたいへんそうですが,将来経営者にな ることを夢見ているあなたは,これも一つのトレーニングだと,前向きに考えることにしました. さいわい,このサークルでは毎年クッキーの販売をしているおかげで,経験の蓄積があります. 基本的な営業方針はほぼ決まっています. 方針 お店はテイクアウト専用 方針 実演販売はしない(というかできない)ので,商品はあらかじめつくっておく 方針 お金儲けが目的ではないが,最終的な損益は黒字にしたい 方針 作るクッキーの種類は,チョコチップクッキー,ブラウニー,ショートブレッド,ジン ジャークッキーの 種類. 方針 合わせて 枚つくる. まず決めることは, 種類のクッキーをそれぞれどれくらい作るか,です.最初に費用に着目 してみました.原材料は,表 の通りです.ただし,バニラエッセンスや,ベイキングパウダー, 塩などは省いてあります.単純に材料費だけに着目すると,ジンジャークッキーがもっとも安いこ とから,それを多く作るのがよいようにみえます.本当にそうすべきでしょうか クッキーは事前に作っておく必要があり,そのためには当然作業の時間がかかります.原材料 費も大事ですが,むしろ学生にとっては作業時間の方が考慮すべき要因であるようです.作業時間 は,大まかに見積もって表 のようになります. 材料,作業時間は, を参照しました.

Transcript of H 1 · ¢ -h O ÕµÄ~Û¿«µ sdksuzuki/teaching/ch1.pdf · H 1 · ¢ -h O ÕµÄ~Û¿«µ sd ......

5

第1章 線形計画法— ベスト・ミックスを探せ!

この章では,線形計画法 (Linear Programming, LP)の基礎を学びます.LPは,ORの基本的なツールの一つです.ここから派生した様々なツールが存在します.LPには数多くの応用例が存在しますが,まずは「ベスト・ミックス」を見つける方法なのだと理解してください.

1.1 クッキー販売の模擬店

1.1.1 営業方針

あなたの所属するサークルでは,毎年大学祭でクッキーをつくって販売しています.経済学部に所属しているからという根拠の薄い理由で,今年のクッキー屋の責任者はあなたに決まってしまいました.責任者は,商品の選択,原材料の調達,当日のスケジュール調整,売上の管理まで,ほとんどすべてを引き受けなくてはなりません.仕事はどれもたいへんそうですが,将来経営者になることを夢見ているあなたは,これも一つのトレーニングだと,前向きに考えることにしました.さいわい,このサークルでは毎年クッキーの販売をしているおかげで,経験の蓄積があります.

基本的な営業方針はほぼ決まっています.

方針 1. お店はテイクアウト専用

方針 2. 実演販売はしない(というかできない)ので,商品はあらかじめつくっておく

方針 3. お金儲けが目的ではないが,最終的な損益は黒字にしたい

方針 4. 作るクッキーの種類は,チョコチップクッキー,ブラウニー,ショートブレッド,ジンジャークッキーの 4種類.

方針 5. 合わせて 1000枚つくる.

まず決めることは,4種類のクッキーをそれぞれどれくらい作るか,です.最初に費用に着目してみました.原材料は,表 1.1の通りです.ただし,バニラエッセンスや,ベイキングパウダー,塩などは省いてあります.単純に材料費だけに着目すると,ジンジャークッキーがもっとも安いことから,それを多く作るのがよいようにみえます.本当にそうすべきでしょうか?

クッキーは事前に作っておく必要があり,そのためには当然作業の時間がかかります.原材料費も大事ですが,むしろ学生にとっては作業時間の方が考慮すべき要因であるようです.作業時間は,大まかに見積もって表 1.2のようになります.1

1材料,作業時間は,http://allrecipes.com/を参照しました.

6 第 1章 線形計画法

図表 1.1 クッキーの種類と原料チョコチップ ブラウニー ショート ジンジャー 材料単価クッキー ブレッド クッキー (円)

バター (カップ) 1 0.5 1 0.75 200

砂糖 (カップ) 1.5 1 0.5 1 50

卵 (個) 2 2 1 30

小麦粉 (カップ) 2.25 0.5 2 2.25 30

チョコチップ (カップ) 2 100

ココアパウダー (カップ) 0.33 240

生姜 (カップ) 0.5 50

材料1セットあたりの枚数 24 12 14 18

1枚あたり単価 25.1 25.4 20.4 17.9

図表 1.2 クッキーの種類と1セットあたりの作業時間チョコチップ ブラウニー ショート ジンジャークッキー ブレッド クッキー

準備時間(分) 10 5 15 120

調理時間(分) 10 25 35 20

ジンジャークッキーの準備時間が長いのは,生地を冷蔵庫で冷やさねばならないからです.材料費は安いものの,時間が取られることを考えると,ジンジャークッキーばかり作るのは得策とはいえません.作業する人の予定によって全体の作業時間を見積もることができます.生地作りや成形などの

準備作業は分担してできるのに対して,オーブンの数が限られているため調理時間は多く取ることができません.前者は 40時間,後者は 20時間確保できると見積もることにします.上記の作業時間内でクッキーを作るものとして,材料費の合計をもっとも安くするにはどのクッ

キーを何枚作ればよいか,という問題を考えてみます.

1.1.2 クッキー製造のモデル化

クッキーの製造枚数を考えるにあたって,考慮すべき要素 (ここでは,製造枚数や作業時間,材料費)を数式で表すことによって製造枚数と要素の関係を明確にすることができます.満たすべき条件をまとめてみましょう.

1. 材料費の合計を小さくしたい.

2. 作る枚数は全部で 1000枚とする.

3. 準備時間は 40時間を越えることはできない.

4. 調理時間は 20時間を越えることはできない.

1.1. クッキー販売の模擬店 7

数式を導入する最初のステップとして,変数を定義します.製造枚数を決めたいので,これを変数としましょう.

x1:チョコチップクッキーの枚数

x2:ブラウニーの枚数

x3:ショートブレッドの枚数

x4:ジンジャークッキーの枚数

材料費の合計を zとすると,材料費と製造枚数の関係は,

z = 25.1x1 + 25.4x2 + 20.4x3 + 17.9x4

となります.枚数の条件は次のように表せるでしょう.

x1 + x2 + x3 + x4 = 1000

作業時間は,次のように考えます.例えば,チョコチップクッキーは,1セットの材料から 24枚つくれるので,これを作業時間の単位とします.つまり,もし 24 枚チョコチップクッキーを作るのであれば,準備時間は 10分,調理時間は 10分かかることを意味します.もし 48枚であれば,それぞれ 20分,20分かかります.したがって,準備時間の条件は,

10 ∗ x1

24+ 5 ∗ x2

12+ 15 ∗ x3

14+ 120 ∗ x4

18≤ 40 ∗ 60

とかけます.あるいは,分数を小数に直して,

0.417x1 + 0.417x2 + 1.071x3 + 6.667x4 ≤ 2400

です.調理時間の条件は,

0.417x1 + 2.083x2 + 2.50x3 + 1.111x4 ≤ 1200

となります.以上より,製造枚数,作業時間の条件を満たしつつ,原材料費を最小化する問題は,

min. z = 25.1x1 + 25.4x2 + 20.4x3 + 17.9x4

s.t. x1 + x2 + x3 + x4 = 1000

0.417x1 + 0.417x2 + 1.071x3 + 6.667x4 ≤ 2400

0.417x1 + 2.083x2 + 2.50x3 + 1.111x4 ≤ 1200

xj ≥ 0, j = 1, . . . , 4

(1.1)

と表すことができます.なお,最後の行の \ xj ≥ 0, j = 1, . . . , 4 "は,

x1 ≥ 0, x2 ≥ 0, x3 ≥ 0, x4 ≥ 0

を略して書いたもので,製造枚数が非負であることを表しています.

このように,与えられた条件の中で,目的となる値を最小 (あるいは最大)にするような変数の値を求める問題を,一般に最適化問題と呼びます.与えられた条件を総称して制約と呼び,制約を構成する条件式を制約式と呼びます.最小 (最大) 化する式は目的関数です.最適化問題 (1.1)は,目的関数と制約式がいずれも 1次式・1次不等式で表されるという特徴があることから,線形計画問題 (linear programming problem)と呼ばれます.線形計画問題の性質や解法の体系をまとめて,線形計画法 (linear programming)といいます.

8 第 1章 線形計画法

計算機を用いて (1.1)を解くと,次の解が得られます.

x1 = 432.0 x2 = 0.0 x3 = 280.0 x4 = 288.0 z = 21705.0

これよりジンジャークッキーを多く作ることが必ずしも適切ではないことがわかりました.よくみると,ブラウニーの製造枚数は 0となっているので,これは作らないということです.方針として4種類全てを作ることになっているので,モデルを少し見直してみましょう.モデルのパラメータの変更によって,計算結果が変わる場合があります.例えば,ブラウニーの材料1セットから作る枚数を 12枚から増やして 15枚とすると,1枚のサイズは小さくなるものの生産効率が上がるためブラウニーを作る方が有利になると期待できます.1セットから 15枚とすると,(1.1)の 2番目の制約式および 3番目の制約式の x2の係数が,それぞれ 0.417→ 0.333,2.083→ 1.667となり,再度計算して

x1 = 229.6 x2 = 447.1 x3 = 0.0 x4 = 323.3 z = 20647.6

を得ます.x3 が 0となり,ショートブレッドを作らないことになってしまいました.何度もパラメータの調整を繰り返して 4種類全てのクッキーをつくるような解を導くことも不可能ではないでしょうが,別のアプローチをしてみます.必ず 4種類作るということは,最低でも作る枚数をあたえてしまってもよいということです.ここでは最低枚数を 100枚としましょう.この条件は,

x1 ≥ 100, x2 ≥ 100, x3 ≥ 100, x4 ≥ 100

と表現できます.非負条件を修正した問題

min. z = 25.1x1 + 25.4x2 + 20.4x3 + 17.9x4

s.t. x1 + x2 + x3 + x4 = 1000

0.417x1 + 0.417x2 + 1.071x3 + 6.667x4 ≤ 2400

0.417x1 + 2.083x2 + 2.50x3 + 1.111x4 ≤ 1200

xj ≥ 100, j = 1, . . . , 4

(1.2)

を解くと,

x1 = 406.2 x2 = 100.0 x3 = 197.1 x4 = 296.7 z = 22067.3

となりました.

演習問題 1.1

クッキーの製造枚数を求める問題で,次の条件はどのように表されるか.

� どの種類のクッキーも 300枚より多く作らない.

� 準備と調理の作業時間の合計が 50時間をこえない.

演習問題 1.2

準備時間,調理時間の制約は変わらないものとして,費用が 2万円以下という条件を加える.総枚数を最大にするための,クッキーの製造枚数を求める線形計画問題を作れ.ただし,少なくともすべてのクッキーを 100枚以上作るものとする.

1.2 線形計画問題のフォーマット

1.2.1 最適化問題と線形計画問題

一般の制約付き最適化問題は ∣∣∣∣ 最小 (大)化 f(x)

条件 x ∈ X(1.3)

1.2. 線形計画問題のフォーマット 9

という形をしています.f(x)は目的関数で,Xは制約領域,xは決定変数です.問題 (1.3)の意味は,制約領域 Xに属する xの中で目的関数 f(x)を最小に (もしくは最大に)する xを求めよ,ということです.線形計画問題の特徴は,

� 目的関数が xの 1次式であること

� 制約領域が,1次式もしくは 1次不等式の組合わせで表されていること

です.この条件が変わると,一見似ていてもまったく性質の異なる問題になります.

1.2.2 線形計画問題の書き換え

線形計画問題を表現するにはいくつかの流儀があります.そのため同じ意味を持つ問題が異なって表現されたりすることがあります.その際,どの流儀が優れているかを考えることにあまり意味はありません.大事なのは,問題の意味を損なわずに適切に書き換えることができることです.ここでは,まずは標準型 (standard form)を紹介します.標準型では,制約式がすべて等式で

す.またすべての変数に非負条件がつきます.

maximize c1x1 + c2x2 + · · ·+ cnxn

subject to a11x1 + a12x2 + · · ·+ a1nxn = b1

a21x1 + a22x2 + · · ·+ a2nxn = b2

...

am1x1 + am2x2 + · · ·+ amnxn = bm

x1 ≥ 0, x2 ≥ 0, . . . , xn ≥ 0

(1.4)

b1, . . . , bm を右辺 (right hand side)とよびます.aij (i = 1, . . . ,m; j = 1, . . . , n)は係数です.係数を次のようにまとめて表すとこともできます.

a11 a12 · · · a1n

a21 a22 a2n

.... . .

...

am1 am2 · · · amn

これは係数行列とよばれています.x1 ≥ 0, x2 ≥ 0, . . . , xn ≥ 0 は非負制約 (nonnegativity con-

straint)です.非負制約や上下限制約を持たない変数は自由変数と呼ばれます.(x1, . . . , xn)が制約条件をすべて満たしているならば,それは実行可能解 (feasible solution)で

す.実行可能解の中で,目的関数を最小化するものを最適解 (optimal solution)とよび,そのときの目的関数の値を最適値とよびます.問題 (1.4))をシグマ記号 \

∑"を使って,以下のように書き表すこともあります.

maximizen∑

j=1

cjxj

subject to

n∑j=1

aijxj = bi, i = 1, . . . ,m

xj ≥ 0, j = 1, . . . , n

(1.5)

10 第 1章 線形計画法

ベクトル表示を用いることもあります.

maximize c>x

subject to Ax = b

x ≥ 0

(1.6)

ただし,

x =

x1

...

xn

c =

c1

...

cn

b =

b1

...

bm

A =

a11 a12 · · · a1n

a21 a22 a2n

.... . .

...

am1 am2 · · · amn

であり,>は転置を表す.2

すべての線形計画問題は,標準型に帰着できます.以下のように,制約に不等式が含まれていても,

maximize c1x1 + c2x2 + · · ·+ cnxn

subject to a11x1 + a12x2 + · · ·+ a1nxn ≤ b1

a21x1 + a22x2 + · · ·+ a2nxn ≤ b2

...

am1x1 + am2x2 + · · ·+ amnxn ≤ bm

x1 ≥ 0, x2 ≥ 0, . . . , xn ≥ 0

(1.7)

スラック変数 xn+1, xn+2, . . . , xn+m を導入することで,

maximize c1x1 + c2x2 + · · ·+ cnxn

subject to a11x1 + a12x2 + · · ·+ a1nxn + xn+1 = b1

a21x1 + a22x2 + · · ·+ a2nxn + xn+2 = b2

...

am1x1 + am2x2 + · · ·+ amnxn + xn+m = bm

x1 ≥ 0, . . . , xn ≥ 0, xn+1 ≥ 0, . . . , xn+m ≥ 0

(1.8)

とすることができます.自由変数を含む場合を考えてみましょう.問題 (1.9)の変数 x1には,非負制約も上下限制約も

与えられていないので,自由変数となります.

maximize c1x1 + c2x2 + · · ·+ cnxn

subject to a11x1 + a12x2 + · · ·+ a1nxn = b1

a21x1 + a22x2 + · · ·+ a2nxn = b2

...

am1x1 + am2x2 + · · ·+ amnxn = bm

x2 ≥ 0, . . . , xn ≥ 0

(1.9)

この場合は,自由変数を二つの非負変数の差で表します.

x1 = x+1 − x−

1 (ただし,x+1 ≥ 0, x−

1 ≥ 0)

2c> = (c1, . . . , cn)である.

1.3. 典型的な問題 11

そうすると,(1.9)は,

maximize c1x+1 − c1x−

1 + c2x2 + · · ·+ cnxn

subject to a11x+1 − a11x−

1 + a12x2 + · · ·+ a1nxn = b1

a21x+1 − a21x−

1 + a22x2 + · · ·+ a2nxn = b2

...

am1x+1 − am1x−

1 + am2x2 · · ·+ amnxn = bm

x+1 ≥ 0, x−

1 ≥ 0, . . . , xn ≥ 0

(1.10)

となります.自由変数を非負変数の差によって表すのではなく,代入によって消去するする方法もあります.

一般の線形計画問題を,標準型に帰着させる方法をまとめておきます.

� 制約に不等式が含まれているならば,不等号の向きを≤にそろえる.スラック変数を導入して,等式にする.

� 自由変数が含まれているならば,

– その変数を代入によって消去するか,

– 二つの非負変数の差によって表す.

演習問題 1.3

以下の問題を標準型の最大化問題に直せ

max 3x1 + 2x2 − 4x3

s.t. −x1 + x3 ≥ 2

x1 + 2x2 + x3 ≤ 5

x1 ≥ 0, −4 ≤ x2 ≤ 5, x3 ≥ 0

演習問題 1.4

以下の標準型の最大化問題の制約式をすべて不等式で表した等価な問題をつくれ

max x1 + x2 + x3

s.t. 2x1 − x2 + 3x3 + x4 = 6

−x1 − 4x2 + 2x3 + x5 = 5

x1 , x2 , x3 , x4 , x5 ≥ 0

1.3 典型的な問題

1.3.1 食餌問題

サラダづくり

この節は,Lancaster(1992)を参照しました.食餌問題 (diet problem)は,線形計画法の古典的な応用例です.何らかの制約をみたした上で,

配分・配合を決める問題の基本型といっていいでしょう.同じ形式の実務上の問題も数多く存在します.

12 第 1章 線形計画法

図表 1.3 可食部 100g当たりの栄養素食品名 エネル

ギー水分 たんぱ

く質脂質 炭水化

物灰分 食塩相

当量ビタミン B1

ビタミン C

コレステロール

(kcal) (g) (g) (g) (g) (g) (g) (mg) (mg) (mg)

かぼちゃ 60 84 1.9 0.1 13.3 0.7 0 0.08 16 0

だいこん 18 94.6 0.4 0.1 4.1 0.6 0 0.02 11 0

たまねぎ 26 93 0.6 0.1 6.1 0.2 0 0.03 5 0

トマト 19 94 0.7 0.1 4.7 0.5 0 0.05 15 0

にんじん 37 89.6 0.6 0.1 9 0.7 0.1 0.04 4 0

もやし 34 93 2.9 1.6 2.2 0.3 0 0.04 1 0

レタス 12 95.9 0.6 0.1 2.8 0.5 0 0.05 5 0

図表 1.4 野菜の値段 (100gあたり):2003年 3月 15日の取引価格

インデックス 1 2 3 4 5 6 7

品名 かぼちゃ だいこん たまねぎ トマト にんじん もやし レタス値段 (円) 136.5 157.5 273.0 136.5 157.5 50.0 147.0

この問題を一言で言うと,「必要な栄養の基準を満たし,かつもっともコストの低い食餌は何か?」です.単純な問題を例にとって説明しましょう.表 1.33にある野菜を使って,野菜サラダをつくります.いくつかの栄養素の中から,たんぱく

質,ビタミン B1,ビタミン Cに着目しました.これらの栄養素を一定の量以上取ることができて,かつできるだけ安くするためには,どの野菜をどれだけ買えばよいのでしょうか.栄養素の必要量は,それぞれ 10g,0.5mg,50mgとしました4.価格は表 1.4にある通りです.変数として,インデックス j (j = 1, . . . , 7)の野菜の量を xj(100g)とします.すると,野菜をそ

れぞれ x1, . . . , x7 用いると,各々の野菜から摂取できるたんぱく質の合計は,

1.9x1 + 0.4x2 + 0.6x3 + 0.7x4 + 0.6x5 + 2.9x6 + 0.6x7

となります.同様に,ビタミン B1は,

0.08x1 + 0.02x2 + 0.03x3 + 0.05x4 + 0.04x5 + 0.04x6 + 0.05x7

と表され,ビタミン Cは,

16.0x1 + 11.0x2 + 5.0x3 + 15.0x4 + 4.0x5 + 1.0x6 + 5.0x7

となります.また価格の合計は,

136.5x1 + 157.5x2 + 273.0x3 + 136.5x4 + 157.5x5 + 50.0x6 + 147.0x7

です.栄養成分の要求量をみたし,かつ価格を最小にするには,以下の問題を解けばよいことにな

3食品データベースシステム (http://food.tokyo.jst.go.jp/) を利用しました.4「第6次改定日本人の栄養所要量」によると,18~29才の男性 (女性)が 1日に必要な量は,たんぱく質 70(55)g,ビ

タミン B1 1.1(0.8)mg,ビタミン C 100(100)mg だそうです.

1.3. 典型的な問題 13

ります.

min 136.5x1 + 157.5x2 + 273.0x3 + 136.5x4 + 157.5x5 + 50.0x6 + 147.0x7

subject to 1.9x1 + 0.4x2 + 0.6x3 + 0.7x4 + 0.6x5 + 2.9x6 + 0.6x7 ≥ 10

0.08x1 + 0.02x2 + 0.03x3 + 0.05x4 + 0.04x5 + 0.04x6 + 0.05x7 ≥ 0.5

16.0x1 + 11.0x2 + 5.0x3 + 15.0x4 + 4.0x5 + 1.0x6 + 5.0x7 ≥ 50

xj ≥ 0, j = 1, . . . , 7

(1.11)

問題 (1.11)を解くと,最適解として,

x1 = 2.679 x2 = 0.0 x3 = 0.0 x4 = 0.0 x5 = 0.0 x6 = 7.143 x7 = 0.0

が得られます.残念ながら,かぼちゃともやしだけではあまり食欲はそそりません.しかも値段はなんと 722.8円です.現実に活かすためにはもっと定式化に工夫が必要でしょう.

参考:食餌問題の系譜

はじめて食餌問題を論じたのは,Stigler[7]です.この時点では,まだ線形計画問題の効率的な解法は知られていませんでした.Stigler は,当時の代表的と思われる食品 77品目を対象に,カロリー,たんぱく質,カルシウム,鉄分,ビタミン A,ビタミン B1,ビタミン B2,ナイアシン,ビタミンCの必要量を考慮した問題を解いています.結果はやはり万人向けとは言いがたいメニューです (表 1.5).彼自身,論文でこう述べています.

No one recommends these diets for anyone, let alone everyone.

図表 1.5 Stiglerの結果:一日の摂取量

品名 小麦粉 キャベツ ほうれん草 パンケーキ粉 牛レバー量 535 lb. 107 lb. 13 lb. 134 lb. 25 lb.

Dantzigが線形計画法を解くためのアルゴリズムである単体法 (simplex method) を開発したのは 1947年です.1950年代初頭,医者から減量を指示された Dantzig は,自ら開発した手法で,500種以上の食品を対象に食餌問題を解くことにしました ([2]).最初に解いた問題から得られたメニューでは,酢を 500ガロン (約 1890L5 )飲むべしとなったそうです.これは,酢のデータの作り方に問題があったせいでした.酢を食品リストからはずして再度解いてみたところ.今度のメニューでは,一日に 200個の固形ブイヨンを食べよ,となりました.それでもへこたれずに,制約を見直して6再挑戦したら,ふすま (bran)を 2ポンド (約 900g)食べるはめになりました.さらに,ふすまの量に上限を課し,4度目に解いたところ,糖蜜 (blackstrap molasses)が 2ポンド (約 900g)

とでてきました.ここにいたって,奥さんが減量メニューは自分で作ると宣言したので,Dantzig

もあきらめたようです.問題の設定は単純なのですが,現実的な解を導くのは簡単ではないようです.しかし,多くの

工夫を用いることで,線形計画法によって,栄養の条件を満たし,適度に美味しく,かつバラエティにとんだメニューをつくることは可能です.実際に病院,療養所,介護施設,学校,刑務所などで,この手法が用いられて成果を上げています.一定期間にわたるメニューの構成を考える問題は,メニュー・スケジューリング問題と呼ばれていて,線形計画問題よりやや解くのが難しい問題として定式化する必要があります.

51 升瓶千本以上です.6Dantzigは,ブイヨンの個数を変えてつくったスープを飲んで,一日 3個までなら大丈夫であることを確認しています.

14 第 1章 線形計画法

Fletcher, Soden, Zinober[5]の用いた方法をみてみることにしましょう.彼らは,モデル化において,次の点を工夫しています.

� 目的関数を費用ではなく,主観的な受け入れやすさとした

� 食品の候補に個人の選好を反映させた

� 制約に自由度を持たせた

病院で特定の患者に対して食餌を処方する場合を考えます.患者は栄養士といっしょに現在の食餌の情報を入力し,これが出発点になります.ついで,患者に必要な栄養成分を入力すると,新しいメニューが出力されます.これは,栄養の必要量を満たしているメニューのなかで,現在の食餌にもっとも \近い"ものが提示されます.通常は,ここで提案されるメニューは患者の好みとは一致しない場合が多いので,モデルを改良するプロセスに入ります.

1. 上下限を導入する

2. 比率の制約を導入する

3. 必要栄養成分を調整する

4. 食品の追加,削除,入れかえを行う

定式化の詳細も興味深い内容を含んでいますが,LPを習い始めたばかりでは手に余るかもしれません.今回は触れないでおきます.論文に載っていた,慢性腎不全の患者のためのメニューだけを紹介しましょう.表 1.6がその結果です.回数をおうごとに,制約が見直され,そのためにだんだんと食品の構成が現実的になっていくことが見て取れます.

図表 1.6 病院食メニューの推移食品名 食品の量 (g)

1(現状) 2 3 4 5

フルーツ入りミューズリー 50 50 112 50 50

ヨーグルト 125 0 63 63 63

紅茶 200 0 100 200 200

コーヒー 200 0 100 200 100

全麦パン 70 70 0 70 70

カッテージ・チーズ 75 75 265 75 75

胡椒 1 1 99 1 1

梨 100 100 0 100 100

ローストチキン 150 95 0 82 82

にんにく 10 10 10 10 10

有塩バター 10 10 54 10 10

マッシュポテト 75 0 38 38 38

トマトソース・スパゲッティ 75 259 75 75 75

りんご 20 254 667 57 57

ミルクチョコレート 50 223 53 50 98

牛乳 200 0 100 100 100

レモン・メレンゲ・パイ (200) | | 297 220

1.3. 典型的な問題 15

1.3.2 配合を決める問題

食餌問題とおなじ形式をもつ問題をいくつか見てみましょう.

家具製造工場の問題

ある家具製造工場では,3種類の原木を用いて5種類の家具を作ることができます.それぞれの家具1つあたり用いる原木の量,原木の価格,および,家具の価格は表 1.7で与えられています.

図表 1.7 製品 1単位に必要な原木の量

机 1 机 2 椅子 1 椅子 2 戸棚 価格 (千円/単位)

原木 A 4.5 2.0 1.5 1.2 8.0 2

原木 B 1.0 3.0 0.5 1.0 2.0 4

原木 C 0 1.0 0.5 0 4.0 8

価格 (千円) 45 60 15 20 150

原木の購入できる量には上限があり,原木A,B,Cそれぞれについて,150,100,200単位です.原木の購入予算が 150万円であるとき,売上が最大になるような製品の組合せは求めるにはどうすればよいでしょうか.ただし,つくった家具が売れ残ることはないと仮定します.[定式化]

製造する家具の量を,机 1については x1,机 2については x2,椅子 1については x3,椅子 2

については x4,戸棚については x5 とします.また,原木 A,B,Cの購入量を y1,y2,y3 とします.製作数×単価で売上なので,それをすべての製品について加えた総売上が目的関数です.1~3

本目の制約は原木の使用量が購入量を上回らないための条件です.4本目は予算制約,5本目は購入量の上限制約です.

max 45x1 + 60x2 + 15x3 + 20x4 + 150x5

s.t. 4.5x1 + 2.0x2 + 1.5x3 + 1.2x4 + 8.0x5 − y1 ≤ 0

1.0x1 + 3.0x2 + 0.5x3 + 1.0x4 + 2.0x5 − y2 ≤ 0

1.0x2 + 0.5x3 + 4.0x5 − y3 ≤ 0

2y1 + 4y2 + 8y3 ≤ 1500

y1 ≤ 150, y2 ≤ 100, y3 ≤ 200

x1, x2, x3, x4, x5, y1, y2, y3 ≥ 0

(1.12)

[計算結果]

(1.12)を解くと,

x1 = 18.8 x2 = 20 x4 = 21.2 x3 = x5 = 0

y1 = 150 y2 = 100 y3 = 100

となりました.

16 第 1章 線形計画法

農家の問題

[8]を参照しました.農家が,夏にんじん,春大根,春キャベツ,春白菜7の作付を計画しています.栽培可能な面積

は 100aです.これらの野菜が旬をむかえる4,5,6月は,収穫のためたいへん忙しくなるため,労働時間を考慮して計画を立てる必要があります.必要なデータは,表 1.8,1.9に示した通りです.予想収益を最大にするには,どの野菜をどれくらい栽培するのがよいでしょうか?

図表 1.8 単位作付面積当たりの必要労働時間と予想収益夏にんじん 春大根 春キャベツ 春白菜

4月 6.9 71.0 2.0 33.0

5月 2.6 0.0 28.0 0.0

6月 70.0 0.0 0.0 0.0

予想収益 29.8 10.4 13.8 19.8

図表 1.9 月別の投入可能労働時間投入可能な労働時間

4月 260

5月 280

6月 290

[定式化]

夏にんじんの栽培面積を x1(a),春大根の栽培面積を x2(a),春キャベツの栽培面積を x3(a),春白菜の栽培面積を x4(a) とします.目的関数は予想収益を表し,農地面積と各月の投入可能な労働時間が制約となります.

max 29.8x1 + 10.4x2 + 13.8x3 + 19.8x4

s.t. x1 + x2 + x3 + x4 = 100

6.9x1 + 71.0x2 + 2.0x3 + 33.0x4 ≤ 260

2.6x1 + 28.0x3 ≤ 280

70.0x1 ≤ 290

xj ≥ 0, j = 1, . . . , 4

[計算結果]

計算の結果,最適な栽培計画は

x1 = 4.14 x2 = 0 x3 = 9.62 x4 = 6.43

となりました.

債券のポートフォリオ

債券を特徴づける指標には,次のようなものがあります.7ここで,夏にんじんは前年 12 月下旬に播種して初夏に収穫,春大根は 1 月中旬播種/春収穫,春キャベツは前年 11

月上旬播種/春収穫,春白菜は前年 12 月播種/春収穫,としています.

1.3. 典型的な問題 17

� 価格:取引価格

� 満期利回り:利回りをあらわす指標

� 残存年数:満期までの期間

� クーポン・レート:利付き債のクーポンの額面に対する比率

� デュレーション:利子率の変化に対する利付き債価格の感応度をあらわす指標

詳しくはファイナンスなどの授業で勉強してください.今,7つの債券に対してこれらの指標の値を求めると,表 1.10のようになりました.

図表 1.10 投資可能な債券名前 債券 1 債券 2 債券 3 債券 4 債券 5 債券 6 債券 7

価格 106.08 111.39 104.81 92.53 97.09 105.63 142.20

満期日 (年) 2 2.5 3.5 4 6 7.5 9

クーポン・レート (%) 5 6 4 2 3 4 7

デュレーション 1.86 2.24 3.12 3.71 5.08 5.76 5.81

満期利回り (%) 2.19 2.41 2.71 2.83 3.08 3.31 3.51

この 7つの債券に投資を行い,債券ポートフォリオを構成しようと思います.投資の条件や債券ポートフォリオが満たすべき性質を次のように定めました.

� 投資総額は,1千万円.

� ポートフォリオの平均クーポンレートは,5%以上.

� ポートフォリオのデュレーションは,4以下.

� 一つの債券への投資額は,最大で予算の 40%.

� ポートフォリオの満期利回りを最大化する.

� 取引手数料や税金は無視する.債券は無限に分割可能とする.

ここで重要なのは,ポートフォリオの満期利回り,デュレーション,平均クーポンレートは,すべてポートフォリオを構成する債券の重みつき平均として計算されるということです.例をあげると,債券 1と債券 2に 50%づつ投資を行うと,その結果得られるポートフォリオの満期利回りは,

0.5 ∗ 2.19 + 0.5 ∗ 2.41 = 2.30(%)

となります.では,債券ポートフォリオを求める問題を定式化してみましょう.債券 jの購入枚数(1万枚)を xj (j = 1, . . . , 7)とおきます.予算制約は,

106.08x1 + 111.39x2 + 104.81x3 + 92.53x4 + 97.09x5 + 105.63x6 + 142.20x7 ≤ 1000

となります.ポートフォリオのクーポン・レートとデュレーションはをあらわすには,その重み(投資比

率)が必要です.債券1を例にとると,x1単位購入すると,その価格は 106.08x1なので,重みは

18 第 1章 線形計画法

106.08x1/1000です.ポートフォリオのクーポン・レートとデュレーションに関する制約は,それぞれ,

5 ∗ 106.08x1 + 6 ∗ 111.39x2 + 4 ∗ 104.81x3 + 2 ∗ 92.53x4 + 3 ∗ 97.09x5

+ 4 ∗ 105.63x6 + 7 ∗ 142.20x7 ≥ 5 ∗ 1000

1.86 ∗ 106.80x1 + 2.24 ∗ 111.39x2 + 3.12 ∗ 104.81x3 + 3.71 ∗ 92.53x4

+ 5.08 ∗ 97.09x5 + 5.76 ∗ 105.63x6 + 5.81 ∗ 142.20x7 ≤ 4 ∗ 1000

と表される.目的関数となるポートフォリオの満期利回りも同様に考えて

(2.19 ∗ 106.08x1 + 2.41 ∗ 111.39x2 + 2.71 ∗ 104.81x3 + 2.83 ∗ 92.53x4

+ 3.08 ∗ 97.09x5 + 3.31 ∗ 105.63x6 + 3.51 ∗ 142.20x7)/1000

となります.投資比率の上限制約は,以下のとおりです.

106.08x1 ≤ 0.4 ∗ 1000 111.39x2 ≤ 0.4 ∗ 1000 104.81x3 ≤ 0.4 ∗ 1000 92.53x4 ≤ 0.4 ∗ 1000

97.09x5 ≤ 0.4 ∗ 1000 105.63x6 ≤ 0.4 ∗ 1000 142.20x7 ≤ 0.4 ∗ 1000

以上をまとめると,債券ポートフォリオの最適化問題は,∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣

maximize 0.232x1 + 0.269x2 + 0.284x3 + 0.262x4 + 0.299x5 + 0.349x6 + 0.499x7

subject to 106.08x1 + 111.39x2 + 104.81x3 + 92.53x4 + 97.09x5 + 105.63x6 + 142.20x7 ≤ 1000

0.530x1 + 0.668x2 + 0.419x3 + 0.185x4 + 0.291x5 + 0.423x6 + 0.995x7 ≥ 5

0.197x1 + 0.249x2 + 0.327 + x3 + 0.344x4 + 0.493x5 + 0.608x6 + 0.826x7 ≤ 4

106.08x1 ≤ 400, 111.39x2 ≤ 400, 104.81x3 ≤ 400, 92.53x4 ≤ 400,

97.09x5 ≤ 400, 105.63x6 ≤ 400, 142.20x7 ≤ 400

xj ≥ 0 j = 1, . . . , 7

(1.13)

と定式化できます.これを解くと,最適な投資額は,

(x∗1, x∗2, x∗3, x∗4, x∗5, x∗6, x∗7) = (0, 1.84, 3.82, 0, 0, 0, 2.78)

となりました (単位は 1万枚).

果物の分配

3人で,みかん 20個とりんご 20個と梨 5個をわけることにしました.Aさんは,みかん 1つを交換するのに,りんごなら 1.2個,梨なら 1.5個を要求しています.みかん 1つに対して,Bさんはりんご 0.8個,梨 1.1個,Cさんはりんご 1.4個,梨 0.8個の比率です.今,みかん一個から得られる満足度が3人とも等しいとするなら,全員の満足度の合計を最大にするにはどのようなわけ方をすべきでしょうか.線形計画問題として定式化しなさい.ただし,どの果物も必要なら切ってわけても構いません.

1.3. 典型的な問題 19

また,分配された果物の数を等しくする (この場合は一人 15個)という条件がついた場合はどうなるでしょうか?[定式化]

Aさんが得るみかん,りんご,梨の個数を x1,x2,x3 で表します.同様に Bさんの得るみかん,りんご,梨の個数を y1,y2,y3,Cさんは z1,z2,z3 とします.満足度を表す変数も導入しましょう.Aさん,Bさん,Cさんの満足度をそれぞれ,uA, uB, uCとします.満足度をみかんの個数で換算して表す8とすると,交換比率から,

uA = x1 +1

1.2x2 +

1

1.5x3

uB = y1 +1

0.8y2 +

1

1.1y3

uC = z1 +1

1.4z2 +

1

0.8z3

となるはずです.りんご,みかん,梨の個数が与えられているので,以下のように定式化することができます.

max uA + uB + uC

s.t. uA − x1 − 11.2x2 − 1

1.5x3 = 0

uB − y1 − 10.8y2 − 1

1.1y3 = 0

uC − z1 − 11.4z2 − 1

0.8z3 = 0

x1 + y1 + z1 = 20

x2 + y2 + z2 = 20

x3 + y3 + z3 = 5

xj ≥ 0, j = 1, 2, 3

yj ≥ 0, j = 1, 2, 3

zj ≥ 0, j = 1, 2, 3

(1.14)

この問題は,わざわざ LPに定式化しなくても解けます.梨とりんごは,それをもっとも欲しがる人に全部あげれば満足度の合計は高くなります.みかんは,皆が同じ満足度なので,どのようにわけても満足度の合計は変化しません.したがって,Cさんに梨をすべて与え,Bさんにりんごをすべて与えればよいのです (みかんは自由にわけてよい).分配後の個数に制約がある場合は,次の制約を (1.14)に付け加えてください.

x1 + x2 + x3 = 15

y1 + y2 + y3 = 15

z1 + z2 + z3 = 15

この場合,果物の配分は図表 1.11のようになります.

演習問題 1.5

1. 上記の果物の分配の問題では,配分する果物の個数を等しくして,3人の効用の合計を最大化した.

ここで条件を変えて,果物の個数は等しくなくてもよいかわりに,全員の効用を等しくして,かつその効用を最大化するものする.この問題を定式化せよ.

8みかんが基準財 (numeraire) というわけです.

20 第 1章 線形計画法

図表 1.11 果物の分配名前 満足度 みかん りんご 梨Aさん 14.2 10 5 0

Bさん 18.8 0 15 0

Cさん 16.3 10 0 5

2. 次に,果物の配分個数を等しく 15個としたうえで,効用がもっとも低い人の値をなるべく大きくするものとする.すなわち,目的関数を,

min{uA , uB , uC}→ 最大化とする.ただし,x, y, z の中から最小のものを選ぶ関数min{x, y, z}は,x, y, z に関する線形な関数でないので,このままの形では線形計画問題にならない.定式化を工夫することで,線形計画問題としてモデル化せよ.

演習問題 1.6

ビタミン剤

製薬会社 K2コーポレーションがビタミン剤をつくっている.これには,ビタミン Aが重量比で 8%,ビタミン Bが重量比で 4%,ビタミン Cが重量比で 2%以上含まれていなければならない.一方,各ビタミン成分をつくるのに,4種類の原材料を用いることができる.原材料 1gから精製される各ビタミン成分の量は,表 1.12の通りである.例をあげると,1gの原材料 1を精製することで,ビタミン A,B,Cがそれぞれ 0.03g,0.02g,0.01gを入手できる.

図表 1.12 原材料から精製されるビタミンのの量原材料費 (円/g) ビタミン A ビタミン B ビタミン C

原材料 1 8 0.03 0.02 0.01

原材料 2 10 0.06 0.04 0.01

原材料 3 11 0.10 0.03 0.04

原材料 4 14 0.12 0.09 0.04

ビタミン剤 20kgの生産に対して,最も原材料の費用を低くするには原材料をそれぞれいくらずつ購入するのがよいか.

演習問題 1.7

ある工場では,原材料 A,B,C,Dから2種類の製品を製造している.親会社との契約で,製品 P1 を d1 単位,P2 を d2 単位の量を価格 pc

1,pc2 で納入しなければならない.それ以上生産

した分は,市場価格は pm1 ,市場価格は pm

2 で販売することができる.

製品 Pi (i = 1, 2)を1単位作るために必要な原材料 A,B,C,Dの量は,それぞれ aAi ,aB

i ,aC

i ,aDi 単位である.原材料 A,B,C,Dの1単位当たりの価格をそれぞれ qA,qB,qC,qD

とし,予算が b であるとき,この工場の最適な生産計画を表す問題を作れ.ただし,売れ残りは考えないことにする.

演習問題 1.8

キャンディーづくり

1. 今,あなたの手元には,80kg の砂糖と 20kg のナッツ,30kg のチョコレートがある.あなたは,これを使って 2種類のキャンディーをつくり,一儲けしようとしている.チョコキャンディーには,重量比で 20%のチョコレートが含まれていなくてはならない.また,ミックスキャンディーには,重量比で 10%のチョコレートと 10%のナッツが含まれていなくてはならない (残りの成分は砂糖である).チョコキャンディー 1kgは 5千円で,ミックスキャンディーは 6千円で売ることができる.売り上げを最大にするには,それぞれのキャンディーをいくらつくればよいか.

1.3. 典型的な問題 21

2. キャンディーの製造計画を考えていたあなたは,何も手持ちの原材料だけにこだわることはないことに気が付いた.原料を買ってきて,もっと多くのキャンディーを作ることもできるはずだ.砂糖,ナッツ,チョコレートの 1kgあたりの費用は,それぞれ 1200 円,2000

円,1600 円であった.残念ながらあなたの時間には限りがあるので,つくることができる量は,両方のキャンディーをあわせて 120kgまでである.収益 (=売り上げ─追加した材料の購入額)を最大にするには,それぞれのキャンディーをいくらつくればよいか.

3. 時間が足りないなら,友だちに応援を頼むのはどうだろうか.友だちが 1時間手伝ってくれれば,両方のキャンディーをあわせて 10kg多くつくることができそうだ (つまり,2時間手伝ってもらえれば,あわせて 140kgつくれる).友だちに払う時給を 1500 円として,新たな製造計画をつくれ.ただし,友だちが手伝ってくれる時間は 4時間までである.

演習問題 1.9

ジュース

1. 食品メーカー K1 社は,農家からオレンジを購入して,袋づめにして売っている.また,オレンジを加工してジュースをつくり,販売している.また,すでに加工済のグレープフルーツジュースを購入して,オレンジジュースと混ぜてミックスジュースをつくっている.予算が 500万円あったとして,表 1.13の情報に基づいて,売り上げを最大にする原料の購入量,商品の製造量を求めよ.

図表 1.13 原料と価格の情報オレンジ 1kgの購入価格: 300 円オレンジ 1kgの販売価格: 500 円

オレンジジュース 1kgの販売価格: 600 円オレンジジュース 1kgに必要なオレンジの重量: 0.8kg

グレープフルーツジュース 1kgの購入価格: 250 円ミックスジュース 1kgに必要なオレンジジュースの量: 0.5 kg

ミックスジュース 1kgに必要なグレープフルーツジュースの量: 0.3 kg

ミックスジュース 1kgの販売価格: 800 円

2. 前の問題で与えられた情報に加えて,需要の予測が手に入った.オレンジジュースとミックスジュースの需要が,それぞれ 3000kgと 1500kgであるとして,需要を必ず満たしたうえで,売り上げを最大にする原料の購入量,商品の製造量を求めよ.なお,この需要は最低満たすべき需要であり,超過分もすべて売れるものとする.

3. 前の問題では,需要は必ず満たす必要があった.今度は,必ずしも需要を満たさなくても良いが,不足分にはペナルティがかかることにする.オレンジジュースの不足に対しては,1kgあたり 200円,ミックスジュースの方は 1kg

あたり 300円のペナルティーがかかる.売り上げから (もしあれば)ペナルティーを引いた額が最大になるように製造計画を立てよ.需要を超過した分もすべて売れるものとする.

4. 前の問題の設定では,需要の超過分はすべて売れるものとした.新たに,需要の超過分は安い価格でしか処分することができないものとする.超過分については,オレンジジュース,ミックスジュースがそれぞれ 1kgあたり,100 円,120 円ですべて売り切ることができるとしたとき,最適な製造計画を立てよ.

1.3.3 時間軸を含む問題

前節の問題は 1時点だけを考慮して配分を決めていました.今度は,一定の期間にわたる配分を決める問題を考えましょう.このタイプの問題は,状態が時間に応じて変化する場合に多く見られます.配分の基本は同じですが,時点間の関係をうまく表現する必要があります.

22 第 1章 線形計画法

クッキーの作成スケジュール

大学祭で販売するクッキーは手作りです.材料を買ってきて,クッキーを焼き,袋づめをするまで,すべて自分達でこなさなければなりません.昨年は,責任者がいい加減な計画しか作らなかったせいで,サークルのメンバー全員が直前になってたいへん忙しい思いをしました.今年の責任者であるあなたは,まともな計画を立てるよう圧力をかけられています.

計画では 4種類のクッキーをつくることになっています.しかし,スケジュールを計画するために単純化して,1種類だけ作ることにしましょう.このクッキーは一度に 20枚焼けるものとし,その時間は 18分であるとします9.1000枚をつくるには,のべ 50回クッキーを焼く工程が必要です.単純計算で,50× 18=900分かかることになります.材料をまぜて生地を作る工程は手分けして効率的に進めることができるので,調理(オーブン

で焼く工程)時間の配分のみに着目して作業スケジュールを考えてみましょう.オーブンを持っている部員に,大学祭直前の 5日間に作業にさける時間を聞いたところ,表 1.14のような回答をえました.作業可能な時間は優先度によって高・中・低の三つに分かれています.優先度高として計上されている時間は,クッキー作成のために優先的に使える時間です.優先度中は,クッキー作成のため使ってもいいが,他のこともしたいと考えている時間で,優先度低は,できればクッキー作成以外のことに使いたいと考えている時間です.優先度の大小を数値で表現するために,次の質問をしてみました.

優先度高の時間にクッキーをつくるときに時給 500円がもらえるとして,優先度中の時間にクッキーをつくるときに時給はいくらほしいか.また,優先度低の時間ではいくらか.

それにたいして,優先度中のときは 600円,優先度低のときは 750円という回答がえられました.これにもとづき,時間の重みとして,

優先度高 :優先度中 :優先度低 = 500 : 600 : 750 = 1 : 1.2 : 1.5

を採用することにします.

図表 1.14 大学祭までの 5日間に使える労働時間

準備期間 1日目 2日目 3日目 4日目 5日目優先度高(時間) 4 5 1 3 1

優先度中(時間) 2 2 2 2 2

優先度低(時間) 4 4 2 2 2

ここで重要なことをあなたは思い出しました.毎年そうなのですが,出来上がって部室においてあるクッキーを,味見と称して部員がつまみ食いしてしまうのです.あまりきびしく注意すると作業に協力してもらえなくなるので,手間賃だと割りきることにしました.どうやらつまみ食いによってなくなる量は一定の比率にしたがい,一日あたりおいてあるクッキーの 10%と見積もることができるようです.つまみ食いの総量を減らすには,なるべくクッキーを長時間部室においておかないことです.だ

から大学祭直前に集中的に作ってしまうのがよいのですが,一方で投入できる作業時間には限りがあります.あなたの目標は,予定の製品数を達成し,かつなるべく優先度の低い労働時間を減らすことです.準備期間中の作業時間をどのように配分してクッキーを作成すべきでしょうか.

91.1.2 節での最適な作成枚数を重みとして 4 種のクッキーの調理時間の平均を取ると約 18.3 分となります.

1.3. 典型的な問題 23

問題を定式化するにあたって,次のような記法を用います.

xt:t日目に作るクッキーの枚数 (t = 1, . . . , 5)

yt:t日目までに作った累計クッキー数 (t = 1, . . . , 5)

ut:t日の優先度高の作業時間 (t = 1, . . . , 5)

vt:t日の優先度中の作業時間 (t = 1, . . . , 5)

wt:t日の優先度低の作業時間 (t = 1, . . . , 5)

一日の作成枚数とその日までの累計枚数の関係は,次のようになります.例として,3日目を考えましょう.2日目までに作ったクッキーの累計枚数は y2です.そのうちの 10%が消費されてしまうので,3日目には 0.9y2が残っています.3 日目に作成する量は x3なので,3日目の累計枚数 y3 は

y3 = x3 + 0.9y2 (1.15)

となります.作成枚数と作業時間の関係を,やはり 3日目の例で見てみます.3日目の作成枚数は x3枚です.

18分で一度に 20枚焼けるとしているので,必要な作業時間は 1860 ∗ x3

20 = 0.015x3(時間)と見積もります.作業にあてられる時間の制約は,

0.15x3 ≤ u3 + v3 + w3, u3 ≤ 1, v3 ≤ 2, w3 ≤ 2 (1.16)

と表されます.目的関数は,優先度に応じた重みをつけて評価した作業時間とします.

u1 + u2 + u3 + u4 + u5 + 1.2v1 + 1.2v2 + 1.2v3 + 1.2v4 + 1.2v5

+1.5w1 + 1.5w2 + 1.5w3 + 1.5w4 + 1.5w5 (1.17)

(1.15)(1.16)(1.17)をまとめると次のような問題になります.

min

5∑t=1

ut +

5∑t=1

1.2vt +

5∑t=1

1.5wt

s.t. y1 = x1

y2 = x2 + 0.9y1

y3 = x3 + 0.9y2

y4 = x4 + 0.9y3

y5 = x5 + 0.9y4

y5 ≥ 1000

0.015x1 ≤ u1 + v1 + w1,

0.015x2 ≤ u2 + v2 + w2,

0.015x3 ≤ u3 + v3 + w3,

0.015x4 ≤ u4 + v3 + w4,

0.015x5 ≤ u5 + v3 + w5,

u1 ≤ 4, u2 ≤ 5, u3 ≤ 1, u4 ≤ 3, u5 ≤ 1

v1 ≤ 2, v2 ≤ 2, v3 ≤ 2, v4 ≤ 2, v5 ≤ 2

w1 ≤ 4, w2 ≤ 4, w3 ≤ 2, w4 ≤ 2, w5 ≤ 2

xt ≥ 0, yt ≥ 0, ut ≥ 0, vt ≥ 0, wt ≥ 0, t = 1, . . . , 5

(1.18)

24 第 1章 線形計画法

図表 1.15 クッキーの作成スケジュール準備期間 1日目 2日目 3日目 4日目 5日目

優先度高 (ut) 0 5 1 3 1

優先度中 (vt) 0 0 2 2 2

優先度低 (wt) 0 0 0 0 1.4

作成枚数 (xt) 0 333.3 200.0 333.3 295

累計枚数 (yt) 0 333.3 500.0 783.3 1000

(1.18)を解いた結果は表 1.15となりました.ポイントとなるのは,5日間のうち実際の作業は 4

日間で済むこと,また 5日目のみ優先度の低い時間を使うことなどです.あとは,この計算結果を出発点として,作業に携わる人と相談しながら実際の作業スケジュールを作ることになるでしょう.念のために,つまみ食いの比率をかえて計算してみました.なぜならこの数値が一番大雑把な

見積もりだからです.比率を 0.02と 0.2の場合の結果を表 1.16に示しました.つまみ食いの比率が倍になっても,それほど大きな変化はないようですが,つまみ食いの比率を 0.02とすると,1 日目から作業が始まるようになります.そのかわり,優先度が低い時間は使いません.もしどうしても優先度の低い時間を使いたくないなら,部員に厳しく注意してつまみ食いの比率を減らす努力をしてもよいかもしれません.

図表 1.16 つまみ食いの比率を変えた場合のスケジュール比率 準備期間 1日目 2日目 3日目 4日目 5日目0.02 優先度高 (ut) 4 5 1 3 1

優先度中 (vt) 0 0 0 0 1.7

優先度低 (wt) 0 0 0 0 0

作成枚数 (xt) 266.7 333.3 66.7 200 180.28

累計枚数 (yt) 266.7 594.7 649.4 836.5 1000

0.2 優先度高 (ut) 0 4.8 1 3 1

優先度中 (vt) 0 0 2 2 2

優先度低 (wt) 0 0 0 2 2

作成枚数 (xt) 0 322.9 200.0 466.7 333.3

累計枚数 (yt) 0 322.9 485.3 833.3 1000

クッキーの作成スケジュールの問題は,在庫問題と見なせます.つまみ食いされてしまうクッキーの量は,一般的には保管費用と位置づけることができるでしょう.

土地の開墾

農家が荒地を開墾して 5年間かけて 100ヘクタールの畑地を作るつもりでいます.開墾した土地は翌年から作物を植えて,収入を得ることができます.1単位の投資額により 5ヘクタールの土地の開墾が可能です.作られた畑地 1ヘクタールからは 0.25単位の収入が得られます.一方で,5年間の間には,借金の返済や機材の購入などで以下のような資金需要が発生します.

2年目:10単位 4年目:40単位 5年目:20単位

この資金需要に対応し,かつ 100ヘクタールの畑地を作るためには,最低で何単位の初期投資額が必要で,各年度に何ヘクタールの土地を開墾するべきでしょうか.

1.3. 典型的な問題 25

変数を以下のようにおきます.

x0:初期投資額

xt:t年の投資額 (t = 1, . . . , 5)

yt:t年末の畑地面積 (t = 1, . . . , 5)

zt:t年末の保有額 (t = 1, . . . , 5)

2年目を例にとり,お金の動きと畑地の関係を見てましょう.2年目に x2単位の投資をすると,その年の終わりは 5x2 ヘクタールの畑地が新たに得られます.したがって,

y2 = y1 + 5x2

という関係が得られます.2年目の支出として,10単位の支払いがあり,x2 単位を開墾に使います.収入は,前年度の繰越金 z1とその年の収穫から得られる 0.25y1です(2年目に畑地として使えるのは y2 ヘクタールではなく y1 ヘクタールであることに注意してください).よって,

z2 = z1 − 10 − x2 + 0.25y1

となります.開墾のための投資は年度の始めに行うので,前年度末の保有額以上の投資はできないものとします.すると,投資額に上限が存在して,x2 ≤ z1 と表されます.以上をまとめると,次のような問題が得られます.

min x0

s.t. z1 = x0 − x1

z2 = z1 − 10 − x2 + 0.25y1

z3 = z2 − x3 + 0.25y2

z4 = z3 − 40 − x4 + 0.25y3

z5 = z4 − 20 − x5 + 0.25y4

y1 = 5x1

y2 = y1 + 5x2

y3 = y2 + 5x3

y4 = y3 + 5x4

y5 = y4 + 5x5

y5 ≥ 100

x1 ≤ x0, x2 ≤ z1, x3 ≤ z2, x4 ≤ z3, x5 ≤ z4

xt ≥ 0, yt ≥ 0, zt ≥ 0, t = 1, . . . , 5

(1.19)

(1.19)を解くと,

x1 = 13.1 x2 = 0 x3 = 6.3 x4 = 0 x5 = 0.6

y1 = 65.3 y2 = 65.3 y3 = 97 y4 = 97 y5 = 100

z1 = 0 z2 = 6.3 z3 = 16.3 z4 = 0.6 z5 = 4.3

となり,初期投資額 x0 = 13.1です.

演習問題 1.10

元金均等返済とは,借入金を返済する方式の一つである.たとえば,借入金が 100 万円で,1回あたりの金利 1%,10回払いの元金均等返済の場合,毎回 10万円 (=100/10)とその時点の残高の金利分を支払う.3回目の支払額は

10 + (100 − 20) ∗ 0.01 = 10.8 万円

26 第 1章 線形計画法

である.

上記の開墾の問題では,5年間の資金需要が与えられていた.ここでは,初期投資額を全額借入金でまかない,発生する資金需要が借入金の返済のみであるとする.借入金の返済を 5年間の元金均等返済方式とし,金利は年利 5%とする.初期投資額を最小にする問題を定式化せよ.

演習問題 1.11

販促活動

あるビールのメーカーが,新しい製品の販売促進のためにキャンペーンを行おうとしている.キャンペーンを一定期間行うと,その期の売上が上昇する.売上の上昇率はキャンペーンに投入した費用に比例しており,経験的に次の関係にあることがわかっている.

[当期の売上の上昇率] = 0.8 × [当期の費用] + 0.2 × [前期の費用] − 0.05 × [前前期の費用]

キャンペーンの期間は連続する 4期間を予定しており,総費用は 15億円を予定している.ただし,それぞれの期間に投入できる費用の上限はあらかじめ決められており,それは表 1.17の通りである.4期間の売上の上昇率の合計を最大にするには,各期にどれだけの費用をかければよいか.

図表 1.17 予算の上限期 第 1期 第 2期 第 3期 第 4期 総額

費用の上限 7 3 7 5 15

1.4 線形計画問題の性質

1.4.1 実行可能,非有界

単純な問題をもちいて,線形計画問題の性質を示していきます.まず次の問題を考えましょう.

max x1 + x2

s.t. x1 + 2x2 ≤ −3

x1 ≥ 0, x2 ≥ 0

(1.20)

制約式に着目してください.x1 + 2x2が−3以下でなければならいとあります.一方,非負条件から x1 + 2x2は常に 0以上です.したがって,問題 (1.20)の制約条件を満たす (x1, x2)は存在しません.このように,制約条件を満たす変数の組が存在しない場合,その問題は実行不可能 (infeasible)

と呼びます.逆に,制約条件を満たす変数の組がただ一つでも存在すれば,その問題は実行可能(feasible)です.制約条件を満たす変数の組は,実行可能解 (feasible solution)と呼ばれます.問題 (1.20)の制約式を少し変えました.

max x1 + x2

s.t. −x1 + 2x2 ≤ 3

x1 ≥ 0, x2 ≥ 0

(1.21)

問題 (1.21)は制約条件を満たす実行可能解,たとえば (x1, x2) = (1, 1)が存在します.(x1, x2) =

(1, 1)で目的関数の値を評価すると,1 + 1 = 2です.第 1成分に正数 tを加えて,(1 + t, 1)としても,

−(1 + t) + 2 ∗ 1 = 1 − t ≤ 3

1.4. 線形計画問題の性質 27

なので,実行可能性は保たれます.目的関数値は,(1 + t) + 1 = 2 + tで t の分だけ増加しています.実行可能性を保ったまま,tはいくらでも大きくできるので,目的関数値も無限に大きくすることが可能です.このような場合,その問題は有界でない10(unbounded) といいます.より正確に述べれば,線形計画問題が有界でないのは,

� 実行可能解 xにたいして,ある方向ベクトル dが存在し,任意の正数 tにたいして x + tdが実行可能解であること,

� xで評価した場合に比べて,x + tdで評価した場合の方が,目的関数値が改善していること,

が同時に成り立っていることです.片方だけでは不十分です.このことを明らかにするために,問題 (1.21)の目的関数の係数を変えてみましょう.

max −x1 + x2

s.t. −x1 + 2x2 ≤ 3

x1 ≥ 0, x2 ≥ 0

(1.22)

問題 (1.22)の制約条件は,問題 (1.21)と同じなので,d = (1, 0)の方向に無限に進めることは共通です.しかし,問題 (1.22)では,その方向に進んでも解は改善しません.この問題には最適解が存在し,それは (0, 1.5)です.

以上をまとめておきます.

� 線形計画問題において,すべての制約式を満たすことができない場合がある.この場合,その問題は実行不可能 (infeasible)であるという.

� 実行不可能でないならば,その問題は実行可能 (feasible)である.

� 制約を満たす解は,実行可能解 (feasible solution)と呼ばれる.

� 最大 (小)化の問題が実行可能であり,かつ目的関数値を無限に増加 (減少) させることができる場合,その問題は有界ではない.最適解は存在しない.

� 問題が実行可能かつ,無限解を生成しないならば,最適解が存在する.

1.4.2 LPの図解

制約領域

次の線形計画問題を図示によって解くことにします.目的関数の係数は,具体的な数値を入れずに,(c1, c2)としてあります.

max c1x1 + c2x2

s. t. x1 + x2 ≤ 6

2x1 + x2 ≤ 10

x2 ≤ 3

x1, x2 ≥ 0

(1.23)

問題 (1.23)の制約領域 (制約を満たす x1,x2 の集合)を Sとおきます.Sは x1{x2 平面上に,1.18のように図示することができます.

10非有界とも言います.

28 第 1章 線形計画法

図表 1.18 制約領域 S

x1

x2

0 (5,0)

(6,0)

(4,2)

(3,3) (3.5,3)

(0,3)

A

B

C

D

E

F

O

S

目的関数の等高線

目的関数は傾き (c1, c2)を用いて,図示することができるます.制約領域に目的関数の等高線を書くことで,最適解を図から求めることもできます.等高線とは,目的関数値が同じ値となる点を線で結んで表したもので,関数が線形なら \直線"となります.傾きがかわると,最適解もかわることに注意してください.図から明らかなように最適解は,(存在するならば)かならず端点で達成されます.参考までに,

無限解を生成する場合の例 (問題 (1.24))を図 1.21に示しました.

max c1x1 + c2x2

s. t. x1 + x2 ≥ 6

2x1 + x2 ≥ 10

x2 ≥ 3

x1, x2 ≥ 0

(1.24)

演習問題 1.12

パラメータ αを用いて,線形計画問題が次のように定義されている.

max x1 − x2

s. t. 2x1 − 3x2 ≤ −3

αx1 − x2 ≤ 3α − 3

x1 , x2 ≥ 0

この問題が最適解を持つための αの条件を調べ,最適解を求めよ.

[ヒント] x1-x2 平面上で,αx1 − x2 = 3α − 3 で表される直線は,α の値によらず,座標 (3, 3)

を必ず通る.

1.4. 線形計画問題の性質 29

図表 1.19 制約領域 Sと目的関数の等高線 (1)

x1

x2

0

(C1,C2)

図表 1.20 制約領域 Sと目的関数の等高線 (2)

x1

x2

0

(C1,C2)

30 第 1章 線形計画法

図表 1.21 無限解の例

x1

x2

0

(C1,C2)

1.4.3 方程式系の変形

問題 (1.23)の目的関数の係数を (c1, c2) = (3, 2)とし,さらにスラック変数を導入して標準形(1.25)へ変形します.

max 3x1 + 2x2

s. t. x1 + x2 + x3 = 6

2x1 + x2 + x4 = 10

x2 + x5 = 3

x1, x2, x3, x4, x5 ≥ 0

(1.25)

まず,非負制約を除いた 3本の制約式だけに着目します.

x1 + x2 +x3 = 6

2x1 + x2 +x4 = 10

x2 +x5 = 3

(1.26)

(1.26)は変数が 5つで,方程式が 3本の連立方程式です.ふたつの変数 x2,x4を選んで,他の変数を表してみましょう.(1.26)の 1本目の式から,x1 = −x2 − x3 + 6を得るので,これを 2本目の式に代入します.

x1 +x2 +x3 = 6

−x2 −2x3 +x4 = −2

x2 +x5 = 3

(1.27)

1.4. 線形計画問題の性質 31

(1.27)の 2本目の式から,x3 = −0.5x2 + 0.5x4 + 1として,1本目の式に代入すると,

x1 +0.5x2 +0.5x4 = 5

−x2 −2x3 +x4 = −2

x2 +x5 = 3

(1.28)

が得られます.目的関数に目を向けましょう.問題 (1.25)の目的関数を

z = 3x1 + 2x2

とおきます. (1.28)の 1本目の式を用いて,x1 を消去すると,

z = 3 ∗ (5 − 0.5x2 − 0.5x4) + 2x2 = 15 + 0.5x2 − 1.5x4 (1.29)

となり,こちらも x2,x4 のみで表すことができました.(1.28)と (1.29)まとめ,x2, x4 を左辺に移項すると,

z = 15 +0.5x2 −1.5x4

x1 = 5 −0.5x2 −0.5x4

x3 = 1 −0.5x2 +0.5x4

x5 = 3 −x2

(1.30)

となります.この変形が何を意味しているか,具体的に検討してみましょう.

等価な方程式系

もとの問題 (1.25)から,非負条件を除き,目的関数を zとおいて,方程式系として示すと,

z = 3x1 + 2x2

x1 + x2 + x3 = 6

2x1 + x2 + x4 = 10 (1.31)

x2 + x5 = 3

となります.(1.30)は,(1.31) から代入操作だけで得らるので,両者は等価な方程式系ということができます.等価というのは,一方の方程式系をみたす解は,かならず他方の方程式系を満たすということです.

演習問題 1.13

(1.31)を満たす (x1 , x2 , . . . , x5)の値を計算で求め,それが (1.30)を満たしていることを確認せよ.逆に,(1.30)を満たす (x1 , x2 , . . . , x5)の値を計算で求め,それが (1.31)を満たしていることを確認せよ.

1.4.4 基底形式表現

(1.30)は,左辺の z, x1, x3, x5を右辺の x2と x4で表している構造になっています.言葉を変えると,x2 と x4 の値を適当に決めると,自動的に z, x1, x3, x5 が決まるということです.方程式系のこのような表し方を基底形式表現といいます11.ここで,左辺に現れている x1, x3, x5

を基底変数 (basic variable),右辺の x2, x4 を非基底変数 (nonbasic variable)と呼びます.11辞書 (dictionary) ともいいます.

32 第 1章 線形計画法

基底形式表現の特徴は,非基底変数を 0とおくことで,ただちに基底変数の値と目的関数値が得られることです.(1.30)で,x2 = x4 = 0とおくと,x1 = 5, x3 = 1, x5 = 3, z = 15が得られます.同じ結果を,(1.31)で得ようとすると,やや面倒な計算が必要です.(1.31)において,x2 = x4 = 0

とすると,

x1 + x3 = 6

2x1 + x4 = 10

x5 = 3

が得られ,これを連立方程式として解いて x1 = 5, x3 = 1, x5 = 3を得ます.そして,これをz = 3x1 + 2x2 に代入して,ようやく z = 15が得られるのです.

基底解と端点

基底形式表現において,非基底変数を 0とおいたときの解を基底解 (basic solution)と呼びます.基底解がすべて非負であったなら,それを実行可能基底解 (feasible basic solution)と呼びます.基底解にはどのような意味があるのでしょうか.

(1.30)から得られる基底解は,x1 = 5, x2 = 0, x3 = 1, x4 = 0, x5 = 3です (これは実行可能基底解です).スラック変数の導入前の変数は,x1と x2だけでした.(x1, x2) = (5, 0)という座標は,図表 1.18における点 Dに相当します.もう一つ,例を出します.x3,x4 を非基底変数とする基底形式表現を求めると,

z = 16 −x3 −x4

x1 = 4 +x3 −x4

x2 = 2 −2x3 +x4

x5 = 1 +2x3 −x4

(1.32)

が得られます.この場合の基底解は,

x1 = 4, x2 = 2, x3 = 0, x4 = 0, x5 = 1

なので,もとの x1-x2 平面上では,(x1, x2) = (4, 2)の座標を表し,点 Cに相当します.このことからわかるように,実行可能基底解は制約領域の端点を表しているのです.そして,線

形計画問題の最適解が端点で達成されることを考えれば,実行可能基底解が重要な意味を持つことが理解できるはずです.

演習問題 1.14

x1 , . . . , x5 の中から適当な変数の2つ選び,それを非基底変数とした基底形式表現を求めよ.そこから基底解を求め,それが図表 1.18において,どの点に相当するか確認せよ.

[注意] 変数の選び方によっては必ずしも実行可能基底解とはならない.実行可能でない場合,対応する点は領域 Sの外側に位置する.

1.4. 線形計画問題の性質 33

1.4.5 基底の更新

上述の2つの基底形式表現を,再度,示しておきます.

点 Dに対応

z = 15 +0.5x2 −1.5x4

x1 = 5 −0.5x2 −0.5x4

x3 = 1 −0.5x2 +0.5x4

x5 = 3 −x2

(1.30)

点 Cに対応

z = 16 −x3 −x4

x1 = 4 +x3 −x4

x2 = 2 −2x3 +x4

x5 = 1 +2x3 −x4

(1.32)

(1.30)における (実行可能)基底解は,非基底変数 x2, x4 を 0とおくことで得られます.(1.30)

の目的関数の式を見ると,

z = 15 + 0.5x2 − 1.5x4

となっています.x2 の係数は,0.5と正数なので,x2 を 0から増加させることで目的関数の値を改善することが可能です.x4を 0に固定したまま,x2を 0から tまで増やしてみると,その他の値は,次のように変わります.

z = 15 +0.5t

x1 = 5 −0.5t

x3 = 1 −0.5t

x5 = 3 −t

(1.33)

tを大きくすれば,目的関数値 z = 15 + 0.5tも増加します.しかし無限に tを増加させることはできません.なぜならば,tを増加させると,基底変数である x1, x3, x5の値が減少していき,ついには負の値になってしまうからです.そうなっては,実行可能でなくなってしまいます.実行可能性を保ちつつ tを大きくすると,t = 2が最大となります.このとき,x3 = 0です.ここで,以下の点を確認してください.

� (1.30)において,3本目の式 x3 = 1−0.5x2 +0.5x4を,他の式に代入して整理すると,(1.32)が得られる.

� (1.30)の非基底変数 x2が (1.32)では基底変数に入り,(1.30)の基底変数 x3が (1.32)では非基底変数に出ていっている.

� (1.32)における基底解での目的関数値は 16であり,これは,15 + 0.5 ∗ 2と等しい.

上記のように,非基底変数と基底変数を交代することで,目的関数値を改善することを,基底の更新といいます.この操作は,幾何学的には,隣りの端点へ動くことに対応しています.

演習問題 1.15

(1.30)で,x4 の値を増加させて (この場合,目的関数の値は減少する),最初に 0になった基底変数と入れ替えをおこなうと,どのような基底形式表現が得られるか? また,それは図表 1.18

のどの点に対応するか?

34 第 1章 線形計画法

最適解

(1.30)の基底を更新することで,(1.32)が得られました.(1.32)の解をさらに改善することはできるでしょうか.目的関数の式を見ると,

z = 16 − x3 − x4

となっているので,非基底変数である x3 と x4 の値を 0から増加させても,目的関数の値は増加しません.実際,(1.32)は,最適解を与えています.

(1.32) によって最適解が得られていることは,次のようにして確かめることができます.基底形式表現はすべて等価な方程式系であることを思い出してください.したがって,実行可能解(x1, . . . , x5)に対しては,いかなる基底形式表現もその目的関数は同じ値をとります.もとの問題(1.25)の目的関数と (1.32)の目的関数の値を実行可能解で評価すると,

z = 3x1 + 2x2 = 16 − x3 − x4

と成り立ちます12.実行可能解であるならば,x3 ≥ 0, x4 ≥ 0なので,

z = 3x1 + 2x2 ≤ 16

という不等式が成り立ちます.したがって,任意の実行可能解で評価した目的関数値はかならず 16

を下回ることから,16が最適値であることが言えます.最適な基底であることの条件は,次の通りです.

最大(小)化問題では,基底形式表現において,目的関数の係数がすべて 0以下(以上)であること

単体法

線形計画法の解法の一つである単体法 (simplex method)は,初期実行基底解から出発して,次々に基底を更新することで最適解を求める手法です.その概略は上で示したとおりですが,他にも考慮しなければならないことがたくさんあります.

� 問題が実行不可能であることをどのように判定するか.

� 実行不可能でなかったとして,初期実行可能基底解をどのようにみつけるか.

� 問題が有界でなかった場合,どのようにしてそれを判断するか.

� 必ず基底は更新できるのか.

� 単体法は,有限回の手続きで終了するのか.

これらは講義では取り扱いません.詳しくは専門書を参照してください.

1.4. 線形計画問題の性質 35

図表 1.22 家具製造における資源量,価格,保有量テーブル シェルフ 保有量

木材 1 1 6

金属 2 1 10

ガラス 0 1 3

製品価格 3 2

1.4.6 感度分析1

最適解を表現する基底形式表現がわかると,それを用いて感度分析を行うことができます.例として,家具工場の製造計画問題を考えてみることにしましょう.この家具工場では,原材料として木材・金属・ガラスを用い,製品としてテーブル・シェルフ

を製造しています.それぞれ製品 1単位の生産に必要な資源の量,製品価格,投入可能な資源の量は図表 1.22の通りです製品がすべて売れるとの仮定のもとで,売上を最大にする製造量を求める問題は,次のように

定式化されます.

max 3x1 + 2x2

s. t. x1 + x2 ≤ 6

2x1 + x2 ≤ 10

x2 ≤ 3

x1, x2 ≥ 0

(1.34)

これは,(1.23)と同じ問題であることに注意してください.最適解を与える基底形式表現は,すでにわかっている通り,

z = 16 −x3 −x4

x1 = 4 +x3 −x4

x2 = 2 −2x3 +x4

x5 = 1 +2x3 −x4

(1.32)

です.

価格の変化

今,製品価格は,テーブルが3,シェルフが2です.ここで,シェルフの価格を変化させたとき,最適解や最適値がどのように変化するか,検討してみましょう.もっとも単純な方法は,新しい価格体系のもとで,再度線形計画問題を解くことです.しかし,すでに最適解をあたえる基底形式表現がわかっている場合,問題を解くことなく最適解の変化を知ることができます.まず,シェルフの価格が 2から 2.5に変化した場合を考えてみましょう.(1.32)では,目的関数

は,z = 16 − x3 − x4 と表されています.これは,もともとの目的関数 z = 3x1 + 2x2 を,

z = 3x1 + 2x2

= 3(4 + x3 − x4) + 2(2 − 2x3 + x4)

12実行可能解である (5, 0, 1, 0, 3),(0, 0, 6, 10, 3),(3, 3, 0, 1, 0)などを代入して確認してください.

36 第 1章 線形計画法

としたものです.シェルフの価格が 2から 2.5に変化すると,

z = 3x1 + 2.5x2

= 3(4 + x3 − x4) + 2.5(2 − 2x3 + x4)

= 17 − 2x3 − 0.5x4

となります.目的関数値は 16から 17になりました.しかし,係数は負のままなので,この基底形式表現が最適解を与えることに変わりはありません.目的関数の値と係数以外は変化がないので,最適解も変わりません.つまり,シェルフの価格を少し変化させても,最適値が若干変化した以外,生産量は同じです.では,シェルフの価格を 2から 4まで変化させるとどうなるでしょうか? この場合,基底形式

表現は,

z = 20 −5x3 +x4

x1 = 4 +x3 −x4

x2 = 2 −2x3 +x4

x5 = 1 +2x3 −x4

(1.35)

となります.目的関数のx4の係数が正となったので,x4を 0から増やし,新しい基底変数をx1, x2, x4

とすると,

z = 21 −3x3 −x5

x1 = 3 −x3 +x5

x2 = 3 −x5

x4 = 1 +2x3 −x5

(1.36)

となります.これは,最適解です.シェルフの価格が 2.5であれば最適解は変わらず,4とすると最適解が変化しました.2.5と 4の

間に最適解が変化する価格が存在することがわかります.具体的にそれを求めてみましょう.シェルフの価格の変化量を δとおくと,新しい価格は 2 + δと表されます.最適解が変化しない,すなわち基底解の構成が変化しないためには,その基底が最適基底であることの条件をみたしていなくてはなりません.新しい価格 2 + δで目的関数を表現すると,

z = 3x1 + (2 + δ)x2

= 3(4 + x3 − x4) + (2 + δ)(2 − 2x3 + x4) = 16 + 2δ + (−1 − 2δ)x3 + (−1 + δ)x4

となります.その基底が最適であるための条件 (34ページ)より,目的関数の係数が 0以下でなくてはなりません.よって,δ は

−1 − 2δ ≤ 0 −1 + δ ≤ 0

を満たしている必要があります.すなわち,−0.5 ≤ δ ≤ 1となるので,シェルフの価格が 1.5から3の範囲にあるときは,最適な生産量は変化しません.

演習問題 1.16

上記の問題において,シェルフではなくテーブルの価格を変えてみよう.最適な生産量が変化しないためのテーブルの価格の範囲を求めよ.

1.5. 双対理論 37

1.5 双対理論

1.5.1 工場の買収

投資家が前節の家具工場のもつ資源の買い取りを提案してきたとします.この投資家は家具工場のオーナーに対して,工場の保有する資源ごとに買い取り価格を提示しています.投資家が提案する資源の買い取り価格を y1,y2,y3 としましょう.そうすると,総買収額は

6y1 + 10y2 + 3y3

で表されます.さて,ここでオーナーの立場になってみましょう.オーナーは今工場を保有しているので,安い値段で資源を売ってしまうくらいなら,家具をつくって売った方が有利です.つまり,製品価格で売るよりも資源を個別に売った方が有利である場合にのみ,オーナーは交渉の席につくのです.シェルフ 1単位を作るには,1単位の木材,1単位の金属,1単位のガラスを用いました.シェルフ 1単位分の資源をそのまま投資家に提示された価格で売ると,y1 + y2 + y3を得ます.製品に仕立てて売れば,2単位のお金に相当するのですから,オーナーは,

y1 + y2 + y3 ≥ 2

でなければ承知しないでしょう.テーブルについても

y1 + 2y2 ≥ 3

でなければならないはずです.投資家の側からみれば、買収金額を小さくしたいので、両者が折り合うためには、次の問題を解く必要があるでしょう.

min 6y1 + 10y2 + 3y3

s. t. y1 + 2y2 ≥ 3

y1 + y2 + y3 ≥ 2

y1, y2, y3 ≥ 0

(1.37)

この問題の最適解は y∗1 = 1、y∗2 = 1、y∗3 = 0で、目的関数値 (買収金額)は 16です.この値は最適生産計画の売上げ額と等しいことに着目してください.問題 (1.37)の最適解は、潜在価格 (shadow

price)と呼ばれるものです.資源をもっとも有効に利用しているときの、資源の内在的な価格です.この潜在価格は (1.37)を解くことによって得ることができます.問題 (1.34)と問題 (1.37)の関

係は次節で論ずることにしましょう.また潜在価格の解釈については,1.5.3節で述べます.

1.5.2 双対問題

以下のような線形計画問題 (1.38)が与えられたとします.

maximize c1x1 + c2x2 + · · ·+ cnxn

subject to a11x1 + a12x2 + · · ·+ a1nxn ≤ b1

a21x1 + a22x2 + · · ·+ a2nxn ≤ b2

...

am1x1 + am2x2 + · · ·+ amnxn ≤ bm

xj ≥ 0, j = 1, . . . , n

(1.38)

38 第 1章 線形計画法

このとき,問題 (1.39)を,問題 (1.38)の双対問題 (dual problem)といいます.

minimize b1y1 + b2y2 + · · ·+ bmym

subject to a11y1 + a21y2 + . . . + am1ym ≥ c1

a12y1 + a22y2 + . . . + am2ym ≥ c2

...

a1ny1 + a2ny2 + . . . + amnym ≥ cn

yi ≥ 0, i = 1, . . . , m

(1.39)

双対問題における変数 yi (i = 1, . . . ,m) を双対変数 (dual variable) といいます.もとの問題は主問題 (primal problem)と呼ばれます.最大化/最小化の区別と不等号の向きに気をつけましょう.特に変数と制約式の間の対応関係に気をつけてください.主問題の i番目の制約式に双対変数yi が対応しており,双対問題の j番目の制約式に主問題の変数 xj が対応しています.この関係は感度分析 (1.5.4節) と深く関わっているので,しっかり理解してください.行列の表記を用いると,両者の関係がより明確になります.

(主問題)

max c>x

s.t. Ax ≤ b

x ≥ 0

(双対問題)

min b>y

s.t. A>y ≥ c

y ≥ 0

ただし,

A =

a11 a12 · · · a1n

a21 a22 · · · a2n

.... . .

...

am1 am2 · · · amn

c =

c1

c2

...

cn

b =

b1

b2

...

bm

とおきました.

演習問題 1.17

1. (1.34)の双対問題が (1.37)であることを確認しなさい.

2. 以下の問題の双対問題をつくりなさい.

max 3x1 − x2 + 4x3 + 5x4

s.t. −x1 + x2 − 3x3 − 4x4 ≥ 2

2x1 − 4x2 + x3 − 2x4 ≤ 8

x1 , x2 , x3 , x4 ≥ 0

3. 上の問題で作った双対問題の双対問題をつくりなさい.[ヒント]f(x)を最小化するのは,−f(x)を最大化することとおなじです.両辺に −1をかければ,不等式の向きを変えることができます.

参考:等式を含む線形計画問題の双対問題

主問題に等式制約や自由変数 (非負制約がない変数)があるときも,それぞれの場合に応じて双対問題をつくることができます.その対応関係をひとつひとつ覚えなくても,一般の線形計画問題は (1.38)の形に変換することができるので,ひとまず (1.38)と (1.39)の関係だけを押さえておけば十分でしょう.参考として,制約式が不等式ではなく等式で記述された線形計画問題の双対問題も示しておきます.

1.5. 双対理論 39

(1.40)は,(1.38)の不等号を等号に変えたものです.

maximize∑n

j=1 cjxj

subject to∑n

j=1 aijxj = bi, i = 1, . . . ,m

xj ≥ 0, j = 1, . . . , n

(1.40)

(1.40)の双対問題は,

minimize∑m

i=1 biyi

subject to∑m

i=1 aijyi ≥ cj, j = 1, . . . , n(1.41)

で与えられます.(1.41)の変数 yi に,非負条件がついていないことに注意してください.例で確認しましょう.問題 (1.42)は制約式がすべて等式です.

max 3x1 + 2x2

s. t. x1 + x2 + x4 = 6

2x1 + x2 + x5 = 10

x2 + x6 = 3

x1, x2, x3, x4, x5 ≥ 0

(1.42)

(1.41)を参照して,(1.42)の双対問題を作ると,

min 6y1 + 10y2 + 3y3

s. t. y1 + 2y2 ≥ 3

y1 + y2 + y3 ≥ 2

y1 ≥ 0

y2 ≥ 0

y3 ≥ 0

(1.43)

となります.結果的に,下の 3本の制約式が非負条件と同じ役割を果たしているので,(1.43)は(1.37)と同じ問題です.不等式で記述された問題から,直接双対問題を作っても,不等式で記述された問題をいったん標準型に直し,等式のみからなる問題に対応した双対問題をつくっても同じ結果が得られるということです.

不等式で記述された主問題 ←等価→ 標準型の主問題⇑ ⇑(1.38)と (1.39)の関係 (1.40)と (1.41)の関係⇓ ⇓

双対問題 ←同一→ 双対問題

1.5.3 双対定理

弱双対定理と (強)双対定理

主問題の任意の実行可能解 x1, . . . , xn と双対問題の任意の実行可能解 y1, . . . , ym に対して、常に

c1x1 + c2x2 + · · ·+ cnxn ≤ b1y1 + b2y2 + · · ·+ bmym (1.44)

がなりたちます.これは弱双対定理と呼ばれています.主問題が最大化問題であったとき,任意の実行可能解で評価した主問題の目的関数値は,任意の実行可能解で評価した双対問題の目的関数値

40 第 1章 線形計画法

を下回るということを主張しています.1.5.1節の例で考えると,買収総額 (双対問題の目的関数値)が少くとも工場の売上 (主問題の目的関数値)以上ないと,買収はできないということです.

(1.44)は次の式によって確かめることができます.

n∑j=1

cjxj ≤n∑

j=1

(m∑

i=1

aijyi

)xj =

m∑i=1

n∑j=1

aijxj

yi ≤m∑

i=1

biyi

弱双対定理を使って,直ちに次の主張が成り立ちます.もし、主問題の実行可能解 (�x1, . . . , �xn)

と、双対問題の実行可能解 (�y1, . . . , �ym)が、

c1�x1 + c2�x2 + · · ·+ cn�xn = b1�y1 + b2�y2 + · · ·+ bm�ym

であったならば、(�x1, . . . , �xn)と (�y1, . . . , �ym)はそれぞれ最適解です.

定理 1.1 (双対定理)主問題 (1.38)が最適解 (x∗1, . . . , x∗n)を持てば、双対問題 (1.39)も最適解 (y∗1, . . . , y∗m)をもち、しかも

n∑j=1

cjx∗j =

m∑i=1

biy∗i

を満たす.

[証明] (この証明は参考とします)

仮定より主問題には最適解が存在するので、単体法によって最適辞書をえることができ、最適辞書においては目的関数は以下のように表現されている.

z = z∗ +

n+m∑j=1

�cjxj (1.45)

ここで、xjが基底変数であるとき,対応する係数は �cj = 0となり、非基底変数のときは �cj ≤ 0

であることに注意.主問題の目的関数は、

z =

n∑j=1

cjxj (1.46)

なので、z∗ は、主問題の最適解 (x∗1, . . . , x∗n)によって

z∗ =

n∑j=1

cjx∗j (1.47)

と書くこともできる.ここで、

y∗i = −�cn+i ≥ 0, i = 1, . . . ,m (1.48)

とおくことで,y∗i , i = 1, . . . , m が最適双対実行可能解となることを示す.

1.5. 双対理論 41

(1.45)の左辺をスラック変数とそうでない変数にわけて表記する.

z = z∗ +

n∑j=1

�cjxj +

m∑i=1

�cn+ixn+i

= z∗ +

n∑j=1

�cjxj −

m∑i=1

y∗ixn+i (1.49)

スラック変数の定義より

z = z∗ +

n∑j=1

�cjxj −

m∑i=1

y∗i (bi −

n∑j=1

aijxj)

= (z∗ −

m∑i=1

biy∗i ) +

n∑j=1

(�cj +

m∑i=1

aijy∗i )xj (1.50)

となる.これらの変形は代入による等価な変型を行っているので、(1.46)と (1.50)は恒等的に等しい.

したがって、

n∑j=1

cjxj = (z∗ −

m∑i=1

biy∗i ) +

n∑j=1

(�cj +

m∑i=1

aijy∗i )xj

の両辺の係数は等しくなくてはならないので、

m∑i=1

biy∗i = z∗

�cj +

m∑i=1

aijy∗i = cj, j = 1, . . . , n

を満たす必要がある.�cj ≤ 0であることから、二本目の式は、双対問題 (D)の制約条件にほかならない.主問題の最

適辞書から構成した (y∗1, . . . , y∗m)は、双対問題の実行可能解で、さらにその目的関数値は双対問題の解の下限を達成しているので最適解となることがわかった.

[証明終]

主問題と双対問題の関係

双対定理より,主問題と双対問題のあいだには、表 1.23の関係があることがわかります.行方向に見て,×はその組合わせが不可能であることを表し,○は可能であることを示しています.例えば,主問題が非有界であるとき,双対問題は必ず実行不可能です.一方,主問題が実行不可能であるときは,双対問題は非有界であるか,実行不可能です.

42 第 1章 線形計画法

図表 1.23 主問題と双対問題の関係

双対問題最適解 非有界 実行不可能

主問題最適解 ○ × ×非有界 × × ○

実行不可能 × ○ ○

相補スラック定理

定理 1.2 (相補スラック定理)x∗ = (x∗1, . . . , x∗n)> を主問題 (1.38)の実行可能解、y∗ = (y∗1, . . . , y∗m)> を双対問題 (1.39)の実行可能解とする.このとき、x∗と y∗がそれぞれ最適解となるための必要十分条件は、以下の関係が成り立つことである.すべての j = 1, . . . , nについて

m∑i=1

aijy∗i = cj または x∗j = 0 (1.51)

すべての i = 1, . . . , mについて

n∑j=1

aijx∗j = bi または y∗i = 0 (1.52)

[証明]

x∗ と y∗ が実行可能解であることから、以下の不等式が成り立つ.

n∑j=1

cjx∗j ≤

n∑j=1

(

m∑i=1

aijy∗i )x

∗j =

m∑i=1

(

n∑j=1

aijx∗j )y

∗i ≤

m∑i=1

biy∗i (1.53)

条件 (1.51)と (1.52)が成り立っていれば、(1.53))はすべて等号が成立し、主問題と双対問題の目的関数値が一致するので、x∗ と y∗ は最適解である.逆に、(1.53)の等号が成立するためには、条件 (1.51)と (1.52)が成り立つことが必要である.

[証明終]

相補スラック定理の主張は,次のように解釈するとよいでしょう.主問題と双対問題の最適解x∗1, . . . , x∗n, y∗1, . . . , y∗m が与えられたとします.y∗i > 0であるならば,主問題の i番目の制約式はかならず有効となっている (等号が成立している)はずです.また,y∗i = 0なら主問題の i番目の制約式は有効ではありません13.

潜在価格

潜在価格は,最適な生産を行っているときにシステム内で決まる資源の価格と見なすことができます.資源の買収金額決定問題 (1.37)で得られる最小買収額が,家具工場の最適生産計画決定

13厳密には,\退化" と呼ばれる状態も考慮しなくてはなりませんが,ここでは扱いません.

1.5. 双対理論 43

問題 (1.34)で得られる最適な生産による売上額と等しいこと,双対変数 y1,y2,y3 が,それぞれ木材,金属,ガラスの資源ごとに設定された買収価格であること,はすでに見た通りです.

(1.34)の最適解は (x∗1, x∗2) = (4, 2),(1.37)の最適解は (y∗1, y∗2, y∗3) = (1, 1, 0)でした.相補スラック定理より,正の潜在価格がついている木材と金属に対しては,

x∗1 + x∗2 = 6, 2x∗1 + x∗2 = 10

が成り立ち,生産によって資源を使いきっています.一方,資源を使いきらないガラスについては,潜在価格は 0です.正の生産量があるテーブルとシェルフにおいては,

テーブル: y∗1 + 2y∗2 = 3

シェルフ: y∗1 + y∗2 + y∗3 = 2

が成り立ちます.これは,テーブル 1単位の生産に必要な資源を潜在価格で評価した値が,製品価格 3に等しいことを示しています (シェルフについても同様です).

基底形式表現における双対変数

主問題の最適解を与える基底形式表現 (以下,最適辞書)が得られているなら,双対問題を解かなくても双対問題の最適解がわかります.問題 (1.38)の最適辞書の目的関数の係数が,双対問題の最適解を与えています.理論的な関係は双対定理の証明 (40ページ) に書かれているので,詳しく知りたい人は目を通してください.結果のみを記すと,主問題の最適辞書における非基底変数xn+i の係数が −cn+i であるならば,y∗i = cn+i となります.それ以外,値は 0です.

(1.34)で確認しましょう.この問題の最適辞書は (1.32) です.x3 の係数が −1なので y∗1 = 1,x4 の係数が −1なので y∗2 = 1 です.それ以外については,y∗3 = 0です.ちなみに,線形計画問題を解くソフトウェアには,問題を解いたときに,主問題の最適解/最

適値と同時に,その双対問題の最適解を表示する機能が実装されているのが普通です.

1.5.4 感度分析2

この節では,1.4.6節に引き続き感度分析を説明します.今回は,右辺の値が変化した場合,最適値がどのように変化するかを見てみましょう.主問題の右辺が

b1

b2

...

bm

=⇒

b1 + ε1

b2 + ε2

...

bm + εm

と変化したとします.右辺の値の変化は,ただちに基底変数の値に影響をおよぼします.しかし,辞書の目的関数の係数には影響しないことを確かめてください.したがって,εi (i = 1, . . . , m)が十分小さく,その辞書の最適性が保たれるならば,双対変数の値は変化しません.この事実を利用すると,右辺の変化が,最適値におよぼす影響を双対変数を利用して評価することができます.双対定理より,最適値 z∗ について,

z∗ = c1x∗1 + c2x∗2 + · · ·+ cnx∗n = b1y∗1 + b2y∗2 + · · ·+ bmy∗m

44 第 1章 線形計画法

が成り立っています.右辺が (b1 + ε1, b2 + ε2, . . . , bn + εn)に変化したあとは,新しい最適値 z†

z† = (b1 + ε1)y∗1 + (b2 + ε2)y∗2 + · · ·+ (bm + εm)y∗m

となります.変化量のみを評価するのであれば,

z† − z∗ = ε1y∗1 + ε2y∗2 + · · ·+ εmy∗m (1.54)

となります.

資源の追加投入

1.4.6節の家具工場の問題を例にとります.問題 (1.34)の最適辞書を再度挙げておきました.

z = 16 −x3 −x4

x1 = 4 +x3 −x4

x2 = 2 −2x3 +x4

x5 = 1 +2x3 −x4

(1.32)

主問題の最適解は (x∗1, x∗2, x∗3, x∗4, x∗5) = (4, 2, 0, 0, 1),双対問題の最適解は (y∗1, y∗2, y∗3) = (1, 1, 0)

です.最適な生産計画ではガラスは全てを使い切ってはいません.直感的にも,あまっている資源を

追加投入しても,最適値は変化しないことが予想されるでしょう.実際,ガラスを ε3だけ増やしても,ガラスの潜在価格 (y∗3)は 0なので,(1.54)より最適値の変化量も 0です.木材を追加する場合,木材の潜在価格 y∗1は 1なので,ε1 の追加に対して,最適値もちょうど

ε1 だけ増加します (ただし,ε∗1 は十分小さいものとします).ε1 = 0.2とおき,x1,x2,x5 を基底変数として計算した結果,次の基底形式表現を得ました.

z = 16.2 −x3 −x4

x1 = 3.8 +x3 −x4

x2 = 2.4 −2x3 +x4

x5 = 0.6 +2x3 −x4

(1.55)

実行可能でかつ,目的関数の係数も不変であることから,最適性は保たれています.最適解が(x∗1, x∗2, x∗3, x∗4, x∗5) = (4, 2, 0, 0, 1)から (3.8, 2.4, 0, 0, 0.6) へ変化しています.最適値が 16から 16.2

になっているのは,木材の変化量 ε1 = 0.2に,木材の潜在価格 y∗1 = 1をかけた量に相当する分が増加しているからです.

市場からの調達

木材を市場から調達するコストについて考えてみましょう.工場が最適な生産を行っている場合,木材の潜在価格は 1です.この場合,上で見たように木材を ε1単位追加することで,最適値を 1× ε1 だけ増やすことができます.したがって,もし木材の市場価格が 1より小さければ,市場で調達することで利益を増加させることができます.一方,木材の市場価格が 1 以上であれば,市場で調達しても利益を挙げることができません.

1.5. 双対理論 45

図表 1.24 木材の追加による解の変化 (0 ≤ ε1 ≤ 0.6)

ε1 0 0.1 0.2 0.3 0.4 0.5 0.6

z 16.0 16.1 16.2 16.3 16.4 16.5 16.6

x1 4.0 3.9 3.8 3.7 3.6 3.5 3.4

x2 2.0 2.2 2.4 2.6 2.8 3.0 3.2

x5 1.0 0.8 0.6 0.4 0.2 0.0 -0.2

資源の追加投入にともなう解の変化

表 1.24に,ε1 を 0から増やしていったときの x1,x2,x5 の値の変化をまとめました.木材を増やしていくと最適解が変化していってます.このとき,x2 は増加しますが,x1 と x5

は減少します ε1 = 0.5のところで,x5はちょうど 0に達し,以後負の値を取ります.ε1 ≥ 0.5においては,この辞書は実行可能性を保てなくなるので,基底の入れ替えが必要になります.

x3を基底解に,x5を非基底解に入れ直し,ε1 = 0.5,右辺を b = (6.5, 10, 3)として,新しい基底形式表現を計算しました.

z = 16.5 −1.5x4 −0.5x5

x1 = 3.5 −0.5x4 +0.5x4

x2 = 3.5 −x4

x3 = 0.0 +0.5x4 +0.5x4

(1.56)

表 1.25は ε1 を 0.5から 1.0まで変化させたときの解と最適値の変化です.

図表 1.25 木材の追加による解の変化 (ε1 ≥ 0.5)

ε1 0.5 0.6 0.7 0.8 0.9 1.0

z 16.5 16.5 16.5 16.5 16.5 16.5

x1 3.5 3.5 3.5 3.5 3.5 3.5

x2 3.0 3.0 3.0 3.0 3.0 3.0

x3 0.0 0.1 0.2 0.3 0.4 0.5

ε1 > 5の区間では,y1 = 0,y2 = 1.5,y3 = 0となっているので,木材をいくら追加しても最適値は改善しません.木材の量を 0から 8まで変化させたときの目的関数値の変化を図表 1.26に示しました.最大化

の線形計画問題においては,右辺の値に対して目的関数の値をグラフにとると,区分的に線形な凹関数になることが知られています.グラフの傾きが木材の潜在価格に相当することに気をつけてください.木材の保有量 b1 が,0 ≤ b1 ≤ 5のとき木材の潜在価格は 3です.5 < b1 ≤ 6.5の区間では潜

在価格は 1に低下し,b1 > 6.5では 0となります.資源の増加による効果が逓減していくことが見て取れるでしょう.

新製品の価格

家具工場で,テーブルとシェルフに加えて,カップボードの生産を行うことが可能になったとします.カップボード 1単位を作るのに必要な資源の量は,木材 3単位,金属 3単位,ガラス 2単位で,その価格は 5です.この条件でカップボードが生産可能になったとして,はたして生産すべきなのでしょうか.

46 第 1章 線形計画法

図表 1.26 木材の量と最適値の関係

4.0

8.0

12.0

16.0

0.0 2.0 4.0 6.0 8.0

Obj. value

Wood

カップボード 1単位の生産に必要な資源を,現在の潜在価格で評価してみます.すると,

1× 3 + 1× 3 + 0× 2 = 6

となります.カップボードの生産によって,テーブルもしくはシェルフの生産にまわすはずの資源が減少します.上式の 6という数値は,その資源の減少分が売上におよぼす影響を示しています.一方,カップボード 1単位の価格は 5ですから,この資源をカップボード 1単位分にまわすことによって売上は 5 増加します.差引 −1ですから,トータルの売上は減少してしまいます.結局,カップボードは生産すべきでないということになります.もしカップボードの価格を 5ではなく,6以上にすれば生産することで売上を増加することが

できます.価格を 8とした場合の生産計画は,次の問題を解くことで得られます.

max 3x1 + 2x2 + 8x3

s. t. x1 + x2 + 3x3 ≤ 6

2x1 + x2 + 3x3 ≤ 10

x2 + 2x3 ≤ 3

x1, x2, x3 ≥ 0

(1.57)

この問題を解くと,最適生産計画は,

売上 テーブル シェルフ カップボード17.33 4.0 0.0 0.67

となります.なお,この場合,潜在価格は

木材 金属 ガラス2.33 0.33 0.0

となりました.新しい生産体系に移行したことによって,同じ資源保有量でも,潜在価格が変化していることに注意してください.