Upload
wolfe
View
44
Download
0
Embed Size (px)
DESCRIPTION
2009 年度 第 5 回輪講. ~簡単な DPM による実験編~ 平賀 友浩. 目次. 1.概要 2.モデル 3.アルゴリズム 4.計算 5.まとめ. 概要. 単期間での解体問題を取り扱う 簡単な部品を考えて、適当な制約条件を付けて Heuristic なアルゴリズムを動かしてみる. モデル. 前回同様、 a 、 b 、 c 、 d の4つの部品からなるモデルを考える。 B を取り外すためには、 a と c を分離する必要がある。. DPM. 各種制約および条件設定. 新品部品の取得コスト; - PowerPoint PPT Presentation
Citation preview
~簡単な DPM による実験編~
平賀 友浩
1.概要 2.モデル 3.アルゴリズム 4.計算 5.まとめ
単期間での解体問題を取り扱う
簡単な部品を考えて、適当な制約条件を付けて Heuristic なアルゴリズムを動かしてみる
前回同様、 a 、 b 、 c 、 d の4つの部品からなるモデルを考える。
B を取り外すためには、 a と c を分離する必要がある。
1 0 0 0 0 0 1
0 1 0 0 0 1 1
0 0 0 1 1 1 1
0 1 1 0 0 0 0
0 0 1 1 1 0 0
0 1 0 0 0 1 1
0 0 0 1 1 1 1
A
新品部品の取得コスト;a/b/c a/b c/d a b c d80 50 35 20 40 30 10
需要a/b/c a/b c/d a b c d 2 6 1 4 3 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 を出すと、
Fip1 -25p2 45p3 50p4 405p 356p 257p 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 で要領不足の場合に、それ以前で要領の空きがある場合に、そこで解体し、それを在庫しておくために必要であると考えた。それにより、在庫費用との比較によって、どちらが最適か判断するためのものであると考えた。