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, programming, dynamic":

**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 a scoring function and ...

**Dynamic Programming**

... induction as a solution method for finite-horizon discrete-time

**dynamic**optimization problems Method of undetermined coefficients can be used to solve the Bellman equation in ... graphs can be solved efficiently for graphs of bounded treewidth or bounded clique-width by using

**dynamic programming**on a tree decomposition of the graph ... algorithms for the subset 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 ...

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

...

**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 the graph ... can also be solved by a polynomial time

**dynamic programming**algorithm ...

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

“We Americans have the chance to become someday a nation in which all radical stocks and classes can exist in their own selfhoods, but meet on a basis of respect and equality and live together, socially, economically, and politically. We can become a *dynamic* equilibrium, a harmony of many different elements, in which the whole will be greater than all its parts and greater than any society the world has seen before. It can still happen.”

—Shirley Chisholm (b. 1924)