7030 Job Shop Scheduling

Embed Size (px)

Citation preview

  • 8/3/2019 7030 Job Shop Scheduling

    1/33

    NSY 7030 - Manufacturing Systems Design 3/22/20

    Industrial and Systems Engineering

    Job Shop Scheduling

    3/22/2004 Job Shop Scheduling 2

    Scheduling Allocation of limited resources to jobs over time

    Sequencing

    Permutation of the job set (order)

    Scheduling

    Assigning start/end/preemption times to individual jobs on each

    machine

  • 8/3/2019 7030 Job Shop Scheduling

    2/33

    NSY 7030 - Manufacturing Systems Design 3/22/20

    Industrial and Systems Engineering

    3/22/2004 Job Shop Scheduling 3

    Pinedo, p. 5

    3/22/2004 Job Shop Scheduling 4

    Notation / Definitions General Notation

    N number of jobs to be scheduled

    M Number of machines

    di due date of job i

    pij processing time for job ion machinej(includes any sequence independent

    setups)

    ri ready time for job i

    Performance Measures

    Ci Completion time for job i

    Fi length of time job iis in the shop

    Li lateness of job i

    Ti tardiness of job i

    Common Objectives

    min average flow time

    min makespan

    min average tardiness

    min max tardiness

    min number of tardy jobs

  • 8/3/2019 7030 Job Shop Scheduling

    3/33

    NSY 7030 - Manufacturing Systems Design 3/22/20

    Industrial and Systems Engineering

    3/22/2004 Job Shop Scheduling 5

    Single-machine Scheduling

    No sequence-dependentsetups:

    Facts:

    Cmax is independent ofsequence

    Average flowtime is

    minimized by an SPT

    sequence

    Lmax is minimized by an EDD

    sequence

    Book presents a simple

    construction procedure to

    minimize the average flowtime

    subject to tardiness

    constraints

    Sequence-dependent setups

    Cmax now depends on the

    sequence, since the individual

    process times depend on a

    sequence.

    3/22/2004 Sequence-dependent Setup Times 6

    Sequence-dependent Setup Times Njobs on one machine

    Total processing time is fixed

    Processing time is independent of sequence

    Total setup time depends on the sequence

    Individual setup times depend on the current and next products

    Part 1 2 N

    1 c12 c1N2 c21 c2N

    N cN1 cN2

    cij is the setup time required

    for productjgiven that product i

    was just produced on the machine

  • 8/3/2019 7030 Job Shop Scheduling

    4/33

    NSY 7030 - Manufacturing Systems Design 3/22/20

    Industrial and Systems Engineering

    3/22/2004 Job Shop Scheduling 7

    Sequence-dependent Setup Times

    Traveling Salesperson Problem (TSP) Formulation Salesperson must visit each city in a territory and return to the

    starting point

    Tour is a complete cycle that visits each city

    Tour length is the sum of the individual arc lengths

    Want to find the shortest length tour

    1

    2 3

    4 5

    c13c21

    c52 c34

    c45

    Tour length = c13 + c34 + c45 + c52 + c21

    3/22/2004 Job Shop Scheduling 8

    Task Sequencing

    minimize

    subject to:

    no subtours

    or

    c x

    x j

    x i

    x

    ij ij

    j

    N

    i

    N

    ij

    i

    N

    ij

    j

    N

    ij

    ==

    =

    =

    =

    =

    =

    11

    1

    1

    1

    1

    0 1

    TSP Formulation

    xij = 1 if cityj is visited immediately after city i

  • 8/3/2019 7030 Job Shop Scheduling

    5/33

    NSY 7030 - Manufacturing Systems Design 3/22/20

    Industrial and Systems Engineering

    3/22/2004 Job Shop Scheduling 9

    TSP Formulation

    Subtour Return to a city prior to visiting all other cities

    Can lead to unconnected subgraphs

    Considerably complicates the formulation

    Without the subtour constraint, problem reduces to LAP

    LAP provides a lower bound, but it is relatively weak

    1

    2 3

    4 5

    3/22/2004 Job Shop Scheduling 10

    Job Shop Scheduling Environment

    nparts to be processed on mmachines

    sequence of machines for each part is prescribed (operation or job)

    each machine can process only one job at a time

    each part visits each machine at most once (no recirculation)

    p4

    M1

    M3

    M2

    M4

    p1 p2

    p3

    p4

    p1

    p1

    p1

    p2

    p2 p3

    p3

    p3

    p3

    p4

  • 8/3/2019 7030 Job Shop Scheduling

    6/33

    NSY 7030 - Manufacturing Systems Design 3/22/20

    Industrial and Systems Engineering

    3/22/2004 Job Shop Scheduling 11

    Dispatching

    Askinand Standridge, p.115

    Work in next queueWINQSelect a job at randomRANDOM

    Most work remainingMWKR

    Most operations remainingMOPNR

    Least work remainingLWKR

    Least total workLTWK

    Order jobs based on ration of slack-based priority to

    processing time

    Covert

    Slack per remaining operation Select a job with the smallest

    ratio of slack to operations remaining to be performed

    S/RO

    First in system, first servedFISFS

    First come, first servedFCFS

    Earliest due dateEDDShortest processing timeSPT

    3/22/2004 Job Shop Scheduling 12

    Job Shop Scheduling Shifting Bottleneck Procedure (Adams et al., 1988)

    Basic approach is to iteratively solve a single machine

    scheduling problem and propagate the constraints imposed on

    other machines

    Sequencing one machine will fix ready times and due dates for

    other machines

    Questions

    Which machine to choose?

    How do you sequence that machine?

    How many iterations to perform?

  • 8/3/2019 7030 Job Shop Scheduling

    7/33

    NSY 7030 - Manufacturing Systems Design 3/22/20

    Industrial and Systems Engineering

    3/22/2004 Job Shop Scheduling 13

    Job Shop Scheduling

    Problem Representation N = {0, 1, 2, , n} is a set of operations

    where 0 and nare dummy operations

    M is the set of machines

    A is the set of pairs of operations (i,j) where operation iprecedes operationj(precedence constraints)

    Ek is the set of operations performed on machine k

    di is the processing time for operation i

    ti is the start time for operation i

    3/22/2004 Job Shop Scheduling 14

    Job Shop Scheduling Assume objective is to minimize makespan

    Formulation

    minimize

    subject to:

    t

    t t d i j

    t i

    t t d t t d i j k

    n

    j i i

    i

    j i i i j j k

    , ( , )

    ,

    , ( , ) ,

    A

    N

    E M

    0

    Disjunctive Graph Representation G = (N, A, E) N - nodes (one for each operation)

    A - normal arcs (task precedence)

    E -disjunctive arcs(precedence caused by machine capacity constraints)

  • 8/3/2019 7030 Job Shop Scheduling

    8/33

    NSY 7030 - Manufacturing Systems Design 3/22/20

    Industrial and Systems Engineering

    3/22/2004 Job Shop Scheduling 15

    Job Shop Scheduling

    Disjunctive Graph ExampleJob Sequence

    machine (node no.)

    1 1 (1) 2 (2)

    2 1 (3) 3 (4) 2 (5)

    3 1 (6) 2 (7) 4 (8)

    4 1 (9) 4 (10) 3 (11)

    5 4 (12) 3 (13)

    0

    4

    6

    5

    7 8

    9 10

    1312

    3

    21

    14

    11

    precedence constraints

    3/22/2004 Job Shop Scheduling 16

    Disjunctive Graph Representation The set E decomposes in to cliques, Ek, one for each machine k,

    where the set of cliques covers E

    Sk is a selectionin Ekand contains exactly one member of eachdisjunctive arc pair in Ek

    6

    9

    3

    1

    seq. = 3, 1, 6, 9

    Each acyclic selection Skcorrespondsto a unique sequence of the operationsperformed on machine k

    Some arcs in the selection giveredundant information

    Sequencing a machine corresponds to

    choosing an acyclic selection in Ek

  • 8/3/2019 7030 Job Shop Scheduling

    9/33

    NSY 7030 - Manufacturing Systems Design 3/22/20

    Industrial and Systems Engineering

    3/22/2004 Job Shop Scheduling 17

    Disjunctive Graph Representation

    A complete selection, S, is the union of selections Sk, one for eachEk

    A partial selectionis taken over some subset M0 ofM

    Every acyclic complete selectionS, defines a familyof schedules andevery schedule belongs to such a family

    DS

    = (N, A S) is an ordinary graph obtained by picking a complete selection S

    replacing the disjunctive arc set E by an ordinary arc set S

    The makespanof a schedule that is optimal forS is equal to thelength of a longest path in D

    S

    Thus, the objective is to find an acyclic complete selectionS thatminimizes the length of a longest path inD

    S

    3/22/2004 Job Shop Scheduling 18

    Shifting Bottleneck Procedure Given a partial selection S = (Sk | kM0) and the corresponding

    graph DS, machine kis criticalwith respect to the schedule

    associated with S ifSkhas some arc on the longest path in DS This is a direct result of the fact that any schedule better than the one

    associated with S uses a selection in which at least one arc of every

    longest path in DS

    is reversed (Balas, 1969)

    Our basic strategy is to iteratively select and optimally schedule the

    bottleneck machine

    However, given our definition of criticality, there can be multiple critical

    machines -- as a result, we need to quantifythe criticality

  • 8/3/2019 7030 Job Shop Scheduling

    10/33

    NSY 7030 - Manufacturing Systems Design 3/22/20

    U Industrial and Systems Engineering 1

    3/22/2004 Job Shop Scheduling 19

    Shifting Bottleneck Procedure

    Define M0 as the set of machines alreadysequenced by choosing selections Sp, p M0 (M0 = initially)

    For any k M\M0, we want to define a new singlemachine problem by

    replacing each disjunctive arc set Ep, p M0, by thecorresponding selection Sp

    deleting each disjunctive arc set Ep, p M\M0, p k This assumes that the associated machines can process jobs in

    parallel (i.e., they have infinite capacity)

    3/22/2004 Job Shop Scheduling 20

    Single Machine Subproblem Example

    Let k=2 and M0={1} with S1= {3, 1, 6, 9}

    0

    4

    6

    5

    7 8

    9 10

    1312

    3

    21

    14

    11

  • 8/3/2019 7030 Job Shop Scheduling

    11/33

    NSY 7030 - Manufacturing Systems Design 3/22/20

    U Industrial and Systems Engineering 1

    3/22/2004 Job Shop Scheduling 21

    Single Machine Subproblem

    Formulation P(k,M0)

    minimize

    subject to:

    t

    t t d i j

    t i

    t t d t t d i j

    n

    j i i p

    p

    i

    j i i i j j k

    , ( , )

    ,

    , ( , )

    S A

    N

    E

    M 0

    0

    To generate this problem, all disjunctive arc pairs are

    removed for all machines not scheduled except machine k

    The makespanof this relaxed problem is equal to the lengthof a longest path through the associated graph

    3/22/2004 Job Shop Scheduling 22

    Single Machine Subproblem This problem can be viewed as a single machine

    problem (for machine k) with ready times and due datesand an objective of minimizing maximum lateness

    Ready time is the length of a longest path from node 0 to nodej

    rj= L(0,j)

    Due date is the latest completion time that will not increase the

    maximum lateness

    dj= L(0, n) - L(j, n) + pj

  • 8/3/2019 7030 Job Shop Scheduling

    12/33

    NSY 7030 - Manufacturing Systems Design 3/22/20

    U Industrial and Systems Engineering 1

    3/22/2004 Job Shop Scheduling 23

    Shifting Bottleneck Procedure

    The bottleneck machineis defined as the machine withthe maximum solution to (P(k,M0)).

    If v(k,M0) is an optimal solution to (P(k,M0)), then mis the

    bottleneck among M\M0 ifv(m,M0)=max{v(k,M0) | k M\M0}

    Procedure:

    Step 1: Identify a bottleneck machine mamong machines kM\M0 and sequence it optimally. Set M0 M0 {m}.

    Step 2: Reoptimize the sequence of each critical machine, lM0, in turn, while keeping the other sequences fixed; that is, set

    M0=M0 - {k} and solve P(k,M0)

    Step 3: ifM0 = M, stop; otherwise, goto Step 1

    3/22/2004 Job Shop Scheduling 24

    Shifting Bottleneck Example

    Sequence (m/c, time) node

    Job 1 2 3 4

    1 (1, 10) 1 (2, 8) 2 (3, 4) 3

    2 (2, 8) 4 (1, 3) 5 (4, 5) 6 (3, 6) 7

    3 (1, 4) 8 (2, 7) 9 (4, 3) 10

    0 4 65 7

    8 9 10

    321

    11

    10 84

    8 3 5 6

    4 73

    0

    0

    0

  • 8/3/2019 7030 Job Shop Scheduling

    13/33

    NSY 7030 - Manufacturing Systems Design 3/22/20

    U Industrial and Systems Engineering 1

    3/22/2004 Job Shop Scheduling 25

    Shifting Bottleneck Example

    Iteration 1. M0 =

    0 4 65 7

    8 9 10

    321

    11

    10 84

    8 3 5 6

    4 73

    0

    0

    0

    Cmax = 22 (parts 1 & 2)

    3/22/2004 Job Shop Scheduling 26

    Shifting Bottleneck Example

    Machine 1: {1, 5, 8}rj = L(0,j)

    dj = L(0, n) - L(j, n) +pjOp rj pj dj1 0 10 22-22+10 = 10

    5 8 3 22-14+3 = 11

    8 0 4 22-14+4 = 12

  • 8/3/2019 7030 Job Shop Scheduling

    14/33

    NSY 7030 - Manufacturing Systems Design 3/22/20

    U Industrial and Systems Engineering 1

    3/22/2004 Job Shop Scheduling 27

    Shifting Bottleneck Example

    0 4 65 7

    8 9 10

    321

    11

    10 84

    8 3 5 6

    4 73

    0

    0

    0 10

    3

    M0 ={1}

    Cmax{1} = Cmax{} +Lmax{1} = 22+5 = 27Path {1, 5, 8, 9, 10, 11}

    3/22/2004 Job Shop Scheduling 28

    Shifting Bottleneck Example

    Machine 2: {2, 4, 9}rj = L(0,j)

    dj = L(0, n) - L(j, n) +pjOp rj pj dj2 10 8 27-12+8 = 23

    4 0 8 27-25+8 = 10

    9 17 7 27-10+7 = 24

    Seq max lateness

    2, 4, 9 max{-5, 16, 1} = 16

    2, 9, 4 max{-5, 1, 23} = 23

    4, 2, 9 max{-2, -5, 1} = 1

    4, 9, 2 max{-2, 0 , 9} = 9

    9, 2, 4 max{0, 9 , 30} = 30

    9, 4, 2 max{0, 22, 17} = 22

    Lmax(2) = 1

    Lmax(3) = 1

    Lmax(4) = 0

    machines 2&3

    are bottlenecks

  • 8/3/2019 7030 Job Shop Scheduling

    15/33

    NSY 7030 - Manufacturing Systems Design 3/22/20

    U Industrial and Systems Engineering 1

    3/22/2004 Job Shop Scheduling 29

    Shifting Bottleneck Example

    0 4 65 7

    8 9 10

    321

    11

    10 84

    8 3 5 6

    4 73

    0

    0

    010

    3

    M0 ={1,2}

    Cmax{M0} = Cmax{1} +Lmax{2} = 27+1 = 28

    Path {1, 2, 9, 10, 11}

    88

    3/22/2004 Job Shop Scheduling 30

    Shifting Bottleneck Example

    Reoptimize Machine 1: {1, 5, 8}rj = L(0,j)

    dj = L(0, n) - L(j, n) +pjOp rj pj dj1 0 10 28-28+10 = 10

    5 8 3 28-14+3 = 17

    8 0 4 28-14+4 = 18

    Lmax(1) = 0

    sequence {1, 5, 8}

    no changego to iteration 3

  • 8/3/2019 7030 Job Shop Scheduling

    16/33

    NSY 7030 - Manufacturing Systems Design 3/22/20

    U Industrial and Systems Engineering 1

    3/22/2004 Job Shop Scheduling 31

    Shifting Bottleneck Example

    Iteration 3

    Neither machine 3 or machine 4 is a bottleneck

    Final solution

    M1: {1, 5, 8}

    M2: {4, 2, 9}

    M3: {7, 3}

    M4: {6, 10}

    0 4 65 7

    8 9 10

    321

    11

    10 84

    8 3 5 6

    4 73

    0

    0

    010

    3

    88 6

    5

    3/22/2004 Job Shop Scheduling 32

    Schedule Generation

    *

    Job Shop Scheduling Environment

    Basic Idea

    Create a list of schedulable operations

    Based on operation precedence and machine capacity

    While the list is not empty

    Schedule an operation

    Update the list

    *This material adapted from Storer et al. 1992 and Leon and Balakrishnan 1995.

  • 8/3/2019 7030 Job Shop Scheduling

    17/33

    NSY 7030 - Manufacturing Systems Design 3/22/20

    U Industrial and Systems Engineering 1

    3/22/2004 Job Shop Scheduling 33

    Schedule Generation Example

    Operation (m/c, time)

    Part 1 2 3

    1 (1, 5) (2, 2) (3, 3)

    2 (1, 4) (3, 3) (2, 4)

    3 (2, 8) (1, 3) (3, 4)

    Number of possible schedules (3!)3 = 216

    This number grows quickly, e.g., (10!)3 = 4.77x1019

    3/22/2004 Job Shop Scheduling 34

    Schedule Generation Example

    Operation (m/c, time)

    Part 1 2 3

    1 (1, 5) (2, 2) (3, 3)

    2 (1, 4) (3, 3) (2, 4)

    3 (2, 8) (1, 3) (3, 4)

    Idea is to create a Gantt chart that represents the schedule

    1,1M1

    M2

    M35 8

    2,1 3,2

    3,1 1,2

    2,2

    2,3

    1,3 3,39 10 12 13 15 16 19

  • 8/3/2019 7030 Job Shop Scheduling

    18/33

    NSY 7030 - Manufacturing Systems Design 3/22/20

    U Industrial and Systems Engineering 1

    3/22/2004 Job Shop Scheduling 35

    Schedule Generation Definitions

    PSt is the partial schedule at time t

    is defined as the delay parameter = 0 generates an active schedule

    = 1 generates a non-delay schedule

    Pj is the set of predecessors for operationj

    dj is the duration of taskj

    mj is the number of predecessors already scheduled (0 mj |Pj|)Cj is the completion time of operationj

    Tj is the earliest time the machine required for operationjis available

    j is the earliest start time for operationjj= max{max{Ck|k Pj}, Tj}

    St is the set of schedulable operations

    3/22/2004 Job Shop Scheduling 36

    Schedule Generation Algorithm Step 1

    t= 0

    PSt= NULL (empty partial schedule)

    Tj= 0; mj= 0 j St= {j| |Pj| = 0} as the set ofschedulable operations j= 0 j St and j= M j St

    Step 2

    X* is the cutoff start time for updating the potential operations list. It

    ranges from the earliest start time to the earliest completion

    ( ){ }X dj S

    j jt

    * min= +

    1

  • 8/3/2019 7030 Job Shop Scheduling

    19/33

    NSY 7030 - Manufacturing Systems Design 3/22/20

    U Industrial and Systems Engineering 1

    3/22/2004 Job Shop Scheduling 37

    Schedule Generation Algorithm

    Step 3 Set st = {j|j St, j< X*}, if 0 < 1

    if = 0, X* is the minimum completion time

    Set st= {j|j St, j= X*}, if = 1 X* is the minimum start time

    Step 4

    Selectj* stusing a heuristic H (e.g., SPT or LPT) Addj* to PSt to form PSt+1

    3/22/2004 Job Shop Scheduling 38

    Schedule Generation Algorithm Step 5 -- Update data

    Cj* = j* + dj* Tj* = Cj* mk= mk+1 kwherej* Pk t= t+ 1

    St= {j| mj= |Pj|,j PSt}; if NULL, stop j= max{max{Ck | k Pj}, Tj} j PSt

    Step 6

    Go to Step 2

  • 8/3/2019 7030 Job Shop Scheduling

    20/33

    NSY 7030 - Manufacturing Systems Design 3/22/20

    U Industrial and Systems Engineering 2

    3/22/2004 Job Shop Scheduling 39

    Schedule Generation Example

    Operation (m/c, time) node

    Part 1 2 3

    1 (1, 5) 1 (2, 2) 2 (3, 3) 3

    2 (1, 4) 4 (3, 3) 5 (2, 4) 6

    3 (2, 8) 7 (1, 3) 8 (3, 4) 9

    Op pred dj j Cj Tj1 - 5 0 - 0 (1)

    2 {1} 2 M - 0 (2)

    3 {2} 3 M - 0 (3)

    4 - 4 0 - 0 (1)

    5 {4} 3 M - 0 (3)

    6 {5} 4 M - 0 (2)

    7 - 8 0 - 0 (2)

    8 {7} 3 M - 0(1)9 {8} 4 M - 0 (3)

    Assume = 1

    3/22/2004 Job Shop Scheduling 40

    Schedule Generation Example

    Operation (m/c, time) node

    Part 1 2 3

    1 (1, 5) 1 (2, 2) 2 (3, 3) 3

    2 (1, 4) 4 (3, 3) 5 (2, 4) 6

    3 (2, 8) 7 (1, 3) 8 (3, 4) 9

    Op pred dj j Cj Tj1 - 5 0 - 0 (1)

    2 {1} 2 M - 0 (2)

    3 {2} 3 M - 0 (3)

    4 - 4 0 - 0 (1)

    5 {4} 3 M - 0 (3)

    6 {5} 4 M - 0 (2)

    7 - 8 0 - 0 (2)

    8 {7} 3 M - 0(1)

    9 {8} 4 M - 0 (3)

    S0 = {1, 4, 7}

    X* = min{0, 0, 0} = 0

    s0 = {1, 4, 7}

    select operation 4 by SPTPS0 = {4}

  • 8/3/2019 7030 Job Shop Scheduling

    21/33

    NSY 7030 - Manufacturing Systems Design 3/22/20

    U Industrial and Systems Engineering 2

    3/22/2004 Job Shop Scheduling 41

    Schedule Generation Example

    Operation (m/c, time) node

    Part 1 2 3

    1 (1, 5) 1 (2, 2) 2 (3, 3) 3

    2 (1, 4) 4 (3, 3) 5 (2, 4) 6

    3 (2, 8) 7 (1, 3) 8 (3, 4) 9

    Op pred dj j Cj Tj1 - 5 4 - 4 (1)

    2 {1} 2 M - 0 (2)

    3 {2} 3 M - 0 (3)

    4 - 4 - 4 4 (1)

    5 - 3 4 - 0 (3)

    6 {5} 4 M - 0 (2)

    7 - 8 0 - 0 (2)8 {7} 3 M - 4 (1)

    9 {8} 4 M - 0 (3)

    3/22/2004 Job Shop Scheduling 42

    Schedule Generation Example

    Operation (m/c, time) node

    Part 1 2 3

    1 (1, 5) 1 (2, 2) 2 (3, 3) 3

    2 (1, 4) 4 (3, 3) 5 (2, 4) 6

    3 (2, 8) 7 (1, 3) 8 (3, 4) 9

    S1 = {1, 5, 7}

    X* = min{4, 4, 0} = 0

    s1 = {7}

    PS1 = {4,7}

    Op pred dj j Cj Tj1 - 5 4 - 4 (1)

    2 {1} 2 M - 0 (2)

    3 {2} 3 M - 0 (3)

    4 - 4 - 4 4 (1)

    5 - 3 4 - 0 (3)6 {5} 4 M - 0 (2)

    7 - 8 0 - 0 (2)

    8 {7} 3 M - 4 (1)

    9 {8} 4 M - 0 (3)

  • 8/3/2019 7030 Job Shop Scheduling

    22/33

    NSY 7030 - Manufacturing Systems Design 3/22/20

    U Industrial and Systems Engineering 2

    3/22/2004 Job Shop Scheduling 43

    Schedule Generation Example

    Operation (m/c, time) node

    Part 1 2 3

    1 (1, 5) 1 (2, 2) 2 (3, 3) 3

    2 (1, 4) 4 (3, 3) 5 (2, 4) 6

    3 (2, 8) 7 (1, 3) 8 (3, 4) 9

    Op pred dj j Cj Tj1 - 5 4 - 4 (1)

    2 {1} 2 M - 8 (2)

    3 {2} 3 M - 0 (3)

    4 - 4 - 4 4 (1)

    5 - 3 4 - 0 (3)

    6 {5} 4 M - 8 (2)

    7 - 8 - 8 8 (2)

    8 - 3 8 - 4 (1)

    9 {8} 4 M - 0 (3)

    S2 = {1, 5, 8}

    X* = min{4, 4, 8} = 4

    s2 = {1, 5}

    select operation 5 by SPT

    PS2 = {4,7, 5}

    3/22/2004 Job Shop Scheduling 44

    Schedule Generation Example

    Operation (m/c, time) node

    Part 1 2 3

    1 (1, 5) 1 (2, 2) 2 (3, 3) 3

    2 (1, 4) 4 (3, 3) 5 (2, 4) 6

    3 (2, 8) 7 (1, 3) 8 (3, 4) 9

    Op pred dj j Cj Tj1 - 5 4 - 4 (1)

    2 {1} 2 M - 8 (2)

    3 {2} 3 M - 7 (3)

    4 - 4 - 4 4 (1)

    5 - 3 - 7 7 (3)

    6 - 4 8 - 8 (2)

    7 - 8 - 8 8 (2)

    8 - 3 8 - 4 (1)

    9 {8} 4 M - 7 (3)

    S3 = {1, 6, 8}

    X* = min{4, 8, 8} = 4

    s3 = {1}

    PS3 = {4, 7, 5, 1}

  • 8/3/2019 7030 Job Shop Scheduling

    23/33

    NSY 7030 - Manufacturing Systems Design 3/22/20

    U Industrial and Systems Engineering 2

    3/22/2004 Job Shop Scheduling 45

    Schedule Generation Example

    Operation (m/c, time) node

    Part 1 2 3

    1 (1, 5) 1 (2, 2) 2 (3, 3) 3

    2 (1, 4) 4 (3, 3) 5 (2, 4) 6

    3 (2, 8) 7 (1, 3) 8 (3, 4) 9

    Op pred dj j Cj Tj1 - 5 - 9 9 (1)

    2 - 2 9 - 8 (2)

    3 {2} 3 M - 7 (3)

    4 - 4 - 4 4 (1)

    5 - 3 - 7 7 (3)

    6 - 4 8 - 8 (2)

    7 - 8 - 8 8 (2)

    8 - 3 9 - 9 (1)

    9 {8} 4 M - 7 (3)

    S4 = {2, 6, 8}

    X* = min{9, 8, 9} = 8

    s4 = {6}

    PS4 = {4, 7, 5, 1, 6}

    3/22/2004 Job Shop Scheduling 46

    Schedule Generation Example

    Operation (m/c, time) node

    Part 1 2 3

    1 (1, 5) 1 (2, 2) 2 (3, 3) 3

    2 (1, 4) 4 (3, 3) 5 (2, 4) 6

    3 (2, 8) 7 (1, 3) 8 (3, 4) 9

    Op pred dj j Cj Tj1 - 5 - 9 9 (1)

    2 - 2 12 - 8 (2)

    3 {2} 3 M - 7 (3)

    4 - 4 - 4 4 (1)

    5 - 3 - 7 7 (3)

    6 - 4 - 12 12 (2)

    7 - 8 - 8 8 (2)

    8 - 3 9 - 9 (1)

    9 {8} 4 M - 7 (3)

    S5 = {2, 8}

    X* = min{12, 9} = 9

    s5 = {8}

    PS5 = {4, 7, 5, 1, 6, 8}

  • 8/3/2019 7030 Job Shop Scheduling

    24/33

    NSY 7030 - Manufacturing Systems Design 3/22/20

    U Industrial and Systems Engineering 2

    3/22/2004 Job Shop Scheduling 47

    Schedule Generation Example

    Operation (m/c, time) node

    Part 1 2 3

    1 (1, 5) 1 (2, 2) 2 (3, 3) 3

    2 (1, 4) 4 (3, 3) 5 (2, 4) 6

    3 (2, 8) 7 (1, 3) 8 (3, 4) 9

    Op pred dj j Cj Tj1 - 5 - 9 9 (1)

    2 - 2 12 - 0 (2)

    3 {2} 3 M - 0 (3)

    4 - 4 - 4 4 (1)

    5 - 3 - 7 7 (3)

    6 - 4 - 12 12 (2)

    7 - 8 - 8 8 (2)

    8 - 3 - 12 12 (1)

    9 - 4 12 - 0 (3)

    S6 = {2, 9}

    X* = min{12, 12} = 12

    s6 = {2, 9}

    select operation 2 by SPT

    PS6 = {4, 7, 5, 1, 6, 8, 2}

    3/22/2004 Job Shop Scheduling 48

    Schedule Generation Example

    Operation (m/c, time) node

    Part 1 2 3

    1 (1, 5) 1 (2, 2) 2 (3, 3) 3

    2 (1, 4) 4 (3, 3) 5 (2, 4) 6

    3 (2, 8) 7 (1, 3) 8 (3, 4) 9

    Op pred dj j Cj Tj1 - 5 - 9 9 (1)

    2 - 2 - 14 14 (2)

    3 - 3 14 - 0 (3)

    4 - 4 - 4 4 (1)

    5 - 3 - 7 7 (3)

    6 - 4 - 12 12 (2)

    7 - 8 - 8 8 (2)

    8 - 3 - 12 12 (1)

    9 - 4 12 - 0 (3)

    S7 = {3, 9}

    X* = min{14, 12} = 12

    s7 = {9}

    select operation 2 by SPTPS7 = {4, 7, 5, 1, 6, 8, 2, 9}

  • 8/3/2019 7030 Job Shop Scheduling

    25/33

    NSY 7030 - Manufacturing Systems Design 3/22/20

    U Industrial and Systems Engineering 2

    3/22/2004 Job Shop Scheduling 49

    Schedule Generation Example

    Operation (m/c, time) node

    Part 1 2 3

    1 (1, 5) 1 (2, 2) 2 (3, 3) 3

    2 (1, 4) 4 (3, 3) 5 (2, 4) 6

    3 (2, 8) 7 (1, 3) 8 (3, 4) 9

    Op pred dj j Cj Tj1 - 5 - 9 9 (1)

    2 - 2 - 14 14 (2)

    3 - 3 16 19 0 (3)

    4 - 4 - 4 4 (1)

    5 - 3 - 7 7 (3)

    6 - 4 - 12 12 (2)

    7 - 8 - 8 8 (2)

    8 - 3 - 12 12 (1)

    9 - 4 - 16 16 (3)

    PS8 = {4, 7, 5, 1, 6, 8, 2, 9, 3}

    3/22/2004 Job Shop Scheduling 50

    Schedule Generation Example

    Operation (m/c, time)

    Part 1 2 3

    1 (1, 5) (2, 2) (3, 3)

    2 (1, 4) (3, 3) (2, 4)

    3 (2, 8) (1, 3) (3, 4)

    Final Solution

    1,1M1

    M2

    M38

    2,1 3,2

    3,1 1,2

    2,2

    2,3

    1,33,39 12 14 16 194 7

  • 8/3/2019 7030 Job Shop Scheduling

    26/33

    NSY 7030 - Manufacturing Systems Design 3/22/20

    U Industrial and Systems Engineering 2

    Problem Space-based Search with

    Schedule Generation

    3/22/2004 Job Shop Scheduling 52

    Reference Leon, V. J. and R. Balakrishnan, Strength and

    Adaptability of Problem-Space Based Neighborhoods for

    Resource-Constrained Scheduling, OR Spektrum, Issue2/3, Vol. 17, 1995.

    Resource-Constrained Scheduling (RCS) Similar to thejob-shop scheduling problem except that each activity

    may require multiple resources.

  • 8/3/2019 7030 Job Shop Scheduling

    27/33

    NSY 7030 - Manufacturing Systems Design 3/22/20

    U Industrial and Systems Engineering 2

    3/22/2004 Job Shop Scheduling 53

    RCS Formulation

    Notation:

    Ci - Completion time

    for task i

    di Duration of task i

    bk Number of units

    of resource k

    Dt Set of activities in

    process at time t

    Zis a regular measureof performance

    A regular measureis

    non-decreasing incompletion time of the

    activities

    { }

    1 2minimize ( , , , )

    subject to:

    max ,

    , ,

    j

    k

    n

    i i jj P

    k ik

    i D

    Z C C C

    C d C i

    b B k t

    max{ | 1,2, , }

    1 max{0, }

    i

    i i

    i

    Z C i n

    Z C d n

    = =

    =

    Consider makespan and mean tardiness

    3/22/2004 Job Shop Scheduling 54

    RCS Solution with Local Search

    If we assume that each activity requires exactly one resource and

    that there is one unit of each resource available, we have our job

    shop problem.

    Local Search

    Given an initial feasible solution and the corresponding value of the

    objective function, local search consists of constructing similar

    solutions, evaluating them, moving to more promising regionsof the

    neighborhood, and repeating until no further improvement is found (or

    until the procedure runs out of available time).

    Two critical issues for local search

    Where to search generation of the neighborhoods

    How to search finding similarsolutions in the neighborhood.

  • 8/3/2019 7030 Job Shop Scheduling

    28/33

    NSY 7030 - Manufacturing Systems Design 3/22/20

    U Industrial and Systems Engineering 2

    3/22/2004 Job Shop Scheduling 55

    Local Search

    Characteristics of neighborhoods Strength

    A neighborhood is strongif solutions in it are close to optimal

    Adaptability

    A neighborhood is adaptableif the procedure used to generate it

    can easily be modified to accommodate changes in the

    performance measure.

    Common local search procedures

    Simulated annealing

    Genetic algorithms

    Tabu search

    Problem space-based search focus of Leon and Balakrishnan

    3/22/2004 Job Shop Scheduling 56

    Local Search Characteristics of local search procedures:

    Neighbors are generated by perturbing a feasible solution

    A neighborhood of certain size has a certain strength,

    depending on the quality of the solutions

    One either moves to a new neighborhood as soon as a better

    solution is found (first improvement) or after the complete

    neighborhood has been evaluated (steepest descent).

    The search of neighboring solutions either follows a

    lexicographical ordering induced by indexing, or a random

    ordering.

  • 8/3/2019 7030 Job Shop Scheduling

    29/33

    NSY 7030 - Manufacturing Systems Design 3/22/20

    U Industrial and Systems Engineering 2

    3/22/2004 Job Shop Scheduling 57

    Perturbing the Solution

    Many local search procedures involve finding a feasible

    solution (like the above Gantt chart) and perturbingthesolution to try to improve the objective function value.

    Problem-Space Based search perturbs the problemrather than the solution.

    1,1M1

    M2

    M35 8

    2,1 3,2

    3,1 1,2

    2,2

    2,3

    1,3 3,39 10 12 13 15 16 19

    3/22/2004 Job Shop Scheduling 58

    Problem-Space Based Search Define (h, p) as a heuristic-problem pair where:

    his a fast problem-specific heuristic (like schedule generation),and

    pis a specific problem instance.

    (h, p) is an encodingof a specific solution

    (h, p) = (schedule generation with SPT, specific problem)

    (h, p) solution (Gantt chart with the associated makespan)

    We want to perturb the original problem data to define a

    neighborhood of solutions (by applying hto a

    neighborhood of problems).

  • 8/3/2019 7030 Job Shop Scheduling

    30/33

    NSY 7030 - Manufacturing Systems Design 3/22/20

    U Industrial and Systems Engineering 3

    3/22/2004 Job Shop Scheduling 59

    Problem-Space Based Search

    Let p0 be a vector of the original processing times. (h, p0) gives the initial solution

    Define a neighborof p0:

    p= p0 + , where is a pertubation vector, and

    p= {pj= pj0+j,j= 1, 2, , n}

    Define:

    Np= {p+ | |||| < } as a problem space neighborhood

    Ns

    = {h(q) | qNp

    } as a neighborhood of solutions

    3/22/2004 Job Shop Scheduling 60

    Problem-Space Based Search Job shop scheduling:

    Let hbe schedule generation with SPT

    Define the pertubation operation as:

    where is a constant0 0 0UNIFORM( , )i i i ip p p p = +

  • 8/3/2019 7030 Job Shop Scheduling

    31/33

    NSY 7030 - Manufacturing Systems Design 3/22/20

    U Industrial and Systems Engineering 3

    3/22/2004 Job Shop Scheduling 61

    Search Methods

    Simple Neighborhood Search1. Sol = h(p0)

    2. pI = p0

    3. for (i = 0; i < NBRS; i++)

    4. p = p0 +

    5. if (h(p) < Sol)

    6. Sol = h(p)

    7. pI = p

    8. endif

    9. endfor

    3/22/2004 Job Shop Scheduling 62

    Search Methods Steepest Descent Search

    1. for (i = 0; i < NHOODS; i++)

    2. Sol = h(p0)

    3. pI = p0

    4. for (j = 0; j < NBRS; j++)

    5. p = p0 +

    6. if (h(p) < Sol)

    7. Sol = h(p)

    8. pI = p

    9. endif

    10. endfor

    11. p0 = pI

    12. endfor

  • 8/3/2019 7030 Job Shop Scheduling

    32/33

    NSY 7030 - Manufacturing Systems Design 3/22/20

    U Industrial and Systems Engineering 3

    3/22/2004 Job Shop Scheduling 63

    Search Methods

    First Improvement Search1. Sol = h(p0)

    2. pI = p0

    3. for (i = 0; i < Iterations; i++)

    4. p = pI +

    5. if (h(p) < Sol)

    6. Sol = h(p)

    7. pI = p

    8. endif

    9. endfor

    3/22/2004 Job Shop Scheduling 64

    Problem-Space Based Search Wanted to investigate the use ofsimpleintuitive

    heuristics to generate neighborhoods

    Using the preceding search techniques, Leon and

    Balakrishnan found the following keys to getting good

    solutions:

    1. Having a good starting point, and

    2. Investigating a large number of neighbors of the starting

    point.

    In order to achieve these keys, hmust encode problem-

    specific data and it must be fast

    Also developed and tested a genetic algorithm

  • 8/3/2019 7030 Job Shop Scheduling

    33/33

    NSY 7030 - Manufacturing Systems Design 3/22/20

    3/22/2004 Job Shop Scheduling 65

    Computational Testing

    Objectives of the computational study: Evaluate the quality of the proposed problem-space based

    neighborhoods

    Evaluate the improvements achievable with a genetic algorithm

    Evaluate the adaptability of the proposed neighborhoods to

    different objective functions

    Tested using 110 problems from the literature. Optimal

    solutions were known for all test problems.

    3/22/2004 Job Shop Scheduling 66

    Conclusions Leon and Balakrishnan reported the following

    conclusions to their study.

    1. The quality of the search neighborhoods was found to be good

    and the solutions obtained were close to optimal (strongneighborhoods)

    2. Minimal improvements in the solution quality were achieved

    using the genetic algorithm

    3. The adaptability of the search procedures were established by

    experimenting with makespanand mean tardinessas themeasures of performance