Instance: A collection of subsets π 1 , π 2 , β― , π π β π . Primal: Find π· β [π] such that Ϊ πβπ· π π = π . Dual: Find π β π such that π π β© π β€ 1 for all π β [π] . π 1 Since every π β π must consume a subset to cover π 1 βπ·, βπ: π β€ |π·| π 2 As a result, βπ: π β€ OPT primal = min |π·| π 2 π 3 π 3 π 4 π 4 π 5
Instance: A collection of subsets π 1 , π 2 , β― , π π β π . Primal: Find π· β [π] such that Ϊ πβπ· π π = π . Dual: Find π β π such that π π β© π β€ 1 for all π β [π] . π 1 Since every π β π must consume a subset to cover π 1 βπ·, βπ: π β€ |π·| π 2 As a result, βπ: π β€ OPT primal = min |π·| π 2 π 3 π 3 GreedyMatchingCover οΌ π 4 Find arbitrary maximal π for the dual problem. π 4 Return π· = {π: π π β© π β β } . π 5
Instance: A collection of subsets π 1 , π 2 , β― , π π β π . Primal: Find π· β [π] such that Ϊ πβπ· π π = π . Dual: Find π β π such that π π β© π β€ 1 for all π β [π] . π 1 Since every π β π must consume a subset to cover π 1 βπ·, βπ: π β€ |π·| π 2 As a result, βπ: π β€ OPT primal = min |π·| π 2 π 3 π 3 GreedyMatchingCover οΌ π 4 Find arbitrary maximal π for the dual problem. π 4 Return π· = {π: π π β© π β β } . π 5 Since π is maximal, returned π· must be a cover.
Instance: A collection of subsets π 1 , π 2 , β― , π π β π . Primal: Find π· β [π] such that Ϊ πβπ· π π = π . Dual: Find π β π such that π π β© π β€ 1 for all π β [π] . π 1 Since every π β π must consume a subset to cover π 1 βπ·, βπ: π β€ |π·| π 2 As a result, βπ: π β€ OPT primal = min |π·| π 2 π 3 π 3 GreedyMatchingCover οΌ π 4 Find arbitrary maximal π for the dual problem. π 4 Return π· = {π: π π β© π β β } . π 5 Since π is maximal, returned π· must be a cover. π· β€ π π½ β π β€ π π½ β OPT primal
Instance: A collection of subsets π 1 , π 2 , β― , π π β π . Primal: Find π· β [π] such that Ϊ πβπ· π π = π . Dual: Find π β π such that π π β© π β€ 1 for all π β [π] . π 1 Since every π β π must consume a subset to cover π 1 βπ·, βπ: π β€ |π·| π 2 As a result, βπ: π β€ OPT primal = min |π·| π 2 π 3 π 3 GreedyMatchingCover οΌ π 4 Find arbitrary maximal π for the dual problem. π 4 Return π· = {π: π π β© π β β } . π 5 Since π is maximal, returned π· must be a cover. π· β€ π π½ β π β€ π π½ β OPT primal GreedyMatchingCover has approximation ratio π π½ .
Instance: A collection of subsets π 1 , π 2 , β― , π π β π . Set Cover: Find smallest π· β [π] such that Ϊ πβπ· π π = π . What if the frequency of each element is exactly 2?
Instance: A collection of subsets π 1 , π 2 , β― , π π β π . Set Cover: Find smallest π· β [π] such that Ϊ πβπ· π π = π . What if the frequency of each element is exactly 2? π 1 π 1 π€ 1 π€ 1 π€ 2 π 2 π 3 π 2 π€ 2 π€ 3 incidence graph π 3 π€ 3 π 4 π 4 π€ 4 π€ 4
Vertex Cover Instance: A collection of subsets π 1 , π 2 , β― , π π β π . Set Cover: Find smallest π· β [π] such that Ϊ πβπ· π π = π . What if the frequency of each element is exactly 2? π 1 π 1 π€ 1 π€ 1 π€ 2 π 2 π 3 π 2 π€ 2 π€ 3 incidence graph π 3 π€ 3 π 4 π 4 π€ 4 π€ 4 Instance: An undirected simple graph π» = (π, πΉ) . Vertex Cover: Find smallest π· β π s.t. βπ β πΉ: π β© π· β β .
Vertex Cover Instance: A collection of subsets π 1 , π 2 , β― , π π β π . Set Cover: Find smallest π· β [π] such that Ϊ πβπ· π π = π . What if the frequency of each element is exactly 2? π 1 π 1 π€ 1 π€ 1 π€ 2 π 2 π 3 π 2 π€ 2 π€ 3 incidence graph π 3 π€ 3 π 4 π 4 π€ 4 π€ 4 Instance: An undirected simple graph π» = (π, πΉ) . Vertex Cover: Find smallest π· β π s.t. βπ β πΉ: π β© π· β β . β’ Vertex cover is also NP-hard. β’ Decision version is one of Karpβs 21 NP -complete problems.
Instance: A collection of subsets π 1 , π 2 , β― , π π β π . Primal: Find π· β [π] such that Ϊ πβπ· π π = π . π 1 π€ 1 Dual: Find π β π such that π π β© π β€ 1 for all π β [π] . π 2 π€ 2 The frequency of each element is exactly 2 π 3 π€ 3 Instance: An undirected simple graph π» = (π, πΉ) . π 4 π€ 4 Primal: Find π· β π s.t. βπ β πΉ: π β© π· β β . (Vertex Cover) Dual: Find π β πΉ s.t. βπ€ β π: π€ β© π β€ 1 . (Matching)
Instance: A collection of subsets π 1 , π 2 , β― , π π β π . Primal: Find π· β [π] such that Ϊ πβπ· π π = π . π 1 π€ 1 Dual: Find π β π such that π π β© π β€ 1 for all π β [π] . π 2 π€ 2 The frequency of each element is exactly 2 π 3 π€ 3 Instance: An undirected simple graph π» = (π, πΉ) . π 4 π€ 4 Primal: Find π· β π s.t. βπ β πΉ: π β© π· β β . (Vertex Cover) Dual: Find π β πΉ s.t. βπ€ β π: π€ β© π β€ 1 . (Matching) A 2-approximation algorithm for the vertex cover problem GreedyMatchingCover οΌ Find arbitrary maximal matching π of the input graph. Return π· = {π€: π€ β π and π€ β© π β β } .
Instance: A collection of subsets π 1 , π 2 , β― , π π β π . Primal: Find π· β [π] such that Ϊ πβπ· π π = π . π 1 π€ 1 Dual: Find π β π such that π π β© π β€ 1 for all π β [π] . π 2 π€ 2 The frequency of each element is exactly 2 π 3 π€ 3 Instance: An undirected simple graph π» = (π, πΉ) . π 4 π€ 4 Primal: Find π· β π s.t. βπ β πΉ: π β© π· β β . (Vertex Cover) Dual: Find π β πΉ s.t. βπ€ β π: π€ β© π β€ 1 . (Matching) A 2-approximation algorithm for the vertex cover problem GreedyMatchingCover οΌ Find arbitrary maximal matching π of the input graph. Return π· = {π€: π€ β π and π€ β© π β β } . β’ There is no poly-time <1.36-approx. alg. unless P = NP. β’ Assuming the unique game conjecture, there is no poly-time (2- Ξ΅ )-approx. alg.
Scheduling π identical machines
Scheduling π identical machines π jobs processing time π π 3 1 4 2 6 3 5 2 4 3
Scheduling π machines π jobs each with processing time π π
Scheduling π machines π jobs each with processing time π π Completion time: π· π = ΰ· π π (of machine π ) π: jobs assigned to machine π
Scheduling π machines π jobs each with processing time π π makespan Completion time: π· π = ΰ· π π (of machine π ) π: jobs assigned to machine π π· max = max π· π Makespan: π
Instance: π jobs π = 1,2, β― , π each with processing time π π β β€ + . Problem: Find a schedule assigning π jobs to π identical machines so as the minimize the makespan.
Instance: π jobs π = 1,2, β― , π each with processing time π π β β€ + . Problem: Find a schedule assigning π jobs to π identical machines so as the minimize the makespan. β’ βminimum makespan on identical machinesβ β’ Scheduling problem has many variations: machines could be different, jobs could have release- dates/deadlines, etcβ¦
Instance: π jobs π = 1,2, β― , π each with processing time π π β β€ + . Problem: Find a schedule assigning π jobs to π identical machines so as the minimize the makespan. β’ βminimum makespan on identical machinesβ β’ Scheduling problem has many variations: machines could be different, jobs could have release- dates/deadlines, etcβ¦ If π = 2 , the scheduling problem can be used to solve the partition problem! Instance: π positive integers π¦ 1 , π¦ 2 , β― , π¦ π β β€ + . Problem: Determine whether there exists a partition of {1,2, β― , π} into two sets π΅ and πΆ such that Ο πβπ΅ π¦ π = Ο πβπΆ π¦ π .
Instance: π jobs π = 1,2, β― , π each with processing time π π β β€ + . Problem: Find a schedule assigning π jobs to π identical machines so as the minimize the makespan. β’ βminimum makespan on identical machinesβ β’ Scheduling problem has many variations: machines could be different, jobs could have release- dates/deadlines, etcβ¦ If π = 2 , the scheduling problem can be used to solve the partition problem! Instance: π positive integers π¦ 1 , π¦ 2 , β― , π¦ π β β€ + . Problem: Determine whether there exists a partition of {1,2, β― , π} into two sets π΅ and πΆ such that Ο πβπ΅ π¦ π = Ο πβπΆ π¦ π . β’ The partition problem is one of Karpβs 21 NP -complete problems. β’ Thus the considered scheduling problem is NP-hard.
Grahamβs Li List Algorithm for Scheduling π identical machines π jobs each with processing time π π List (Graham 1966) οΌ For each job π = 1,2, β― , π do: Assign job π to a currently least loaded machine.
Grahamβs Li List Algorithm for Scheduling π identical machines π jobs each with processing time π π List (Graham 1966) οΌ For each job π = 1,2, β― , π do: Assign job π to a currently least loaded machine.
Grahamβs Li List Algorithm for Scheduling π identical machines π jobs each with processing time π π List (Graham 1966) οΌ For each job π = 1,2, β― , π do: Assign job π to a currently least loaded machine.
Grahamβs Li List Algorithm for Scheduling π identical machines π jobs each with processing time π π List (Graham 1966) οΌ For each job π = 1,2, β― , π do: Assign job π to a currently least loaded machine.
Grahamβs Li List Algorithm for Scheduling π identical machines π jobs each with processing time π π List (Graham 1966) οΌ For each job π = 1,2, β― , π do: Assign job π to a currently least loaded machine.
Grahamβs Li List Algorithm for Scheduling π identical machines π jobs each with processing time π π List (Graham 1966) οΌ For each job π = 1,2, β― , π do: Assign job π to a currently least loaded machine.
Grahamβs Li List Algorithm for Scheduling π identical machines π jobs each with processing time π π List (Graham 1966) οΌ For each job π = 1,2, β― , π do: Assign job π to a currently least loaded machine.
Grahamβs Li List Algorithm for Scheduling π identical machines π jobs each with processing time π π List (Graham 1966) οΌ For each job π = 1,2, β― , π do: Assign job π to a currently least loaded machine.
Grahamβs Li List Algorithm for Scheduling π identical machines π jobs each with processing time π π List (Graham 1966) οΌ For each job π = 1,2, β― , π do: Assign job π to a currently least loaded machine.
Grahamβs Li List Algorithm for Scheduling π identical machines π jobs each with processing time π π List (Graham 1966) οΌ For each job π = 1,2, β― , π do: Assign job π to a currently least loaded machine.
Grahamβs Li List Algorithm for Scheduling π identical machines π jobs each with processing time π π List (Graham 1966) οΌ For each job π = 1,2, β― , π do: Assign job π to a currently least loaded machine.
List (Graham 1966) οΌ For each job π = 1,2, β― , π do: Assign job π to a currently least loaded machine.
List (Graham 1966) οΌ For each job π = 1,2, β― , π do: Assign job π to a currently least loaded machine. This algorithm finishes within poly-time.
List (Graham 1966) οΌ For each job π = 1,2, β― , π do: Assign job π to a currently least loaded machine. This algorithm finishes within poly-time. What about the approximation ratio?
List (Graham 1966) οΌ For each job π = 1,2, β― , π do: Assign job π to a currently least loaded machine. This algorithm finishes within poly-time. What about the approximation ratio? OPT β₯ max π π π
List (Graham 1966) οΌ For each job π = 1,2, β― , π do: Assign job π to a currently least loaded machine. This algorithm finishes within poly-time. What about the approximation ratio? OPT β₯ max π π π β OPT β₯ ΰ· π π π π
List (Graham 1966) οΌ For each job π = 1,2, β― , π do: Assign job π to a currently least loaded machine. This algorithm finishes within poly-time. What about the approximation ratio? OPT β₯ max π π π β OPT β₯ ΰ· π π π π Assume machine π finishes last in the schedule, and last job on it is π .
List (Graham 1966) οΌ For each job π = 1,2, β― , π do: Assign job π to a currently least loaded machine. This algorithm finishes within poly-time. What about the approximation ratio? OPT β₯ max π π π β OPT β₯ ΰ· π π π π Assume machine π finishes last in the schedule, and last job on it is π . Makespan π· max = π· π = π· π β π π + π π
List (Graham 1966) οΌ For each job π = 1,2, β― , π do: Assign job π to a currently least loaded machine. This algorithm finishes within poly-time. What about the approximation ratio? OPT β₯ max π π π β OPT β₯ ΰ· π π π π Assume machine π finishes last in the schedule, and last job on it is π . Makespan π· max = π· π = π· π β π π + π π π π β€ max π π β€ OPT π
List (Graham 1966) οΌ For each job π = 1,2, β― , π do: Assign job π to a currently least loaded machine. This algorithm finishes within poly-time. What about the approximation ratio? OPT β₯ max π π π β OPT β₯ ΰ· π π π π Assume machine π finishes last in the schedule, and last job on it is π . Makespan π· max = π· π = π· π β π π + π π 1 1 π Ο πβ π π π β€ π Ο π π π β€ OPT π· π β π π β€ π π β€ max π π β€ OPT π since machine π is least loaded when scheduling job π
List (Graham 1966) οΌ For each job π = 1,2, β― , π do: Assign job π to a currently least loaded machine. This algorithm finishes within poly-time. What about the approximation ratio? OPT β₯ max π π π β OPT β₯ ΰ· π π π π Assume machine π finishes last in the schedule, and last job on it is π . Makespan π· max = π· π = π· π β π π + π π β€ 2 β OPT 1 1 π Ο πβ π π π β€ π Ο π π π β€ OPT π· π β π π β€ π π β€ max π π β€ OPT π since machine π is least loaded when scheduling job π
List (Graham 1966) οΌ For each job π = 1,2, β― , π do: Assign job π to a currently least loaded machine. Algorithm List finishes within poly-time. Algorithm List has approximation ratio 2. Makespan π· max = π· π = π· π β π π + π π β€ 2 β OPT π· π β π π β€ 1 π π β€ 1 π ΰ· π ΰ· π π β€ OPT π π β€ max π π β€ OPT π πβ π π
List (Graham 1966) οΌ For each job π = 1,2, β― , π do: Assign job π to a currently least loaded machine. Algorithm List finishes within poly-time. Algorithm List has approximation ratio 2. Makespan π· max = π· π = π· π β π π + π π β€ 2 β OPT π· π β π π β€ 1 π π β€ 1 π ΰ· π ΰ· π π β€ OPT π π β€ max π π β€ OPT π πβ π π π· π β π π β€ 1 π π = 1 π π β π π π ΰ· π ΰ· π πβ π π
List (Graham 1966) οΌ For each job π = 1,2, β― , π do: Assign job π to a currently least loaded machine. Algorithm List finishes within poly-time. Algorithm List has approximation ratio 2. 2 β 1 β€ β OPT Makespan π· max = π· π = π· π β π π + π π β€ 2 β OPT π π· π β π π β€ 1 π π β€ 1 π ΰ· π ΰ· π π β€ OPT π π β€ max π π β€ OPT π πβ π π π· π β π π β€ 1 π π = 1 π π β π π π ΰ· π ΰ· π πβ π π
List (Graham 1966) οΌ For each job π = 1,2, β― , π do: Assign job π to a currently least loaded machine. Algorithm List finishes within poly-time. Algorithm List has approximation ratio 2. 2 β 1 β€ β OPT Makespan π· max = π· π = π· π β π π + π π β€ 2 β OPT π π· π β π π β€ 1 π π β€ 1 π ΰ· π ΰ· π π β€ OPT π π β€ max π π β€ OPT π πβ π π π· π β π π β€ 1 π π = 1 π π β π π π ΰ· π ΰ· π πβ π π Algorithm List has approximation ratio 2 β Ξ€ 1 π .
List (Graham 1966) οΌ For each job π = 1,2, β― , π do: Assign job π to a currently least loaded machine. Algorithm List finishes within poly-time. Algorithm List has approximation ratio 2. 2 β 1 β€ β OPT Makespan π· max = π· π = π· π β π π + π π β€ 2 β OPT π π· π β π π β€ 1 π π β€ 1 π ΰ· π ΰ· π π β€ OPT π π β€ max π π β€ OPT π πβ π π π· π β π π β€ 1 π π = 1 π π β π π π ΰ· π ΰ· π πβ π π Algorithm List has approximation ratio 2 β Ξ€ 1 π . This bound is tight in the worst case. [Almost tight example: π 2 unit jobs followed by a length π job. List generates makespan of 2π while OPT = π + 1 .]
Local Search for Scheduling Start with an arbitrary solution: Keep making improvements by locally adjusting the solution, until no further improvement can be made ( local optimum )
Local Search for Scheduling Start with an arbitrary solution: Keep making improvements by locally adjusting the solution, until no further improvement can be made ( local optimum ) LocalSearch οΌ Start with an arbitrary schedule. Repeat until no job can be reassigned (i.e., local optimum reached): Let π be a job that finished last. If exists machine π s.t. assigning job π to π allows π finish earlier: Transfer job π to earliest such π .
Local Search for Scheduling Start with an arbitrary solution: Keep making improvements by locally adjusting the solution, until no further improvement can be made ( local optimum ) LocalSearch οΌ Start with an arbitrary schedule. Repeat until no job can be reassigned (i.e., local optimum reached): Let π be a job that finished last. If exists machine π s.t. assigning job π to π allows π finish earlier: Transfer job π to earliest such π .
Local Search for Scheduling Start with an arbitrary solution: Keep making improvements by locally adjusting the solution, until no further improvement can be made ( local optimum ) LocalSearch οΌ Start with an arbitrary schedule. Repeat until no job can be reassigned (i.e., local optimum reached): Let π be a job that finished last. If exists machine π s.t. assigning job π to π allows π finish earlier: Transfer job π to earliest such π .
LocalSearch οΌ Start with an arbitrary schedule. Repeat until no job can be reassigned (i.e., local optimum reached): Let π be a job that finished last. If exists machine π s.t. assigning job π to π allows π finish earlier: Transfer job π to earliest such π .
LocalSearch οΌ Start with an arbitrary schedule. Repeat until no job can be reassigned (i.e., local optimum reached): Let π be a job that finished last. If exists machine π s.t. assigning job π to π allows π finish earlier: Transfer job π to earliest such π . This algorithm finishes within poly-time. (No job is transferred twice!)
LocalSearch οΌ Start with an arbitrary schedule. Repeat until no job can be reassigned (i.e., local optimum reached): Let π be a job that finished last. If exists machine π s.t. assigning job π to π allows π finish earlier: Transfer job π to earliest such π . This algorithm finishes within poly-time. (No job is transferred twice!) The approximation ratio of this algorithm?
LocalSearch οΌ Start with an arbitrary schedule. Repeat until no job can be reassigned (i.e., local optimum reached): Let π be a job that finished last. If exists machine π s.t. assigning job π to π allows π finish earlier: Transfer job π to earliest such π . This algorithm finishes within poly-time. (No job is transferred twice!) The approximation ratio of this algorithm? OPT β₯ max π π π β OPT β₯ ΰ· π π π π
LocalSearch οΌ Start with an arbitrary schedule. Repeat until no job can be reassigned (i.e., local optimum reached): Let π be a job that finished last. If exists machine π s.t. assigning job π to π allows π finish earlier: Transfer job π to earliest such π . This algorithm finishes within poly-time. (No job is transferred twice!) The approximation ratio of this algorithm? OPT β₯ max π π π β OPT β₯ ΰ· π π π π Assume machine π finishes last in final schedule, and last job on it is π .
LocalSearch οΌ Start with an arbitrary schedule. Repeat until no job can be reassigned (i.e., local optimum reached): Let π be a job that finished last. If exists machine π s.t. assigning job π to π allows π finish earlier: Transfer job π to earliest such π . This algorithm finishes within poly-time. (No job is transferred twice!) The approximation ratio of this algorithm? OPT β₯ max π π π β OPT β₯ ΰ· π π π π Assume machine π finishes last in final schedule, and last job on it is π . Makespan π· max = π· π = π· π β π π + π π
LocalSearch οΌ Start with an arbitrary schedule. Repeat until no job can be reassigned (i.e., local optimum reached): Let π be a job that finished last. If exists machine π s.t. assigning job π to π allows π finish earlier: Transfer job π to earliest such π . This algorithm finishes within poly-time. (No job is transferred twice!) The approximation ratio of this algorithm? OPT β₯ max π π π β OPT β₯ ΰ· π π π π Assume machine π finishes last in final schedule, and last job on it is π . Makespan π· max = π· π = π· π β π π + π π π π β€ max π π β€ OPT π
LocalSearch οΌ Start with an arbitrary schedule. Repeat until no job can be reassigned (i.e., local optimum reached): Let π be a job that finished last. If exists machine π s.t. assigning job π to π allows π finish earlier: Transfer job π to earliest such π . This algorithm finishes within poly-time. (No job is transferred twice!) The approximation ratio of this algorithm? OPT β₯ max π π π β OPT β₯ ΰ· π π π π Assume machine π finishes last in final schedule, and last job on it is π . Makespan π· max = π· π = π· π β π π + π π π· π β π π β€ 1 π π = 1 π π β π π π ΰ· π ΰ· π π β€ max π π β€ OPT π π πβ π π
LocalSearch οΌ Start with an arbitrary schedule. Repeat until no job can be reassigned (i.e., local optimum reached): Let π be a job that finished last. If exists machine π s.t. assigning job π to π allows π finish earlier: Transfer job π to earliest such π . This algorithm finishes within poly-time. (No job is transferred twice!) (2 β Ξ€ 1 π) The approximation ratio of this algorithm? OPT β₯ max π π π β OPT β₯ ΰ· π π π π Assume machine π finishes last in final schedule, and last job on it is π . 2 β 1 Makespan π· max = π· π = π· π β π π + π π β€ β OPT π π· π β π π β€ 1 π π = 1 π π β π π π ΰ· π ΰ· π π β€ max π π β€ OPT π π πβ π π
LocalSearch οΌ Start with an arbitrary schedule. Repeat until no job can be reassigned (i.e., local optimum reached): Let π be a job that finished last. If exists machine π s.t. assigning job π to π allows π finish earlier: Transfer job π to earliest such π . List (Graham 1966) οΌ For each job π = 1,2, β― , π do: Assign job π to a currently least loaded machine.
LocalSearch οΌ Start with an arbitrary schedule. Repeat until no job can be reassigned (i.e., local optimum reached): Let π be a job that finished last. If exists machine π s.t. assigning job π to π allows π finish earlier: Transfer job π to earliest such π . LocalSearch finds a schedule with makespan π· max β€ 2 β 1 π β OPT List (Graham 1966) οΌ For each job π = 1,2, β― , π do: Assign job π to a currently least loaded machine.
LocalSearch οΌ Start with an arbitrary schedule. Repeat until no job can be reassigned (i.e., local optimum reached): Let π be a job that finished last. If exists machine π s.t. assigning job π to π allows π finish earlier: Transfer job π to earliest such π . LocalSearch finds a schedule with makespan π· max β€ 2 β 1 π β OPT List (Graham 1966) οΌ For each job π = 1,2, β― , π do: Assign job π to a currently least loaded machine. The schedule returned by List must be a local optimum!
LocalSearch οΌ Start with an arbitrary schedule. Repeat until no job can be reassigned (i.e., local optimum reached): Let π be a job that finished last. If exists machine π s.t. assigning job π to π allows π finish earlier: Transfer job π to earliest such π . LocalSearch finds a schedule with makespan π· max β€ 2 β 1 π β OPT List (Graham 1966) οΌ For each job π = 1,2, β― , π do: Assign job π to a currently least loaded machine. The schedule returned by List must be a local optimum! List will find a schedule with makespan 2 β 1 π· max β€ β OPT π
π identical machines π jobs List (Graham 1966) οΌ For each job π = 1,2, β― , π do: Assign job π to a currently least loaded machine.
π identical machines π jobs List (Graham 1966) οΌ For each job π = 1,2, β― , π do: Assign job π to a currently least loaded machine.
Longest Processing Time (L (LPT) π identical machines π jobs List (Graham 1966) οΌ For each job π = 1,2, β― , π do: Assign job π to a currently least loaded machine.
LongestProcessingTime (LPT) οΌ Sort jobs so that π 1 β₯ π 2 β₯ β― β₯ π π . For each job π = 1,2, β― , π do: Assign job π to a currently least loaded machine.
LongestProcessingTime (LPT) οΌ Sort jobs so that π 1 β₯ π 2 β₯ β― β₯ π π . For each job π = 1,2, β― , π do: Assign job π to a currently least loaded machine. This algorithm finishes within poly-time. The approximation ratio of this algorithm?
LongestProcessingTime (LPT) οΌ Sort jobs so that π 1 β₯ π 2 β₯ β― β₯ π π . For each job π = 1,2, β― , π do: Assign job π to a currently least loaded machine. This algorithm finishes within poly-time. The approximation ratio of this algorithm? Assume machine π finishes last in final schedule, and last job on it is π . Makespan π· max = π· π = π· π β π π + π π
LongestProcessingTime (LPT) οΌ Sort jobs so that π 1 β₯ π 2 β₯ β― β₯ π π . For each job π = 1,2, β― , π do: Assign job π to a currently least loaded machine. This algorithm finishes within poly-time. The approximation ratio of this algorithm? Assume machine π finishes last in final schedule, and last job on it is π . Makespan π· max = π· π = π· π β π π + π π π· π β π π β€ 1 π ΰ· π π β€ OPT π
LongestProcessingTime (LPT) οΌ Sort jobs so that π 1 β₯ π 2 β₯ β― β₯ π π . For each job π = 1,2, β― , π do: Assign job π to a currently least loaded machine. This algorithm finishes within poly-time. The approximation ratio of this algorithm? Assume machine π finishes last in final schedule, and last job on it is π . Makespan π· max = π· π = π· π β π π + π π π· π β π π β€ 1 π ΰ· π π β€ OPT π
LongestProcessingTime (LPT) οΌ Sort jobs so that π 1 β₯ π 2 β₯ β― β₯ π π . For each job π = 1,2, β― , π do: Assign job π to a currently least loaded machine. This algorithm finishes within poly-time. The approximation ratio of this algorithm? Assume machine π finishes last in final schedule, and last job on it is π . Makespan π· max = π· π = π· π β π π + π π π· π β π π β€ 1 π ΰ· π π β€ OPT π W.l.o.g.: β’ # of jobs > # of machines (i.e., π > π ) β’ makespan is achieved by some job bigger than π (i.e., π > π ) Otherwise, LPT returns an optimal solution already!
LongestProcessingTime (LPT) οΌ Sort jobs so that π 1 β₯ π 2 β₯ β― β₯ π π . For each job π = 1,2, β― , π do: Assign job π to a currently least loaded machine. This algorithm finishes within poly-time. The approximation ratio of this algorithm? Assume machine π finishes last in final schedule, and last job on it is π . Makespan π· max = π· π = π· π β π π + π π π· π β π π β€ 1 π ΰ· π π β€ OPT π W.l.o.g.: β’ # of jobs > # of machines (i.e., π > π ) π π + π π+1 β€ OPT β’ makespan is achieved by some job bigger than π (i.e., π > π ) Otherwise, LPT returns an optimal solution already!
LongestProcessingTime (LPT) οΌ Sort jobs so that π 1 β₯ π 2 β₯ β― β₯ π π . For each job π = 1,2, β― , π do: Assign job π to a currently least loaded machine. This algorithm finishes within poly-time. The approximation ratio of this algorithm? Assume machine π finishes last in final schedule, and last job on it is π . Makespan π· max = π· π = π· π β π π + π π π· π β π π β€ 1 π ΰ· π π β€ OPT π W.l.o.g.: β’ # of jobs > # of machines (i.e., π > π ) π π + π π+1 β€ OPT β’ makespan is achieved by some job bigger than π (i.e., π > π ) π π β€ π π+1 Otherwise, LPT returns an optimal solution already!
LongestProcessingTime (LPT) οΌ Sort jobs so that π 1 β₯ π 2 β₯ β― β₯ π π . For each job π = 1,2, β― , π do: Assign job π to a currently least loaded machine. This algorithm finishes within poly-time. The approximation ratio of this algorithm? Assume machine π finishes last in final schedule, and last job on it is π . Makespan π· max = π· π = π· π β π π + π π π π β€ π π+1 β€ 1 2 π π + π π+1 β€ OPT π· π β π π β€ 1 π ΰ· π π β€ OPT 2 π W.l.o.g.: β’ # of jobs > # of machines (i.e., π > π ) π π + π π+1 β€ OPT β’ makespan is achieved by some job bigger than π (i.e., π > π ) π π β€ π π+1 Otherwise, LPT returns an optimal solution already!
LongestProcessingTime (LPT) οΌ Sort jobs so that π 1 β₯ π 2 β₯ β― β₯ π π . For each job π = 1,2, β― , π do: Assign job π to a currently least loaded machine. This algorithm finishes within poly-time. The approximation ratio of this algorithm? Assume machine π finishes last in final schedule, and last job on it is π . β€ 3 Makespan π· max = π· π = π· π β π π + π π 2 β OPT π π β€ π π+1 β€ 1 2 π π + π π+1 β€ OPT π· π β π π β€ 1 π ΰ· π π β€ OPT 2 π W.l.o.g.: β’ # of jobs > # of machines (i.e., π > π ) π π + π π+1 β€ OPT β’ makespan is achieved by some job bigger than π (i.e., π > π ) π π β€ π π+1 Otherwise, LPT returns an optimal solution already!
LongestProcessingTime (LPT) οΌ Sort jobs so that π 1 β₯ π 2 β₯ β― β₯ π π . For each job π = 1,2, β― , π do: Assign job π to a currently least loaded machine. β’ We have shown LPT has approximation ratio (at most) Ξ€ 3 2 . β’ By a more careful analysis, it can be shown LPT is actually a Ξ€ 4 3 approximation algorithm. β’ The problem of β minimum makespan on identical machines β has a PTAS ( P olynomial T ime A pproximation S cheme). βπ > 0, β poly-time (1 + π) -approx. alg. for the problem
Online Scheduling π identical machines Jobs arrive (revealed) one-by-one Schedule decision must be made once a job arrives, without seeing jobs in the future.
Online Scheduling π identical machines Jobs arrive (revealed) one-by-one Schedule decision must be made once a job arrives, without seeing jobs in the future.
Online Scheduling π identical machines Jobs arrive (revealed) one-by-one Schedule decision must be made once a job arrives, without seeing jobs in the future.
Online Scheduling π identical machines Jobs arrive (revealed) one-by-one Schedule decision must be made once a job arrives, without seeing jobs in the future.
Recommend
More recommend