Spring 1998
Dynamic Programing Summary
Many objects have an inherent left-to-right ordering among their elements,
such as characters in a string, elements of a permutation, points around a
polygon, or leaves in a search tree. For any optimization
problem on such left-to-right objects, dynamic programming will likely
lead to an efficient algorithm to find the best solution.
Dynamic Programming combines the best of both of these algorithmic
techniques. The technique systematically considers all possible decisions
and always selects the one that proves the best. Everything is considered
in such a way that the total amount of work is minimized.
Occasionally these produce a global optimum solution for certain
problems. These algorithms are usually very efficient when they exist.
These always produce a global optimum solution but are usually
prohibitive in terms of time complexity.