1 / 15

Dynamic Programming

Dynamic programming is a method of solving problems by breaking them into smaller sub-problems and combining the solutions. It is often used when the brute force approach is too time-consuming. This text explains the concept with an example of matrix-chain multiplication.

larturo
Télécharger la présentation

Dynamic Programming

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Dynamic Programming Carrie Williams

  2. What is Dynamic Programming? • Method of breaking the problem into smaller, simpler sub-problems • Start with the smallest sub-problems and combine to produce a solution • Similar to Divide and Conquer • But uses a bottom-top approach

  3. When is it used? • Most often used with Optimization Problems • When the Brute Force approach becomes too time consuming • Brute Force is when you find all possible solutions and compare them

  4. Example:Matrix-Chain Multiplication • Given: A sequence of matrices (A1A2,…,An) with Ai having dimension mi-1 x m • Cost of a Solution: The number of operations needed to compute A1*A2*…*An • Optimal Solution: The solution with minimal cost

  5. MCM Example • We have a matrix sequence of (90,20,15,50,180) • So we have matrices of the following sizes: • A1 = 90 x 20 • A2 = 20 x 15 • A3 = 15 x 50 • A4 = 50 x 180

  6. MCM Example Cont. • We want to compute A1*A2*A3*A4 • 5 possible ways • (A1(A2(A3A4))) • (A1((A2A3)A4)) • ((A1A2)(A3A4)) • ((A1(A2A3))A4) • (((A1A2)A3)A4) • Recall that the number of operations needed to compute an m x n matrix with a n x p is mnp

  7. MCM Example Cont. • We could try all possible solutions and see what solution gives us the least cost OR • We could use the method of dynamic programming • Finding the optimal solution by finding the optimal solution of sub-problems

  8. Finding the Solution • Start with the computation of two matrices • Let M[i,j] be the cost of the optimal solution • M[i,j]=min {M[i,k] + M[k+1,j] + mi-1mkmj} i<k<j • Now we must compute M[i,j], i>1, j<n, from the bottom up

  9. Finding the Solution cont. • Using the previous example, we need to compute M[i,j] for i>1, j<4 • M[i,i]=0, for all i • The solutions for 2 matrices are the following: • M[1,2] = 27,000 • M[2,3] = 15,000 • M[3,4] = 135,000

  10. Chart of Optimal Solutions

  11. Computing the Cost of Three Matrices • M[1,3] = min {M[1,2] + M[3,3] + m0m2m3} {M[1,1] + M[2,3] + m0m1m3} = 27,000 + 0 + 90*15*50 = 94,500 = 0 + 15,000 + 90*20*50 = 105,000 • M[2,4] = min {M[2,3] + M[4,4] + m1m3m4} {M[2,2] + M[3,4] + m1m2m4} = 15,000 + 0 + 20*50*180 = 195,000 = 0 + 135,000 + 20*50*180 = 315,000 • Minimum for M[1,3] = 94,500 = ((A1A2)A3) • Minimum for M[2,4] = 195,000 = (A2(A3A4))

  12. Chart of Optimal Solutions

  13. Computing the Cost of Four Matrices • M[1,4] = min {M[1,3] + M[4,4] +m0m3m4} {M[1,2] + M[3,4] + m0m2m4} {M[1,1] + M[2,4] + m0m1m4} = 94,500 + 0 + 90*50*180 = 904,000 = 27,000 + 135,000 +90*15*180=405,000 = 0 + 195,000 + 90*20*180 = 519,000 • Hence, the minimum cost is 405,000, which is ((A1A2)(A3A4))

  14. Chart of Optimal Solutions

  15. Conclusion • We used the method of dynamic programming to solve the matrix-chain multiplication problem • We broke the problem into three sub-problems • The minimal cost of two matrices, then three matrices, and finally four matrices • We found the solution by using the sub-problem’s optimal solutions

More Related