Friday, 28 February 2014

Decoding a DP Problem

Dynamic Programming aka DP is a design technique in computer science, mathematics and bioinformatics to solve complex problem by breaking it into sub problems. It is one of the most powerful methods to solve optimization problem exhibiting exponential run-time complexity (via brute force) in polynomial time at cost of some extra memory space.

This technique was first invented by Richard Bellman and he gave it the name “Dynamic Programming” as he did not want to reveal his work while he was working on it. There is nothing dynamic in a DP technique; it simply called so because its inventor coined this name for it. However the word ‘Programming’ is due to the fact that it is like a tabular method to solve a problem similar to linear programming.