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.

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

Recommend


More recommend