Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Lecture slides for POM 2-2

hajimizu
September 08, 2023

Lecture slides for POM 2-2

生産管理技術2の講義2のスライドです.

hajimizu

September 08, 2023
Tweet

More Decks by hajimizu

Other Decks in Technology

Transcript

  1. © Hajime Mizuyama Production & Operations Management #2 @AGU Lec.2:

    Single Machine Scheduling #1 • Some easily solvable problems (revisited) • Enumerating all permutations of jobs • Branch and bound (BAB)
  2. © Hajime Mizuyama Course Schedule #1 Date Contents Single machine

    scheduling (1): Branch and bound (BAB) Single machine scheduling (2): Dynamic programming (DP) Flow shop scheduling: Unlimited, limited, and no buffer capacity cases, and branch and bound (BAB) Metaheuristics: Local search, simulated annealing, tabu search, genetic algorithm, etc. Job shop scheduling (1): Disjunctive graph representation, and 0-1 mixed-integer linear programming (0-1 MILP) formulation Job shop scheduling (2): How to enumerate active schedules, and branch and bound (BAB) Mid-term examination
  3. © Hajime Mizuyama There are only one machine and several

    jobs. The sequence of the jobs 𝜋 should be properly determined to attain a specified objective. • Set of jobs: 𝐽 = {1, 2, … , |𝐽|} • Processing time of job 𝑗 ∈ 𝐽: 𝑝! • Weight of job 𝑗 ∈ 𝐽: 𝑤! • Due date of job 𝑗 ∈ 𝐽: 𝑑! • Set of permutations of jobs in 𝐽: Π" ∋ 𝜋 = 𝜋# , 𝜋$ , … , 𝜋 " • Starting time of job 𝑗 ∈ 𝐽: 𝑆! • Completion time of job 𝑗 ∈ 𝐽: 𝐶! Sigle-Machine Scheduling Problem
  4. © Hajime Mizuyama • Makespan: 𝐶%&' = max !∈" 𝐶!

    – This does not depend on the job sequence 𝜋 in the standard setting considered here. • Total weighted (or unweighted) completion times: ∑!∈" 𝑤! 𝐶! • Maximum weighted (or unweighted) tardiness: max !∈" 𝑤! 𝑇! • Total weighted (or unweighted) tardiness: ∑!∈" 𝑤! 𝑇! – Lateness of job 𝑗 ∈ 𝐽: 𝐿! = 𝐶! − 𝑑! – Tardiness of job 𝑗 ∈ 𝐽: 𝑇! = max(0, 𝐿! ) Typical Objectives
  5. © Hajime Mizuyama Illustrative Example Total completion times ∑!∈" 𝐶!

    = 610 (unweighted) ∑!∈" 𝑤! 𝐶! = 3820 (weighted) Maximum Tardiness max !∈" 𝑇! = 120 (unweighted) max !∈" 𝑤! 𝑇! = 1200 (weighted) Total tardiness ∑!∈" 𝑇! = 140 (unweighted) ∑!∈" 𝑤! 𝑇! = 1240 (weighted) 𝑗 1 2 3 4 𝑝! 40 80 50 110 𝑤! 5 4 2 10 𝑑! 50 220 150 160 𝐶! 40 120 170 280 𝑇! 0 0 20 120 𝑑" 𝑑# 𝑑$ 𝑑% If 𝜋 = (1, 2, 3, 4) is used, Example jobs
  6. © Hajime Mizuyama Some Easily Solvable Problems • Total completion

    times – SPT rule • Total weighted completion times – WSPT rule • Maximum tardiness – EDD rule • Maximum weighted tardiness – Simple backward algorithm shown on the right 𝑁 ← 𝐽; 𝑖 ← |𝐽|; F 𝐶 ← ∑!∈" 𝑝! while 𝑁 ≠ 𝜙 do Choose a job ̃ 𝚥 which satisfies: ̃ 𝚥 ∈ argmin !∈) 𝑤! O max(0, F 𝐶 − 𝑑! ) 𝜋* ← ̃ 𝚥; 𝑁 ← 𝑁 ∖ { ̃ 𝚥} F 𝐶 ← F 𝐶 − 𝑝 ̃ ,; 𝑖 ← 𝑖 − 1 od
  7. © Hajime Mizuyama 𝑑" 𝑑# 𝑑$ 𝑑% Minimizing Maximum Weighted

    Tardiness The algorithm results in 𝜋 = (1, 4, 3, 2), and max !∈" 𝑤! 𝑇! = 240. Unfortunately, the sequence that minimizes the maximum weighted tardiness does not always minimize the total weighted tardiness, which is 𝜋 = (1, 4, 2, 3) in this case. 𝑗 1 2 3 4 𝑝! 40 80 50 110 𝑤! 5 4 2 10 𝑑! 50 220 150 160 𝐶! 𝑤" 𝑇" 𝑤# 𝑇# 𝑤" 𝑇$ 𝑤% 𝑇% 280 1150 240 260 1200 200 750 100 400 150 500 0 40 0 Example jobs
  8. © Hajime Mizuyama Set of permutations of jobs Set of

    permutations of jobs (*, *, *, 1) (*, *, *, 2) 3! (*, *, *, 4) (*, *, *, 3) (*, *, *, 2) (*, *, *, 1) (*, *, 4, 1) (*, *, 3, 1) (*, *, 2, 1) (*, *, 4, 1) Branching and Search Tree (|J|=4) 4! 2! (*, *, 4, 2) (*, *, 3, 2) (*, *, 1, 2) 1! (3, 2, 4, 1) (2, 3, 4, 1)
  9. © Hajime Mizuyama • Each intermediate node of the search

    tree corresponds to a subset of possible permutations of jobs (or proper job sequences). • If a lower bound (LB) can be specified to an intermediate node, we can tell that the node does not contain any job sequence whose objective function value is smaller than the LB. • This means that, if we have already found a temporary solution whose objective function value is smaller than the LB, we do not need to evaluate the job sequences in the node. • It is called bounding operation to remove the unsplit nodes having a LB inferior to the temporary solution’s objective function value (UB). • The LB values can also be used to determine which node to branch next (e.g., choosing the one with the smallest LB). Lower Bound (LB) and Bounding
  10. © Hajime Mizuyama BAB Algorithm for Minimizing Total Weighted Tardiness

    𝑁 ← {∅}; 𝑈𝐵 ← ∞; 𝜋 ← ∅ while 𝑁 ≠ ∅ do Choose 𝑠 = (𝑠# , 𝑠$ , … ) ∈ 𝑁 𝑁 ← 𝑁 ∖ {𝑠} for 𝑗 ∈ 𝐽 ∖ 𝑠 do ̃ 𝑠 ← 𝑗 ^ 𝑠 Calculate 𝐿𝐵( ̃ 𝑠) if 𝐿𝐵 ̃ 𝑠 < 𝑈𝐵 then if 𝐽 ∖ ̃ 𝑠 = ∅ then 𝑈𝐵 ← 𝐿𝐵( ̃ 𝑠) 𝜋 ← ̃ 𝑠 𝑁 ← 𝜎 ∈ 𝑁 𝐿𝐵(𝜎) < 𝑈𝐵} else 𝑁 ← 𝑁 ∪ { ̃ 𝑠} fi fi od od
  11. © Hajime Mizuyama For each (partial) sequence 𝑠 (specified from

    the tail), we can assign the set of full sequences which accords with the given 𝑠 as: Z Π" (𝑠) = 𝜋 ∈ Π" (𝜋 " - . /# , … , 𝜋 " ) = 𝑠} Any lower bound 𝐿𝐵(𝑠) corresponding to the sequence should satisfy: 𝐿𝐵 𝑠 ≤ min 0∈1 2(.) 𝑓 𝜋 = min 0∈1 2(.) ∑!∈" 𝑤! 𝑇! 𝑇! for each 𝑗 ∈ 𝑠 and min 0∈1 2!(.) max !∈"∖. 𝑤! 𝑇! for the set of unassigned jobs can be evaluated without specifying the rest of the sequence. Hence, 𝐿𝐵 𝑠 = ∑!∈. 𝑤! 𝑇! + min 0∈1 2!(.) max !∈"∖. 𝑤! 𝑇! can be used as the lower bound. Lower Bound (LB) for Total Weighted Tardiness
  12. © Hajime Mizuyama 𝑑" 𝑑# 𝑑$ 𝑑% Illustrative Example: LB

    Calculation #1 (Partial) sequence 𝑠 = (1) Lower bound 𝐿𝐵 (1) = 1150 + max 80, 0, 0 = 1230 𝑗 1 2 3 4 𝑝! 40 80 50 110 𝑤! 5 4 2 10 𝑑! 50 220 150 160 𝐶! 𝑤" 𝑇" 𝑤# 𝑇# 𝑤" 𝑇$ 𝑤% 𝑇% 280 1150 240 80 180 800 160 0 0 110 0 Example jobs
  13. © Hajime Mizuyama 𝑑" 𝑑# 𝑑$ 𝑑% Illustrative Example: LB

    Calculation #2 (Partial) sequence 𝑠 = (2) Lower bound 𝐿𝐵 (2) = 240 + max 100, 0, 0 = 340 𝑗 1 2 3 4 𝑝! 40 80 50 110 𝑤! 5 4 2 10 𝑑! 50 220 150 160 𝐶! 𝑤" 𝑇" 𝑤# 𝑇# 𝑤" 𝑇$ 𝑤% 𝑇% 280 240 200 750 100 400 150 500 0 40 0 Example jobs
  14. © Hajime Mizuyama 𝑑" 𝑑# 𝑑$ 𝑑% Illustrative Example: LB

    Calculation #3 (Partial) sequence 𝑠 = (3) Lower bound 𝐿𝐵 (3) = 260 + max 40, 0, 0 = 300 𝑗 1 2 3 4 𝑝! 40 80 50 110 𝑤! 5 4 2 10 𝑑! 50 220 150 160 𝐶! 𝑤" 𝑇" 𝑤# 𝑇# 𝑤" 𝑇$ 𝑤% 𝑇% 280 260 230 900 40 700 150 500 0 40 0 Example jobs
  15. © Hajime Mizuyama 𝑑" 𝑑# 𝑑$ 𝑑% Illustrative Example: LB

    Calculation #4 (Partial) sequence 𝑠 = (4) Lower bound 𝐿𝐵 (4) = 1200 + max 0, 0, 0 = 1200 𝑗 1 2 3 4 𝑝! 40 80 50 110 𝑤! 5 4 2 10 𝑑! 50 220 150 160 𝐶! 𝑤" 𝑇" 𝑤# 𝑇# 𝑤" 𝑇$ 𝑤% 𝑇% 280 1200 170 600 0 40 90 200 0 40 0 Example jobs
  16. © Hajime Mizuyama Set of permutations of jobs Illustrative Example:

    Branching Operation and LBs #1 (*, *, *, 1) (*, *, *, 2) (*, *, *, 4) (*, *, *, 3) 1200 300 340 1230
  17. © Hajime Mizuyama 𝑑" 𝑑# 𝑑$ 𝑑% Illustrative Example: LB

    Calculation #5 (Partial) sequence 𝑠 = (1, 3) Lower bound 𝐿𝐵 (1, 3) = 260 + 900 + max 0, 0 = 1160 𝑗 1 2 3 4 𝑝! 40 80 50 110 𝑤! 5 4 2 10 𝑑! 50 220 150 160 𝐶! 𝑤" 𝑇" 𝑤# 𝑇# 𝑤" 𝑇$ 𝑤% 𝑇% 280 260 230 900 190 0 300 110 0 Example jobs
  18. © Hajime Mizuyama 𝑑" 𝑑# 𝑑$ 𝑑% Illustrative Example: LB

    Calculation #6 (Partial) sequence 𝑠 = (2, 3) Lower bound 𝐿𝐵((2, 3)) = 260 + 40 + max 0, 0 = 300 𝑗 1 2 3 4 𝑝! 40 80 50 110 𝑤! 5 4 2 10 𝑑! 50 220 150 160 𝐶! 𝑤" 𝑇" 𝑤# 𝑇# 𝑤" 𝑇$ 𝑤% 𝑇% 280 260 230 40 150 500 0 40 0 Example jobs
  19. © Hajime Mizuyama 𝑑" 𝑑# 𝑑$ 𝑑% Illustrative Example: LB

    Calculation #7 (Partial) sequence 𝑠 = (4, 3) Lower bound 𝐿𝐵((4, 3)) = 260 + 700 + max 0, 0 = 960 𝑗 1 2 3 4 𝑝! 40 80 50 110 𝑤! 5 4 2 10 𝑑! 50 220 150 160 𝐶! 𝑤" 𝑇" 𝑤# 𝑇# 𝑤" 𝑇$ 𝑤% 𝑇% 280 260 230 700 120 350 0 40 0 Example jobs
  20. © Hajime Mizuyama Set of permutations of jobs Illustrative Example:

    Branching Operation and LBs #2 (*, *, *, 1) (*, *, *, 2) (*, *, *, 4) (*, *, *, 3) 1200 300 340 1230 (*, *, 4, 3) (*, *, 2, 3) (*, *, 1, 3) 1160 300 960
  21. © Hajime Mizuyama 𝑑" 𝑑# 𝑑$ 𝑑% Illustrative Example: LB

    Calculation #8 (Partial) sequence 𝑠 = (1, 2, 3) Lower bound 𝐿𝐵 (1, 2, 3) = 260 + 40 + 500 + max 0 = 800 = 𝑓((4, 1, 2, 3)) 𝑗 1 2 3 4 𝑝! 40 80 50 110 𝑤! 5 4 2 10 𝑑! 50 220 150 160 𝐶! 𝑤" 𝑇" 𝑤# 𝑇# 𝑤" 𝑇$ 𝑤% 𝑇% 280 260 230 40 150 500 40 0 Example jobs
  22. © Hajime Mizuyama 𝑑" 𝑑# 𝑑$ 𝑑% Illustrative Example: LB

    Calculation #9 (Partial) sequence 𝑠 = (4, 2, 3) Lower bound 𝐿𝐵 (4, 2, 3) = 260 + 40 + 0 + max 0 = 300 = 𝑓((1, 4, 2, 3)) 𝑗 1 2 3 4 𝑝! 40 80 50 110 𝑤! 5 4 2 10 𝑑! 50 220 150 160 𝐶! 𝑤" 𝑇" 𝑤# 𝑇# 𝑤" 𝑇$ 𝑤% 𝑇% 280 260 230 40 150 0 40 0 Example jobs
  23. © Hajime Mizuyama Set of permutations of jobs Illustrative Example:

    Bounding Operation #1 (*, *, *, 1) (*, *, *, 2) (*, *, *, 4) (*, *, *, 3) 1200 300 340 1230 (*, *, 4, 3) (*, *, 2, 3) (*, *, 1, 3) 1160 300 960 (1, 4, 2, 3) (4, 1, 2, 3) 800 300
  24. © Hajime Mizuyama Set of permutations of jobs Illustrative Example:

    Bounding Operation #2 (*, *, *, 1) (*, *, *, 2) (*, *, *, 4) (*, *, *, 3) 1200 300 340 1230 (*, *, 4, 3) (*, *, 2, 3) (*, *, 1, 3) 1160 300 960 (1, 4, 2, 3) (4, 1, 2, 3) 800 300