CS 374: Algorithms & Models of Computation, Spring 2017 Greedy Algorithms Lecture 19 April 4, 2017 Chandra Chekuri (UIUC) CS374 1 Spring / 1

Similar documents
Algorithm Design and Analysis

CSE 421 Greedy Algorithms / Interval Scheduling

CSE101: Design and Analysis of Algorithms. Ragesh Jaiswal, CSE, UCSD

Greedy Algorithms. Kleinberg and Tardos, Chapter 4

Chapter 4. Greedy Algorithms. Slides by Kevin Wayne. Copyright 2005 Pearson-Addison Wesley. All rights reserved.

CSE 417. Chapter 4: Greedy Algorithms. Many Slides by Kevin Wayne. Copyright 2005 Pearson-Addison Wesley. All rights reserved.

Chapter 4. Greedy Algorithms. Slides by Kevin Wayne. Copyright 2005 Pearson-Addison Wesley. All rights reserved.

Greedy Algorithms. CSE 101: Design and Analysis of Algorithms Lecture 9

Knapsack and Scheduling Problems. The Greedy Method

Algorithm Design and Analysis

Greedy Algorithms. CSE 101: Design and Analysis of Algorithms Lecture 10

Proof methods and greedy algorithms

CMSC 451: Lecture 7 Greedy Algorithms for Scheduling Tuesday, Sep 19, 2017

More Approximation Algorithms

Greedy Algorithms My T. UF

CS 580: Algorithm Design and Analysis

Design and Analysis of Algorithms

CS 161: Design and Analysis of Algorithms

1 Basic Definitions. 2 Proof By Contradiction. 3 Exchange Argument

CS 580: Algorithm Design and Analysis

CS 6901 (Applied Algorithms) Lecture 3

Algorithms: COMP3121/3821/9101/9801

Greedy Homework Problems

Simple Dispatch Rules

Chapter 4. Greedy Algorithms. Slides by Kevin Wayne. Copyright 2005 Pearson-Addison Wesley. All rights reserved.

1 Some loose ends from last time

The Greedy Method. Design and analysis of algorithms Cs The Greedy Method

Algorithm Design Strategies V

6. DYNAMIC PROGRAMMING I

This means that we can assume each list ) is

Lecture 6: Greedy Algorithms I

Dynamic Programming( Weighted Interval Scheduling)

Dynamic Programming: Shortest Paths and DFA to Reg Exps

Scheduling Online Algorithms. Tim Nieberg

CS 6783 (Applied Algorithms) Lecture 3

(a) Write a greedy O(n log n) algorithm that, on input S, returns a covering subset C of minimum size.

Algorithms Exam TIN093 /DIT602

Dynamic Programming: Interval Scheduling and Knapsack

CSE 421 Dynamic Programming

CS60007 Algorithm Design and Analysis 2018 Assignment 1

Lecture 2: Divide and conquer and Dynamic programming

Coin Changing: Give change using the least number of coins. Greedy Method (Chapter 10.1) Attempt to construct an optimal solution in stages.

More NP-Complete Problems

Networked Embedded Systems WS 2016/17

Embedded Systems 14. Overview of embedded systems design

CMPSCI611: The Matroid Theorem Lecture 5

Greedy. Outline CS141. Stefano Lonardi, UCR 1. Activity selection Fractional knapsack Huffman encoding Later:

NP Completeness. CS 374: Algorithms & Models of Computation, Spring Lecture 23. November 19, 2015

Minimizing the Number of Tardy Jobs

More Dynamic Programming

Scheduling Lecture 1: Scheduling on One Machine

Dynamic Programming. Cormen et. al. IV 15

A lower bound for scheduling of unit jobs with immediate decision on parallel machines

SAT, NP, NP-Completeness

Discrete Optimization 2010 Lecture 2 Matroids & Shortest Paths

FINAL EXAM PRACTICE PROBLEMS CMSC 451 (Spring 2016)

Polynomial Time Algorithms for Minimum Energy Scheduling

Recap & Interval Scheduling

CS 598RM: Algorithmic Game Theory, Spring Practice Exam Solutions

Aside: Golden Ratio. Golden Ratio: A universal law. Golden ratio φ = lim n = 1+ b n = a n 1. a n+1 = a n + b n, a n+b n a n

There are three priority driven approaches that we will look at

CS 561, Lecture: Greedy Algorithms. Jared Saia University of New Mexico

Announcements. CompSci 102 Discrete Math for Computer Science. Chap. 3.1 Algorithms. Specifying Algorithms

CS583 Lecture 11. Many slides here are based on D. Luebke slides. Review: Dynamic Programming

Aperiodic Task Scheduling

0 1 d 010. h 0111 i g 01100

CS781 Lecture 3 January 27, 2011

Today s Outline. CS 561, Lecture 15. Greedy Algorithms. Activity Selection. Greedy Algorithm Intro Activity Selection Knapsack

Outline / Reading. Greedy Method as a fundamental algorithm design technique

Linear Classification: Linear Programming

Task Models and Scheduling

Minimizing Mean Flowtime and Makespan on Master-Slave Systems

Clock-driven scheduling

Recoverable Robustness in Scheduling Problems

Dynamic Programming: Shortest Paths and DFA to Reg Exps

Multiprocessor Scheduling I: Partitioned Scheduling. LS 12, TU Dortmund

arxiv: v1 [cs.ds] 30 Jun 2016

Lecture 4 Scheduling 1

arxiv:cs/ v1 [cs.ds] 18 Oct 2004

6. DYNAMIC PROGRAMMING I

Non-Work-Conserving Non-Preemptive Scheduling: Motivations, Challenges, and Potential Solutions

NP and NP Completeness

Activity selection. Goal: Select the largest possible set of nonoverlapping (mutually compatible) activities.

Lecture 6. Real-Time Systems. Dynamic Priority Scheduling

Linear Classification: Linear Programming

Breadth First Search, Dijkstra s Algorithm for Shortest Paths

Lecture 9. Greedy Algorithm

APTAS for Bin Packing

Analysis of Algorithms - Midterm (Solutions)

Matroids. Start with a set of objects, for example: E={ 1, 2, 3, 4, 5 }

Network Design and Game Theory Spring 2008 Lecture 2

1 Approximate Quantiles and Summaries

8. INTRACTABILITY I. Lecture slides by Kevin Wayne Copyright 2005 Pearson-Addison Wesley. Last updated on 2/6/18 2:16 AM

Real-time Scheduling of Periodic Tasks (2) Advanced Operating Systems Lecture 3

c i r i i=1 r 1 = [1, 2] r 2 = [0, 1] r 3 = [3, 4].

Real-time operating systems course. 6 Definitions Non real-time scheduling algorithms Real-time scheduling algorithm

Approximation Algorithms (Load Balancing)

Advances in processor, memory, and communication technologies

The Simplex Algorithm

Dynamic Programming. Credits: Many of these slides were originally authored by Jeff Edmonds, York University. Thanks Jeff!

Transcription:

CS 374: Algorithms & Models of Computation, Spring 2017 Greedy Algorithms Lecture 19 April 4, 2017 Chandra Chekuri (UIUC) CS374 1 Spring 2017 1 / 1

Part I Greedy Algorithms: Tools and Techniques Chandra Chekuri (UIUC) CS374 2 Spring 2017 2 / 1

What is a Greedy Algorithm? Chandra Chekuri (UIUC) CS374 3 Spring 2017 3 / 1

What is a Greedy Algorithm? No real consensus on a universal definition. Chandra Chekuri (UIUC) CS374 3 Spring 2017 3 / 1

What is a Greedy Algorithm? No real consensus on a universal definition. Greedy algorithms: 1 make decision incrementally in small steps without backtracking 2 decision at each step is based on improving local or current state in a myopic fashion without paying attention to the global situation 3 decisions often based on some fixed and simple priority rules Chandra Chekuri (UIUC) CS374 3 Spring 2017 3 / 1

Pros and Cons of Greedy Algorithms Pros: 1 Usually (too) easy to design greedy algorithms 2 Easy to implement and often run fast since they are simple 3 Several important cases where they are effective/optimal 4 Lead to a first-cut heuristic when problem not well understood Chandra Chekuri (UIUC) CS374 4 Spring 2017 4 / 1

Pros and Cons of Greedy Algorithms Pros: 1 Usually (too) easy to design greedy algorithms 2 Easy to implement and often run fast since they are simple 3 Several important cases where they are effective/optimal 4 Lead to a first-cut heuristic when problem not well understood Cons: 1 Very often greedy algorithms don t work. Easy to lull oneself into believing they work 2 Many greedy algorithms possible for a problem and no structured way to find effective ones Chandra Chekuri (UIUC) CS374 4 Spring 2017 4 / 1

Pros and Cons of Greedy Algorithms Pros: 1 Usually (too) easy to design greedy algorithms 2 Easy to implement and often run fast since they are simple 3 Several important cases where they are effective/optimal 4 Lead to a first-cut heuristic when problem not well understood Cons: 1 Very often greedy algorithms don t work. Easy to lull oneself into believing they work 2 Many greedy algorithms possible for a problem and no structured way to find effective ones CS 374: Every greedy algorithm needs a proof of correctness Chandra Chekuri (UIUC) CS374 4 Spring 2017 4 / 1

Greedy Algorithm Types Crude classification: 1 Non-adaptive: fix some ordering of decisions a priori and stick with the order 2 Adaptive: make decisions adaptively but greedily/locally at each step Chandra Chekuri (UIUC) CS374 5 Spring 2017 5 / 1

Greedy Algorithm Types Crude classification: 1 Non-adaptive: fix some ordering of decisions a priori and stick with the order 2 Adaptive: make decisions adaptively but greedily/locally at each Plan: step 1 See several examples 2 Pick up some proof techniques Chandra Chekuri (UIUC) CS374 5 Spring 2017 5 / 1

Part II Scheduling Jobs to Minimize Average Waiting Time Chandra Chekuri (UIUC) CS374 6 Spring 2017 6 / 1

The Problem n jobs J 1, J 2,..., J n. J i has non-negative processing time p i One server/machine/person available to process jobs. Schedule/order the jobs to minimize total or average waiting time Waiting time of J i in schedule σ: sum of processing times of all jobs scheduled before J i J 1 J 2 J 3 J 4 J 5 J 6 time 3 4 1 8 2 6 Chandra Chekuri (UIUC) CS374 7 Spring 2017 7 / 1

The Problem n jobs J 1, J 2,..., J n. J i has non-negative processing time p i One server/machine/person available to process jobs. Schedule/order the jobs to minimize total or average waiting time Waiting time of J i in schedule σ: sum of processing times of all jobs scheduled before J i J 1 J 2 J 3 J 4 J 5 J 6 time 3 4 1 8 2 6 Example: schedule is J 1, J 2, J 3, J 4, J 5, J 6. Total waiting time is 0 + 3 + (3 + 4) + (3 + 4 + 1) + (3 + 4 + 1 + 8) +... = Chandra Chekuri (UIUC) CS374 7 Spring 2017 7 / 1

The Problem n jobs J 1, J 2,..., J n. J i has non-negative processing time p i One server/machine/person available to process jobs. Schedule/order the jobs to minimize total or average waiting time Waiting time of J i in schedule σ: sum of processing times of all jobs scheduled before J i J 1 J 2 J 3 J 4 J 5 J 6 time 3 4 1 8 2 6 Example: schedule is J 1, J 2, J 3, J 4, J 5, J 6. Total waiting time is 0 + 3 + (3 + 4) + (3 + 4 + 1) + (3 + 4 + 1 + 8) +... = Optimal schedule: Chandra Chekuri (UIUC) CS374 7 Spring 2017 7 / 1

The Problem n jobs J 1, J 2,..., J n. J i has non-negative processing time p i One server/machine/person available to process jobs. Schedule/order the jobs to minimize total or average waiting time Waiting time of J i in schedule σ: sum of processing times of all jobs scheduled before J i J 1 J 2 J 3 J 4 J 5 J 6 time 3 4 1 8 2 6 Example: schedule is J 1, J 2, J 3, J 4, J 5, J 6. Total waiting time is 0 + 3 + (3 + 4) + (3 + 4 + 1) + (3 + 4 + 1 + 8) +... = Optimal schedule: Shortest Job First. J 3, J 5, J 1, J 2, J 6, J 4. Chandra Chekuri (UIUC) CS374 7 Spring 2017 7 / 1

Optimality of SJF Theorem Shortest Job First gives an optimum schedule for the problem of minimizing total waiting time. Chandra Chekuri (UIUC) CS374 8 Spring 2017 8 / 1

Optimality of SJF Theorem Shortest Job First gives an optimum schedule for the problem of minimizing total waiting time. Proof strategy: exchange argument Chandra Chekuri (UIUC) CS374 8 Spring 2017 8 / 1

Optimality of SJF Theorem Shortest Job First gives an optimum schedule for the problem of minimizing total waiting time. Proof strategy: exchange argument Assume without loss of generality that job sorted in increasing order of processing time and hence p 1 p 2... p n and SJF order is J 1, J 2,..., J n. Chandra Chekuri (UIUC) CS374 8 Spring 2017 8 / 1

Inversions Definition A schedule J i1, J i2,..., J in is said to have an inversion if there are jobs J a and J b such that S schedules J a before J b, but p a > p b. Chandra Chekuri (UIUC) CS374 9 Spring 2017 9 / 1

Inversions Definition A schedule J i1, J i2,..., J in is said to have an inversion if there are jobs J a and J b such that S schedules J a before J b, but p a > p b. Claim If a schedule has an inversion then there is an inversion between two adjacently scheduled jobs. Proof: exercise. Chandra Chekuri (UIUC) CS374 9 Spring 2017 9 / 1

Proof of optimality of SJF Recall SJF order is J 1, J 2,..., J n. Let J i1, J i2,..., J in be an optimum schedule with fewest inversions. If schedule has no inversions then it is identical to SJF schedule and we are done. Otherwise there is an 1 l < n such that i l > i l+1 since schedule has inversion among two adjacently scheduled jobs Chandra Chekuri (UIUC) CS374 10 Spring 2017 10 / 1

Proof of optimality of SJF Recall SJF order is J 1, J 2,..., J n. Claim Let J i1, J i2,..., J in be an optimum schedule with fewest inversions. If schedule has no inversions then it is identical to SJF schedule and we are done. Otherwise there is an 1 l < n such that i l > i l+1 since schedule has inversion among two adjacently scheduled jobs The schedule obtained from J i1, J i2,..., J in by exchanging/swapping positions of jobs J il and J il+1 is also optimal and has one fewer inversion. Assuming claim we obtain a contradiction and hence optimum schedule with fewest inversions must be the SJF schedule. Chandra Chekuri (UIUC) CS374 10 Spring 2017 10 / 1

Part III Scheduling to Minimize Lateness Chandra Chekuri (UIUC) CS374 11 Spring 2017 11 / 1

Scheduling to Minimize Lateness 1 Given jobs J 1, J 2,..., J n with deadlines and processing times to be scheduled on a single resource. 2 If a job i starts at time s i then it will finish at time f i = s i + t i, where t i is its processing time. d i : deadline. 3 The lateness of a job is l i = max(0, f i d i ). 4 Schedule all jobs such that L = max l i is minimized. Chandra Chekuri (UIUC) CS374 12 Spring 2017 12 / 1

Scheduling to Minimize Lateness 1 Given jobs J 1, J 2,..., J n with deadlines and processing times to be scheduled on a single resource. 2 If a job i starts at time s i then it will finish at time f i = s i + t i, where t i is its processing time. d i : deadline. 3 The lateness of a job is l i = max(0, f i d i ). 4 Schedule all jobs such that L = max l i is minimized. J 1 J 2 J 3 J 4 J 5 J 6 t i 3 2 1 4 3 2 d i 6 8 9 9 14 15 l 1 = 2 l 5 = 0 l 4 = 6 J 3 J 2 J 6 J 1 J 5 J 4 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Chandra Chekuri (UIUC) CS374 12 Spring 2017 12 / 1

Greedy Template Initially R is the set of all requests curr time = 0 max lateness = 0 while R is not empty do choose i R curr time = curr time + t i if (curr time > d i ) then max lateness = max(curr time d i, max lateness) return max lateness Main task: Decide the order in which to process jobs in R Chandra Chekuri (UIUC) CS374 13 Spring 2017 13 / 1

Greedy Template Initially R is the set of all requests curr time = 0 max lateness = 0 while R is not empty do choose i R curr time = curr time + t i if (curr time > d i ) then max lateness = max(curr time d i, max lateness) return max lateness Main task: Decide the order in which to process jobs in R Chandra Chekuri (UIUC) CS374 13 Spring 2017 13 / 1

Three Algorithms 1 Shortest job first sort according to t i. 2 Shortest slack first sort according to d i t i. 3 EDF = Earliest deadline first sort according to d i. Chandra Chekuri (UIUC) CS374 14 Spring 2017 14 / 1

Three Algorithms 1 Shortest job first sort according to t i. 2 Shortest slack first sort according to d i t i. 3 EDF = Earliest deadline first sort according to d i. Counter examples for first two: exercise Chandra Chekuri (UIUC) CS374 14 Spring 2017 14 / 1

Earliest Deadline First Theorem Greedy with EDF rule minimizes maximum lateness. Chandra Chekuri (UIUC) CS374 15 Spring 2017 15 / 1

Earliest Deadline First Theorem Greedy with EDF rule minimizes maximum lateness. Proof via an exchange argument. Chandra Chekuri (UIUC) CS374 15 Spring 2017 15 / 1

Earliest Deadline First Theorem Greedy with EDF rule minimizes maximum lateness. Proof via an exchange argument. Idle time: time during which machine is not working. Chandra Chekuri (UIUC) CS374 15 Spring 2017 15 / 1

Earliest Deadline First Theorem Greedy with EDF rule minimizes maximum lateness. Proof via an exchange argument. Idle time: time during which machine is not working. Lemma If there is a feasible schedule then there is one with no idle time before all jobs are finished. Chandra Chekuri (UIUC) CS374 15 Spring 2017 15 / 1

Inversions Assume jobs are sorted such that d 1 d 2... d n. Hence EDF schedules them in this order. Definition A schedule S is said to have an inversion if there are jobs i and j such that S schedules i before j, but d i > d j. Chandra Chekuri (UIUC) CS374 16 Spring 2017 16 / 1

Inversions Assume jobs are sorted such that d 1 d 2... d n. Hence EDF schedules them in this order. Definition A schedule S is said to have an inversion if there are jobs i and j such that S schedules i before j, but d i > d j. Claim If a schedule S has an inversion then there is an inversion between two adjacently scheduled jobs. Proof: exercise. Chandra Chekuri (UIUC) CS374 16 Spring 2017 16 / 1

Proof sketch of Optimality of EDP Let S be an optimum schedule with smallest number of inversions. If S has no inversions then this is same as EDF and we are done. Else S has two adjacent jobs i and j with d i > d j. Swap positions of i and j to obtain a new schedule S Claim Maximum lateness of S is no more than that of S. And S has strictly fewer inversions than S. Chandra Chekuri (UIUC) CS374 17 Spring 2017 17 / 1

Part IV Maximum Weight Subset of Elements: Cardinality and Beyond Chandra Chekuri (UIUC) CS374 18 Spring 2017 18 / 1

Picking k elements to maximize total weight 1 Given n items each with non-negative weights/profits and integer 1 k n. 2 Goal: pick k elements to maximize total weight of items picked. k = 2: k = 3: k = 4: e 1 e 2 e 3 e 4 e 5 e 6 weight 3 2 1 4 3 2 Chandra Chekuri (UIUC) CS374 19 Spring 2017 19 / 1

Greedy Template N is the set of all elements X (* X will store all the elements that will be picked *) while X < k and N is not empty do choose e j N of maximum weight add e j to X remove e j from N return the set X Remark: One can rephrase algorithm simply as sorting elements in decreasing weight order and picking the top k elements but the above template generalizes to other settings a bit more easily. Chandra Chekuri (UIUC) CS374 20 Spring 2017 20 / 1

Greedy Template N is the set of all elements X (* X will store all the elements that will be picked *) while X < k and N is not empty do choose e j N of maximum weight add e j to X remove e j from N return the set X Remark: One can rephrase algorithm simply as sorting elements in decreasing weight order and picking the top k elements but the above template generalizes to other settings a bit more easily. Theorem Greedy is optimal for picking k elements of maximum weight. Chandra Chekuri (UIUC) CS374 20 Spring 2017 20 / 1

A more interesting problem 1 Given n items N = {e 1, e 2,..., e n }. Each item e i has a non-negative weight w i. 2 Items partitioned into h sets N 1, N 2,..., N h. Think of each item having one of h colors. 3 Given integers k 1, k 2,..., k h and another integer k 4 Goal: pick k elements such that no more than k i from N i to maximize total weight of items picked. e 1 e 2 e 3 e 4 e 5 e 6, e 7 weight 3 2 1 4 3 2, 1 N 1 = {e 1, e 2, e 3 }, N 2 = {e 4, e 5 }, N 3 = {e 6, e 7 } k = 5, k 1 = 2, k 2 = 2, k 3 = 2 Chandra Chekuri (UIUC) CS374 21 Spring 2017 21 / 1

Greedy Template N is the set of all elements X (* X will store all the elements that will be picked *) while N is not empty do N = {e i N X {e i } is feasible} If N break choose e j N of maximum weight add e j to X remove e j from N return the set X Chandra Chekuri (UIUC) CS374 22 Spring 2017 22 / 1

Greedy Template Special case of the general phenomenon of Greedy working for maximum weight indepedent set in a matroid. Beyond scope of Chandra Chekuri (UIUC) CS374 22 Spring 2017 22 / 1 N is the set of all elements X (* X will store all the elements that will be picked *) while N is not empty do N = {e i N X {e i } is feasible} If N break choose e j N of maximum weight add e j to X remove e j from N return the set X Theorem Greedy is optimal for the problem on previous slide. Proof: exercise after class.

Part V Interval Scheduling Chandra Chekuri (UIUC) CS374 23 Spring 2017 23 / 1

Interval Scheduling Problem (Interval Scheduling) Input: A set of jobs with start and finish times to be scheduled on a resource (example: classes and class rooms). Goal: Schedule as many jobs as possible Chandra Chekuri (UIUC) CS374 24 Spring 2017 24 / 1

Interval Scheduling Problem (Interval Scheduling) Input: A set of jobs with start and finish times to be scheduled on a resource (example: classes and class rooms). Goal: Schedule as many jobs as possible 1 Two jobs with overlapping intervals cannot both be scheduled! Chandra Chekuri (UIUC) CS374 24 Spring 2017 24 / 1

Greedy Template R is the set of all requests X (* X will store all the jobs that will be scheduled *) while R is not empty do choose i R add i to X remove from R all requests that overlap with i return the set X Chandra Chekuri (UIUC) CS374 25 Spring 2017 25 / 1

Greedy Template R is the set of all requests X (* X will store all the jobs that will be scheduled *) while R is not empty do choose i R add i to X remove from R all requests that overlap with i return the set X Main task: Decide the order in which to process requests in R ES SP FC EF Chandra Chekuri (UIUC) CS374 25 Spring 2017 25 / 1

Earliest Start Time Process jobs in the order of their starting times, beginning with those that start earliest. Chandra Chekuri (UIUC) CS374 26 Spring 2017 26 / 1

Earliest Start Time Process jobs in the order of their starting times, beginning with those that start earliest. Chandra Chekuri (UIUC) CS374 26 Spring 2017 26 / 1

Earliest Start Time Process jobs in the order of their starting times, beginning with those that start earliest. Chandra Chekuri (UIUC) CS374 26 Spring 2017 26 / 1

Earliest Start Time Process jobs in the order of their starting times, beginning with those that start earliest. Chandra Chekuri (UIUC) CS374 26 Spring 2017 26 / 1

Earliest Start Time Process jobs in the order of their starting times, beginning with those that start earliest. Chandra Chekuri (UIUC) CS374 26 Spring 2017 26 / 1

Earliest Start Time Process jobs in the order of their starting times, beginning with those that start earliest. Chandra Chekuri (UIUC) CS374 26 Spring 2017 26 / 1

Earliest Start Time Process jobs in the order of their starting times, beginning with those that start earliest. Figure: Counter example for earliest start time Chandra Chekuri (UIUC) CS374 26 Spring 2017 26 / 1

Earliest Start Time Process jobs in the order of their starting times, beginning with those that start earliest. Figure: Counter example for earliest start time Chandra Chekuri (UIUC) CS374 26 Spring 2017 26 / 1

Earliest Start Time Process jobs in the order of their starting times, beginning with those that start earliest. Figure: Counter example for earliest start time Chandra Chekuri (UIUC) CS374 26 Spring 2017 26 / 1

Smallest Processing Time Process jobs in the order of processing time, starting with jobs that require the shortest processing. Back Counter Chandra Chekuri (UIUC) CS374 27 Spring 2017 27 / 1

Smallest Processing Time Process jobs in the order of processing time, starting with jobs that require the shortest processing. Back Counter Chandra Chekuri (UIUC) CS374 27 Spring 2017 27 / 1

Smallest Processing Time Process jobs in the order of processing time, starting with jobs that require the shortest processing. Back Counter Chandra Chekuri (UIUC) CS374 27 Spring 2017 27 / 1

Smallest Processing Time Process jobs in the order of processing time, starting with jobs that require the shortest processing. Back Counter Chandra Chekuri (UIUC) CS374 27 Spring 2017 27 / 1

Smallest Processing Time Process jobs in the order of processing time, starting with jobs that require the shortest processing. Back Counter Chandra Chekuri (UIUC) CS374 27 Spring 2017 27 / 1

Smallest Processing Time Process jobs in the order of processing time, starting with jobs that require the shortest processing. Figure: Counter example for smallest processing time Back Counter Chandra Chekuri (UIUC) CS374 27 Spring 2017 27 / 1

Smallest Processing Time Process jobs in the order of processing time, starting with jobs that require the shortest processing. Figure: Counter example for smallest processing time Back Counter Chandra Chekuri (UIUC) CS374 27 Spring 2017 27 / 1

Smallest Processing Time Process jobs in the order of processing time, starting with jobs that require the shortest processing. Figure: Counter example for smallest processing time Back Counter Chandra Chekuri (UIUC) CS374 27 Spring 2017 27 / 1

Fewest Conflicts Process jobs in that have the fewest conflicts first. Back Counter Chandra Chekuri (UIUC) CS374 28 Spring 2017 28 / 1

Fewest Conflicts Process jobs in that have the fewest conflicts first. Back Counter Chandra Chekuri (UIUC) CS374 28 Spring 2017 28 / 1

Fewest Conflicts Process jobs in that have the fewest conflicts first. Back Counter Chandra Chekuri (UIUC) CS374 28 Spring 2017 28 / 1

Fewest Conflicts Process jobs in that have the fewest conflicts first. Back Counter Chandra Chekuri (UIUC) CS374 28 Spring 2017 28 / 1

Fewest Conflicts Process jobs in that have the fewest conflicts first. Back Counter Chandra Chekuri (UIUC) CS374 28 Spring 2017 28 / 1

Fewest Conflicts Process jobs in that have the fewest conflicts first. Figure: Counter example for fewest conflicts Back Counter Chandra Chekuri (UIUC) CS374 28 Spring 2017 28 / 1

Fewest Conflicts Process jobs in that have the fewest conflicts first. Figure: Counter example for fewest conflicts Back Counter Chandra Chekuri (UIUC) CS374 28 Spring 2017 28 / 1

Fewest Conflicts Process jobs in that have the fewest conflicts first. Figure: Counter example for fewest conflicts Back Counter Chandra Chekuri (UIUC) CS374 28 Spring 2017 28 / 1

Fewest Conflicts Process jobs in that have the fewest conflicts first. Figure: Counter example for fewest conflicts Back Counter Chandra Chekuri (UIUC) CS374 28 Spring 2017 28 / 1

Earliest Finish Time Process jobs in the order of their finishing times, beginning with those that finish earliest. Chandra Chekuri (UIUC) CS374 29 Spring 2017 29 / 1

Earliest Finish Time Process jobs in the order of their finishing times, beginning with those that finish earliest. Chandra Chekuri (UIUC) CS374 29 Spring 2017 29 / 1

Earliest Finish Time Process jobs in the order of their finishing times, beginning with those that finish earliest. Chandra Chekuri (UIUC) CS374 29 Spring 2017 29 / 1

Earliest Finish Time Process jobs in the order of their finishing times, beginning with those that finish earliest. Chandra Chekuri (UIUC) CS374 29 Spring 2017 29 / 1

Earliest Finish Time Process jobs in the order of their finishing times, beginning with those that finish earliest. Chandra Chekuri (UIUC) CS374 29 Spring 2017 29 / 1

Earliest Finish Time Process jobs in the order of their finishing times, beginning with those that finish earliest. Chandra Chekuri (UIUC) CS374 29 Spring 2017 29 / 1

Earliest Finish Time Process jobs in the order of their finishing times, beginning with those that finish earliest. Chandra Chekuri (UIUC) CS374 29 Spring 2017 29 / 1

Optimal Greedy Algorithm R is the set of all requests X (* X stores the jobs that will be scheduled *) while R is not empty choose i R such that finishing time of i is smallest add i to X remove from R all requests that overlap with i return X Theorem The greedy algorithm that picks jobs in the order of their finishing times is optimal. Chandra Chekuri (UIUC) CS374 30 Spring 2017 30 / 1

Proving Optimality 1 Correctness: Clearly the algorithm returns a set of jobs that does not have any conflicts Chandra Chekuri (UIUC) CS374 31 Spring 2017 31 / 1

Proving Optimality 1 Correctness: Clearly the algorithm returns a set of jobs that does not have any conflicts 2 For a set of requests R, let O be an optimal set and let X be the set returned by the greedy algorithm. Then O = X? Chandra Chekuri (UIUC) CS374 31 Spring 2017 31 / 1

Proving Optimality 1 Correctness: Clearly the algorithm returns a set of jobs that does not have any conflicts 2 For a set of requests R, let O be an optimal set and let X be the set returned by the greedy algorithm. Then O = X?Not likely! Chandra Chekuri (UIUC) CS374 31 Spring 2017 31 / 1

Proving Optimality 1 Correctness: Clearly the algorithm returns a set of jobs that does not have any conflicts 2 For a set of requests R, let O be an optimal set and let X be the set returned by the greedy algorithm. Then O = X?Not likely! Chandra Chekuri (UIUC) CS374 31 Spring 2017 31 / 1

Proving Optimality 1 Correctness: Clearly the algorithm returns a set of jobs that does not have any conflicts 2 For a set of requests R, let O be an optimal set and let X be the set returned by the greedy algorithm. Then O = X?Not likely! Chandra Chekuri (UIUC) CS374 31 Spring 2017 31 / 1

Proving Optimality 1 Correctness: Clearly the algorithm returns a set of jobs that does not have any conflicts 2 For a set of requests R, let O be an optimal set and let X be the set returned by the greedy algorithm. Then O = X?Not likely! Instead we will show that O = X Chandra Chekuri (UIUC) CS374 31 Spring 2017 31 / 1

Proof of Optimality: Key Lemma Lemma Let i 1 be first interval picked by Greedy. There exists an optimum solution that contains i 1. Proof. Let O be an arbitrary optimum solution. If i 1 O we are done. Chandra Chekuri (UIUC) CS374 32 Spring 2017 32 / 1

Proof of Optimality: Key Lemma Lemma Let i 1 be first interval picked by Greedy. There exists an optimum solution that contains i 1. Proof. Let O be an arbitrary optimum solution. If i 1 O we are done. Claim: If i 1 O then there is exactly one interval j 1 O that conflicts with i 1. (proof later) Chandra Chekuri (UIUC) CS374 32 Spring 2017 32 / 1

Proof of Optimality: Key Lemma Lemma Let i 1 be first interval picked by Greedy. There exists an optimum solution that contains i 1. Proof. Let O be an arbitrary optimum solution. If i 1 O we are done. Claim: If i 1 O then there is exactly one interval j 1 O that conflicts with i 1. (proof later) 1 Form a new set O by removing j 1 from O and adding i 1, that is O = (O {j 1 }) {i 1 }. 2 From claim, O is a feasible solution (no conflicts). 3 Since O = O, O is also an optimum solution and it contains i 1. Chandra Chekuri (UIUC) CS374 32 Spring 2017 32 / 1

Proof of Claim Claim If i 1 O, there is exactly one interval j 1 O that conflicts with i 1. Proof. 1 If no j O conflicts with i 1 then O is not optimal! 2 Suppose j 1, j 2 O such that j 1 j 2 and both j 1 and j 2 conflict with i 1. 3 Since i 1 has earliest finish time, j 1 and i 1 overlap at f (i 1 ). 4 For same reason j 2 also overlaps with i 1 at f (i 1 ). 5 Implies that j 1, j 2 overlap at f (i 1 ) but intervals in O cannot overlap. See figure in next slide. Chandra Chekuri (UIUC) CS374 33 Spring 2017 33 / 1

Figure for proof of Claim j 2 j 1 i 1 f(i 1 ) f(j 1 ) f(j 2 ) time Figure: Since i 1 has the earliest finish time, any interval that conflicts with it does so at f (i 1 ). This implies j 1 and j 2 conflict. Chandra Chekuri (UIUC) CS374 34 Spring 2017 34 / 1

Proof of Optimality of Earliest Finish Time First Proof by Induction on number of intervals. Base Case: n = 1. Trivial since Greedy picks one interval. Induction Step: Assume theorem holds for i < n. Let I be an instance with n intervals I : I with i 1 and all intervals that overlap with i 1 removed G(I ), G(I ): Solution produced by Greedy on I and I From Lemma, there is an optimum solution O to I and i 1 O. Let O = O {i 1 }. O is a solution to I. G(I ) = 1 + G(I ) (from Greedy description) 1 + O (By induction, G(I ) is optimum for I ) = O Chandra Chekuri (UIUC) CS374 35 Spring 2017 35 / 1

Implementation and Running Time Initially R is the set of all requests X (* X stores the jobs that will be scheduled *) while R is not empty choose i R such that finishing time of i is least if i does not overlap with requests in X add i to X remove i from R return the set X Presort all requests based on finishing time. O(n log n) time Now choosing least finishing time is O(1) Keep track of the finishing time of the last request added to A. Then check if starting time of i later than that Thus, checking non-overlapping is O(1) Total time O(n log n + n) = O(n log n) Chandra Chekuri (UIUC) CS374 36 Spring 2017 36 / 1

Comments 1 Interesting Exercise: smallest interval first picks at least half the optimum number of intervals. 2 All requests need not be known at the beginning. Such online algorithms are a subject of research Chandra Chekuri (UIUC) CS374 37 Spring 2017 37 / 1

Weighted Interval Scheduling Suppose we are given n jobs. Each job i has a start time s i, a finish time f i, and a weight w i. We would like to find a set S of compatible jobs whose total weight is maximized. Which of the following greedy algorithms finds the optimum schedule? (A) Earliest start time first. (B) Earliest finish time fist. (C) Highest weight first. (D) None of the above. (E) IDK. Chandra Chekuri (UIUC) CS374 38 Spring 2017 38 / 1

Weighted Interval Scheduling Suppose we are given n jobs. Each job i has a start time s i, a finish time f i, and a weight w i. We would like to find a set S of compatible jobs whose total weight is maximized. Which of the following greedy algorithms finds the optimum schedule? (A) Earliest start time first. (B) Earliest finish time fist. (C) Highest weight first. (D) None of the above. (E) IDK. Weighted problem can be solved via dynamic prog. See notes. Chandra Chekuri (UIUC) CS374 38 Spring 2017 38 / 1

Greedy Analysis: Overview 1 Greedy s first step leads to an optimum solution. Show that there is an optimum solution leading from the first step of Greedy and then use induction. Example, Interval Scheduling. 2 Greedy algorithm stays ahead. Show that after each step the solution of the greedy algorithm is at least as good as the solution of any other algorithm. Example, Interval scheduling. 3 Structural property of solution. Observe some structural bound of every solution to the problem, and show that greedy algorithm achieves this bound. Example, Interval Partitioning (see Kleinberg-Tardos book). 4 Exchange argument. Gradually transform any optimal solution to the one produced by the greedy algorithm, without hurting its optimality. Example, Minimizing lateness. Chandra Chekuri (UIUC) CS374 39 Spring 2017 39 / 1

Takeaway Points 1 Greedy algorithms come naturally but often are incorrect. A proof of correctness is an absolute necessity. 2 Exchange arguments are often the key proof ingredient. Focus on why the first step of the algorithm is correct: need to show that there is an optimum/correct solution with the first step of the algorithm. 3 Thinking about correctness is also a good way to figure out which of the many greedy strategies is likely to work. Chandra Chekuri (UIUC) CS374 40 Spring 2017 40 / 1