6.17 - dynamic programming - exact changerpeng/cs3510_f17/notes/oct16... · 2017. 10. 16. · 6.17...
TRANSCRIPT
6.17 - Dynamic programming - Exact Change
I Coins X := {x1, · · · , xn}I Total value needed: v .
I We want: Can we make change of v using the coins given?
6.17 - Dynamic programming - Exact Change
Subproblem?
I C (w); 1 ≤ w ≤ v
I C (w) = 1 if we CAN make change for w . 0 otherwise.
I We want to compute: C (v)
I Base case: C (0) = 1
I Recursion: Idea: choices of first coin used
C (w) = maxxi∈coin set
C (w − xi )
6.17 - Dynamic programming - Exact Change
Running Time
I No. of subproblems: O(v)
I Transition Time: O(n) time
I So, total running time O(vn)
6.16 - Dynamic programming - Garage Sale
I Garage sales G := {g1, · · · , gn}I Cost of traveling from garage gi to gj is dijI Profit earned at garage gi is pi .
I We want: Most profitable route from home (g0) and back.
6.16 - Dynamic programming - Garage Sale
Subproblem?
I C (S , j); S ⊆ G , gj ∈ S
I C (S , j) is the max profit earned starting at home, ending at gjand only being allowed to use the garages in S .
I We want to compute: maxgi∈G C (G , j) + dj0I Base case: C ({gj}, j) = pj − d0jI Recursion: Idea: choices of garage visited just before gj
C (S , j) = maxgi∈S :i 6=j
{C (S − {gj}, i) + pj − dij}
6.16 - Dynamic programming - Garage Sale
Running Time
I No. of subproblems: O(n) · O(2n)
I Transition Time: O(n) time
I So, total running time O(n22n).
4.1 - Bellman Ford example 1.
IterationNode 0 1 2 3 4 5 6 7
A 0B ∞C ∞D ∞E ∞F ∞G ∞H ∞
4.1 - Bellman Ford example 1.
IterationNode 0 1 2 3 4 5 6 7
A 0 0B ∞ 1C ∞ ∞D ∞ ∞E ∞ 4F ∞ 8G ∞ ∞H ∞ ∞
4.1 - Bellman Ford example 1.
IterationNode 0 1 2 3 4 5 6 7
A 0 0 0B ∞ 1 1C ∞ ∞ 3D ∞ ∞ ∞E ∞ 4 4F ∞ 8 7G ∞ ∞ 7H ∞ ∞ ∞
4.1 - Bellman Ford example 1.
IterationNode 0 1 2 3 4 5 6 7
A 0 0 0 0B ∞ 1 1 1C ∞ ∞ 3 3D ∞ ∞ ∞ 4E ∞ 4 4 4F ∞ 8 7 7G ∞ ∞ 7 5H ∞ ∞ ∞ ∞
4.1 - Bellman Ford example 1.
IterationNode 0 1 2 3 4 5 6 7
A 0 0 0 0 0B ∞ 1 1 1 1C ∞ ∞ 3 3 3D ∞ ∞ ∞ 4 4E ∞ 4 4 4 4F ∞ 8 7 7 7G ∞ ∞ 7 5 5H ∞ ∞ ∞ ∞ 8
4.1 - Bellman Ford example 1.
IterationNode 0 1 2 3 4 5 6 7
A 0 0 0 0 0 0B ∞ 1 1 1 1 1C ∞ ∞ 3 3 3 3D ∞ ∞ ∞ 4 4 4E ∞ 4 4 4 4 4F ∞ 8 7 7 7 7G ∞ ∞ 7 5 5 5H ∞ ∞ ∞ ∞ 8 8
4.1 - Bellman Ford example 1.
IterationNode 0 1 2 3 4 5 6 7
A 0 0 0 0 0 0 0B ∞ 1 1 1 1 1 1C ∞ ∞ 3 3 3 3 3D ∞ ∞ ∞ 4 4 4 4E ∞ 4 4 4 4 4 4F ∞ 8 7 7 7 7 6G ∞ ∞ 7 5 5 5 5H ∞ ∞ ∞ ∞ 8 8 6
4.1 - Bellman Ford example 1.
IterationNode 0 1 2 3 4 5 6 7
A 0 0 0 0 0 0 0 0B ∞ 1 1 1 1 1 1 1C ∞ ∞ 3 3 3 3 3 3D ∞ ∞ ∞ 4 4 4 4 4E ∞ 4 4 4 4 4 4 4F ∞ 8 7 7 7 7 6 6G ∞ ∞ 7 5 5 5 5 5H ∞ ∞ ∞ ∞ 8 8 6 6
4.1 - Bellman Ford example 1.
Shortest path tree:
4.2 - BF e.g. 2
IterationNode 0 1 2 3 4 5 6
S 0A ∞B ∞C ∞D ∞E ∞F ∞G ∞H ∞I ∞
4.2 - BF e.g. 2
IterationNode 0 1 2 3 4 5 6
S 0 0A ∞ 7B ∞ ∞C ∞ 6D ∞ ∞E ∞ 6F ∞ 5G ∞ ∞H ∞ ∞I ∞ ∞
4.2 - BF e.g. 2
IterationNode 0 1 2 3 4 5 6
S 0 0 0A ∞ 7 7B ∞ ∞ 11C ∞ 6 5D ∞ ∞ 8E ∞ 6 6F ∞ 5 4G ∞ ∞ ∞H ∞ ∞ 9I ∞ ∞ ∞
4.2 - BF e.g. 2
IterationNode 0 1 2 3 4 5 6
S 0 0 0 0A ∞ 7 7 7B ∞ ∞ 11 11C ∞ 6 5 5D ∞ ∞ 8 7E ∞ 6 6 6F ∞ 5 4 4G ∞ ∞ ∞ 9H ∞ ∞ 9 7I ∞ ∞ ∞ ∞
4.2 - BF e.g. 2
IterationNode 0 1 2 3 4 5 6
S 0 0 0 0 0A ∞ 7 7 7 7B ∞ ∞ 11 11 11C ∞ 6 5 5 5D ∞ ∞ 8 7 7E ∞ 6 6 6 6F ∞ 5 4 4 4G ∞ ∞ ∞ 9 8H ∞ ∞ 9 7 7I ∞ ∞ ∞ ∞ 8
4.2 - BF e.g. 2
IterationNode 0 1 2 3 4 5 6
S 0 0 0 0 0 0A ∞ 7 7 7 7 7B ∞ ∞ 11 11 11 11C ∞ 6 5 5 5 5D ∞ ∞ 8 7 7 7E ∞ 6 6 6 6 6F ∞ 5 4 4 4 4G ∞ ∞ ∞ 9 8 8H ∞ ∞ 9 7 7 7I ∞ ∞ ∞ ∞ 8 7
4.2 - BF e.g. 2
IterationNode 0 1 2 3 4 5 6
S 0 0 0 0 0 0 0A ∞ 7 7 7 7 7 7B ∞ ∞ 11 11 11 11 11C ∞ 6 5 5 5 5 5D ∞ ∞ 8 7 7 7 7E ∞ 6 6 6 6 6 6F ∞ 5 4 4 4 4 4G ∞ ∞ ∞ 9 8 8 8H ∞ ∞ 9 7 7 7 7I ∞ ∞ ∞ ∞ 8 7 7
4.2 - BF e.g. 2
Shortest path tree:
5.1 - Kruskal example 1
Kruskal order:
I AE - yes [cut: A,V − A]I EF - yes [cut: F ,V − F ]I BE - yes [cut: B,V − B]I BF - noI FG - yes [cut: GH,V − GH]I GH - yes [cut: H,V − H]I CG - yes [cut: C ,V − C ]I DG - yes [cut: D,V − D]
n − 1 = 7 edges done!
5.1 - Kruskal example 1
Kruskal order:
I AE - yes [cut: A,V − A]
I EF - yes [cut: F ,V − F ]I BE - yes [cut: B,V − B]I BF - noI FG - yes [cut: GH,V − GH]I GH - yes [cut: H,V − H]I CG - yes [cut: C ,V − C ]I DG - yes [cut: D,V − D]
n − 1 = 7 edges done!
5.1 - Kruskal example 1
Kruskal order:
I AE - yes [cut: A,V − A]I EF - yes [cut: F ,V − F ]
I BE - yes [cut: B,V − B]I BF - noI FG - yes [cut: GH,V − GH]I GH - yes [cut: H,V − H]I CG - yes [cut: C ,V − C ]I DG - yes [cut: D,V − D]
n − 1 = 7 edges done!
5.1 - Kruskal example 1
Kruskal order:
I AE - yes [cut: A,V − A]I EF - yes [cut: F ,V − F ]I BE - yes [cut: B,V − B]
I BF - noI FG - yes [cut: GH,V − GH]I GH - yes [cut: H,V − H]I CG - yes [cut: C ,V − C ]I DG - yes [cut: D,V − D]
n − 1 = 7 edges done!
5.1 - Kruskal example 1
Kruskal order:
I AE - yes [cut: A,V − A]I EF - yes [cut: F ,V − F ]I BE - yes [cut: B,V − B]I BF - no
I FG - yes [cut: GH,V − GH]I GH - yes [cut: H,V − H]I CG - yes [cut: C ,V − C ]I DG - yes [cut: D,V − D]
n − 1 = 7 edges done!
5.1 - Kruskal example 1
Kruskal order:
I AE - yes [cut: A,V − A]I EF - yes [cut: F ,V − F ]I BE - yes [cut: B,V − B]I BF - noI FG - yes [cut: GH,V − GH]
I GH - yes [cut: H,V − H]I CG - yes [cut: C ,V − C ]I DG - yes [cut: D,V − D]
n − 1 = 7 edges done!
5.1 - Kruskal example 1
Kruskal order:
I AE - yes [cut: A,V − A]I EF - yes [cut: F ,V − F ]I BE - yes [cut: B,V − B]I BF - noI FG - yes [cut: GH,V − GH]I GH - yes [cut: H,V − H]
I CG - yes [cut: C ,V − C ]I DG - yes [cut: D,V − D]
n − 1 = 7 edges done!
5.1 - Kruskal example 1
Kruskal order:
I AE - yes [cut: A,V − A]I EF - yes [cut: F ,V − F ]I BE - yes [cut: B,V − B]I BF - noI FG - yes [cut: GH,V − GH]I GH - yes [cut: H,V − H]I CG - yes [cut: C ,V − C ]
I DG - yes [cut: D,V − D]n − 1 = 7 edges done!
5.1 - Kruskal example 1
Kruskal order:
I AE - yes [cut: A,V − A]I EF - yes [cut: F ,V − F ]I BE - yes [cut: B,V − B]I BF - noI FG - yes [cut: GH,V − GH]I GH - yes [cut: H,V − H]I CG - yes [cut: C ,V − C ]I DG - yes [cut: D,V − D]
n − 1 = 7 edges done!
5.2 - Kruskal example 2
I AB - yes [cut: A,V − A]I FG - yes [cut: F ,V − F ]I DG - yes [cut: D,V − D]I GH - yes [cut: H,V − H]I BC - yes [cut: ABE ,V − ABE ]I CG - yes [cut: ABC ,V − ABC ]I CD - noI AE - yes [cut: E ,V − E ]
n − 1 = 7 edges done!
5.2 - Kruskal example 2
I AB - yes [cut: A,V − A]
I FG - yes [cut: F ,V − F ]I DG - yes [cut: D,V − D]I GH - yes [cut: H,V − H]I BC - yes [cut: ABE ,V − ABE ]I CG - yes [cut: ABC ,V − ABC ]I CD - noI AE - yes [cut: E ,V − E ]
n − 1 = 7 edges done!
5.2 - Kruskal example 2
I AB - yes [cut: A,V − A]I FG - yes [cut: F ,V − F ]
I DG - yes [cut: D,V − D]I GH - yes [cut: H,V − H]I BC - yes [cut: ABE ,V − ABE ]I CG - yes [cut: ABC ,V − ABC ]I CD - noI AE - yes [cut: E ,V − E ]
n − 1 = 7 edges done!
5.2 - Kruskal example 2
I AB - yes [cut: A,V − A]I FG - yes [cut: F ,V − F ]I DG - yes [cut: D,V − D]
I GH - yes [cut: H,V − H]I BC - yes [cut: ABE ,V − ABE ]I CG - yes [cut: ABC ,V − ABC ]I CD - noI AE - yes [cut: E ,V − E ]
n − 1 = 7 edges done!
5.2 - Kruskal example 2
I AB - yes [cut: A,V − A]I FG - yes [cut: F ,V − F ]I DG - yes [cut: D,V − D]I GH - yes [cut: H,V − H]
I BC - yes [cut: ABE ,V − ABE ]I CG - yes [cut: ABC ,V − ABC ]I CD - noI AE - yes [cut: E ,V − E ]
n − 1 = 7 edges done!
5.2 - Kruskal example 2
I AB - yes [cut: A,V − A]I FG - yes [cut: F ,V − F ]I DG - yes [cut: D,V − D]I GH - yes [cut: H,V − H]I BC - yes [cut: ABE ,V − ABE ]
I CG - yes [cut: ABC ,V − ABC ]I CD - noI AE - yes [cut: E ,V − E ]
n − 1 = 7 edges done!
5.2 - Kruskal example 2
I AB - yes [cut: A,V − A]I FG - yes [cut: F ,V − F ]I DG - yes [cut: D,V − D]I GH - yes [cut: H,V − H]I BC - yes [cut: ABE ,V − ABE ]I CG - yes [cut: ABC ,V − ABC ]
I CD - noI AE - yes [cut: E ,V − E ]
n − 1 = 7 edges done!
5.2 - Kruskal example 2
I AB - yes [cut: A,V − A]I FG - yes [cut: F ,V − F ]I DG - yes [cut: D,V − D]I GH - yes [cut: H,V − H]I BC - yes [cut: ABE ,V − ABE ]I CG - yes [cut: ABC ,V − ABC ]I CD - no
I AE - yes [cut: E ,V − E ]n − 1 = 7 edges done!
5.2 - Kruskal example 2
I AB - yes [cut: A,V − A]I FG - yes [cut: F ,V − F ]I DG - yes [cut: D,V − D]I GH - yes [cut: H,V − H]I BC - yes [cut: ABE ,V − ABE ]I CG - yes [cut: ABC ,V − ABC ]I CD - noI AE - yes [cut: E ,V − E ]
n − 1 = 7 edges done!