Download Presentation
## Dynamic Programming

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -

**Dynamic Programming**Part 1: intro and the assembly-line scheduling problem**What is dynamic programming**• Is an algorithm method that solves a problem by combining solutions of subproblems • This sounds similar to divide-and-conquer • However, there’s a difference between the two: • In divide-and-conquer, the subproblems don’t overlap • In dynamic programming, the subproblems overlap • Subproblems share sub-subproblems!**Dynamic programming may be good for these problems**• Dynamic programming is typically applied to optimization problems • These optimization problems may have many possible solutions • Each solution has a value associated with it • We want a solution with the optimal (min or max) value • We say “a solution,” not “the solution,” because there may be more than 1 solution with the same, best value**Sequence in the development of a dynamic programming**algorithm • Characterize the structure of an optimal solution • Recursively define the value of an optimal solution • Compute the value of an optimal solution in a bottom-up fashion (smaller subproblems first) • Construct an optimal solution from computed information • Step 4 omitted if only the value of the best solutions is required**Assembly line scheduling**• 2 assembly lines at an auto assembly plant • Normally they operate independently and concurrently • But when there is a rush job the manager halts the assembly lines and use stations in both assembly lines in an optimal way, to be explained next**Step 1: structure of fastest way: What’s the fastest way**through station S(1,j)? • First suppose the fastest way through station S(1,j) is though S(1,j-1) • Key observation: the chassis must have taken a fastest way from the starting point through station S(1,j-1) • Why? If there had been a faster way to get through station S(1,j-1), we could have substituted this faster way to yield a faster way through station S(1,j): a contradiction**Dynamic optimality or Optimal substructure property**An optimal solution to a problem (finding the fastest way through station S(i,j) contians within it an optimal solution to subproblems (finding the fastest way through either S(1,j-1) or s(2,j-1)).**Step 2: a recursive solution**Let fi[j] = fastest possible time to get a chassis from the starting point through station S(i,j) Ultimate goal: compute fastest time to get a chassis all the way through the factory Denote this time by f* We have…