Topic 25 Dynamic Programming
"Thus, I thought dynamic programming was a good name. It was something not even a Congressman could object to. So I used it as an umbrella for my activities"
- Richard E. Bellman
- Richard E. Bellman Origins A method for solving complex problems - - PowerPoint PPT Presentation
Topic 25 Dynamic Programming "Thus, I thought dynamic programming was a good name. It was something not even a Congressman could object to. So I used it as an umbrella for my activities" - Richard E. Bellman Origins A method for
CS314 Dynamic Programming
2
CS314 Dynamic Programming
3
CS314 Dynamic Programming
4
CS314 Dynamic Programming
5
CS314 Dynamic Programming
6
CS314 Dynamic Programming
7
CS314 Dynamic Programming
8
CS314 Dynamic Programming
9
CS314 Dynamic Programming
10
CS314 Dynamic Programming
11
CS314 Dynamic Programming
12
CS314 Dynamic Programming
13
CS314 Dynamic Programming
14
CS314 Dynamic Programming
15
CS314 Dynamic Programming
16
CS314 Dynamic Programming
17
CS314 Dynamic Programming
18
CS314 Dynamic Programming
19
CS314 Dynamic Programming
20
CS314 Dynamic Programming
21
CS314 Dynamic Programming
22
CS314 Dynamic Programming
23
CS314 Dynamic Programming
24
25
Item Number Weight
Value of Item Value per unit Weight 1 1 6 6.0 2 2 11 5.5 3 4 1 0.25 4 4 12 3.0 5 6 19 3.167 6 7 12 1.714
CS314 Dynamic Programming
26
CS314 Dynamic Programming
27
28
CS314 Dynamic Programming
29
CS314 Dynamic Programming
30 Item Number Weight
Value of Item 1 1 6 2 2 11 3 4 1 4 4 12 5 6 19 6 7 12
M[item, weight] = max of M[item - 1, weight] AND value of item + M[item - 1, weight - weight of item]
CS314 Dynamic Programming
32
Item Weight Value 1 1 6 2 2 11 3 4 1 4 4 12 5 6 19 6 7 12
items / capacity 0 1 2 3 4 5 6 7 8 {} {1} {1,2} {1, 2, 3} {1, 2, 3, 4} {1, 2, 3, 4, 5} {1, 2, 3, 4, 5, 6}
CS314 Dynamic Programming
33
items / weight 1 2 3 4 5 6 7 8 {} {1} [1, 6]
{1,2} [2, 11]
{1, 2, 3} [4, 1]
{1, 2, 3, 4} [4, 12]
{1, 2, 3, 4, 5} [6, 19]
{1, 2, 3, 4, 5, 6} [7, 12]
CS314 Dynamic Programming
34
items / weight 1 2 3 4 5 6 7 8 {} {1} [1, 6]
{1,2} [2, 11]
{1, 2, 3} [4, 1]
{1, 2, 3, 4} [4, 12]
{1, 2, 3, 4, 5} [6, 19]
{1, 2, 3, 4, 5, 6} [7, 12]
CS314 Dynamic Programming
35
CS314 Dynamic Programming
36
CS314 Dynamic Programming
37