0% found this document useful (0 votes)
52 views12 pages

Dynamic Programming and The Knapsack Problem: Paul Dohmen Roshnika Fernando

This document discusses dynamic programming and its application to the knapsack problem. Dynamic programming is a method for solving complex problems by breaking them down into subproblems. It was coined by Richard Bellman. The knapsack problem involves maximizing the value of stolen items subject to a weight constraint. It can be modeled as a dynamic programming problem and solved using recursion and MATLAB. Sensitivity analysis shows the optimal solution can change based on item values and weights.

Uploaded by

Pradip Khatri
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
52 views12 pages

Dynamic Programming and The Knapsack Problem: Paul Dohmen Roshnika Fernando

This document discusses dynamic programming and its application to the knapsack problem. Dynamic programming is a method for solving complex problems by breaking them down into subproblems. It was coined by Richard Bellman. The knapsack problem involves maximizing the value of stolen items subject to a weight constraint. It can be modeled as a dynamic programming problem and solved using recursion and MATLAB. Sensitivity analysis shows the optimal solution can change based on item values and weights.

Uploaded by

Pradip Khatri
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 12

Dynamic Programming and the

Knapsack Problem
Paul Dohmen
Roshnika Fernando
What is Dynamic Programming

 Dynamic programming is a method of


solving complex problems by breaking
them down into sub-problems that can be
solved by working backwards from the last
stage.

 Coined by Richard Bellman who described


dynamic programming as the way of
solving problems where you need to find
the best decisions one after another
Dynamic Programming

Dynamic programming is a simple method


of solving complex real world problems,
such as
 Traveling salesman problem
 Fibonacci sequence
 Stagecoach problem
 Knapsack problem

Numerous other applications exist


Steps to Dynamic Programming

 Every problem is divided into stages


 Each stage requires a decision
 Decisions are made to determine the state of
the next stage
 The solution procedure is to find an optimal
solution at each stage for every possible
state
 This solution procedure often starts at the
last stage and works its way forward
Knapsack Problem

You are a mischievous child camping in the


woods. You would like to steal items from
other campers, but you can only carry so
much mass in your knapsack. You see seven
items worth stealing. Each
item has a certain mass and
monetary value. How do you
maximize your profit so you
can buy more video games
later?
Knapsack Problem

 Value and mass of


each item is given
 Maximize profit
 Subject to mass
constraint of
knapsack: 15 kg

 Being a smart kid,


you apply dynamic
programming
Smart Kids Write Equations

 There are potentially 7 stages to this dynamic


programming problem.
 When an item is placed in the knapsack, a decision,
F(m), is made to choose the next optimal item, i.
 Start at the end of the problem, assuming that the
knapsack has an unknown mass, m.
 Recurrence relation:
F(i,m) = max (F(i-1,m-mi) + fi, F(i-1, m))
 Use recursion and iterate through the problem,
eventually coming up with the optimal solution.
Smart Kids Use MatLab

 Now imagine you, the mischievous smart


thief kid, brought your laptop to the
camping trip. How would you solve the
equation? MATLAB!

 Matlab Solution:
 Profit: $21
 Mass: 15kg
 Not enough to buy a new video game
Solution
Sensitivity Analysis

 Valuables are not very valuable when camping,


pick richer people to steal from.
 Suddenly a valuable item of $15 that weighs
11kg is available, will the optimal solution
change?
Yes, the maximum profit becomes $23
 Using MatLab, it is easy to change the variables
on the program for specific sensitivity analysis
Questions?
Sources

 Petter. "MATLAB Central - File detail - 0-1 Knapsack." The


MathWorks - MATLAB and Simulink for Technical
Computing. Web. 03 Dec. 2009.
<http://www.mathworks.com/matlabcentral/fileexchang
e/22783-0-1-knapsack>.
 "Dynamic Programming Algorithms." Web. 03 Dec. 2009.
<http://www.personal.kent.edu/~rmuhamma/Algorithm
s/MyAlgorithms/Dynamic/knapsackdyn.htm>.
 "Dynamic programming ." Wikipedia, the free encyclopedia.
Web. 03 Dec. 2009.
<http://en.wikipedia.org/wiki/Dynamic_programming>.
 "Dynamic Programming: Definition and additional resources
from BNET." Glossary of Business Dictionary Terms | A |
BNET. Web. 02 Dec. 2009.
<http://dictionary.bnet.com/definition/dynamic+progra
mming.html>.

You might also like