DOC PREVIEW
MIT 6 006 - Lecture Notes

This preview shows page 1-2-20-21 out of 21 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 21 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 21 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 21 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 21 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 21 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

6.006- Introduction to Algorithms Lecture 19 Prof. Patrick JailletLecture overview Dynamic Programming II – review • key aspects of Dynamic Programming (DP) • all-pairs shortest paths as a DP – another DP for all-pairs shortest paths – longest common subsequence CLRS 15.3, 15.4, 25.1, 25.2Dynamic Programming • DP ≈ recursion + memoization • Typically (not always) applied to optimization problems – ex Fibonaci, Crazy eight, SPPs Optimal substructure optimal solution to a problem can be obtained from optimal solutions to subproblems. Overlapping subproblems A recursive solution contains a “small” number of distinct subproblems (repeated many times)Dynamic Programming • DP ≈ recursion + memoization • DP works when: – the solution can be produced by combining solutions of subproblems; – the solution of each subproblem can be produced by combining solutions of sub-subproblems, etc; moreover …. is efficient if – the total number of subproblems arising recursively is polynomial.All-pairs shortest paths • Input: Directed graph G = (V, E), where |V | = n, with edge-weight function w : E → R • Output: n × n matrix of shortest-path lengths δ(i, j) for all i, j ∈ V.Dynamic Programming Approach • Consider the n × n matrix A = (aij) where aij=w(i,j) if (i,j) ∈ E. • Define dij(m) = weight of a shortest path from i to j that uses at most m edges • We have – dij(0) = 0, if i = j, – and dij(0) = ∞ otherwise; CLAIM: for m = 1, 2, …, n–1, dij(m) = mink{dik(m–1) + akj}Proof of Claim … ≤ m-1 edges ≤ m-1 edges i j k’s dij(m) = mink{dik(m–1) + akj } for k ← 1 to n if dij > dik + akj dij ← dik + akj RelaxationDP Approach, running time • Consider the n × n matrix A = (aij), where aij=w(i,j) if (i,j) ∈ E. • Define dij(m) = weight of a shortest path from i to j that uses at most m edges We have – dij(0) = 0, if i = j, – and dij(0) = ∞ otherwise; CLAIM: for m = 1, 2, …, n–1, dij(m) = mink{dik(m–1) + akj} O(n4) - similar to n runs of Bellman-FordDynamic Programming • DP ≈ recursion + memoization • Typically (not always) applied to optimization problems Optimal substructure ? optimal solution to a problem can be obtained from optimal solutions to subproblems. Overlapping subproblems ? A recursive solution contains a “small” number of distinct subproblems (repeated many times)Another DP Approach • Consider again the n × n matrix A = (aij) where aij=w(i,j) if (i,j) ∈ E. • Define dij(k) = weight of a shortest path from i to j for which all intermediate vertices are chosen among {1,2, ..., k} • CLAIM: – dij(k) = aij if k=0, – dij(k) = min{dij(k-1),dik(k–1) +dkj(k–1)} if k≥1; O(n3) running time (Floyd-Warshall)Dynamic Programming • DP ≈ recursion + memoization • Typically (not always) applied to optimization problems Optimal substructure ? optimal solution to a problem can be obtained from optimal solutions to subproblems. Overlapping subproblems ? A recursive solution contains a “small” number of distinct subproblems (repeated many times)Longest Common Subsequence • given two sequences x[1..m] and y[1..n], find a longest subsequence LCS(x,y) common to both: x: A B C B D A B y: B D C A B A • denote the length of a sequence s by |s| • let us first try to get |LCS(x,y)|Brute force solution • For every subsequence of x[1..m] , check if it is a subsequence of y[1..n] • Analysis – 2m subsequences of x – each check takes Ο(n) time ... – worst case running time is Ο(n2m) • Pretty bad (brute!)Using prefixes • consider prefixes of x and y – x[1..i] ith prefix of x[1..m] – y[1..j] jth prefix of y[1..n] • define c[i,j] = |LCS(x[1..i],y[1..j])| • so c[m,n] = |LCS(x,y)| • recurrence?1) x[1..i] and y[1..j] end with xi=yj x1 x2 … xi-1 xi y1 y2 … yj-1 yj=xi z1 z2…zk-1 zk =yj=xi Zk is Zk -1 followed by zk = yj = xi where Zk-1 is an LCS of x[1..i-1] and y[1..j-1] c(i, j) = c(i-1, j-1)+1Example - use of property 1 x: B A N A N A y: A T A N A by inspection LCS of B A N and A T is A so LCS(x,y) is A A N A2) x[1..i] and y[1..j] end with xi ≠ yj x1 x2 … xi-1 xi y1 y2 … yj-1 yj Zk z1 z2…zk-1 zk ≠yj LCS of x[1..i] and y[1..j-1] x1 x2 … xi-1 x i yj y1 y2 …yj-1 yj Zk z1 z2…zk-1 zk ≠ xi c(i, j)=max{c(i, j-1), c(i-1, j)} LCS of x[1..i-1] and y[1..j]Example: use of property 2 The last character of the LCS(x,y) either: – ends with a G => can’t end with a K • => can remove K from y – doesn’t end with a G • => can remove G from x x: A B C D E F G y: B C D G KA recurrence, summary • consider prefixes of x and y – x[1..i] ith prefix of x[1..m] – y[1..j] jth prefix of y[1..n] • define c[i,j] = |LCS(x[1..i],y[1..j])| – so c[m,n] = |LCS(x,y)| • recurrence: € c[i, j] =c[i −1, j −1] +1 if xi= yjmax{c[i −1, j],c[i, j −1]} otherwise⎧ ⎨ ⎩Solving LCS with DP • running time is .... – O(n×m) € c[i, j] =c[i −1, j −1] +1 if xi= yjmax{c[i −1, j],c[i, j −1]} otherwise⎧ ⎨ ⎩Dynamic Programming • DP ≈ recursion + memoization • Typically (not always) applied to optimization problems Optimal substructure ? optimal solution to a problem can be obtained from optimal solutions to subproblems. Overlapping subproblems ? A recursive solution contains a “small” number of distinct subproblems (repeated many


View Full Document

MIT 6 006 - Lecture Notes

Documents in this Course
Quiz 1

Quiz 1

7 pages

Quiz 2

Quiz 2

12 pages

Quiz 2

Quiz 2

9 pages

Quiz 1

Quiz 1

10 pages

Quiz 2

Quiz 2

11 pages

Quiz 1

Quiz 1

12 pages

Graphs

Graphs

27 pages

Load more
Download Lecture Notes
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Lecture Notes and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Lecture Notes 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?