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

Lecture slides for POM 2-3

hajimizu
September 08, 2023

Lecture slides for POM 2-3

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

hajimizu

September 08, 2023
Tweet

More Decks by hajimizu

Other Decks in Technology

Transcript

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

    Single Machine Scheduling #2 • Minimizing total weighted tardiness (revisited) • Dynamic programming (DP) • Forward and backward DPs
  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 minimize total weighted tardiness. • 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 𝑗 ∈ 𝐽: 𝐶! • Objective function: 𝑓 𝜋 = ∑!∈" 𝑤! 𝑇! = ∑!∈" 𝑤! max(0, 𝐶! − 𝑑! ) Sigle-Machine Scheduling Problem to Minimize Total Weighted Tardiness
  4. © Hajime Mizuyama • Dynamic programming (DP) is an algorithm

    class, which derives an optimal solution of the original problem by utilizing the solutions of its subproblems. • It first divide the original problem into subproblems recursively, until the solutions of the divided subproblems are trivial. • Then, the next smallest unsolved subproblems are solved using the solutions of the subproblems already solved. • This is repeated bottom-up until the original problem is reached. • The algorithm is characterized by initial condition, recursive relation, and optimal value function. • WW (Wagner-Whitin) algorithm for dynamic lot sizing is an example. Dynamic Programming (DP)
  5. © Hajime Mizuyama Objective function 𝑓 𝜋 = ∑!∈" 𝑤!

    𝑇! = ∑!∈" 𝑤! max(0, 𝐶! − 𝑑! ) Optimal value function 𝑉 𝐽 = min &∈'! 𝑓(𝜋) Initial condition 𝑉(∅) = 0 Recursive relation 𝑉(𝑁) = min !∈( 𝑉(𝑁 ∖ {𝑗}) + 𝑤! max(0, ∑)∈( 𝑝) − 𝑑! 𝑁 ∈ 𝒫(𝐽) ∖ ∅ Forward DP for Minimizing Total Weighted Tardiness
  6. © Hajime Mizuyama 𝑉(∅) ← 0; 𝑠(∅) ← ∅; 𝑠𝑖𝑧𝑒

    ← 1 while 𝑠𝑖𝑧𝑒 ≤ |𝐽| do for 𝑁 ∈ 𝑁 ⊆ 𝐽 𝑁 = 𝑠𝑖𝑧𝑒} do 𝑉(𝑁) ← min !∈( 𝑉(𝑁 ∖ {𝑗}) + 𝑤! max(0, ∑)∈( 𝑝) − 𝑑! 𝑗∗ ← argmin !∈( 𝑉(𝑁 ∖ {𝑗}) + 𝑤! max(0, ∑)∈( 𝑝) − 𝑑! 𝑠 𝑁 ← 𝑠 𝑁 ∖ 𝑗∗ ^ (𝑗∗) od 𝑠𝑖𝑧𝑒 ← 𝑠𝑖𝑧𝑒 + 1 od 𝜋 = 𝑠(𝐽) Algorithm of Forward DP
  7. © Hajime Mizuyama Illustrative Example: Forward DP #1 𝑗 1

    2 3 4 𝑝! 40 80 50 110 𝑤! 5 4 2 10 𝑑! 50 220 150 160 Example jobs When 𝑠𝑖𝑧𝑒 = 1, 𝑁 ∈ { 1 , 2 , 3 , {4}} are handled as follows: 𝑉 1 = 𝑉 ∅ + 𝑤# max(0, 𝑝# − 𝑑# ) = 0, 𝑠 1 = (1) 𝑉 2 = 𝑉 ∅ + 𝑤$ max(0, 𝑝$ − 𝑑$ ) = 0, 𝑠 2 = (2) 𝑉 3 = 𝑉 ∅ + 𝑤+ max(0, 𝑝+ − 𝑑+ ) = 0, 𝑠 3 = (3) 𝑉 4 = 𝑉 ∅ + 𝑤, max(0, 𝑝, − 𝑑, ) = 0, 𝑠 4 = (4) 𝑁 = ∅: 𝑉 = 0, 𝑠 = ∅
  8. © Hajime Mizuyama Illustrative Example: Forward DP #2 𝑗 1

    2 3 4 𝑝! 40 80 50 110 𝑤! 5 4 2 10 𝑑! 50 220 150 160 Example jobs When 𝑠𝑖𝑧𝑒 = 2, 𝑁 ∈ { 1, 2 , 1, 3 , … , {3, 4}} are handled as follows: 𝑉 1, 2 = min 𝑉( 1 ) + 𝑤$ max 0, 𝑝# + 𝑝$ − 𝑑$ , 𝑉( 2 ) + 𝑤# max 0, 𝑝# + 𝑝$ − 𝑑# = min 0, 350 = 0, 𝑠 1, 2 = (1, 2) 𝑉 1, 3 = 0, 𝑠 1, 3 = 1, 3 , 𝑉 1, 4 = 0, 𝑠 1, 4 = 1, 4 𝑉 2, 3 = 0, 𝑠 2, 3 = 2, 3 𝑜𝑟 (3, 2), 𝑉 2, 4 = 0, 𝑠 2, 4 = 4, 2 , 𝑉 3, 4 = 0, 𝑠 3, 4 = 3, 4 𝑁 = {1}: 𝑉 = 0, 𝑠 = (1) 𝑁 = {2}: 𝑉 = 0, 𝑠 = (2) 𝑁 = {3}: 𝑉 = 0, 𝑠 = (3) 𝑁 = {4}: 𝑉 = 0, 𝑠 = (4)
  9. © Hajime Mizuyama Illustrative Example: Forward DP #3 𝑗 1

    2 3 4 𝑝! 40 80 50 110 𝑤! 5 4 2 10 𝑑! 50 220 150 160 Example jobs When 𝑠𝑖𝑧𝑒 = 3, 𝑁 ∈ { 1, 2, 3 , … , {2, 3, 4}} are handled as follows: 𝑉 1, 2, 3 = min 𝑉( 1, 2 ) + 𝑤+ max 0, 𝑝# + 𝑝$ + 𝑝+ − 𝑑+ , 𝑉( 1, 3 ) + 𝑤$ max 0, 𝑝# + 𝑝$ + 𝑝+ − 𝑑$ , 𝑉( 2, 3 ) + 𝑤# max 0, 𝑝# + 𝑝$ + 𝑝+ − 𝑑# 𝑉 1, 2 = min 40, 0, 600 = 0, 𝑠 1, 2, 3 = (1, 3, 2) 𝑉 1, 2, 4 = 40, 𝑠 1, 2, 4 = 1, 4, 2 , 𝑉 1, 3, 4 = 100, 𝑠 1, 3, 4 = 1, 4, 3 , 𝑉 2, 3, 4 = 80, 𝑠 2, 3, 4 = 3, 4, 2 𝑁 ∈ 𝑁 ⊆ 𝐽 𝑁 = 2}: 𝑉 = 0 𝑠 1, 2 = 1, 2 , 𝑠 1, 3 = 1, 3 , 𝑠 1, 4 = 1, 4 , 𝑠 2, 3 = 2, 3 𝑜𝑟 (3, 2), 𝑠 2, 4 = 4, 2 , 𝑠 3, 4 = 3, 4
  10. © Hajime Mizuyama Illustrative Example: Forward DP #4 𝑗 1

    2 3 4 𝑝! 40 80 50 110 𝑤! 5 4 2 10 𝑑! 50 220 150 160 Example jobs When 𝑠𝑖𝑧𝑒 = 4, 𝑁 = 1, 2, 3, 4 = 𝐽 is handled as follows: 𝑉 𝐽 = min 𝑉( 1, 2, 3 ) + w, max 0, 280 − 𝑑, , 𝑉( 1, 2, 4 ) + w+ max 0, 280 − 𝑑+ , 𝑉( 1, 3, 4 ) + w$ max 0, 280 − 𝑑$ , 𝑉( 2, 3, 4 ) + w# max 0, 280 − 𝑑# 𝑉 1, 2 = min 1200, 300, 340, 1230 = 300 𝑠 𝐽 = (1, 4, 2, 3) 𝑁 = {1, 2, 3}: 𝑉 = 0, 𝑠 = (1, 3, 2) 𝑁 = {1, 2, 4}: 𝑉 = 40, 𝑠 = (1, 4, 2) 𝑁 = {1, 3, 4}: 𝑉 = 100, 𝑠 = (1, 4, 3) 𝑁 = {2, 3, 4}: 𝑉 = 80, 𝑠 = (3, 4, 2)
  11. © Hajime Mizuyama Objective function 𝑓 𝜋 = ∑!∈" 𝑤!

    𝑇! = ∑!∈" 𝑤! max(0, 𝐶! − 𝑑! ) Optimal value function 𝑉 𝐽 = min &∈'! 𝑓(𝜋) Initial condition 𝑉(∅) = 0 Recursive relation 𝑉 𝑁 = min !∈( 𝑉 𝑁 ∖ 𝑗 + 𝑤! max(0, ∑)∈("∖()∪ ! 𝑝) − 𝑑! ) 𝑁 ∈ 𝒫(𝐽) ∖ ∅ Backward DP for Minimizing Total Weighted Tardiness
  12. © Hajime Mizuyama 𝑉(∅) ← 0; 𝑠(∅) ← ∅; 𝑠𝑖𝑧𝑒

    ← 1 while 𝑠𝑖𝑧𝑒 ≤ |𝐽| do for 𝑁 ∈ 𝑁 ⊆ 𝐽 𝑁 = 𝑠𝑖𝑧𝑒} do 𝑉(𝑁) ← min !∈( 𝑉(𝑁 ∖ {𝑗}) + 𝑤! max(0, ∑)∈("∖()∪ ! 𝑝) − 𝑑! ) 𝑗∗ ← argmin !∈( 𝑉(𝑁 ∖ {𝑗}) + 𝑤! max(0, ∑)∈("∖()∪ ! 𝑝) − 𝑑! ) 𝑠 𝑁 ← 𝑗∗ ^ 𝑠 𝑁 ∖ 𝑗∗ od 𝑠𝑖𝑧𝑒 ← 𝑠𝑖𝑧𝑒 + 1 od 𝜋 = 𝑠(𝐽) Algorithm of Backward DP
  13. © Hajime Mizuyama Illustrative Example: Backward DP #1 𝑗 1

    2 3 4 𝑝! 40 80 50 110 𝑤! 5 4 2 10 𝑑! 50 220 150 160 Example jobs When 𝑠𝑖𝑧𝑒 = 1, 𝑁 ∈ { 1 , 2 , 3 , {4}} are handled as follows: 𝑉 1 = 𝑉 ∅ + 𝑤# max(0, 280 − 𝑑# ) = 1150, 𝑠 1 = (1) 𝑉 2 = 𝑉 ∅ + 𝑤$ max(0, 280 − 𝑑$ ) = 240, 𝑠 2 = (2) 𝑉 3 = 𝑉 ∅ + 𝑤+ max(0, 280 − 𝑑+ ) = 260, 𝑠 3 = (3) 𝑉 4 = 𝑉 ∅ + 𝑤, max(0, 280 − 4) = 1200, 𝑠 4 = (4) 𝑁 = ∅: 𝑉 = 0, 𝑠 = ∅
  14. © Hajime Mizuyama Illustrative Example: Backward DP #2 𝑗 1

    2 3 4 𝑝! 40 80 50 110 𝑤! 5 4 2 10 𝑑! 50 220 150 160 Example jobs When 𝑠𝑖𝑧𝑒 = 2, 𝑁 ∈ { 1, 2 , 1, 3 , … , {3, 4}} are handled as follows: 𝑉 1, 2 = min 𝑉( 1 ) + 𝑤$ max 0, 𝑝$ + 𝑝+ + 𝑝, − 𝑑$ , 𝑉( 2 ) + 𝑤# max 0, 𝑝# + 𝑝+ + 𝑝, − 𝑑# 𝑉 1, 2 = min(1150 + 80, 240 + 750) = 990, 𝑠 1, 2 = (1, 2) 𝑉 1, 3 = 1160, 𝑠 1, 3 = 1, 3 , 𝑉 1, 4 = 1800, 𝑠 1, 4 = 1, 4 𝑉 2, 3 = 300, 𝑠 2, 3 = 2, 3 , 𝑉 2, 4 = 640, 𝑠 2, 4 = 4, 2 , 𝑉 3, 4 = 960, 𝑠 3, 4 = 4, 3 𝑁 = {1}: 𝑉 = 1150, 𝑠 = (1) 𝑁 = {2}: 𝑉 = 240, 𝑠 = (2) 𝑁 = {3}: 𝑉 = 260, 𝑠 = (3) 𝑁 = {4}: 𝑉 = 1200, 𝑠 = (4)
  15. © Hajime Mizuyama Illustrative Example: Backward DP #3 𝑗 1

    2 3 4 𝑝! 40 80 50 110 𝑤! 5 4 2 10 𝑑! 50 220 150 160 Example jobs When 𝑠𝑖𝑧𝑒 = 3, 𝑁 ∈ { 1, 2, 3 , … , {2, 3, 4}} are handled as follows: 𝑉 1, 2, 3 = min 𝑉( 1, 2 ) + 𝑤+ max 0, 𝑝+ + 𝑝, − 𝑑+ , 𝑉( 1, 3 ) + 𝑤$ max 0, 𝑝$ + 𝑝, − 𝑑$ , 𝑉( 2, 3 ) + 𝑤# max 0, 𝑝# + 𝑝, − 𝑑# 𝑉 1, 2 = min 1010, 1160, 800 = 800, 𝑠 1, 2, 3 = (3, 1, 2) 𝑉 1, 2, 4 = 840, 𝑠 1, 2, 4 = 1, 4, 2 , 𝑉 1, 3, 4 = 1310, 𝑠 1, 3, 4 = 1, 4, 3 , 𝑉 2, 3, 4 = 300, 𝑠 2, 3, 4 = 4, 2, 3 𝑁 = {1, 2}: 𝑉 = 990, 𝑠 = (1, 2) 𝑁 = {1, 3}: 𝑉 = 1160, 𝑠 = (1, 3) 𝑁 = {1, 4}: 𝑉 = 1800, 𝑠 = (1, 4) 𝑁 = {2, 3}: 𝑉 = 300, 𝑠 = 2, 3 𝑁 = {2, 4}: 𝑉 = 640, 𝑠 = (4, 2) 𝑁 = {3, 4}: 𝑉 = 960, 𝑠 = (4, 3)
  16. © Hajime Mizuyama Illustrative Example: Backward DP #4 𝑗 1

    2 3 4 𝑝! 40 80 50 110 𝑤! 5 4 2 10 𝑑! 50 220 150 160 Example jobs When 𝑠𝑖𝑧𝑒 = 4, 𝑁 = 1, 2, 3, 4 = 𝐽 is handled as follows: 𝑉 𝐽 = min 𝑉( 1, 2, 3 ) + w, max 0, 𝑝, − 𝑑, , 𝑉( 1, 2, 4 ) + w+ max 0, 𝑝+ − 𝑑+ , 𝑉( 1, 3, 4 ) + w$ max 0, 𝑝$ − 𝑑$ , 𝑉( 2, 3, 4 ) + w# max 0, 𝑝# − 𝑑# 𝑉 1, 2 = min 800, 840, 1310, 300 = 300 𝑠 𝐽 = (1, 4, 2, 3) 𝑁 = {1, 2, 3}: 𝑉 = 800, 𝑠 = (3, 1, 2) 𝑁 = {1, 2, 4}: 𝑉 = 840, 𝑠 = (1, 4, 2) 𝑁 = {1, 3, 4}: 𝑉 = 1310, 𝑠 = (1, 4, 3) 𝑁 = {2, 3, 4}: 𝑉 = 300, 𝑠 = (4, 2, 3)
  17. © Hajime Mizuyama Illustrative Example: Optimal Schedule ∑!∈" 𝑤! 𝑇!

    = 300 𝑗 1 2 3 4 𝑝! 40 80 50 110 𝑤! 5 4 2 10 𝑑! 50 220 150 160 𝐶! 40 230 280 150 𝑇! 0 10 130 0 𝑑" 𝑑# 𝑑$ 𝑑% Example jobs Chosen sequence: 𝜋 = (1, 4, 2, 3)