Dynamic Programming Mani Chandy mani@cs.caltech.edu

Preview:

Citation preview

Dynamic Programming

Mani Chandy

mani@cs.caltech.edu

The Pattern

• Given a problem P, obtain a sequence of problems Q0, Q1, …., Qm, where:

– You have a solution to Q0

– The solution to P can be obtained from the solution to Qm,

– The solution to a problem Qj, j > 0, can be obtained from solutions to problems Qk, k < j, that appear earlier in the sequence.

Dynamic Progamming Pattern

PGiven problem P

Propose a partial ordering of problems

Q0Qm

You know how to compute solution to Q0

You can compute thesolution to P from the solution to Qm

Creative Step

Finding problems Qi from problem P

More mechanical step: Determining the function that computes the solution Sk for problem Qk from the solutions Sj of problems Qj for j < k.

Example: Matrix Multiplication

1 X N

N X N N X NNX1

What is the cost of multiplying matrices of these sizes?

Cost of multiplying 2 matrices

p x q

q x r

p rows and q columns.

Cost is 2pqr because resultant matrix has pr elements, andThe cost of computing each element is 2q operations.

Parenthesization

1 X N

N X N N X NNX1

If we multiply these matrices first the cost is 2N3.

N X NResulting matrix

Parenthesization1 X N

NX1

N X N

Cost of multiplication is N2.

Thus, total cost is proportional to N3 + N2 + N if we parenthesizethe expression in this way.

Different Ordering

1 X N

N X N N X NNX1

Cost is proportional to N2

The Ordering Matters!

One ordering costs O(N3)

The other ordering costs O(N2)

1 X N

N X N N X NNX1

1 X NN X N N X N

NX1

Generalization: Parenthesization

A1 op An A3 A2 op op …. op

Associative operation

Cost of operation depends on parameters of the operands.

Parenthesize to minimize total cost.

( ) ( )( )

Creative Step

Come up with partial-ordering of problems Qi given problem P.

Propose a partial ordering of problems

Q0Qm

Creative Step: Solution

Qi,j is: optimally parenthesize the expression Ai op ….. op Aj

Relatively “mechanical” steps:1. Find partial ordering of problems Qi,j 2. Find function f that computes solution Si,j from solutions of problems earlier in the ordering.

Partial Ordering Structure

Q1,1 Q2,2Q3,3 Q4,4

Q1,2 Q2,3 Q3,4

Q1,3 Q2,4

Q1,4

Depends on

Solutions known

Solution to givenproblem obtainedfrom solution to thisproblem Q1,n.

The Recurrence Relation

Let C[j,k] be the minimum cost of executing Aj op … op Ak.

Base Case: ???? C[j,j] = 0

Induction Step: ???? C[j,k] for k > j is: min over all v of C[j,v]+C[v+1,k] + cost of the operation combining [j…v] and [v+1 … k]Proof: ???

For matrix multiplication

Let j-th matrix have size: p(j-1) X pj

Then the size of matrix obtained by combining [ j … v] is: ?

p (j-1) X pv

Then the size of matrix obtained by combining [ v+1 … k] is: ?

pv X pk

Cost of multiplying [j … v] and [v+1 … k] is p (j-1) X pv X pk

Proof Structure

What is the theorem that we are proving?

We make an assertion about the meaning of a term.

For instance, C[j,k] is the minimum cost of executing Aj op …. op Ak

We are proving that this assertion is correct.

Proof Structure

Almost always, we use induction.

Base case: establish that the value of C[j,j] is correct.

Induction step: Assume that the value of C[j, j+u] is correct for all u where u is less than V, and prove that the value of C[j, j+V] iscorrect.

Remember what we are proving:C[j,k] is the minimum cost of executing Aj op …. op Ak

The Central Idea

Bellman’s optimality principle

Qi,j Qu,v

Pick optimal

Discard others

Qa,z

The discarded solutions forthe smaller problem remaindiscarded because the optimalsolution dominates them.

All-Points Shortest Path

Given a weighted directed graph. • The edge-weight W[j,k] represents the distance from vertex j to vertex k.• There are no cycles of negative weight.• For all j, k, compute D[j,k] where D[j,k] is the length of the shortest path from vertex j to vertex k.

The Creative Step

Come up with partial-ordering of problems Qi given problem P.

There are different problem sets Qi some better than others.

Creative Step

Let F[j,k,m] be the length of the shortest path from vertex j tovertex k that has at most m hops.

What is the partial-ordering of problems Q[j,k,m]?

A recurrence relation

F[j,k,m] = min over all r of F[j,r,m-1] + W[r,k]

Base case: F[j,k,1] = ?????

W[j,k](assume W[j,j] = 0 for all j)

Obtaining solution for given problem P

D[j,k] = F[j,k,n-1]

Proof of Correctness

What are we proving?

We are proving that the meaning we gave to F[j,k,m] is correct

Base CaseWe show that F[j,k,1] is indeed the length of the shortest pathfrom vertex j to vertex k that traverses at most one edge.

Induction StepAssume that F[j,k,m] is the length of the shortest path from j to kthat traverses at most m edges, for all m less than p, and prove thatF[j,k,p] is the min length from j to k that traverses at most p edges

Complexity?

n4

Can you do better?

Come up with partial-ordering of problems Qi given problem P.

Let F[j,k,m] be the length of the shortest path from vertex j tovertex k that has at most m hops.

2m

Recommended