0% found this document useful (0 votes)
3 views

Dynamic Programming

Uploaded by

Khushi arora
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views

Dynamic Programming

Uploaded by

Khushi arora
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 1

Dynamic programming, like the divide-and-conquer method, solves problems by

combining the solutions to subproblems. ("Programming" in this context refers to a


tabular method, not to writing computer code.) As we saw in Chapter 1, divide-
and-conquer algorithms partition the problem into independent subproblems, solve
the subproblems recursively, and then combine their solutions to solve the original
problem. In contrast, dynamic programming is applicable when the subproblems
are not independent, that is, when subproblems share subsubproblems. In this
context, a divide-and-conquer algorithm does more work than necessary,
repeatedly solving the common subsubproblems. A dynamic-programming
algorithm solves every subsubproblem just once and then saves its answer in a
table, thereby avoiding the work of recomputing the answer every time the
subsubproblem is encountered.

Dynamic programming is typically applied to optimization problems. In such


problems there can be many possible solutions. Each solution has a value, and we
wish to find a solution with the optimal (minimum or maximum) value. We call
such a solution an optimal solution to the problem, as opposed to the optimal
solution, since there may be several solutions that achieve the optimal value.

The development of a dynamic-programming algorithm can be broken into a


sequence of four steps.

1. Characterize the structure of an optimal solution.

2. Recursively define the value of an optimal solution.

3. Compute the value of an optimal solution in a bottom-up fashion.

4. Construct an optimal solution from computed information.

Steps 1-3 form the basis of a dynamic-programming solution to a problem. Step 4


can be omitted if only the value of an optimal solution is required. When we do
perform step 4, we sometimes maintain additional information during the
computation in step 3 to ease the construction of an optimal solution.

You might also like