greedy and local search
play

Greedy and Local Search Advanced Algorithms Nanjing University, - PowerPoint PPT Presentation

Approximation Algorithms Greedy and Local Search Advanced Algorithms Nanjing University, Fall 2018 Set Cover Instance: Given a collection of subsets 1 , 2 , , , find the smallest [] such that


  1. 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

  2. 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

  3. 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.

  4. 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

  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. 𝐷 ≀ 𝑔 𝐽 β‹… 𝑁 ≀ 𝑔 𝐽 β‹… OPT primal GreedyMatchingCover has approximation ratio 𝑔 𝐽 .

  6. Instance: A collection of subsets 𝑇 1 , 𝑇 2 , β‹― , 𝑇 𝑛 βŠ† 𝑉 . Set Cover: Find smallest 𝐷 βŠ† [𝑛] such that Ϊ‚ π‘—βˆˆπ· 𝑇 𝑗 = 𝑉 . What if the frequency of each element is exactly 2?

  7. 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

  8. 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. βˆ€π‘“ ∈ 𝐹: 𝑓 ∩ 𝐷 β‰  βˆ… .

  9. 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.

  10. 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)

  11. 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 𝑀 ∩ 𝑁 β‰  βˆ…} .

  12. 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.

  13. Scheduling 𝑛 identical machines

  14. Scheduling 𝑛 identical machines π‘œ jobs processing time π‘ž π‘˜ 3 1 4 2 6 3 5 2 4 3

  15. Scheduling 𝑛 machines π‘œ jobs each with processing time π‘ž π‘˜

  16. Scheduling 𝑛 machines π‘œ jobs each with processing time π‘ž π‘˜ Completion time: 𝐷 𝑗 = ෍ π‘ž π‘˜ (of machine 𝑗 ) π‘˜: jobs assigned to machine 𝑗

  17. Scheduling 𝑛 machines π‘œ jobs each with processing time π‘ž π‘˜ makespan Completion time: 𝐷 𝑗 = ෍ π‘ž π‘˜ (of machine 𝑗 ) π‘˜: jobs assigned to machine 𝑗 𝐷 max = max 𝐷 𝑗 Makespan: 𝑗

  18. Instance: π‘œ jobs π‘˜ = 1,2, β‹― , π‘œ each with processing time π‘ž π‘˜ ∈ β„€ + . Problem: Find a schedule assigning π‘œ jobs to 𝑛 identical machines so as the minimize the makespan.

  19. 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…

  20. 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 Οƒ π‘—βˆˆπ΅ 𝑦 𝑗 = Οƒ π‘—βˆˆπΆ 𝑦 𝑗 .

  21. 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.

  22. 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.

  23. 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.

  24. 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.

  25. 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.

  26. 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.

  27. 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.

  28. 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.

  29. 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.

  30. 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.

  31. 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.

  32. 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.

  33. List (Graham 1966) : For each job π‘˜ = 1,2, β‹― , π‘œ do: Assign job π‘˜ to a currently least loaded machine.

  34. List (Graham 1966) : For each job π‘˜ = 1,2, β‹― , π‘œ do: Assign job π‘˜ to a currently least loaded machine. This algorithm finishes within poly-time.

  35. 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?

  36. 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 π‘ž π‘˜ π‘˜

  37. 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 β‰₯ ෍ π‘ž π‘˜ π‘˜ π‘˜

  38. 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 π‘š .

  39. 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 = 𝐷 𝑙 = 𝐷 𝑙 βˆ’ π‘ž π‘š + π‘ž π‘š

  40. 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 π‘˜

  41. 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 π‘š

  42. 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 π‘š

  43. 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 π‘˜ π‘˜β‰ π‘š π‘˜

  44. 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 π‘ž π‘˜ βˆ’ π‘ž π‘š 𝑛 ෍ 𝑛 ෍ 𝑛 π‘˜β‰ π‘š π‘˜

  45. 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 π‘ž π‘˜ βˆ’ π‘ž π‘š 𝑛 ෍ 𝑛 ෍ 𝑛 π‘˜β‰ π‘š π‘˜

  46. 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 𝑛 .

  47. 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 .]

  48. 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 )

  49. 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 𝑗 .

  50. 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 𝑗 .

  51. 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 𝑗 .

  52. 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 𝑗 .

  53. 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!)

  54. 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?

  55. 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 β‰₯ ෍ π‘ž π‘˜ π‘˜ π‘˜

  56. 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 π‘š .

  57. 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 = 𝐷 𝑙 = 𝐷 𝑙 βˆ’ π‘ž π‘š + π‘ž π‘š

  58. 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 π‘˜

  59. 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 𝑛 π‘˜ π‘˜β‰ π‘š π‘˜

  60. 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 𝑛 π‘˜ π‘˜β‰ π‘š π‘˜

  61. 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.

  62. 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.

  63. 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!

  64. 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 𝑛

  65. 𝑛 identical machines π‘œ jobs List (Graham 1966) : For each job π‘˜ = 1,2, β‹― , π‘œ do: Assign job π‘˜ to a currently least loaded machine.

  66. 𝑛 identical machines π‘œ jobs List (Graham 1966) : For each job π‘˜ = 1,2, β‹― , π‘œ do: Assign job π‘˜ to a currently least loaded machine.

  67. 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.

  68. LongestProcessingTime (LPT) : Sort jobs so that π‘ž 1 β‰₯ π‘ž 2 β‰₯ β‹― β‰₯ π‘ž π‘œ . For each job π‘˜ = 1,2, β‹― , π‘œ do: Assign job π‘˜ to a currently least loaded machine.

  69. 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?

  70. 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 = 𝐷 𝑙 = 𝐷 𝑙 βˆ’ π‘ž π‘š + π‘ž π‘š

  71. 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 π‘˜

  72. 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 π‘˜

  73. 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!

  74. 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!

  75. 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!

  76. 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!

  77. 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!

  78. 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

  79. 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.

  80. 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.

  81. 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.

  82. 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