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.

Read more about Dynamic Programming: History, Overview, Algorithms That Use Dynamic Programming

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

**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 ...

**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 ...

... 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 ...

... 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 ...

**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)