25
ダイナミックプログラミング

ダイナミックプログラミング › japanese › 2016-A論...2016/11/25  · ダイナミックプログラミング(DP) • 多段階決定理論 • ある段階の決定はその直前の段階の結果の

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ダイナミックプログラミング › japanese › 2016-A論...2016/11/25  · ダイナミックプログラミング(DP) • 多段階決定理論 • ある段階の決定はその直前の段階の結果の

ダイナミックプログラミング

Page 2: ダイナミックプログラミング › japanese › 2016-A論...2016/11/25  · ダイナミックプログラミング(DP) • 多段階決定理論 • ある段階の決定はその直前の段階の結果の

DP vs Divide&Conquer ダイナミックプログラミング vs 分割統治法

• 問題を(適切かどうかは不明であるが)単純な小問題に分ける

• 小問題解決結果を積み上げて最終結果を得る

• ボトムアップ解決法

• 問題(全体)を適切な小問題(小さな部分)に分ける

• 小問題解決結果を統合して全体の解を得る

• トップダウン解決法

Page 3: ダイナミックプログラミング › japanese › 2016-A論...2016/11/25  · ダイナミックプログラミング(DP) • 多段階決定理論 • ある段階の決定はその直前の段階の結果の

ダイナミックプログラミング(DP)

• 多段階決定理論

• ある段階の決定はその直前の段階の結果の影響のみを受ける(マルコフ性)

• よって,その他の結果を考慮しないですむので効率のよいアルゴリズムとなる

Page 4: ダイナミックプログラミング › japanese › 2016-A論...2016/11/25  · ダイナミックプログラミング(DP) • 多段階決定理論 • ある段階の決定はその直前の段階の結果の

3つのDP問題

•ナップザック問題

•最短経路選択問題

•数値的解法

Page 5: ダイナミックプログラミング › japanese › 2016-A論...2016/11/25  · ダイナミックプログラミング(DP) • 多段階決定理論 • ある段階の決定はその直前の段階の結果の

ナップザック問題

品物 0 1 2 3 4

大きさ 2 3 5 7 9

価値 2 4 7 11 14

限られた大きさの袋(ナップザック)に

最大価値となる品物を詰め込み方を求める問題

Eg ナップザックの大きさ=10の場合は?

品物0を5個選択するとその価値は→

品物0,1,2を選択するとその価値は→ 腕づくの方法→25組合せを調べればよい

Page 6: ダイナミックプログラミング › japanese › 2016-A論...2016/11/25  · ダイナミックプログラミング(DP) • 多段階決定理論 • ある段階の決定はその直前の段階の結果の

ナップザック問題と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

Page 7: ダイナミックプログラミング › japanese › 2016-A論...2016/11/25  · ダイナミックプログラミング(DP) • 多段階決定理論 • ある段階の決定はその直前の段階の結果の

2番目の小問題

①品物0だけを使ったナップザック小問題の解

を使って②品物0と1を使ったナップザック小問題を解くことを考える

①の表で品物1を詰めることができるケースを調べ,「品物0だけの価値」と「品物0+1の価値」を比較して最大価値を更新していく

Page 8: ダイナミックプログラミング › japanese › 2016-A論...2016/11/25  · ダイナミックプログラミング(DP) • 多段階決定理論 • ある段階の決定はその直前の段階の結果の

大きさ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

Page 9: ダイナミックプログラミング › japanese › 2016-A論...2016/11/25  · ダイナミックプログラミング(DP) • 多段階決定理論 • ある段階の決定はその直前の段階の結果の

大きさ6のナップザックに

品物1(大きさ3)を入れるかどうか?

品物0(2)

品物0(2)

品物0(2)

品物0(2)

品物1(4)

品物1(4)

品物1(4)

すきま

全体価値=6 全体価値=6 全体価値=8

X X

Page 10: ダイナミックプログラミング › japanese › 2016-A論...2016/11/25  · ダイナミックプログラミング(DP) • 多段階決定理論 • ある段階の決定はその直前の段階の結果の

②品物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の場合は更新されない

Page 11: ダイナミックプログラミング › japanese › 2016-A論...2016/11/25  · ダイナミックプログラミング(DP) • 多段階決定理論 • ある段階の決定はその直前の段階の結果の

3~5番目の小問題

③品物0と1と2を使用したナップザック小問題

④品物0と1と2と3を使用したナップザック小問題

⑤品物0と1と2と3と4を使用したナップザック小問題

Page 12: ダイナミックプログラミング › japanese › 2016-A論...2016/11/25  · ダイナミックプログラミング(DP) • 多段階決定理論 • ある段階の決定はその直前の段階の結果の

aからbへの最短経路は?

a

b

段階 1 2 3 4

レベル1

レベル2

レベル3

問1 腕ずくの方法で調べると(総ルート数は)?

10段階10レベルの場合は?

100段階100レベルの場合は?

Page 13: ダイナミックプログラミング › japanese › 2016-A論...2016/11/25  · ダイナミックプログラミング(DP) • 多段階決定理論 • ある段階の決定はその直前の段階の結果の

移動コスト

1

2

3

2

1

Page 14: ダイナミックプログラミング › japanese › 2016-A論...2016/11/25  · ダイナミックプログラミング(DP) • 多段階決定理論 • ある段階の決定はその直前の段階の結果の

第1段階に行くコスト

a 3

2

1

1段階

Page 15: ダイナミックプログラミング › japanese › 2016-A論...2016/11/25  · ダイナミックプログラミング(DP) • 多段階決定理論 • ある段階の決定はその直前の段階の結果の

第2段階レベル1に行くコスト

3

2

1

a

段階 レベル1 1 2

1

2

3

移動コスト

前段階のコスト

1+3=4, 3+1=4, 2+2=4 -> 4

Page 16: ダイナミックプログラミング › japanese › 2016-A論...2016/11/25  · ダイナミックプログラミング(DP) • 多段階決定理論 • ある段階の決定はその直前の段階の結果の

第2段階レベル2に行くコスト

3

2

1

段階

レベル2

1 2

1

2

3

前段階のコスト 移動コスト

4

1+2=3, 3+3=6, 2+1=3 -> 3

Page 17: ダイナミックプログラミング › japanese › 2016-A論...2016/11/25  · ダイナミックプログラミング(DP) • 多段階決定理論 • ある段階の決定はその直前の段階の結果の

1

段階 1 2

1 2

3 2

3 3

4

第2段階レベル3に行くコスト

1+1=2, 3+2=5,2+3=5 -> 2

Page 18: ダイナミックプログラミング › japanese › 2016-A論...2016/11/25  · ダイナミックプログラミング(DP) • 多段階決定理論 • ある段階の決定はその直前の段階の結果の

第2段階終了時

1

段階 1

2

2

2

3 3

4

a

Page 19: ダイナミックプログラミング › japanese › 2016-A論...2016/11/25  · ダイナミックプログラミング(DP) • 多段階決定理論 • ある段階の決定はその直前の段階の結果の

第3段階終了時

1

段階 1

2

2

2

3 3

4

a ?

?

?

3

2

1

3 4

Page 20: ダイナミックプログラミング › japanese › 2016-A論...2016/11/25  · ダイナミックプログラミング(DP) • 多段階決定理論 • ある段階の決定はその直前の段階の結果の

第4段階終了時

1

段階 1

2

2

2

3 3

4

a 3

5

4

?

?

?

Page 21: ダイナミックプログラミング › japanese › 2016-A論...2016/11/25  · ダイナミックプログラミング(DP) • 多段階決定理論 • ある段階の決定はその直前の段階の結果の

最適ルート

1

段階 1

2

2

2

3 3

4

a 3

5

4

6

5

4

b 5

3

2

1

Page 22: ダイナミックプログラミング › japanese › 2016-A論...2016/11/25  · ダイナミックプログラミング(DP) • 多段階決定理論 • ある段階の決定はその直前の段階の結果の

動的計画法と環境問題

• 3期で化学物質を10トン生産

• でも副産物として有害物が作られる

• 有害物は気候(期)によって変動

• 第1期目:化学物質をx生産すると有害物は2x2

• 第2期目:化学物質をx生産すると有害物はx2

• 第3期目:化学物質をx生産すると有害物は3x2

有害物総量を最小にするには化学物質をどのように生産すればいいか?

Page 23: ダイナミックプログラミング › japanese › 2016-A論...2016/11/25  · ダイナミックプログラミング(DP) • 多段階決定理論 • ある段階の決定はその直前の段階の結果の

DPによる数値的解放

• 1,2,3期の化学物質生産量をx1,x2,x3

x1+x2+x3=10

F(x1,x2,x3)=2X1 2+X22+3X32 を最小

Page 24: ダイナミックプログラミング › japanese › 2016-A論...2016/11/25  · ダイナミックプログラミング(DP) • 多段階決定理論 • ある段階の決定はその直前の段階の結果の

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

Page 25: ダイナミックプログラミング › japanese › 2016-A論...2016/11/25  · ダイナミックプログラミング(DP) • 多段階決定理論 • ある段階の決定はその直前の段階の結果の

拘束条件をもつ関数の極値

• 大学入試問題: 1辺がx軸に平行な長方形で,方程式 で表される図形(楕円)に内接するもの全体の中で,最大の面積をもつ長方形の面積を求めよ.

• 関数 f (x, y, z)の極値 →x, y, zで偏微分して連立方程式を解く

• 拘束条件g下での関数 f (x, y, z)の極値 →ラグランジェの未定乗数法 →~f = f – λg の極値を求める (拘束条件を含めた式を作って, 変数束縛を解く)

116

22

yx