~簡単なDPMによる実験編~ 平賀 友浩 1.概要 2.モデル 3.アルゴリズム 4.計算 5.まとめ 単期間での解体問題を取り扱う 簡単な部品を考えて、適当な制約条件を付け てHeuristicなアルゴリズムを動かしてみる 前回同様、a、b、c、dの4つの部品からなる モデルを考える。 Bを取り外すためには、aとcを分離する必要 がある。 a/b/c/d 1 2 a/b/c a/b c/d 5 3 d c 4 a b A 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 1 0 1 0 1 0 1 0 1 1 1 0 0 1 0 0 0 1 0 0 1 1 1 1 1 1 0 0 1 1 新品部品の取得コスト; a/b/c a/b c/d a b c d 80 50 35 20 40 30 10 需要 a/b/c a/b c/d a 2 6 1 4 b 3 c d 7 4 解体するための原料調達費 30 各プランのOperationにかかる時間 プラン 1 2 3 4 5 6 7 時間 1 3 4 3 6 7 7 納涼区制約;25時間 解体費用 Operationにかかる時間×5 Step 1. DPMを作成。 Aij と、コストのパラメ ータを設定。 Set t = 0 and k = 0, kは時 刻t での反復回数(今回の場合はtは固定) Step 2. t = t + 1とし、 If t ≤ Tなら Step 3へ 、でなければStep 14へ(今回の場合T=1) Step 3. 需要 Djt を初期化、在庫 Yjt. For all j, もし Djt ≥ Yj(t-1), then set Djt = Djt - Yj(t-1) 、 Yjt = 0,でなければ, Yjt = Yj(t-1) - Djt and Djt = 0. (今回の場合在庫はなし) Step 4. 時刻tにおける初期解をすべての需要 を新規取得によって充足したものとして設定 。TRCの初期値を計算. Step 5. kをk = k + 1とし、 Fiをもとにプラン iを策定. Step 6. 最大のFiからi*をi*k = max {F1, F2,…, Fi} のように決定。 Ai*j = 1 かつ Djt > 0 で、 プランiで最小 の需要を満たすようにzを決定 Zi*kt = min {D1t, D2t, …, Djt}, Step 7. MTkt を使用容量としMTkt = MT(k-1)t + DTi∙Z i*kt, と更新する Step 8. もし MTkt ≤ MCt,つまり使用した容量 がキャパシティの範囲内なら Step 9へ,そうで なければStep 11へ Step 9. TRCt、 Djt, Yjt を更新。 TRCt = TRCt - ∑COj∙Zi*kt+(CD∙DTi+CP)∙Zi*kt. Ai*j = 1に対して、もし Djt > 0なら, Djt = Djt - Ai*j∙ Z i*kt, でなければ, Yjt = Yjt + Ai*j∙Z i*kt. Step 10. もし、すべての需要が0ならば(∑Djt = 0), 残っている容量を RCt = MCt - MTktとし、 TRCt = TRCt + ∑Yjt∙Hjt,としてStep 2へ、そう でなければStep 5へ Step 11. Zi*kt = Zi*kt – 1とデクリメントし、も し Zi*kt > 0ならStep 7へ,そうでなければ Fi* = 0 とする Step 12. もし∑Fi > 0ならstep 6へ,そうでなけ ればStep 13へ Step 13.(今回の場合は単期間なのでないが) t = 1 からt – 1まで RCt ≥ min{DTi} かつ ∑Fi > 0を検 索し、あれば Djt* = Djt, MCt* = RCt*, かつ t = t*, た だし t*はtの最近傍としてStep 5へ。なければ RCt = MCt – MTkt かつ MINCOSTt = MINCOSTt + ∑Yjt∙Hjt としてStep 2へ。 Bfpi 解体時間 単価 取得費用 Fi 順位 p1 90 1 5 30 55 1 p2 90 3 5 30 45 3 p3 100 4 5 30 50 2 p4 85 3 5 30 40 4 5p 95 6 5 30 35 5 6p 90 7 5 30 25 6 7p 100 7 5 30 35 5 一回目では上のようなFiとなったので、パー ツa/b/cの需要の2まで、プラン1を選択。 このとき使用した用量は2 次に、a/b/cの需要が0となったので、それ を考慮してBfiを再計算し、Fiを出すと、 Fi p1 p2 p3 p4 5p 6p 7p -25 45 50 40 35 25 35 したがって、プラン3をdの残りの需要2ま で採択。このとき使用した容量は8 Dの需要がなくなったので、Bfiを再計算し、 Fiを出すと Fi p1 p2 35 p3 40 p4 40 5p 35 6p 15 7p 25 したがって、プラン4をc/dの需要1まで採択 。これによって使用された用量は3 これによりc/dの需要がなくなったので、再 計算すると、 Fi p1 p2 35 p3 0 p4 5 5p 0 6p 15 7p 25 したがって、プラン2をcの需要と容量制約を 考えて4まで採択。これによって使用された用 量は12 これで、容量が限界となったので、残りの需 要を購入により埋め合わせ、TRCを計算する と、555となった。 実際に手で計算してみて、このアルゴリズム がどのように動いているのか、実感できた。 バックワードのアルゴリズムは、複数の期間 になった場合に、あるtで要領不足の場合に、 それ以前で要領の空きがある場合に、そこで 解体し、それを在庫しておくために必要であ ると考えた。それにより、在庫費用との比較 によって、どちらが最適か判断するためのも のであると考えた。
© Copyright 2024 ExpyDoc