Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
ダイナミックプログラミング
DP vs Divide&Conquer ダイナミックプログラミング vs 分割統治法
• 問題を(適切かどうかは不明であるが)単純な小問題に分ける
• 小問題解決結果を積み上げて最終結果を得る
• ボトムアップ解決法
• 問題(全体)を適切な小問題(小さな部分)に分ける
• 小問題解決結果を統合して全体の解を得る
• トップダウン解決法
ダイナミックプログラミング(DP)
• 多段階決定理論
• ある段階の決定はその直前の段階の結果の影響のみを受ける(マルコフ性)
• よって,その他の結果を考慮しないですむので効率のよいアルゴリズムとなる
3つのDP問題
•ナップザック問題
•最短経路選択問題
•数値的解法
ナップザック問題
品物 0 1 2 3 4
大きさ 2 3 5 7 9
価値 2 4 7 11 14
限られた大きさの袋(ナップザック)に
最大価値となる品物を詰め込み方を求める問題
Eg ナップザックの大きさ=10の場合は?
品物0を5個選択するとその価値は→
品物0,1,2を選択するとその価値は→ 腕づくの方法→25組合せを調べればよい
ナップザック問題とDP
1番目の小問題
• 単純な小問題への分割は? 品物数を限定すればよい
ナップザックの大きさを16にして以下考える.
①品物0(大きさ2)だけで詰め込む →この場合の最大価値は?
ナップザックの大きさ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
価値の合計 0 0 2 2
最後に入れた品物 -1 -1 0 0
2番目の小問題
①品物0だけを使ったナップザック小問題の解
を使って②品物0と1を使ったナップザック小問題を解くことを考える
①の表で品物1を詰めることができるケースを調べ,「品物0だけの価値」と「品物0+1の価値」を比較して最大価値を更新していく
大きさ5のナップザックに
品物1(大きさ3)を入れるかどうか?
品物0(大きさ2,価値2) だけのケース
品物0(大きさ2,価値2)と
品物1(大きさ3,価値4)のケース
品物0,価値=2
品物0,価値=2
すきま
大きさ5
全体価値=4
品物0,価値=2
品物1,価値=4
全体価値=6
X
5
4
0
5
6
1
6
6
0
6
8
1
大きさ6のナップザックに
品物1(大きさ3)を入れるかどうか?
品物0(2)
品物0(2)
品物0(2)
品物0(2)
品物1(4)
品物1(4)
品物1(4)
すきま
全体価値=6 全体価値=6 全体価値=8
X X
②品物0と1を使用したナップザック小問題を解け
ナップザックの大きさ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
価値の合計 0 0 2 4 4 6 8
最後に入れた品物 -1 -1 0 1 0 1 1
ナップザックの大きさ3の場合は更新されるが
大きさ4の場合は更新されない
3~5番目の小問題
③品物0と1と2を使用したナップザック小問題
④品物0と1と2と3を使用したナップザック小問題
⑤品物0と1と2と3と4を使用したナップザック小問題
aからbへの最短経路は?
a
b
段階 1 2 3 4
レベル1
レベル2
レベル3
問1 腕ずくの方法で調べると(総ルート数は)?
10段階10レベルの場合は?
100段階100レベルの場合は?
移動コスト
1
2
3
2
1
第1段階に行くコスト
a 3
2
1
1段階
第2段階レベル1に行くコスト
3
2
1
a
段階 レベル1 1 2
1
2
3
移動コスト
前段階のコスト
1+3=4, 3+1=4, 2+2=4 -> 4
第2段階レベル2に行くコスト
3
2
1
段階
レベル2
1 2
1
2
3
前段階のコスト 移動コスト
4
1+2=3, 3+3=6, 2+1=3 -> 3
1
段階 1 2
1 2
3 2
3 3
4
第2段階レベル3に行くコスト
1+1=2, 3+2=5,2+3=5 -> 2
第2段階終了時
1
段階 1
2
2
2
3 3
4
a
第3段階終了時
1
段階 1
2
2
2
3 3
4
a ?
?
?
3
2
1
3 4
第4段階終了時
1
段階 1
2
2
2
3 3
4
a 3
5
4
?
?
?
最適ルート
1
段階 1
2
2
2
3 3
4
a 3
5
4
6
5
4
b 5
3
2
1
動的計画法と環境問題
• 3期で化学物質を10トン生産
• でも副産物として有害物が作られる
• 有害物は気候(期)によって変動
• 第1期目:化学物質をx生産すると有害物は2x2
• 第2期目:化学物質をx生産すると有害物はx2
• 第3期目:化学物質をx生産すると有害物は3x2
有害物総量を最小にするには化学物質をどのように生産すればいいか?
DPによる数値的解放
• 1,2,3期の化学物質生産量をx1,x2,x3
x1+x2+x3=10
F(x1,x2,x3)=2X1 2+X22+3X32 を最小
start
2
1
3
4
5
7
6
8
9
10
有害物
1期 2x1 2
200
162
128
98
72
50
32
18
8
2
0
0
2
1
3
4
5
7
6
8
9
10
有害物
2期 x2 2
0
1期までの
化学物質
生産量
2期までの
化学物質
生産量
67
54
43
33
24
17
11
6
3
1
0
10
有害物
3期 3x3 2
3期までの
化学物質
生産量
5,0->50+0=50
4,1->32+1=33
3,2->18+4=22
2,3->8+9=17
1,4->2+16=18
0,5->0+25=25
67
57
55
60
72
92
119
153
195
244
300
化学 有害
1期目 3 18
2期目 5 25
3期目 2 12
計 10 55
拘束条件をもつ関数の極値
• 大学入試問題: 1辺がx軸に平行な長方形で,方程式 で表される図形(楕円)に内接するもの全体の中で,最大の面積をもつ長方形の面積を求めよ.
• 関数 f (x, y, z)の極値 →x, y, zで偏微分して連立方程式を解く
• 拘束条件g下での関数 f (x, y, z)の極値 →ラグランジェの未定乗数法 →~f = f – λg の極値を求める (拘束条件を含めた式を作って, 変数束縛を解く)
116
22
yx