Knapsack Problem: Greedy vs. Brute Force pp (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 ChapterPagesImportance
Continuous Knapsack Problem Step 1: Pick the chapter with the most importance (Chapter 4). Maximize the importance by choosing all 150 pages ChapterPagesImportance
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 ChapterPagesImportance Report (600 pages max): All of Chapter 4 (importance 8) 450 pages left Total 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. ChapterPagesImportance Report (600 pages max): All of Chapter 4 (importance 8) All of Chapter 1 (importance 5) All of Chapter 2 (importance 5) 180 pages left Total Importance =
Continuous Knapsack Problem Is the final answer optimal? Can you pick page differently and beat 21.6? ChapterPagesImportance 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 left Total Importance = *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 ItemWeightValue A3 lbs$4 B4 lbs$8 C9 lbs$11 D10 lbs$10 E13 lbs$15 F15 lbs$10 G25 lbs$25 H26 lbs$30 I50 lbs$51 J55 lbs$54 K60 lbs$55
ItemWeightValue Density A3$ B4$ C9$ D10$ E13$ F15$ G25$ H26$ I50$ J55$ K60$ lbs $83 Greedy: Lowest Weight First
ItemWeightValue Density A3$ B4$ C9$ D10$ E13$ F15$ G25$ H26$ I50$ J55$ K60$ lbs $ lbs remaining 26 lbs $30 item avail. removing the lowest valued item 5 lbs. or more lbs $103 Greedy: Lowest Weight First with one Backtracking step
99 lbs $100 Greedy: Highest Value First ItemWeightValue Density K60$ J55$ I50$ H26$ G25$25 1 E13$ C9$ D10$10 1 F15$ B4$8 2 A3$4 1.33
99 lbs $ Skip the most valuable item and start again lbs $107 Greedy: Highest Value First with one Restart step ItemWeightValue Density K60$ J55$ I50$ H26$ G25$25 1 E13$ C9$ D10$10 1 F15$ B4$8 2 A3$4 1.33
90 lbs $103 Greedy: Highest Density ItemWeightValue Density B4$8 2 A3$ C9$ H26$ E13$ I50$ G25$25 1 D10$10 1 J55$ K60$ F15$
90 lbs $ lbs remaining 15 lbs $10 item avail. removing the lowest valued item 5 lbs. or more lbs $102 Greedy: Highest Density with one Backtracking step ItemWeightValue Density B4$8 2 A3$ C9$ H26$ E13$ I50$ G25$25 1 D10$10 1 J55$ K60$ F15$