# Dynamic Programming

In mathematics, computer science, and economics, dynamic programming is a method for solving complex problems by breaking them down into simpler subproblems. It is applicable to problems exhibiting the properties of overlapping subproblems which are only slightly smaller and optimal substructure (described below). When applicable, the method takes far less time than naive methods.

The key idea behind dynamic programming is quite simple. In general, to solve a given problem, we need to solve different parts of the problem (subproblems), then combine the solutions of the subproblems to reach an overall solution. Often, many of these subproblems are really the same. The dynamic programming approach seeks to solve each subproblem only once, thus reducing the number of computations: once the solution to a given subproblem has been computed, it is stored or "memo-ized": the next time the same solution is needed, it is simply looked up. This approach is especially useful when the number of repeating subproblems grows exponentially as a function of the size of the input.

### Other articles related to "dynamic programming, dynamic, programming":

Algorithms That Use Dynamic Programming
... Backward induction as a solution method for finite-horizon discrete-time dynamic optimization problems Method of undetermined coefficients can be used to solve the Bellman ... for graphs of bounded treewidth or bounded clique-width by using dynamic programming on a tree decomposition of the graph ... sum and knapsack and partition problems The dynamic time warping algorithm for computing the global distance between two time series The Selinger (a.k.a ...
Seam Carving - Seams - Computing Seams - Dynamic Programming
... Dynamic programming is a programming method that stores the results of sub-calculations in order to simplify calculating a more complex result ... Dynamic programming is used in seam carving for computing seams ...
Longest Path Problem - Parameterized Complexity
... Apply dynamic programming to this path decomposition to find a longest path in time, where is the number of vertices in the graph ... A similar dynamic programming technique shows that the longest path problem is also fixed-parameter tractable when parameterized by the treewidth of ... longest path can also be solved by a polynomial time dynamic programming algorithm ...
Bellman Equation
... A Bellman equation (also known as a dynamic programming equation), named after its discoverer, Richard Bellman, is a necessary condition for optimality associated with the mathematical ... This breaks a dynamic optimization problem into simpler subproblems, as Bellman's Principle of Optimality prescribes ... However, the term 'Bellman equation' usually refers to the dynamic programming equation associated with discrete-time optimization problems ...
RAPTOR (software) - Comparison of Techniques - Integer Programming Vs. Dynamic Programming
... The integer programming approach to RAPTOR produces higher quality models than other protein threading methods ... Most threading software use dynamic programming to optimize their scoring functions when aligning a sequence with a template ... Dynamic programming is much easier to implement than integer programming however if a scoring function has pairwise contact potential included, dynamic programming cannot globally optimize such ...

### Famous quotes containing the words programming and/or dynamic:

If there is a price to pay for the privilege of spending the early years of child rearing in the driver’s seat, it is our reluctance, our inability, to tolerate being demoted to the backseat. Spurred by our success in programming our children during the preschool years, we may find it difficult to forgo in later states the level of control that once afforded us so much satisfaction.
Melinda M. Marshall (20th century)

The nearer a conception comes towards finality, the nearer does the dynamic relation, out of which this concept has arisen, draw to a close. To know is to lose.
—D.H. (David Herbert)