resource constraint propagation (non-preemptive case)

34
1 Resource Constraint Propagation (Non-Preemptive Case)

Post on 20-Dec-2015

236 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Resource Constraint Propagation (Non-Preemptive Case)

1

Resource Constraint Propagation(Non-Preemptive Case)

Page 2: 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

Page 3: Resource Constraint Propagation (Non-Preemptive Case)

3

Classes of resources

• Unary resources

• Discrete resources

• State resources

• Energetic resources

Page 4: Resource Constraint Propagation (Non-Preemptive Case)

Unary resources

A B

C

time

• Main resources in 4/10 problems

• Example: one individual machine or person

Page 5: Resource Constraint Propagation (Non-Preemptive Case)

5

Discrete resources

• Main resources in 5/10 problems

• Example: group of identical machines

A

B

Dtime

C

Page 6: Resource Constraint Propagation (Non-Preemptive Case)

6

State resources

• Main resources in 1/20 problems

• Example: oven with different temperatures

D

time

A

B

C

Page 7: Resource Constraint Propagation (Non-Preemptive Case)

7

Energetic resources

• Main resources in 1/20 problems

• Example: number of man-days per week

A B

timeC

Page 8: Resource Constraint Propagation (Non-Preemptive Case)

8

Constraint propagation models

• Explicit time-tables

• Disjunctive constraints

• Energetic reasoning

• Edge finding (task intervals)

Page 9: Resource Constraint Propagation (Non-Preemptive Case)

9

Explicit time-tables (UD)

• WA(t) [start(A) t end(A)]

• t, AWA(t) * capacity(A)] capacity(t)

A B

C

time

C

Page 10: Resource Constraint Propagation (Non-Preemptive Case)

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

Page 11: Resource Constraint Propagation (Non-Preemptive Case)

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)

Page 12: Resource Constraint Propagation (Non-Preemptive Case)

12

Explicit time-tables (E)

A B

time

C

Page 13: Resource Constraint Propagation (Non-Preemptive Case)

13

Explicit time-tables: 2 models

• Discrete array

• Sequential table or binary tree

time

A

B

C

D

Page 14: Resource Constraint Propagation (Non-Preemptive Case)

1

Explicit time-tables: extensions

• Minimal capacity constraints (UDE)

• Default state (S)

• Constraints between time-tables or between time-tables and other variables (UDES)

Page 15: Resource Constraint Propagation (Non-Preemptive Case)

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)]

Page 16: Resource Constraint Propagation (Non-Preemptive Case)

16

Disjunctive constraints (U)

• Optional activities– Resource alternatives

– Sub-contracts

• Transition times– Tool setups

– Color changes

– Cleaning

Page 17: Resource Constraint Propagation (Non-Preemptive Case)

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]

Page 18: Resource Constraint Propagation (Non-Preemptive Case)

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]

Page 19: Resource Constraint Propagation (Non-Preemptive Case)

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)]

Page 20: Resource Constraint Propagation (Non-Preemptive Case)

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)

Page 21: Resource Constraint Propagation (Non-Preemptive Case)

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)

Page 22: Resource Constraint Propagation (Non-Preemptive Case)

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)]

Page 23: Resource Constraint Propagation (Non-Preemptive Case)

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)]

Page 24: Resource Constraint Propagation (Non-Preemptive Case)

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)

Page 25: Resource Constraint Propagation (Non-Preemptive Case)

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)]

Page 26: Resource Constraint Propagation (Non-Preemptive Case)

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

Page 27: Resource Constraint Propagation (Non-Preemptive Case)

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

Page 28: Resource Constraint Propagation (Non-Preemptive Case)

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]

Page 29: Resource Constraint Propagation (Non-Preemptive Case)

29

Comparison

• Theoretical results– Unique fixpoint semantics– Modelling power– Time and space complexity– Pruning power

• Experimental results

Page 30: Resource Constraint Propagation (Non-Preemptive Case)

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]

Page 31: Resource Constraint Propagation (Non-Preemptive Case)

31

Modelling power (as of today)

Explicittime-tables

Disjunctiveconstraints

Taskintervals

Energeticresources

Habographs

Energetic rulesEdge finding

Page 32: Resource Constraint Propagation (Non-Preemptive Case)

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)

Page 33: Resource Constraint Propagation (Non-Preemptive Case)

33

Pruning power (U)

Edge finding+ not-first/not-last

Disjunctiveconstraints

Edge finding+ disjunctive

Energeticrules

Edge finding(basic)

Explicittime-tables

Energeticresources

Habographs

Page 34: Resource Constraint Propagation (Non-Preemptive Case)

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