Problem-Solving Examples (Non-Preemptive Case)

28
5-1 Problem-Solving Examples (Non-Preemptive Case)

description

Problem-Solving Examples (Non-Preemptive Case). Outline. Job-shop scheduling problem (JSSP) Problem definition Basic search procedure Heuristics Results Resource-constrained project scheduling problem (RCPSP). JSSP: Problem definition. Set of machines {M 1 ... M m } - PowerPoint PPT Presentation

Transcript of Problem-Solving Examples (Non-Preemptive Case)

Page 1: Problem-Solving Examples (Non-Preemptive Case)

5-1

Problem-Solving Examples(Non-Preemptive Case)

Page 2: Problem-Solving Examples (Non-Preemptive Case)

5-2

Outline

• Job-shop scheduling problem (JSSP)– Problem definition– Basic search procedure– Heuristics– Results

• Resource-constrained project scheduling problem (RCPSP)

Page 3: Problem-Solving Examples (Non-Preemptive Case)

5-3

JSSP: Problem definition

• Set of machines {M1 ... Mm}

• Set of jobs {J1 ... Jn}

• List of operations Oi1 ... Oi

m(i) for each job Ji

• Processing time pij for each operation Oi

j

• Machine Mij for each operation Oi

j

Page 4: Problem-Solving Examples (Non-Preemptive Case)

5-4

JSSP: Problem variables

• Integer variables start(O) and end(O) for each operation O

• Optimization criterionmakespan maxi(end(Oi

m(i)))

Page 5: Problem-Solving Examples (Non-Preemptive Case)

5-5

JSSP: Problem constraints

• Temporal constraints

0 start(Oij)

end(Oij) start(Oi

j1)

• Duration constraints

start(Oij) pi

j end(Oij)

• Exclusion constraintsMi

j Mkl implies

[end(Oij) start(Ok

l)] OR [end(Okl) start(Oi

j)]

Page 6: Problem-Solving Examples (Non-Preemptive Case)

5-6

JSSP: Decision var. complexity

• NP-complete in the strong sense when m 3 and m(i) 3 for all i

• Solvable in polynomial time if m 2 and m(i) 2 for all i

• NP-complete in the ordinary sense when m 2 and m(i) 3 for all i, or when m 3 and m(i) 2 for all i

• Flow-shop scheduling: NP-complete in the strong sense for m 3

Page 7: Problem-Solving Examples (Non-Preemptive Case)

5-7

JSSP: Basic search procedure

• Select a machine M and a set of operations which require M

• For each operation O in , create a branch where O is set to execute before (or after) all the other operations of

• Select a branch, propagate the decision, and iterate (until a solution is found or no branch remains)

Page 8: Problem-Solving Examples (Non-Preemptive Case)

5-8

JSSP: Makespan minimization

• Set makespanmin to an obvious lower bound

• Set makespanmax to an obvious upper bound

• Iterate until makespanmin makespanmax

– Select a value in [makespanmin makespanmax)

– Constrain the makespan to be smaller than (or equal to) the chosen value

– Run the search procedure: when a solution is found, set makespanmax to the makespan of the solution; if there is no solution, set makespanmin to (value 1)

Page 9: Problem-Solving Examples (Non-Preemptive Case)

5-9

JSSP: Makespan minimization

• Example– start with makespanmin obtained by propagation

– until a solution has been found, increment the tested value by min(2i1, (makespanmax makespanmin) 2) (after the ith iteration)

– after a solution has been found, set the tested value to (makespanmax makespanmin) 2

Page 10: Problem-Solving Examples (Non-Preemptive Case)

5-10

JSSP: Heuristics

• Selection of the machineFind the task interval [startmin(A), endmax(B)] with the highest demand/supply ratio

TI {C | startmin(A) startmin(C) and endmax(C) endmax(B)}

demand CTI duration(C)

supply endmax(B) startmin(A)

Page 11: Problem-Solving Examples (Non-Preemptive Case)

5-11

JSSP: Heuristics

• Branch exploration ordering– First or last?

• Always select an operation to execute first

• Always select an operation to execute last

• Use edge-finding rules to determine the number Nf of operations that can be first and the number Nl of operations that can be last (and select the option with the smallest number of candidates)

Page 12: Problem-Solving Examples (Non-Preemptive Case)

5-12

JSSP: Heuristics

• Branch exploration ordering– Select the branch on which the operation with

the smallest endmax is scheduled first (EDD)

– Select the branch on which the operation with the largest startmin is scheduled last

– Propagate each alternative in turn and select the one which appears the most constraining

Page 13: Problem-Solving Examples (Non-Preemptive Case)

5-13

JSSP: Benchmark results

• [Applegate & Cook 91]– Ten instances with 10 jobs and 10 machines

(100 operations)– Results (table) taken from [Le Pape 95]

• [Vaessens et al 94]– Thirteen instances (one open) with up to 225

operations

Page 14: Problem-Solving Examples (Non-Preemptive Case)

5-14

JSSP: Benchmark results

Instance BT CPU BT(PR) CPU(PR)

MT10 13684 184.8 4735 52.8

ABZ5 19303 226.6 4519 49.7

ABZ6 6227 80.3 312 3.8

LA19 18102 219.2 6561 74.7

LA20 40597 407.3 20626 186.9

ORB1 22725 323.7 6261 85.3

ORB2 31490 416.4 14123 189.3

ORB3 36729 488.4 22138 277.6

ORB4 13751 169.9 1916 19.0

ORB5 12648 168.5 2658 29.7

Page 15: Problem-Solving Examples (Non-Preemptive Case)

5-15

Benchmarks (Applegate & Cook)

MT10 ABZ5 ABZ6 LA19 LA20 ORB1 ORB2 ORB3 ORB4 ORB5

[Applegate & Cook 91] Number of nodes CPU time (Sparc1)

[Baptiste et al 95] [Le Pape 95] Number of fails CPU time (RS6000)

[Caseau & Laburthe 95] CPU time (Sparc10)

[Colombani 96] Number of choices CPU time (Sparc 5)

25

210

215

Page 16: Problem-Solving Examples (Non-Preemptive Case)

5-16

MT10 ABZ5 ABZ6 LA19 LA20 ORB1 ORB2 ORB3 ORB4 ORB5

PROOFS OF OPTIMALITY

[Applegate & Cook 91] Number of nodes CPU time (Sparc1)

[Baptiste et al 95] [Le Pape 95] Number of fails CPU time (RS6000)

[Caseau & Laburthe 95] Number of fails CPU time (Sparc10)

Benchmarks (Applegate & Cook)

25

210

215

Page 17: Problem-Solving Examples (Non-Preemptive Case)

5-17

MT10 LA02 LA19 LA21 LA24 LA25 LA27 LA29 LA36 LA37 LA38 LA39 LA40

[Adams et al 88] [Mattfeld 96]

[Nuijten & Le Pape 97] [Nowicki & Smutnicki 93]

[Caseau & Laburthe 95] [Van Laarhoven et al 92]

5

10

15

Benchmarks (Vaessens et al)

Page 18: Problem-Solving Examples (Non-Preemptive Case)

5-18

MT10 LA02 LA19 LA21 LA24 LA25 LA27 LA29 LA36 LA37 LA38 LA39 LA40

[Adams et al 88] (Vax780) [Mattfeld 96] (Sparc10)

[Nuijten & Le Pape 97] (RS6000) [Nowicki & Smutnicki 93] (PC)

[Caseau & Laburthe 95] (Sparc10) [Van Laarhoven et al 92] (Vax785)

25

210

215

Benchmarks (Vaessens et al)

Page 19: Problem-Solving Examples (Non-Preemptive Case)

5-19

RCPSP: Problem definition (1)

• Given:– m resources R1 ... Rm with given capacities c1 ... cm

– n activities A1 ... An with given durations d1 ... dn

– precedence constraints between activities

– resource requirements qij (for activity i and resource j)

assign start and end times to activities so as to satisfy the constraints and minimize the duration of the overall project

Page 20: Problem-Solving Examples (Non-Preemptive Case)

5-20

RCPSP: Problem definition (2)

• Given:– m resources R1 ... Rm with given maximal capacities c1

max ... cmmax

– n activities A1 ... An with given minimal durations d1min ... dn

min and maximal durations d1

max ... dnmax

– precedence constraints between activities

– resource requirements qijd (for activity i, resource j and duration d)

assign start and end times to activities so as to satisfy the constraints and achieve the "best" tradeoff between the duration of the overall project and the peak capacity of the resources

Page 21: Problem-Solving Examples (Non-Preemptive Case)

5-21

RCPSP: Problem variables

• Integer variables start(Ai) and end(Ai) for each activity Ai

• Integer variables duration(Ai), cj and qij in the variable-duration variable-demand case

• Optimization criterionmakespan maxA(end(A))

Page 22: Problem-Solving Examples (Non-Preemptive Case)

5-22

RCPSP: Problem constraints

• Resource capacity constraints (cj)

• Duration constraints

• Precedence constraints

• Resource requirement constraints (qij)

• Relations between durations and resource requirements

Page 23: Problem-Solving Examples (Non-Preemptive Case)

5-23

RCPSP: Search procedure (1)

1 Initialize the set of selectable activities to the complete set.

2 If all activities have fixed start and end times, exit. Otherwise remove from those activities which have fixed start and end times.

3 If is not empty, select an activity from , create a choice point for the selected activity (to allow backtracking) and schedule the selected activity from its earliest start time to its earliest end time.

4 If is empty, backtrack to the most recent choice point. (If there is no choice point left, report that there is no problem solution and exit.)

5 Upon backtracking, mark the backtracked activity as not selectable as long as its earliest start and end times have not changed. Then goto step 2.

Page 24: Problem-Solving Examples (Non-Preemptive Case)

5-24

RCPSP: Search procedure (2)

1 Initialize the set of selectable activities to the complete set.

2 If all activities have fixed start and end times, exit. Otherwise remove from those activities which have fixed start and end times.

3 If is not empty, select an activity from , create a choice point for the duration of the selected activity, select a duration, create a choice point for the start and end times of the activity and schedule the selected activity from its earliest start time to its earliest end time.

4 If is empty, backtrack to the most recent choice point. (If there is no choice point left, report that there is no problem solution and exit.)

5 Upon backtracking on a start/end time choice point, mark the backtracked activity as not selectable as long as its earliest start and end times have not changed. Then goto step 2.

6 Upon backtracking on a duration choice point, select another duration.

Page 25: Problem-Solving Examples (Non-Preemptive Case)

5-25

RCPSP: Optimization

• Classical minimization scheme• Pareto-optimization (find all Pareto-optimal

tradeoffs)1 Generate a solution which minimizes the first criterion c1. (If there is

no solution, exit.) Let v1 be the optimal value for c1.

2 Constrain c1 to be smaller than or equal to v1. Generate a solution which minimizes the second criterion c2. Let v2 be the optimal value for c2. The solution found is Pareto-optimal.

3 Remove the constraint stating that c1 is smaller than or equal to v1. Replace it by a constraint stating that c2 is strictly smaller than v2. Goto step 1.

Page 26: Problem-Solving Examples (Non-Preemptive Case)

5-26

RCPSP: Heuristics

• Selection of an activity– Select the activity with the smallest endmin

• Selection of a duration– Select the shortest possible duration

Page 27: Problem-Solving Examples (Non-Preemptive Case)

5-27

RCPSP: Results

• Ship loading problem [Aggoun & Beldiceanu 92]– 1 resource

– 34 activities with precedence constraints

– Fixed-duration fixed-demand fixed-capacity: 0.2s

– Fixed-duration fixed-demand Pareto-optimization: 0.4s

– Variable-duration variable-demand fixed-capacity: 0.2s to 0.9s

– Variable-duration variable-demand Pareto-optimization: 13s

• Industrial problem– 2 resources

– 40 to 50 activities with precedence constraints

– Variable-duration variable-demand fixed-capacity: 1s

Page 28: Problem-Solving Examples (Non-Preemptive Case)

5-28

RCPSP: Results

• However, the efficiency of RCPSP search procedures is shown to depend a lot on the structure of the precedence network. Much harder instances can be obtained by simple modifications of the ship loading problem.

• Additional constraints of real-life problems can make the problem much more simple or much more difficult than the RCPSP.