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.

Read more about Dynamic ProgrammingHistory, Overview, Algorithms That Use Dynamic Programming

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

Algorithms That Use 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 ... for graphs of bounded treewidth or bounded clique-width by using dynamic programming on a tree decomposition of the graph ... time 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 ...
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 a ...
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 ...
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 the graph ... clique-width, the longest path 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)