割り当て問題(assignment problem) n種類の資源(資材、人、設備など)を、 これと同数のn種類の用途(需要、仕事など) に一つずつ割り当て、 全体としての計画を最適化(最大化・最少化) する問題。 有効さ行列 ・・・ n×nの行列 ©ATSUTO NISHIO 解法の基本 ハンガリー法 有効さ行列において、損失などを最少にす る問題の固有の解法。 行列の各行、または各列に関して、任意の 定数を引いても、各行、各列の値の関係は 変わらず、適当な割り当て方も変わらない。 ©ATSUTO NISHIO 最小化問題の手順 ① 各行の最小値を各行のそれぞれの数値から引く。 ② 各列の最小値を各列のそれぞれの数値から引く。 → 各行、各列に少なくとも1個の0が存在する。 ③ 出来る限り少ない本数の直線で全ての0を引く。 ④ 列(行)の数(n)=直線の本数ならば、最適割り当てを求める。 ⑤ 列(行)の数(n)≠直線の本数ならば、修正行列をつくる。 直線の引かれていない数値の中の最小値(α)とすると、 ・直線の引かれていない全ての値からαを引く。 ・直線が交差している数値にはαを加える。 ・その他の数値はそのまま。 ⑥ ③~⑤を、最適割り当てが見つかるまで繰り返す。 ©ATSUTO NISHIO 最大化問題の手順 最小化問題に直してから解く。 最大化問題 → 最小化問題 ① 有効さ行列の数値の中の最大値(β)を見つける。 ② 有効さ行列の各数値をβから引く。 ③ 最小化問題を解く。 ©ATSUTO NISHIO m×nの割り当て問題 ダミー(dummy)の行(あるいは列)を加えて、 n×nの有効さ行列にする。 ダミー行(あるいは列)に割り当てがあった場合 は、その割り当ては無視する。 ©ATSUTO NISHIO 最小化問題の例 3人の作業員を3種類の仕事に就業させる。 作業員の各仕事に対する作業時間は表の通りで ある。総作業時間を最少にするような割り当てを 考えよ。 仕事 Ⅰ Ⅱ Ⅲ 作業員 A X11 X12 X13 B X21 X22 X23 X31 C©ATSUTO NISHIO X32 X33 最大化問題の例 3人の営業マンを3地域に営業に出す。 各営業マンの各地域に対する過去の成果は表の 通りである。3人の成果合計を最大にするような割 り当てを考えよ。 地域 Ⅰ Ⅱ Ⅲ 営業マン A X11 X12 X13 B X21 X22 X23 X31 C©ATSUTO NISHIO X32 X33 LPの割り当て問題への適用 割り当て問題はLPで解くことも出来る。 3×3の最小化問題の場合 A : a11+a12+a13=1 B : a21+a22+a23=1 C : a31+a32+a33=1 Ⅰ : a11+a21+a31=1 Ⅱ : a12+a22+a32=1 Ⅲ : a13+a23+a33=1 aij は 0 or 1 (割り当てがあれば1、割り当てがなければ0) a11X11+a12X12+a13X13+a21X21+a22X22+a23X23+a31X31+a32X32+a33X33=Z Zを最少にするような aij を求める。 ©ATSUTO NISHIO
© Copyright 2024 ExpyDoc