0.5Dynamic Programming-1
0.5Dynamic Programming-1
Module 3
Origins
• A method for solving complex problems by breaking them into
smaller, easier, sub problems
• Term Dynamic Programming coined by mathematician Richard
Bellman in early 1950s
• employed by Rand Corporation
• Rand had many, large military contracts
• Secretary of Defense, Charles Wilson “against research, especially
mathematical research”
• how could any one oppose "dynamic"?
CS314-slide credits 2
Dynamic Programming
• fib(0) = fib(1) = 1
• fib(n) = fib(n-1) + fib(n-2)
Ex: Fibonacci Sequence
• 1, 1, 2, 3, 5, 8, 13……..
• Recursion
• fib(0) = fib(1) = 1
• fib(n) = fib(n-1) + fib(n-2)
Ex: Fibonacci Sequence
• 1, 1, 2, 3, 5, 8, 13……..
• Recursion
Concept 2: Overlapping Sub Problems
Ex: Fibonacci Sequence
Fib(5) calls
Fib (3)- 2 times
Fib (2)- 3 times
Fib (20)
Fib (3)- 2 584 times
Fib (10)- 89 times