オペレーションズ・リサーチの問題
ある配送センターで、4 台の配送車 を 4 つの配送地区 に 1 台ずつ割り当てる。各配送車はちょうど 1 つの地区を担当し、各地区はちょうど 1 台が担当する。配送車 が地区 を担当したときにかかる時間(分)は、次の表の 行 列の値である。
4 台の所要時間の合計の最小値(分)を求めよ。
この問題で使うもの
- 割当問題(ハンガリー法)(説明と入口の問題)
この問題を解けるようになるまで(10 技能)
読み込み中…
右端(太枠)がこの問題で使う技能です。左へドラッグすると、さらに前の前提をさかのぼれます。技能を押すと、そこまでの道筋が光ります。
ヒント
行き詰まったら、上から順に 1 つずつ開いてください。
ヒント 1
割当問題なので、ハンガリー法(行の最小値を引く → 列の最小値を引く → 0 を最少の線で覆う → 必要なら調整)を使う。
ヒント 2
行の最小値 を引いたあと、列 から を引く。0 を覆う線が 4 本未満なら、覆われていない成分の最小値を覆われていない成分から引き、線の交点に足す。
ヒント 3
縮約後の表では、行 ・行 ・列 の 3 本ですべての 0 が覆え、覆われていない成分の最小値は である。調整すると が新たに 0 になる。
答えと解説
答えを見る
どこでつまずきましたか?(選ぶと、戻る場所を案内します)
解説を読む
ハンガリー法を使う。ある行(または列)のすべての成分から同じ数を引いても、どの割当でもその行(列)からはちょうど 1 つの成分を使うので、すべての割当の合計が同じ数だけ減るだけで、最適な割当は変わらない。
手順 1(行の最小値を引く) 各行の最小値は である。これらを引くと
手順 2(列の最小値を引く) 各列の最小値は である。 列から を引くと
ここまでに引いた数の合計は である。
手順 3(0 を最少の線で覆う) 0 の位置は である。 と はどちらも にしか 0 がないので、0 だけで同時に選べる位置は最大 3 個であり、0 だけを使った割当はまだ作れない。実際、行 、行 、列 の 3 本の線ですべての 0 を覆える(3 個の 0 は同じ線に乗らないので 3 本より少なくはできない)。線の本数 なので調整する。
手順 4(調整) 線で覆われていない成分は、行 の列 にある で、その最小値は である。覆われていない成分から を引き、2 本の線が交わる成分 に を足すと
手順 5(割当を読む) 新しく が 0 になった。 は にしか 0 がないので 。すると 、 は残りの 0 の で 、最後に となり、各行・各列から 0 を 1 つずつ選べた。すべての成分は 0 以上なので、この割当が最適である。
元の表で合計を計算すると
()。
よって、所要時間の合計の最小値は 分である。
別解
4×4 の割当問題なので、全 24 通りを T1 の担当地区ごとに場合分けして調べる。
T1→A1(5): T2→A2 のとき 29、T2→A3 のとき 23、T2→A4 のとき 24。
T1→A2(8): T2→A1 のとき 28、T2→A3 のとき 29、T2→A4 のとき 30。
T1→A3(7): T2→A1 のとき 25、T2→A2 のとき 32、T2→A4 のとき 27。
T1→A4(7): T2→A1 のとき 21、T2→A2 のとき 28、T2→A3 のとき 22。
(各場合の T3, T4 は、残り 2 地区への 2 通りのうち小さい方を採用した。)
最小は T1→A4 (7)、T2→A1 (3)、T3→A2 (4)、T4→A3 (7) で、合計 7+3+4+7=21。
検算(ハンガリー法の下界): 行ごとに最小値 5,3,4,6(計 18)を引くと、
T1: 0 3 2 2
T2: 0 4 0 5
T3: 3 0 2 6
T4: 2 0 1 5
となる。列の最小値は 0,0,0,2 で、A4 列から 2 を引くと
T1: 0 3 2 0
T2: 0 4 0 3
T3: 3 0 2 4
T4: 2 0 1 3
0 の位置だけで完全割当 T1→A4, T2→A1, T3→A2, T4→A3 は作れない。T4→A3 は 1 で 0 ではないため、実際には補正が必要である。そこで下界は 18+2=20 以上となる。さらに 0 だけでは完全割当ができないので、最小値は 21 以上であることが分かる。全列挙の結果 21 が達成されるので、最小値は 21。