resource constraint propagation (non-preemptive case)
Post on 20-Dec-2015
236 views
TRANSCRIPT
1
Resource Constraint Propagation(Non-Preemptive Case)
2
Outline
• Classes of resources
• Constraint propagation models– Explicit time-tables– Disjunctive constraints– Energetic reasoning– Edge finding (task intervals)
• Comparison
3
Classes of resources
• Unary resources
• Discrete resources
• State resources
• Energetic resources
Unary resources
A B
C
time
• Main resources in 4/10 problems
• Example: one individual machine or person
5
Discrete resources
• Main resources in 5/10 problems
• Example: group of identical machines
A
B
Dtime
C
6
State resources
• Main resources in 1/20 problems
• Example: oven with different temperatures
D
time
A
B
C
7
Energetic resources
• Main resources in 1/20 problems
• Example: number of man-days per week
A B
timeC
8
Constraint propagation models
• Explicit time-tables
• Disjunctive constraints
• Energetic reasoning
• Edge finding (task intervals)
9
Explicit time-tables (UD)
• WA(t) [start(A) t end(A)]
• t, AWA(t) * capacity(A)] capacity(t)
A B
C
time
C
10
Explicit time-tables (S)
• WA(t) [start(A) t end(A)]
• t, WA(t) implies [state(A) state(t)]
D
time
A
B
C
D
11
Explicit time-tables (E)
• A(I) max(0, endmin(A) start(I))
• A(I) max(0, end(I) startmax(A))
• (I) end(I) start(I)
• (A) durationmin(A)
• WA(I) min(A(I), A(I), (I), (A))
• AWA(I) * capacity(A)] capacity(I)
12
Explicit time-tables (E)
A B
time
C
13
Explicit time-tables: 2 models
• Discrete array
• Sequential table or binary tree
time
A
B
C
D
1
Explicit time-tables: extensions
• Minimal capacity constraints (UDE)
• Default state (S)
• Constraints between time-tables or between time-tables and other variables (UDES)
15
Disjunctive constraints (U)
• [end(A) start(B)]
OR [end(B) start(A)]
• [endmin(A) startmax(B)]
implies [end(B) start(A)]
• [endmin(B) startmax(A)]
implies [end(A) start(B)]
16
Disjunctive constraints (U)
• Optional activities– Resource alternatives
– Sub-contracts
• Transition times– Tool setups
– Color changes
– Cleaning
17
Disjunctive constraints (U)
• [end(A) ttime(A, B) start(B)]
OR [end(B) ttime(B, A) start(A)]
OR [duration(A) 0]
OR [duration(B) 0]
OR [capacity(A) 0]
OR [capacity(B) 0]
18
Disjunctive constraints (D)
Redundant (but insufficient!) constraint
[end(A) start(B)]
OR [end(B) start(A)]
OR [duration(A) 0]
OR [duration(B) 0]
OR [capacity(A) capacity(B) capacity]
19
Disjunctive constraints (S)
• [end(A) ttime(A, B) start(B)]
OR [end(B) ttime(B, A) start(A)]
OR [duration(A) 0]
OR [duration(B) 0]
OR [state(A) state(B)]
20
Energetic reasoning (UD)
• A(I) max(0, endmin(A) start(I))
• A(I) max(0, end(I) startmax(A))
• (I) end(I) start(I)
• (A) durationmin(A)
• WA(I) min(A(I), A(I), (I), (A))
• AWA(I) * capacity(A)] capacity(I)
21
Energetic reasoning (UD)
• Habographs [Beck 92]– Intervals: [i .. j) or [i .. j)
• Energetic resources [Le Pape 94]– Intervals: [i .. (i1)) or [i .. (i1))
• Energetic reasoning rules [Lopez 91]– Intervals: [startmin(A) .. endmax(B)) or [startmin(A) .. x)
22
Energetic reasoning (U)
• I [startmin(A) .. endmax(B))
• (I) CA,BWC(I) (A) (B)
implies [end(B) start(A)]
A[1..8 2 3..10]
B[0..3 2 2..5]
C[2..4 1 3..5]
I [1 .. 5)
[4 1 2 2] implies [2 start(A)]
23
Energetic reasoning (U)
• start(I) startmin(A)
• (I) CAWC(I) min((A), (I))
implies [start(I) CAWC(I) start(A)]
A[0..11 6 6..17]
B[1..7 4 5..11]
C[1..8 3 4..11]
I [0 .. 11)
[11 4 3 6] implies [7 start(A)]
2
Edge finding (U)
• Basic ideaProve that an activity A executes before (or after) a set of other activities
• Notationssmin() minB startmin(B)
emax() maxB endmax(B)
dmin() B durationmin(B)
25
Edge finding (U)
• emax() smin({A}) dmin({A})
implies [smin(') dmin(') start(A)]
for every ' included in
A[0..11 6 6..17]
B[1..7 4 5..11]
C[1..8 3 4..11]
{B C}
[11 0 13] implies [1 7 start(A)]
26
Edge finding (U)
• Jackson's Preemptive Schedule [Pinson 88] [Carlier & Pinson 90/94]– O(n2) O(n*log(n))
• Iterative algorithm [Nuijten 93/94]– O(n2) with no specific data structure
• Task intervals [Caseau & Laburthe 94]– O(n3)
– Incremental
– More deductions more precise time-bounds
27
Edge finding (U)
• "Not-first" deduction rule
emax() smin(A) dmin({A})
implies [minB(smin() dmin()) start(A)]
• [Nuijten 94] [Caseau & Laburthe 94]• [Baptiste & Le Pape 96]: Complete application in
O(n2) time and O(n) space
28
Edge finding (U)
• "Not-first" deduction rule with knapsack smin(A) dmin({A}) emax() 0
implies [min' | '(smin(') dmin(')) start(A)]
with (') defined as [ ' OR dmin(')]
• Complete application in exponential time (includes the NP-complete knapsack problem)
• Partial application [Caseau & Laburthe 95]
29
Comparison
• Theoretical results– Unique fixpoint semantics– Modelling power– Time and space complexity– Pruning power
• Experimental results
30
Unique fixpoint semantics
Time-tables YES arc-consistency (bounds)
Disjunctive constraints YES arc-consistency (bounds)
Habographs YES arc-consistency (bounds)
Energetic resources YES arc-consistency (bounds)
Energetic rules NO [Baptiste 95]
Edge finding [CP90/94] YES proof in [Pinson 88]
Edge finding [N93] YES proof in [Nuijten 94]
Task intervals [CL94] NO [Baptiste & Le Pape 95]
31
Modelling power (as of today)
Explicittime-tables
Disjunctiveconstraints
Taskintervals
Energeticresources
Habographs
Energetic rulesEdge finding
32
Time and space complexity
Time-tables O(n*h) O(n2) Incr. O(h) O(n)
Disjunctive constraints O(n2) Incr. O(n)
Habographs O(n*(h/)2) Incr. O((h/)2)
Energetic resources O(n*h/) O(n2) Incr. O(h/) O(n)
Energetic rules O(n3) O(n)
Edge finding [CP90/94] O(n2) O(n*log(n)) O(n)
Edge finding [N93] O(n2) O(n)
Task intervals [CL94] O(n3) Incr. O(n2)
33
Pruning power (U)
Edge finding+ not-first/not-last
Disjunctiveconstraints
Edge finding+ disjunctive
Energeticrules
Edge finding(basic)
Explicittime-tables
Energeticresources
Habographs
3
MT06 CAR1 CAR2 CAR3 CAR4 CAR5 CAR6 CAR7 CAR8 MT10
Edge finding [Nuijten et al 93] Number of fails CPU time
Energetic reasoning [Erschler et al 91] Number of fails CPU time
Experiments (10/80)
25
210
215