topic 15 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Topic 15 PowerPoint Presentation
Download Presentation
Topic 15

Loading in 2 Seconds...

play fullscreen
1 / 83

Topic 15 - PowerPoint PPT Presentation


  • 152 Views
  • Uploaded on

Topic 15. Job Shop Scheduling. Job Shop Scheduling. Have m machines and n jobs Each job visits some or all of the machines Customer order of small batches Wafer fabrication in semiconductor industry Hospital Very difficult to solve. Job Shop Example. Constraints

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Topic 15' - leda


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
topic 15

Topic 15

Job Shop Scheduling

job shop scheduling
Job Shop Scheduling
  • Have m machines and n jobs
  • Each job visits some or all of the machines
  • Customer order of small batches
    • Wafer fabrication in semiconductor industry
    • Hospital
  • Very difficult to solve
job shop example
Job Shop Example
  • Constraints
    • Job follows a specific route
    • One job at a time on each machine

Machine 1

(1,1)

(1,2)

(1,3)

Machine 2

(2,3)

(2,1)

(2,2)

Machine 3

(3,1)

(3,3)

Machine 4

(4,3)

(4,2)

graph representation
Graph Representation

Each job follows a specific route through the job shop ...

(1,1)

(2,1)

(3,1)

Sink

Source

(1,2)

(2,2)

(4,2)

(2,3)

(1,3)

(4,3)

(3,3)

(Conjuctive arcs)

slide5

(1,1)

(2,1)

(3,1)

Sink

Source

(1,2)

(2,2)

(4,2)

(2,3)

(1,3)

(4,3)

(3,3)

Graph Representation

Machine constraints must also be satisfied ...

(Disjunctive arcs)

solving the problem
Solving the Problem
  • Select one of each pair of disjunctive arcs
  • The longest path in this graph G(D) determines the makespan

(1,1)

(2,1)

(3,1)

Sink

Source

(1,2)

(2,2)

(4,2)

(2,3)

(1,3)

(4,3)

(3,3)

feasibility of the schedule
Feasibility of the Schedule
  • Are all selections feasible?

(1,1)

(2,1)

(3,1)

Sink

Source

(1,2)

(2,2)

(4,2)

(2,3)

(1,3)

(4,3)

(3,3)

disjunctive programming
Disjunctive Programming

Minimize

Subject to

solution methods
Solution Methods
  • Exact solution
    • Branch and Bound
    • 20 machines and 20 jobs
  • Dispatching rules (16+)
    • Shifting Bottleneck
  • Search heuristics
    • Tabu, SA, GA, etc.
topic 16

Topic 16

Types of Schedules

definitions
Definitions
  • A schedule is nondelay if no machine is idled when there is an operation available
  • A schedule is called active if no operation can be completed earlier by altering the sequence on machines and not delaying other operations
  • For “regular” objectives the optimal schedule is always active but not necessarily nondelay
schedule space
Schedule Space

Semiactive

Optimum

Nondelay

Active

All Schedules

nonactive schedule
Nonactive Schedule

Machine 1

(1,1)

(2,1)

Machine 2

(2,3)

(2,2)

(2,1)

Machine 3

(3,2)

0 2 4 6 8

active schedule not nondelay
Active Schedule, not Nondelay

Machine 1

(1,1)

Delay (Operation (2,1) does not fit)

Machine 2

(2,3)

(2,2)

(2,1)

Machine 3

(3,2)

0 2 4 6 8

nondelay schedule
Nondelay schedule

Machine 1

(1,1)

Machine 2

(2,3)

(2,1)

(2,2)

Machine 3

(3,2)

0 2 4 6 8

topic 17

Topic 17

Branch & Bound for

Job Shops

branch and bound
Branch and Bound
  • Operation (i,j) with duration pij
  • Minimize makespan
  • Branch by generating all active schedules
  • Notation
    • Let W denote operations whose predecessors have been scheduled
    • Let rij be the earliest possible starting time of (i,j) in W.
generating active schedules
Generating Active Schedules

Step 1. (Initialize)

Let W contain the first operation of each job

Let rij = 0 for all (i,j)W.

Step 2. (Machine selection)

Compute the current partial schedule

and let i* denote the machine where minimum achieved

generating active schedules1
Generating Active Schedules

Step 3. (Branching)

Let W’ denote all operations on machine i such that

For each operation in W’ consider a partial schedule with that operation next on i*

For each partial schedule, delete operation from W and include immediate follower in W. Go back to Step 2.

branching tree
Branching Tree

Selection of (i*,j)

Selection of (i*,l)

example
Example

10

8

(1,1)

(2,1)

(3,1)

4

0

0

8

3

5

6

Source

(2,2)

(1,2)

(4,2)

(3,2)

Sink

0

3

7

(1,3)

4

(2,3)

(4,3)

level 1 select 1 1
Level 1: select (1,1)

10

8

(1,1)

(2,1)

(3,1)

4

10

0

10

0

8

3

5

6

Source

(2,2)

(1,2)

(4,2)

(3,2)

Sink

0

3

7

(1,3)

4

(2,3)

(4,3)

Disjunctive Arcs

slide24

Level 1: Select (1,3)

10

8

(1,1)

(2,1)

(3,1)

4

0

4

0

8

3

5

6

Source

(2,2)

(1,2)

(4,2)

(3,2)

Sink

0

4

3

7

(1,3)

4

(2,3)

(4,3)

Disjunctive Arcs

branching tree1
Branching Tree

No disjunctive arcs

(1,1) scheduled first

on machine 1

LB = 24

(1,3) scheduled first

on machine 1

LB = 26

level 2 select 2 2
Level 2: Select (2,2)

10

8

(1,1)

(2,1)

(3,1)

4

10

0

10

0

8

3

5

6

Source

(2,2)

(1,2)

(4,2)

(3,2)

Sink

0

3

7

(1,3)

4

(2,3)

(4,3)

Disjunctive Arcs

slide28

Branching Tree

No disjunctive arcs

(1,1) scheduled first

on machine 1

LB = 24

(1,3) scheduled first

on machine 1

LB = 26

(1,1) first on M1 and

(2,2) first on M2

lower bounds
Lower Bounds
  • Lower bounds
    • The length of the critical path in G(D’)
      • Quick but not very tight
    • Linear programming relaxation
    • A maximum lateness problem (see book)
topic 18

Topic 18

The Shifting Bottleneck Heuristic

shifting bottleneck
Shifting Bottleneck
  • Minimize makespan in a job shop
  • Let M denote the set of machines
  • Let M0  M be machines for which disjunctive arcs have been selected
  • Basic idea:
    • Select a machine in M - M0 to be included in M0
    • Sequence the operations on this machine
iteration 1
Iteration 1

10

8

(1,1)

(2,1)

(3,1)

4

0

0

8

3

5

6

Source

(2,2)

(1,2)

(4,2)

(3,2)

Sink

0

3

7

(1,3)

4

(2,3)

(4,3)

selecting a machine
Selecting a Machine

Set up a nonpreemptive single machine maximum lateness

problem for Machine 1:

Optimum sequence is 1,2,3 with Lmax(1)=5

slide35

Selecting a Machine

Set up a nonpreemptive single machine maximum lateness

problem for Machine 2:

Optimum sequence is 2,3,1 with Lmax(2)=5

selecting a machine1
Selecting a Machine
  • Similarly,

 Either Machine 1 or Machine 2 is the bottleneck

slide37

Iteration 2

10

8

(1,1)

(2,1)

(3,1)

4

0

10

0

8

3

5

6

Source

(2,2)

(1,2)

(4,2)

(3,2)

Sink

0

3

3

7

(1,3)

4

(2,3)

(4,3)

slide38

Selecting a Machine

Set up a nonpreemptive single machine maximum lateness

problem for Machine 2:

Optimum sequence is 2,1,3 with Lmax(2)=1

slide39

Selecting a Machine

Similarly,

 Either Machine 2 or Machine 3 is the bottleneck

slide40

Iteration 3

10

8

(1,1)

(2,1)

(3,1)

4

10

0

8

8

0

8

3

5

6

Source

(2,2)

(1,2)

(4,2)

(3,2)

Sink

0

3

3

7

(1,3)

4

(2,3)

(4,3)

discussion
Discussion
  • Procedure continues until all the disjunctive arcs have been added
  • Extremely effective
    • Fast
    • Good solutions
  • ‘Just a heuristic’
    • No guarantee of optimum
solving the maximum lateness problem
Solving the Maximum Lateness Problem

(•,•,•)

(1,•,•)

(2,•,•)

(3,•,•)

(1,2,3)

(1,3,2)

(3,1,2)

(3,2,1)

discussion1
Discussion
  • The solution is actually a little bit more complicated than before
  • Precedence constraints because of other (already scheduled) machines
  • Delay precedence constraints

(see example in book)

discussion2
Discussion
  • Shifting bottleneck can be applied generally
  • Basic idea
    • Solve problem “one variable at a time”
    • Determine the “most important” variable
    • Find the best value of that variable
    • Move on to the “second most important” ….
    • Here we treat each machine as a variable
topic 19

Topic 19

Shifted Bottleneck for Total Weighted Tardiness Objective

total weighted tardiness
Total Weighted Tardiness
  • We now apply a shifted bottleneck procedure to a job shop with total weighted tardiness objective
    • Need n sinks in disjunctive graph
    • Machines scheduled one at a time
    • Given current graph calculate completion time of each job
    • Some n due dates for each operation
    • Piecewise linear penalty function
machine selection
Machine Selection
  • Machine criticality
    • Solve a single machine problem
    • Piecewise linear cost function
    • May have delayed precedence constraints
    • Generalizes single-machine with n jobs, precedence constraints, and total weighted tardiness objective
    • ATC rule
generalized atc rule
Generalized ATC Rule

Earliest time machine can be used

Ranks jobs

 good schedule

Scaling constant

criticality of machines
Criticality of Machines
  • Criticality = subproblem objective function
    • Simple
  • More effective ways, e.g.
    • Add disjunctive arcs for each machine
    • Calculate new completion times and
example2
Example

5

10

4

Sink

(1,1)

(2,1)

(3,1)

5

0

4

5

6

Source

(3,2)

(1,2)

(2,2)

Sink

0

3

7

Sink

(3,3)

5

(2,3)

(1,3)

subproblem solutions
Subproblem Solutions
  • Solve using dispatching rule
    • Use K=0.1
    • Have t = 4,
  • For machine 1 this results in

Schedule

first

slide57

First Iteration

5

10

4

Sink

(1,1)

(2,1)

(3,1)

5

5

0

4

5

6

Source

(3,2)

(1,2)

(2,2)

Sink

5

0

3

7

Sink

(3,3)

5

(2,3)

(1,3)

slide61

Second Iteration

5

10

4

Sink

(1,1)

(2,1)

(3,1)

5

5

10

0

4

5

6

Source

(3,2)

(1,2)

(2,2)

Sink

5

3

0

3

7

Sink

(3,3)

5

(2,3)

(1,3)

slide63

Third Iteration

5

10

4

Sink

(1,1)

(2,1)

(3,1)

5

5

10

4

0

4

5

6

Source

(3,2)

(1,2)

(2,2)

Sink

5

5

3

0

3

7

Sink

(3,3)

5

(2,3)

(1,3)

final schedule
Final Schedule

Machine 1

1,1

1,2

1,3

Machine 2

2,3

2,1

2,2

Machine 3

3,3

3,2

3,1

0 5 10 15 20 25 30

performance
Performance
  • Objective function
  • Try finding a better schedule using LEKIN

(optimal value = 18)

topic 20

Topic 20

Random Search for Job Shop Scheduling

random search methods
Random Search Methods
  • Popular to use genetic algorithms, simulated annealing, tabu search, etc.
  • Do not work too well
    • Problems defining the neighborhood
    • Do not exploit special structure
defining the neighborhood
Defining the Neighborhood

5

10

4

Sink

(1,1)

(2,1)

(3,1)

  • Approximately nm neighbors!
  • Simply too inefficient

5

5

10

4

0

4

5

6

Source

(3,2)

(1,2)

(2,2)

Sink

5

5

3

0

3

7

Sink

(3,3)

5

(2,3)

(1,3)

job shop with makespan
Job Shop with Makespan
  • Random search methods can be applied
    • Use ‘critical path’ neighborhood
    • Can eliminate many neighbors immediately
  • Specialized methods usually better
    • Random search = ‘giving up’ !
    • Traveling Salesman Problem (TSP)
      • Very well studied
      • Lin-Kernighan type heuristics (1970)
      • Order of 1000 times faster than random search
comparison of methods
Comparison of Methods

Percentage over known optimum:

Winner

the nested partitions method
The Nested Partitions Method
  • Partitioning
    • by scheduling the bottleneck machine first
  • Random sampling
    • using randomized dispatching rules
  • Calculating the promising index
    • incorporating local improvement heuristic
  • Can incorporate any special structure!
topic 21

Topic 21

Special Case:

Flow Shops

a flexible flow shop with setups
A Flexible Flow Shop with Setups

Stage 1 Stage 2 Stage 3 Stage 4

applications
Applications
  • Very common in applications:
    • Paper mills
    • Steel lines
    • Bottling lines
    • Food processing lines
classical literature
Classical Literature
  • Exact solutions
    • Simple flow shop with makespan criterion
    • Two machine case (Johnson’s rule)
  • Realistic problems require heuristic approaches
objectives
Objectives
  • Multiple objectives usual
    • Meet due dates
    • Maximize throughput
    • Minimize work-in-process (WIP)

Setting for job

j on Machine i

generating schedules
Generating Schedules
  • Identify bottlenecks
  • Compute time windows at bottleneck stage
  • Compute machine capacity at bottleneck
  • Schedule bottleneck stage
  • Schedule non-bottlenecks
identifying bottlenecks
Identifying Bottlenecks
  • In practice usually known
  • Schedule downstream bottleneck first
  • Determining the bottleneck
    • loading
    • number of shifts
    • downtime due to setups
  • Bottleneck assumed fixed
identifying time window
Identifying Time Window
  • Due date
    • Shipping day
    • Multiply remaining processing times with a safety factor
  • Release date
    • Status sj of job j
    • Release date if sj = l

Decreasing

function -

determined

empirically

computing capacity
Computing Capacity
  • Capacity of each machine at bottleneck
    • Speed
    • Number of shifts
    • Setups
  • Two cases:
    • Identical machines
    • Non-identical machines
scheduling bottleneck
Scheduling Bottleneck
  • Jobs selected one at a time
    • Setup time
    • Due date
    • Capacity
  • For example ATCS rule
schedule remaining jobs
Schedule Remaining Jobs
  • Determined by sequence at bottleneck stage
  • Minor adjustments
    • Adjacent pairwise interchanges to reduce setup
summary job shops
Summary: Job Shops
  • Representation: graph w/disjoint arcs
  • Solution methods
    • Branch-and-bound
    • Shifted bottleneck heuristic
    • Beam search
      • Can incorporate bottleneck idea & dispatching rules
    • Random search methods
  • Special case: flow shops