chapter 4 greedy algorithms
play

Chapter 4. Greedy Algorithms Interval scheduling Greedy overview - PowerPoint PPT Presentation

Chapter 4. Greedy Algorithms Interval scheduling Greedy overview Shortest paths Minimum spanning trees What is a greedy algorithm? Hard to describe, but I know it when I see it! Interval Scheduling Schedule n jobs: j th job has start time s


  1. Chapter 4. Greedy Algorithms Interval scheduling Greedy overview Shortest paths Minimum spanning trees

  2. What is a greedy algorithm? Hard to describe, but I know it when I see it!

  3. Interval Scheduling Schedule n jobs: j th job has start time s j , finish time f j . Two jobs compatible if they don't overlap. Goal: find maximum size subset of mutually compatible jobs. a b c d e f g h Time 0 1 2 3 4 5 6 7 8 9 10 11

  4. Greedy Template A ← {} while (there are jobs compatible with A) pick “best” compatible job j A = A ∪ {j} } return A Greedy: pick j and never look back What rule to use?

  5. Interval Scheduling: Greedy Solution Idea 1: Earliest start time. Consider jobs in ascending order of start time s j . a a, g b c d e f g h Time 0 1 2 3 4 5 6 7 8 9 10 11

  6. Interval Scheduling: Greedy Solution Idea 2: Shortest interval. Consider jobs in ascending order of interval length f j - s j . a c, h b c d e f g h Time 0 1 2 3 4 5 6 7 8 9 10 11

  7. Interval Scheduling: Greedy Solution Idea 3: Fewest conflicts. For each job, count the number of conflicting jobs c j . Schedule in ascending order of conflicts c j . a b c d e f g h Time 0 1 2 3 4 5 6 7 8 9 10 11

  8. Interval Scheduling: Greedy Solution Idea 3: Fewest conflicts. For each job, count the number of conflicting jobs c j . Schedule in ascending order of conflicts c j . a 5 3 h, b, e b 4 c 6 d 5 e 5 f 4 g 2 h Time 0 1 2 3 4 5 6 7 8 9 10 11

  9. Interval Scheduling: Greedy Solution Idea 4: Earliest finish time. Consider jobs in ascending order of finish time f j . a b, e, h b c d e f g h Time 0 1 2 3 4 5 6 7 8 9 10 11

  10. Earliest Finish Time - Optimal Solution Sort jobs by finish times so that f 1 ≤ f 2 ≤ ... ≤ f n . A ← {} for j = 1 to n { if (job j compatible with A) A = A ∪ {j} } return A Proof and running time on board

  11. Greedy Overview Build up solution by adding items one at a time Choose next item by simple heuristic, never remove items Prove that the result is optimal! Simple algorithm -> hard part is proving it correct Running time usually n log n or worse: need to sort items

  12. Interval Partitioning Lecture j starts at s j and finishes at f j . Goal: find minimum number of classrooms to schedule all lectures so that no two occur at the same time in the same room. e j c d g b h a f i 9 9:30 10 10:30 11 11:30 12 12:30 1 1:30 2 2:30 3 3:30 4 4:30 Time

  13. Interval Partitioning Lower Bound The depth of a set of intervals is the maximum number that contain any point in time-line. Key observation. Number of classrooms needed ≥ depth. e j c d g b h a f i 3 3:30 4 4:30 9 9:30 10 10:30 11 11:30 12 12:30 1 1:30 2 2:30 Time

  14. Interval Partitioning Lower Bound Example: Depth of schedule below = 3 Question: Does there always exist a schedule equal to depth of intervals? e j c d g b h a f i 9 9:30 10 10:30 11 11:30 12 12:30 1 1:30 2 2:30 3 3:30 4 4:30 Time c d f j i b g a e h 9 9:30 10 10:30 11 11:30 12 12:30 1 1:30 2 2:30 3 3:30 4 4:30 Time

  15. Idea Number classrooms 1, 2, 3, ... Sort intervals in some order: for each interval, assign it to first available classroom What order?

  16. Interval Partitioning: Greedy Solution Sort intervals by starting time so that s 1 ≤ s 2 ≤ ... ≤ s n . k ← 0 / / Number of classrooms for j = 1 to n { if (lecture j is compatible with some classroom i ≤ k) schedule lecture j in classroom i else allocate a new classroom k + 1 schedule lecture j in classroom k + 1 k ← k + 1 } Complexity?

  17. Scheduling to Minimize Lateness Single computer processes one job at a time. Jobs i = 1,2,...,n: Processing time t i Deadline d i Start time s i -> finish time f i = s i + t i . Lateness: l i = max { 0, f i - d i }. 1 ≤ i ≤ n Goal: schedule start times of all jobs to minimize maximum lateness L = max l i .

  18. Scheduling Example Job 1 2 3 4 5 6 t i Processing time 3 2 1 4 3 2 d i Deadline 6 8 9 9 14 15 Attempt 1: Sort by t lateness = 2 lateness = 6 d 3 = 9 d 2 = 8 d 6 = 15 d 1 = 6 d 5 = 14 d 4 = 9 12 13 14 15 0 1 2 3 4 5 6 7 8 9 10 11 Max lateness: 6

  19. Scheduling Example: Smallest Slack time first 1 2 3 4 5 6 t i 3 2 1 4 3 2 d i 6 8 9 9 14 15 slack i 3 6 8 5 11 13 lateness = 1 d 1 = 6 d 4 = 9 d 2 = 8 d 3 = 9 d 5 = 14 d 6 = 15 12 13 14 15 0 1 2 3 4 5 6 7 8 9 10 11 Max lateness: 1

  20. Scheduling Example: Earliest Deadline First 1 2 3 4 5 6 t i 3 2 1 4 3 2 d i 6 8 9 9 14 15 lateness = 1 d 1 = 6 d 2 = 8 d 3 = 9 d 4 = 9 d 5 = 14 d 6 = 15 12 13 14 15 0 1 2 3 4 5 6 7 8 9 10 11 Max lateness: 1

  21. Minimizing Lateness: Analysis Claim: scheduling jobs by their deadline is optimal Let’ s establish some basic facts for the proof...

  22. Minimizing Lateness: No Idle Time Observation. There exists an optimal schedule with no idle time. d = 4 d = 6 d = 12 0 1 2 3 4 5 6 7 8 9 10 11 d = 4 d = 6 d = 12 0 1 2 3 4 5 6 7 8 9 10 11 Observation. The greedy schedule has no idle time.

  23. Minimizing Lateness: Proof Approach Idea: start with an optimal solution with no idle time, and gradually transform it into the greedy solution (*), without increasing the maximum lateness Discuss and outline on board

  24. Minimizing Lateness: Inversions An inversion in schedule S is a pair of jobs i and j such that i is scheduled before j but d j < d i . 1 2 3 4 5 6 t i 3 2 1 4 3 2 d i 6 8 9 9 14 15 d 1 = 6 d 2 = 8 d 4 = 9 d 5 = 14 d 6 = 15 d 3 = 9 12 13 14 15 0 1 2 3 4 5 6 7 8 9 10 11

  25. Minimizing Lateness: Inversions Goal: modify optimal solution to eliminate inversions to match greedy solution. But: this might not give exactly the greedy solution. Lemma A: all solutions with no idle time and no inversions have same maximum lateness Proof on board

  26. Minimizing Lateness: Proof! Theorem: the greedy solution is optimal Proof on board

  27. Proof Strategies for Greedy Algorithms Greedy algorithm stays ahead. Show that after each step of the greedy algorithm, its solution is at least as good as an optimal solution. Exchange argument. Gradually transform an optimal solution to the one found by the greedy algorithm(*) without hurting its quality. (*) Or one just like it

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend