180 likes | 1.03k Views
Knapsack Problem: Greedy vs. Brute Force. pp 313-317 (Section 7.6). Greedy Approach. To solve problems you have to make decisions. At each decision point, you pick the greedy (or best) option. i.e., make an optimal move given what you know For some problems a greed strategy
E N D
Knapsack Problem: Greedy vs. Brute Force pp 313-317 (Section 7.6)
Greedy Approach • To solve problems you have to make decisions. • At each decision point, you pick the greedy (or best) option. • i.e., make an optimal move given what you know • For some problems a greed strategy • produces an optimal solution • produces a very bad solution
Continuous Knapsack Problem • Continuous Knapsack Variation • Input: N chapters • Goal: Maximize importance • Constraint: Report must be 600 pages
Continuous Knapsack Problem Step 1: Pick the chapter with the most importance (Chapter 4). Maximize the importance by choosing all 150 pages
Continuous Knapsack Problem Step 2: Greedy choice… pick the most important remaining chapter:Chapter 1 and 2 are tied, pick both, i.e., 270 pages Report (600 pages max):All of Chapter 4 (importance 8)450 pages leftTotal Importance = 8
Continuous Knapsack Problem Step 3: Greedy choice… pick Chapter 3.However, we can only pick 90% of it, i.e., 180 out of 200 pages. Report (600 pages max):All of Chapter 4 (importance 8)All of Chapter 1 (importance 5)All of Chapter 2 (importance 5)180 pages leftTotal Importance = 8 + 5 + 5
Continuous Knapsack Problem Is the final answer optimal? Can you pick page differently and beat 21.6? Report (600 pages max):All of Chapter 4 (importance 8)All of Chapter 1 (importance 5)All of Chapter 2 (importance 5)90% of Chapter 3 (importance 4)0 pages leftTotal Importance = 8 + 5 + 5 + 4*0.9 = 21.6
Constrained Optimization Problems • Many different real-world problem can be reduced to constrained optimization problems. • Some factor needs to be maximized or minimized (Goal) • Real-world constraints limit the choices you can make (Constraints)
Constrained Optimization Problems • Examples: • Package routing • Input: N packages and N delivery points • Goal: Minimize the package delivery time • Constrains: X number of trucks • CPU allocation • Input: N processing jobs each with a priority • Goal: Maximize total priority throughput • Constaints: X processor, Y memory, Z time
Non-Continuous Knapsack Problem • Greedy approach does NOT work. • Just call it the Knapsack Problem • Constraint: Sack holds 100 lbs. • Goal: Maximize sack value • Input: Packages
Greedy: Lowest Weight First 79 lbs $83
Greedy: Lowest Weight Firstwith one Backtracking step 79 lbs $83-------------------------- 21 lbs remaining26 lbs $30 item avail. removing the lowest valued item 5 lbs. or more.---------------------------95 lbs $103
Greedy: Highest Value First 99 lbs $100
Greedy: Highest Value Firstwith one Restart step 99 lbs $100---------------------Skip the most valuable item and start again---------------------98 lbs $107
Greedy: Highest Density 90 lbs $103
Greedy: Highest Densitywith one Backtracking step 90 lbs $103------------------10 lbs remaining15 lbs $10 item avail. removing the lowest valued item 5 lbs. or more.---------------------------96 lbs $102