dynamic programming mani chandy [email protected]

25
Dynamic Programming Mani Chandy [email protected]

Post on 22-Dec-2015

265 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Dynamic Programming Mani Chandy mani@cs.caltech.edu

Dynamic Programming

Mani Chandy

[email protected]

Page 2: 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.

Page 3: Dynamic Programming Mani Chandy mani@cs.caltech.edu

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

Page 4: Dynamic Programming Mani Chandy mani@cs.caltech.edu

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.

Page 5: Dynamic Programming Mani Chandy mani@cs.caltech.edu

Example: Matrix Multiplication

1 X N

N X N N X NNX1

What is the cost of multiplying matrices of these sizes?

Page 6: Dynamic Programming Mani Chandy mani@cs.caltech.edu

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.

Page 7: Dynamic Programming Mani Chandy mani@cs.caltech.edu

Parenthesization

1 X N

N X N N X NNX1

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

N X NResulting matrix

Page 8: Dynamic Programming Mani Chandy mani@cs.caltech.edu

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.

Page 9: Dynamic Programming Mani Chandy mani@cs.caltech.edu

Different Ordering

1 X N

N X N N X NNX1

Cost is proportional to N2

Page 10: Dynamic Programming Mani Chandy mani@cs.caltech.edu

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

Page 11: Dynamic Programming Mani Chandy mani@cs.caltech.edu

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.

( ) ( )( )

Page 12: Dynamic Programming Mani Chandy mani@cs.caltech.edu

Creative Step

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

Propose a partial ordering of problems

Q0Qm

Page 13: Dynamic Programming Mani Chandy mani@cs.caltech.edu

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.

Page 14: Dynamic Programming Mani Chandy mani@cs.caltech.edu

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.

Page 15: Dynamic Programming Mani Chandy mani@cs.caltech.edu

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: ???

Page 16: Dynamic Programming Mani Chandy mani@cs.caltech.edu

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

Page 17: Dynamic Programming Mani Chandy mani@cs.caltech.edu

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.

Page 18: Dynamic Programming Mani Chandy mani@cs.caltech.edu

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

Page 19: Dynamic Programming Mani Chandy mani@cs.caltech.edu

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.

Page 20: Dynamic Programming Mani Chandy mani@cs.caltech.edu

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.

Page 21: Dynamic Programming Mani Chandy mani@cs.caltech.edu

The Creative Step

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

There are different problem sets Qi some better than others.

Page 22: Dynamic Programming Mani Chandy mani@cs.caltech.edu

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]?

Page 23: Dynamic Programming Mani Chandy mani@cs.caltech.edu

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]

Page 24: Dynamic Programming Mani Chandy mani@cs.caltech.edu

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

Page 25: Dynamic Programming Mani Chandy mani@cs.caltech.edu

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