lesson 2 advanced scheduling topics - ai @ uniboai.unibo.it/system/files/u11/lesson2 v3_1.pdf ·...

80
Lesson 2 Advanced Scheduling Topics DEIS, University of Bologna

Upload: lyliem

Post on 05-Mar-2018

226 views

Category:

Documents


2 download

TRANSCRIPT

Lesson 2Advanced Scheduling Topics

DEIS, University of Bologna

Outline

Main Objective: introduce some more advanced techniques

In particular, an overview of:§ Part 1: Scheduling via Precedence Constraint Posting§ Part 2: Large Neighborhood Search for Scheduling Problems

Lesson 2, Part 1:Advanced Scheduling Topics

DEIS, University of Bologna

Precedence Constraint Posting

A Different Perspective

2

t

A4A1

Let’s schedule a single pair of activitiesThere are two things we may do:

A2

A3

A5 A6 A7

1/2

1/1

1/2 3/2 2/1

A1

A4

2/1

1/2

A Different Perspective

2

t

A1

§ Set s1 = 0 and s4 = 2

A1

A4

2/1

1/2

A4

Let’s schedule a single pair of activitiesThere are two things we may do:

A Different Perspective

2

t

§ Set s4 = 0 and s1 = 1

A1

A4

2/1

1/2

A4A1

§ Set s1 = 0 and s4 = 2

Let’s schedule a single pair of activitiesThere are two things we may do:

In other words:§ Run A1 before A4§ Run A4 before A1

A Different Perspective

Let’s schedule a single pair of activitiesThere are two things we may do:§ Set s1 = 0 and s4 = 2§ Set s4 = 0 and s1 = 4

A1

A4

2/1

1/2In other words:§ Run A1 before A4§ Run A4 before A1

Scheduling choices can be stated as ordering decisionsThis idea is called Precedence Constraint Posting [10bis]§ This captures the problem core more concisely!§ Can be used to formulate a model

Disjuctive RCPSP Model

Let’s start from the previous one

min z = max

ai2Aei

ei = si + di 8ai 2 A

ei sj 8(ai, aj) 2 E

cumulative([si], [di], [rqi,k], ck) 8rk 2 R

si 2 [0..eoh] 8ai 2 A

ei 2 [0..eoh] 8ai 2 A

Disjuctive RCPSP Model

Let’s start from the previous one

min z = max

ai2Aei

ei = si + di 8ai 2 A

ei sj 8(ai, aj) 2 E

cumulative([si], [di], [rqi,k], ck) 8rk 2 R

si 2 [0..eoh] 8ai 2 A

ei 2 [0..eoh] 8ai 2 A

8(ai, aj) /2 Ebfi,j 2 {0, 1}“Before” variables

bfi,j = 1 , ei sj

Disjuctive RCPSP Model

Let’s start from the previous one

min z = max

ai2Aei

ei = si + di 8ai 2 A

ei sj 8(ai, aj) 2 E

cumulative([si], [di], [rqi,k], ck) 8rk 2 R

si 2 [0..eoh] 8ai 2 A

ei 2 [0..eoh] 8ai 2 A

8(ai, aj) /2 Ebfi,j 2 {0, 1}

8(ai, aj) /2 E“Before”

constraints

Why Precedence Constraint Posting?

Why should one use this approach?

Why Precedence Constraint Posting?

§ The decision variables in the previous model are:

§ The decision variables in the new model are:

si 2 [0..eoh] 8ai 2 A

ei 2 [0..eoh] 8ai 2 A

8(ai, aj) /2 Ebfi,j 2 {0, 1}

Reason #1: the domains are not large at all!

Why Precedence Constraint Posting?

§ Assume activity durations are uncertain or that thy depend on some unassigned variable

§ Ordering decision are robust against duration variability

Reason #2: PCP guarantees resource consistency even with uncertain or variable durations

dmin

A4A1

dmaxdmin dmax

A Big Drawback!

bfi,j = 1 , ei sj

min z = max

ai2Aei

ei = si + di 8ai 2 A

ei sj 8(ai, aj) 2 E

cumulative([si], [di], [rqi,k], ck) 8rk 2 R

si 2 [0..eoh] 8ai 2 A

ei 2 [0..eoh] 8ai 2 A

8(ai, aj) /2 Ebfi,j 2 {0, 1}

A (very) relevant issue: since§ We are not assigning start times§ Cumulative propagation is incompleteAssigning bfi,j does not guarantee resource consistency

Does not guarantee

consistency

bfi,j + bfj,i = 1ai, aj

(ai, aj) /2 E | 9rk 2 R : rqi,k = rqj,k = 1

...and a Welcome Exception

Assume we have only unary resources, then:§ Every pair of using the same resource must be sequenced§ Hence we must have:§ For every:

This model (the key idea of it) is common in Job Shop SchedulingIn [8], the authors obtained pretty nice results by using:§ Very simple propagation§ dom wdeg1 for variable selection (a general purpose heuristic)§ Restarts (+ a bit of no-good recording)§ The best solution found so far as a value selection heuristic

1: Domain over Weighted Degree (it’s an adaptive heuristic)

Generalizing

What about non-unary resources?

2

t

§ A, B, C cause an over-usage in case of overlapping execution

C

B

A

Generalizing

What about non-unary resources?

2

t

§ A, B, C cause an over-usage in case of overlapping execution

C

B

A

Generalizing

What about non-unary resources?

2

t

§ A, B, C cause an over-usage in case of overlapping execution

§ Adding a single precedence constraint is enough to prevent the conflict

CB

A

Generalizing

What about non-unary resources?

2

t

§ A, B, C cause an over-usage in case of overlapping execution

§ Adding a single precedence constraint is enough to prevent the conflict

CB

A

This is called a Minimal Critical Set [9,10]

Generalizing

bfi,j = 1 , ei sj

This is for unary resourcesmin z = max

ai2Aei

ei = si + di 8ai 2 A

ei sj 8(ai, aj) 2 E

cumulative([si], [di], [rqi,k], ck) 8rk 2 R

si 2 [0..eoh] 8ai 2 A

ei 2 [0..eoh] 8ai 2 A

8(ai, aj) /2 Ebfi,j 2 {0, 1}

8(ai, aj) /2 E | 9rk 2 R : rqi,k = rqj,k = 1bfi,j + bfj,i = 1

X

ai2MCS

bfi,j >= 1 8MCS in the graph

Generalizing

bfi,j = 1 , ei sj

And this is for non-unary resourcesmin z = max

ai2Aei

ei = si + di 8ai 2 Aei sj 8(ai, aj) 2 E

cumulative([si], [di], [rqi,k], ck) 8rk 2 R

si 2 [0..eoh] 8ai 2 A

ei 2 [0..eoh] 8ai 2 A8(ai, aj) /2 Ebfi,j 2 {0, 1}

X

ai2MCS

bfi,j >= 1 8MCS in the graph

Trouble to Come

On a project graph, a Minimal Critical Set is:§ A set of non precedence connected activities§ With the two properties mentioned

In the worst case, MCS may be in exponential number!(and the worst case does happen)

Typically: detect and resolver MCS at search time

An MCS Based Search Strategy

A possible search strategy [11]:

found?

Select an MCS

select a pairai, aj

Solutionno

yes

post .

branch

ei sj post .ei > sj

on backtracking

An MCS Based Search Strategy

A possible search strategy [11]:

found?

Select an MCS

select a pairai, aj

Solutionno

yes

post .

branch

ei sj post .ei > sj

on backtracking

No MCS = no possible conflictsThe precedence constraints guarantee resource consistency

This is called a Partial Order Schedule

An MCS Based Search Strategy

A possible search strategy [11]:

found?

Select an MCS

select a pairai, aj

Solutionno

yes

post .

branch

ei sj post .ei > sj

on backtracking

The two main steps

Selecting MCS and Activity Pairs

Selecting ai, aj pairsThere are some heuristics:§ Preserved space§ Slack- and Texture-based

Selecting an MCSA few available methods:§ Enumeration [11]

Selecting MCS via Enumeration

Enumerating MCS§ Sort activities by decreasing requirement§ Enumerate the subset

A1 A2

A3

A5 A6

A4

A7

2/1

1/2

1/1

1/2

1/2 3/2 2/1

ck = 2

A2A4

A7A1A3 A5 A6

Selecting MCS via Enumeration

Enumerating MCS§ Sort activities by decreasing requirement§ Enumerate the subset§ Skip precedence connected activities

A1 A2

A3

A5 A6

A4

A7

2/1

1/2

1/1

1/2

1/2 3/2 2/1

ck = 2

A2A4

A7A1A3 A5 A6

Selecting MCS via Enumeration

Enumerating MCS§ Sort activities by decreasing requirement§ Enumerate the subset§ Skip precedence connected activities

§ When the capacity is exceeded, an MCS has been found

A1 A2

A3

A5 A6

A4

A7

2/1

1/2

1/1

1/2

1/2 3/2 2/1

ck = 2

A2A4

A7A1A3 A5 A6

MCS found

Selecting MCS via Enumeration

Enumerating MCS§ Sort activities by decreasing requirement§ Enumerate the subset§ Skip precedence connected activities

§ When the capacity is exceeded, an MCS has been found

§ Keep the best MCS according to ranking heuristic (size, weight, preserved space...)

A1 A2

A3

A5 A6

A4

A7

2/1

1/2

1/1

1/2

1/2 3/2 2/1

ck = 2

A2A4

A7A1A3 A5 A6

best = A3, A4

Selecting MCS via Enumeration

Enumerating MCS§ Sort activities by decreasing requirement§ Enumerate the subset§ Skip precedence connected activities

§ When the capacity is exceeded, an MCS has been found

§ Keep the best MCS according to ranking heuristic (size, weight, preserved space...)

A1 A2

A3

A5 A6

A4

A7

2/1

1/2

1/1

1/2

1/2 3/2 2/1

ck = 2

A2A4

A7A1A3 A5 A6

best = A3, A4MCS found

Selecting MCS via Enumeration

Enumerating MCS§ Sort activities by decreasing requirement§ Enumerate the subset§ Skip precedence connected activities

§ When the capacity is exceeded, an MCS has been found

§ Keep the best MCS according to ranking heuristic (size, preserved space...)

A1 A2

A3

A5 A6

A4

A7

2/1

1/2

1/1

1/2

1/2 3/2 2/1

ck = 3

A2A4

A7A1A3 A5 A6

best = A3, A4MCS found...

PRO: we find the “best” MCSCON: the process may take exponential time!

Selecting MCS and Activity Pairs

Selecting ai, aj pairsThere are some heuristics:§ Preserved space§ Slack- and Texture-based

Selecting an MCSA few available methods:§ Enumeration [11]§ Reduction of the Max Weight Independent Set [12]

Selecting MCS via Enumeration

§ An MCS is an Independent Set on the Project Graph

§ It is possible to find the Independent Set of maximum weight in polynomial time!

A1 A2

A3

A5 A6

A4

A7

2/1

1/2

1/1

1/2

1/2 3/2 2/1

Selecting MCS via Enumeration

§ An MCS is an Independent Set on the Project Graph

§ It is possible to find the Independent Set of maximum weight in polynomial time!

Finding the Max Weight Independent Set§ Split nodes and turn requirements into

minimum capacity labels

A1 A2

A3

A5 A6

A4

A7

1

2

1

2

2 2 1

A1 A2

A3 A4

A5 A6 A7

Selecting MCS via Enumeration

§ An MCS is an Independent Set on the Project Graph

§ It is possible to find the Independent Set of maximum weight in polynomial time!

A1 A2

A3

A5 A6

A4

A7

1

2

1

2

2 2 1

A1 A2

A3 A4

A5 A6 A7

S

T

Finding the Max Weight Independent Set§ Split nodes and turn requirements into

minimum capacity labels§ Add fake Source and Target nodes

Selecting MCS via Enumeration

§ An MCS is an Independent Set on the Project Graph

§ It is possible to find the Independent Set of maximum weight in polynomial time!

A1 A2

A3

A5 A6

A4

A7

1

2

1

2

2 2 1

A1 A2

A3 A4

A5 A6 A7

S

T

4

2 2

2

Finding the Max Weight Independent Set§ Split nodes and turn requirements into

minimum capacity labels§ Add fake Source and Target nodes§ Route minimum flow from S to T, such that

all minimum capacity labels are covered§ e.g. use inverse Fold Fulkerson

Selecting MCS via Enumeration

§ An MCS is an Independent Set on the Project Graph

§ It is possible to find the Independent Set of maximum weight in polynomial time!

A1 A2

A3

A5 A6

A4

A7

1

2

1

2

2 2 1

A1 A2

A3 A4

A5 A6 A7

S

T

Finding the Max Weight Independent Set§ Split nodes and turn requirements into

minimum capacity labels§ Add fake Source and Target nodes§ Route minimum flow from S to T, such that

all minimum capacity labels are covered§ e.g. use inverse Fold Fulkerson

§ Sets of saturated arcs separating S and T (i.e. S/T cut) identify the IS with max weight

Selecting MCS via Enumeration

Here there is a single max weight IS

A1 A2

A3

A5 A6

A4

A7

1

2

1

2

2 2 1

A1 A2

A3 A4

A5 A6 A7

S

T

A4 A5 A6

§ This is not minimal!§ But can be minimized§ Method 1: remove activities according

to a heuristic (size, preserved space...)§ Method 2: sampling (bounded

enumeration)

Selecting MCS via Enumeration

Here there is a single max weight IS

A1 A2

A3

A5 A6

A4

A7

1

2

1

2

2 2 1

A1 A2

A3 A4

A5 A6 A7

S

T

A4 A5 A6

§ This is not minimal!§ But can be minimized§ Method 1: remove activities according

to a heuristic (size, preserved space...)§ Method 2: sampling (bounded

enumeration)

PRO: extremely efficient!Method 1 also has no exponential worst case

CON: the MCS is not necessarily the “best” one

Selecting MCS via Enumeration

Selecting ai, aj pairsThere are some heuristics:§ Preserved space§ Slack- and Texture-based

Selecting an MCSA few available methods:§ Enumeration [11]§ Reduction of the Max Weight Independent Set [12]§ Sampling from a Maximum Usage Envelope [13]

Selecting MCS via Enumeration

A max usage envelope defines the max resource usage at each time instant A1 A2

A3

A5 A6

A4

A7

2/1

1/2

1/1

1/2

1/2 3/2 2/1

Finding the max usage envelope§ Define two events per activity,

corresponding to ESTi and LETi

[2,9]/[4,11]

A1: [0,5]/[2,7]A2: [0,7]/[1,8]A3: [2,7]/[3,8]A4: [1,8]/[2,9]

A6: [3,8]/[6,11]A5: [3,10]/[4,11]

A7: [2,9]/[4,11]

Finding the max usage envelope§ Define two events per activity,

corresponding to ESTi and LETi

§ Extract the corresponding time points

Selecting MCS via Enumeration

A1 A2

A3

A5 A6

A4

A7

2/1

1/2

1/1

1/2

1/2 3/2 2/1

0 7 821 93 11[2,9]/[4,11]

2

t

A1: [0,5]/[2,7]A2: [0,7]/[1,8]A3: [2,7]/[3,8]A4: [1,8]/[2,9]

A6: [3,8]/[6,11]A5: [3,10]/[4,11]

A7: [2,9]/[4,11]

Finding the max usage envelope§ Define two events per activity,

corresponding to ESTi and LETi

§ Extract the corresponding time points

Selecting MCS via Enumeration

0 7 821 93 11[2,9]/[4,11]

2

t

A1: [0,5]/[2,7]A2: [0,7]/[1,8]A3: [2,7]/[3,8]A4: [1,8]/[2,9]

A6: [3,8]/[6,11]A5: [3,10]/[4,11]

A7: [2,9]/[4,11]

A1 A2

A3

A5 A6

A4

A7

1

2

1

2

2 2

A1 A2

A3 A4

A5 A6 A7

S

T

§ Transform the graph as before

Selecting MCS via Enumeration

0 7 821 93 11[2,9]/[4,11]

2

t

A1: [0,5]/[2,7]A2: [0,7]/[1,8]A3: [2,7]/[3,8]A4: [1,8]/[2,9]

A6: [3,8]/[6,11]A5: [3,10]/[4,11]

A7: [2,9]/[4,11]

A1 A2

A3

A5 A6

A4

A7

1

2

1

2

2 2

A1 A2

A3 A4

A5 A6 A7

S

T

Finding the max usage envelope§ ...§ For each time point t:§ If LETi ≤ t or ESTi > t, remove

corresponding nodes

Selecting MCS via Enumeration

0 7 821 93 11[2,9]/[4,11]

2

t

A1: [0,5]/[2,7]A2: [0,7]/[1,8]A3: [2,7]/[3,8]A4: [1,8]/[2,9]

A6: [3,8]/[6,11]A5: [3,10]/[4,11]

A7: [2,9]/[4,11]

Finding the max usage envelope§ ...§ For each time point t:§ If LETi ≤ t or ESTi > t, remove

corresponding nodes§ Identify the max weight IS via flow

minimization

A1 A2

1A1 A2

S

T

1 1

A1,A2

A1 A2

A3

A5 A6

A4

A7

1

2

1

2

2 2 1

A1 A2

A3 A4

A5 A6 A7

S

T

Selecting MCS via Enumeration

0 7 821 93 11[2,9]/[4,11]

2

t

A1: [0,5]/[2,7]A2: [0,7]/[1,8]A3: [2,7]/[3,8]A4: [1,8]/[2,9]

A6: [3,8]/[6,11]A5: [3,10]/[4,11]

A7: [2,9]/[4,11]

Finding the max usage envelope§ ...§ For each time point t:§ If LETi ≤ t or ESTi > t, remove

corresponding nodes§ Identify the max weight IS via flow

minimization

A1,A2

Selecting MCS via Enumeration

0 7 821 93 11[2,9]/[4,11]

2

t

A1: [0,5]/[2,7]A2: [0,7]/[1,8]A3: [2,7]/[3,8]A4: [1,8]/[2,9]

A6: [3,8]/[6,11]A5: [3,10]/[4,11]

A7: [2,9]/[4,11]

Finding the max usage envelope§ ...§ For each time point t:§ If LETi ≤ t or ESTi > t, remove

corresponding nodes§ Identify the max weight IS via flow

minimization

A1 A2

A4

1 1

2

A1 A2

A4

S

T

A1,A2

A1,A4

1 2

2

t

Selecting MCS via Enumeration

0 7 821 93 11[2,9]/[4,11]

A1: [0,5]/[2,7]A2: [0,7]/[1,8]A3: [2,7]/[3,8]A4: [1,8]/[2,9]

A6: [3,8]/[6,11]A5: [3,10]/[4,11]

A7: [2,9]/[4,11]

Finding the max usage envelope§ ...

A1,A2

A1 A2

A3

A5 A6

A4

A7

1

2

1

2

2 2 1

A1 A2

A3 A4

A5 A6 A7

S

T

A1,A4

A3,A4

A3,A4 A3,A4

A4,A5

A5,A7

2

t

Selecting MCS via Enumeration

0 7 821 93 11[2,9]/[4,11]

A1: [0,5]/[2,7]A2: [0,7]/[1,8]A3: [2,7]/[3,8]A4: [1,8]/[2,9]

A6: [3,8]/[6,11]A5: [3,10]/[4,11]

A7: [2,9]/[4,11]

Finding the max usage envelope§ ...§ Peaks (may) correspond to a CS§ Obtain an MCS from each CS via

minimization (removal or sampling)

A1,A2

A1 A2

A3

A5 A6

A4

A7

1

2

1

2

2 2 1

A1 A2

A3 A4

A5 A6 A7

S

T

A1,A4

A3,A4

A3,A4 A3,A4

A4,A5

A5,A7

A pretty good trade-off between the previous two

0.25%0.5%

0.75%

1%

0%5%10%15%20%25%30%

0.2%0.5%

0.7%1%

0.25%0.5%

0.75%

1%

0%5%10%15%20%25%30%

0.2%0.5%

0.7%1%

0.25%0.5%

0.75%

1%

0%5%10%15%20%25%30%

0.2%0.5%

0.7%1%

Results for the J60 PSPLIB instances

[2,9]/[4,11]

Number of optimally solved instances in 10 mins

num of req. res.

ENUM

ENVELOPE (sampling)

rqi,k values

0.25%0.5%

0.75%

1%

0%5%10%15%20%25%30%

0.2%0.5%

0.7%1%

0.25%0.5%

0.75%

1%

0%5%10%15%20%25%30%

0.2%0.5%

0.7%1%

0.25%0.5%

0.75%

1%

0%5%10%15%20%25%30%

0.2%0.5%

0.7%1%

Results for the J60 PSPLIB instances

[2,9]/[4,11]

ENUM

The envelope method is the best here

MAX IS (removal)

ENVELOPE (sampling)

0.25%0.5%

0.75%

1%

0%5%10%15%20%25%30%

0.2%0.5%

0.7%1%

0.25%0.5%

0.75%

1%

0%5%10%15%20%25%30%

0.2%0.5%

0.7%1%

0.25%0.5%

0.75%

1%

0%5%10%15%20%25%30%

0.2%0.5%

0.7%1%

Results for the J90 PSPLIB instances

[2,9]/[4,11]

ENUM

The max weight IS method seems to have the best scalability

ENVELOPE (sampling)

MAX IS (removal)

DEIS, University of Bologna

Lesson 2, Part 1:Advanced Scheduling Topics

Robust Search Startegies

maxai2A si(�) + diPai2A max(0, si(�) + di � dli)

Pai2A max(0, dli � si(�)� di)

A Different Perspective

Scheduling Problem come in many variants§ Unary, cumulative and state resources§ Minimal and maximal time lags, setup times§ Different objective functions, e.g.:

makespan:

weighted tardiness:

weighted earliness:

Most of the methods we have seenwork well only for specific cases

maxai2A si(�) + diPai2A max(0, si(�) + di � dli)

Pai2A max(0, dli � si(�)� di)

A Different Perspective

Scheduling Problem come in many variants§ Unary, cumulative and state resources§ Minimal and maximal time lags, setup times§ Different objective functions, e.g.:

makespan:

weighted tardiness:

weighted earliness:

Most of the methods we have seenwork well only for specific cases

Bad for Schedule or Postpone

maxai2A si(�) + diPai2A max(0, si(�) + di � dli)

Pai2A max(0, dli � si(�)� di)

A Different Perspective

Scheduling Problem come in many variants§ Unary, cumulative and state resources§ Minimal and maximal time lags, setup times§ Different objective functions, e.g.:

makespan:

weighted tardiness:

weighted earliness:

Most of the methods we have seenwork well only for specific cases

Poor propagation

maxai2A si(�) + diPai2A max(0, si(�) + di � dli)

Pai2A max(0, dli � si(�)� di)

A Different Perspective

Scheduling Problem come in many variants§ Unary, cumulative and state resources§ Minimal and maximal time lags, setup times§ Different objective functions, e.g.:

makespan:

weighted tardiness:

weighted earliness:

A solution: use specialized methodsBut this is very inconvenient!

Poor propagation

Self-Adaptive Large Neighborhood Search

Large Neighborhood Search § A heuristic approach§ Iteratively try to improve an

initial solution via CP§ Two main steps§ Works for all the RCPSP

variants seen so far :-)

Self-Adaptive Large Neighborhood Search [14] has been recently applied with good results to a diverse set of benchmarks

Find a solution

Relax a fragment

Complete therelaxed solution

improved?

Change incumbent solution

no yes

SA-LNS Fragment Relaxation

2

t

A2

A1A3

Assume this is the initial solution:

A4 A5 A6A7

SA-LNS Fragment Relaxation

Turn the start time assignment into a Partial Order Schedule§ Methods available from [13,15] for many resource types

2

t

A2

A1A3 A4 A5 A6

A7

SA-LNS Fragment Relaxation

Turn the start time assignment into a Partial Order Schedule§ Methods available from [13,15] for many resource types

2

t

A2

A1A3

A4

A5

A6

A7Original

Added

SA-LNS Fragment Relaxation

Select a subset of activities§ Choice guided by a randomized relaxation heuristic

2

t

A2

A1A3

A4

A5

A6

A7

SA-LNS Fragment Relaxation

2

t

A2

A1A3

A4

A5

A6

A7

Remove all added arcs connected to selected activities§ Re-direct arcs from non-selected to selected activities

SA-LNS Fragment Relaxation

2

t

A2

A1A3

A4

A5

A6

A7

Remove all added arcs connected to selected activities§ Re-direct arcs from non-selected to selected activities

We can safely remove those

SA-LNS Fragment Relaxation

Remove all added arcs connected to selected activities§ Re-direct arcs from non-selected to selected activities

2

t

A2

A1A3

A4

A5

A6

A7

But we have to re-direct this

SA-LNS Fragment Relaxation

Remove all added arcs connected to selected activities§ Re-direct arcs from non-selected to selected activities

2

t

A2

A1A3

A4

A5

A6

A7

But we have to re-direct this

SA-LNS Fragment Relaxation

This is the relaxed solution (a modified project graph)

A2

A1A3

A4

A5

A6

A7

And we have to complete it to a full schedule

SA-LNS Completion Step

Schedule-or-Postpone cannot be used directly§ because it does not support non-regular objectives (scheduling at

the EST is not a good idea)

Solution: solve a Linear Program (poly-time)§ Relax all resource constraints§ The solution provides a set of target start times

Then run a modified Schedule-or-Postpone§ Start activities at the target start time, instead of the EST§ De-postpone activity when propagation prunes the target start time

Self-Adaptive

Self-Adaptive

Find a solution

Relax a fragment

Complete therelaxed solution

improved?

Change incumbent solution

no yes

§ Relaxation heuristic and completion strategy are chosen according to a probability distribution

Rel. heuristic selector

Compl. strategy selector

Modify selection probability

§ The distribution is updated based on the obtained improvement

Self-Adaptive

Find a solution

Relax a fragment

Complete therelaxed solution

improved?

Change incumbent solution

no yes

Rel. heuristic selector

Compl. strategy selector

Modify selection probability

On average 4% from the optimal solution on 20 diverse benchmarks

This is the search strategy employed by the system you will use in the hands-on session

Self-Adaptive§ Relaxation heuristic and completion strategy are chosen according

to a probability distribution§ The distribution is updated based on the obtained improvement

DEIS, University of Bologna

Lesson 2, Part 1:Advanced Scheduling Topics

Who is the winner?

Who is the Winner?

We have seen a number of techniques: what’s the best?

It’s problem dependent!

§ Some techniques work well on smaller problems, but do not scale well (e.g. MCS enumeration)

§ Some techniques work well for certain problem features (e.g. Schedule-or-postpone for the classical RCPSP)

§ Some techniques are more robust, but they got beaten on specific problem variants

§ ...

Lesson 1 is the “standard” for Constraint Based Scheduling§ Schedule-or-postpone + timetabling and (extended) edge-finding§ Timetable edge-finding is the current state of the art for edge-

finding like filtering§ Precedence graph based propagation is used in CP Optimizer for

unary resources (and works very well)§ No-first/not-last rules are seldom used. Their current stat-of-the-art

implementation is [4]

That Said...

About this lesson:§ PCP (see work [11]) was the state of the art for the classical RCPSP

until very recently§ Self-adapting Large-Neighborhood Search is the current state of

the art as for robustness

However:§ The state of the art for classical RCPSP is Lazy Clause Generation§ LGC is a hybrid technique, integrating CP and SAT solvers

That Said...

0

25

50

75

100

J30 J60 J90 J120

MCSLCG

% s

olve

d in

stan

ces

However:§ The state of the art for classical RCPSP is Lazy Clause Generation§ LGC is a hybrid technique, integrating CP and SAT solvers

That Said...

§ Expressiveness and global constraints from CP§ no-good learning from SAT§ search: mix of CP and SAT§ quite complex to implement§ If you are interested, check [16,17]

DEIS, University of Bologna

Lesson 2:Advanced Scheduling Topics

References

References

[8] Grimes, D., & Hebrard, E. (2011). Models and strategies for variants of the job shop scheduling problem. Proc. of CP[9] Igelmund, G., & Radermacher, F. J. (1983). Algorithmic approaches to preselective strategies for stochastic scheduling problems. Networks, 13(1), 29–48.[10] Cesta, A., Oddi, A., & Smith, S. F. (1998). Scheduling Multi-Capacitated Resources under Complex Temporal Constraints. Proc. of CP, 465–465.[10bix] Policella, N., Cesta, A., Oddi, A., & Smith, S. F. (2007). From precedence constraint posting to partial order schedules: A CSP approach to Robust Scheduling. AI Communications, 20(3), 163–180.[11] Laborie, P. (2005). Complete MCS-Based Search: Application to Resource Constrained Project Scheduling. Proc. of IJCAI (pp. 181–186). Professional Book Center.

References

[12] Lombardi, M., & Milano, M. (2012). A min-flow algorithm for Minimal Critical Set detection in Resource Constrained Project Scheduling. Artificial Intelligence, 182-183, 58–67

References

[13] Policella, N., Smith, S. F., Cesta, A., & Oddi, A. (2004). Generating Robust Schedules through Temporal Flexibility. Proc. of ICAPS (pp. 209–218).[14] Laborie, P., & Godard, D. (2007). Self-adapting large neighborhood search: Application to single-mode scheduling problems. Proc. of MISTA. [15] Godard, D., Laborie, P., & Nuijten, W. (2005). Randomized Large Neighborhood Search for Cumulative Scheduling. Proc. of ICAPS (pp. 81–89). [16] Schutt, A., Feydy, T., Stuckey, P. J., & Wallace, M. (2009). Why Cumulative Decomposition Is Not as Bad as It Sounds. Proc. of CP (pp. 746–761).[17] Schutt, A., Feydy, T., Stuckey, P., & Wallace, M. (2011). Explaining the cumulative propagator. Constraints.