This preview shows pages 1–3. Sign up to view the full content.
This preview has intentionally blurred sections. Sign up to view the full version.
View Full Document
Unformatted text preview: 6.4 Distribution of effort problems One type of problem that can be solved via dynamic programming are so called distribution of effort problems. This type of problem occurs when you have some resource that is to be shared among a number of competing entities, and you want to do this so as to maximize the collective benefit. A concrete example of this is the nonlinear knapsack problem . In this problem, you have a knapsack of a given capacity (where as far as a real life application, the knapsack can be thought of as a truck to be packed with shipments). We have a collection of items, and for each item type, there is a given number of available items of this type, and a specified weight. So, for example, the knapsack might have weight capacity 50, and we have three types of items (1, 2, and 3), with the following data: item type 1 2 3 number available 4 4 4 item weight 10 9 11 In general, we will let N denote the number of types, and let weight [ n ] denote the weight of items of type n , ( n = 1 , . . . , N ), and let itemLimit [ n ] denote the number of items of type n that are available ( n = 1 , . . . , N ); the knapsack capacity will be denoted weightLimit . Then, for each item type, there is an associated benefit that results from packing a given number of those items in the knapsack. So, in our example, this might be: Number of item type packed 1 2 3 4 type 1 46 70 90 105 type 2 20 45 75 110 type 3 50 75 80 100 In general, we will let benefit [ n , j ] denote the benefit of packing j items of type n into the knapsack. The goal is to select those items that feasibly fit within the knapsack (that is, have total weight at most the capacity) of maximum total benefit. In solving this problem by dynamic programming, we again proceed through the 8 steps we outlined previously. 1. What are the stages? A feasible solution is viewed as being selected through a series of decisions, each of which will correspond to a stage of our dynamic program. Here, it is natural to view each item type as 52 a stage, and to view that the decision made in that stage is to select the number of items of that type that are packed in the knapsack. 2. What are the states for each stage? The state information should capture the aspects of the decisions already made that might have an impact on all future decisions, and describe the current situation after having made all of the decisions of the earlier stages. Here, one natural approach is to focus on the capacity remaining after having made decisions about the item types considered earlier. 3. The next thing is to figure out what actions may be taken at each state in each stage. Suppose that we are in stage n , and that we have remaining capacity s ; then clearly we can pack j = 0 , 1 , . . . , min { itemLimit [ n ] , b s/ weight [ n ] c} items of type n given this current point in the decision process....
View
Full
Document
This note was uploaded on 04/06/2008 for the course ORIE 321 taught by Professor Shmoys/lewis during the Spring '07 term at Cornell University (Engineering School).
 Spring '07
 SHMOYS/LEWIS

Click to edit the document details