lesson 2 advanced scheduling topics - ai @ uniboai.unibo.it/system/files/u11/lesson2 v3_1.pdf ·...
TRANSCRIPT
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?
§ 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)
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
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
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]
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.