Download presentation
Presentation is loading. Please wait.
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
4
Unary resources AB 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 D time 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 AB time C
8
Constraint propagation models Explicit time-tables Disjunctive constraints Energetic reasoning Edge finding (task intervals)
9
Explicit time-tables (UD) W A (t) [start(A) t end(A)] t, A W A (t) * capacity(A)] capacity(t) AB C time C
10
Explicit time-tables (S) W A (t) [start(A) t end(A)] t, W A (t) implies [state(A) state(t)] D time A B C D
11
Explicit time-tables (E) A (I) max(0, end min (A) start(I)) A (I) max(0, end(I) start max (A)) (I) end(I) start(I) (A) duration min (A) W A (I) min( A (I), A (I), (I), (A)) A W A (I) * capacity(A)] capacity(I)
12
Explicit time-tables (E) AB time C
13
Explicit time-tables: 2 models Discrete array Sequential table or binary tree time A B C D
14
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)] [end min (A) start max (B)] implies [end(B) start(A)] [end min (B) start max (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, end min (A) start(I)) A (I) max(0, end(I) start max (A)) (I) end(I) start(I) (A) duration min (A) W A (I) min( A (I), A (I), (I), (A)) A W A (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 .. (i 1) ) or [ i .. (i 1) ) Energetic reasoning rules [Lopez 91] –Intervals: [start min (A).. end max (B)) or [start min (A).. x)
22
Energetic reasoning (U) I [start min (A).. end max (B)) (I) C A,B W C (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) start min (A) (I) C A W C (I) min( (A), (I)) implies [start(I) C A W C (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)]
24
Edge finding (U) Basic idea Prove that an activity A executes before (or after) a set of other activities Notations s min ( ) min B start min (B) e max ( ) max B end max (B) d min ( ) B duration min (B)
25
Edge finding (U) e max ( ) s min ( {A}) d min ( {A}) implies [s min ( ') d min ( ') 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(n 2 ) O(n*log(n)) Iterative algorithm [Nuijten 93/94] –O(n 2 ) with no specific data structure Task intervals [Caseau & Laburthe 94] –O(n 3 ) –Incremental –More deductions more precise time-bounds
27
Edge finding (U) "Not-first" deduction rule e max ( ) s min (A) d min ( {A}) implies [min B (s min ( ) d min ( )) start(A)] [Nuijten 94] [Caseau & Laburthe 94] [Baptiste & Le Pape 96]: Complete application in O(n 2 ) time and O(n) space
28
Edge finding (U) "Not-first" deduction rule with knapsack s min (A) d min ( {A}) e max ( ) implies [min ' | ' (s min ( ') d min ( ')) start(A)] with ( ') defined as [ ' OR d min ( ')] 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) Explicit time-tables Disjunctive constraints Task intervals Energetic resources Habographs Energetic rules Edge finding
32
Time and space complexity Time-tables O(n*h) O(n 2 ) Incr.O(h) O(n) Disjunctive constraints O(n 2 )Incr.O(n) Habographs O(n*(h/ ) 2 )Incr.O((h/ ) 2 ) Energetic resources O(n*h/ ) O(n 2 )Incr.O(h/ ) O(n) Energetic rules O(n 3 )O(n) Edge finding [CP90/94] O(n 2 ) O(n*log(n))O(n) Edge finding [N93] O(n 2 )O(n) Task intervals [CL94] O(n 3 )Incr.O(n 2 )
33
Pruning power (U) Edge finding + not-first/not-last Disjunctive constraints Edge finding + disjunctive Energetic rules Edge finding (basic) Explicit time-tables Energetic resources Habographs
34
MT06 CAR1 CAR2 CAR3 CAR4 CAR5 CAR6 CAR7 CAR8 MT10 Edge finding [Nuijten et al 93] Number of failsCPU time Energetic reasoning [Erschler et al 91] Number of failsCPU time Experiments (10/80) 2525 2 10 2 15
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.