1 / 36

Resource Constraint Propagation (Preemptive Case)

Resource Constraint Propagation (Preemptive Case). Outline. Constraint propagation models Explicit time-tables Disjunctive constraints Energetic reasoning Edge finding (task intervals) Network flows Comparison. Constraint propagation models. Explicit time-tables Disjunctive constraints

sivan
Download Presentation

Resource Constraint Propagation (Preemptive Case)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Resource Constraint Propagation(Preemptive Case)

  2. Outline • Constraint propagation models • Explicit time-tables • Disjunctive constraints • Energetic reasoning • Edge finding (task intervals) • Network flows • Comparison

  3. Constraint propagation models • Explicit time-tables • Disjunctive constraints • Energetic reasoning • Edge finding (task intervals) • Network flows

  4. A B A B time A B C Explicit time-tables (UD) • WA(t) = [tÎset(A)] • "t, SA [WA(t) * capacity(A)] £ capacity(t)

  5. B A A C A time A B C Explicit time-tables (S) • WA(t) = [tÎset(A)] • "t, WA(t) implies [state(A) = state(t)]

  6. Explicit time-tables (E) • pos(A) = {t such that WA(t) can be 1} • slack(A) = |pos(A)| - durationmin(A) • necA(I) = {tÎI such that WA(t) is 1} • posA(I) = {tÎI such that WA(t) can be 1} • WA(I) = max(|necA(I)|, |posA(I)| - slack(A)) • SA [WA(I) * capacity(A)] £ capacity(I)

  7. Explicit time-tables: extensions • Minimal capacity constraints (UDE) • Default state (S) • Constraints between time-tables or between time-tables and other variables (UDES)

  8. Disjunctive constraints (U) • "t, [tÏset(A)] OR [tÏset(B)] • Redundant constraint [start(A) + duration(A) + duration(B) £ end(B)] OR [start(B) + duration(B) + duration(A) £ end(A)] OR [start(A) + duration(A) + duration(B) £ end(A)] OR [start(B) + duration(B) + duration(A) £ end(B)] • Remove third disjunct if B cannot interrupt A • Remove fourth disjunct if A cannot interrupt B

  9. Disjunctive constraints (U) • Optional activities • Resource alternatives • Sub-contracts • Transition times • Tool setups • Color changes • Cleaning

  10. Disjunctive constraints (U) "(tA tB) such that [tB£ tA + ttime(A, B)] and [tA£ tB+ ttime(B, A)] [tAÏset(A)] OR [tBÏset(B)] OR [capacity(A) = 0] OR [capacity(B) = 0]

  11. Disjunctive constraints (U) Redundant constraint • duration(AèB) = duration(A) + ttime(A, B) + duration(B) • duration(AèBèA) = duration(AB) + ttime(B, A) • [start(A) + duration(AèB) £ end(B)] OR [start(B) + duration(BèA) £ end(A)] OR [start(A) + duration(AèBèA) £ end(A)] OR [start(B) + duration(BèAèB) £ end(B)] OR [capacity(A) = 0] OR [capacity(B) = 0]

  12. Disjunctive constraints (D) Redundant (but insufficient!) constraints • "t, [tÏset(A)] OR [tÏset(B)] OR [capacity(A) + capacity(B) £ capacity] • [start(A) + duration(A) + duration(B) £ end(B)] OR [start(B) + duration(B) + duration(A) £ end(A)] OR [start(A) + duration(A) + duration(B) £ end(A)] OR [start(B) + duration(B) + duration(A) £ end(B)] OR [capacity(A) + capacity(B) £ capacity]

  13. Disjunctive constraints (S) "(tA tB) such that [tB£ tA + ttime(A, B)] and [tA£ tB+ ttime(B, A)] [tAÏset(A)] OR [tBÏset(B)] OR [state(A) = state(B)]

  14. Disjunctive constraints (S) Redundant constraint • duration(AèB) = duration(A) + ttime(A, B) + duration(B) • duration(AèBèA) = duration(AB) + ttime(B, A) • [start(A) + duration(AèB) £ end(B)] OR [start(B) + duration(BèA) £ end(A)] OR [start(A) + duration(AèBèA) £ end(A)] OR [start(B) + duration(BèAèB) £ end(B)] OR [state(A) = state(B)]

  15. Energetic reasoning (UD) • pos(A) = {t such that WA(t) can be 1} • slack(A) = |pos(A)| - durationmin(A) • necA(I) = {tÎI such that WA(t) is 1} • posA(I) = {tÎI such that WA(t) can be 1} • WA(I) = max(|necA(I)|, |posA(I)| - slack(A)) • SA [WA(I) * capacity(A)] £ capacity(I)

  16. Energetic reasoning (UD) • Habographs • Intervals: [id .. jd) or [b + id .. b + jd) • Energetic resources • Intervals: [id .. (i+1)d) or [b + id .. b + (i+1)d) • Energetic reasoning rules • Intervals: [startmin(A) .. x) or [x .. endmax(A))

  17. Energetic reasoning (U) • start(I) = startmin(A) • d(I) = end(I) - start(I) • d(A) = durationmin(A) • d(I) <SC<>AWC(I) + min(d(A), d(I)) • implies • [start(I) +SC<>AWC(I) +d(A) £ end(A)]

  18. Energetic reasoning (U) 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 [13 £ end(A)]

  19. Edge finding (U) • Basic idea Prove that an activity A starts before (or ends after) a set of other activities W • Notations smin(W) = minBÎW startmin(B) emax(W) = maxBÎW endmax(B) dmin(W) =SBÎW durationmin(B)

  20. Edge finding (U) emax(W) < smin(W + {A}) + dmin(W + {A}) • implies • [smin(W' + {A}) + dmin(W' + {A}) £ end(A)] • for every W' included in W

  21. Edge finding (U) A[0..11 - 6 - 6..17] B[1..7 - 4 - 5..11] C[1..8 - 3 - 4..11] W= {B C} [11 < 0 + 13] implies [0 + 13 £ end(A)]

  22. Edge finding (U) • Jackson's Preemptive Schedule [Baptiste 95] • Generalization of [Pinson 88] [Carlier & Pinson 90] to the mixed case • Iterative algorithm [Le Pape & Baptiste 96] • Generalization of [Nuijten 93/94] to the mixed case • No specific data structure • More deductions: emax(W) = smin(W + {A}) + dmin(W) implies [emax(W) £ start(A)]

  23. Edge finding characterization (U) • When A is notpreemptable, computes: • the earliest time at which A could start • the latest time at which A could end if all the other activities were preemptable • When A is preemptable, computes: • the earliest time at which A could end • the latest time at which A could start if all the other activities were preemptable

  24. Network flows (U) Bipartite graph G(X, Y, E) for each resource R • X = set of activities which require R • Y = partition of the time horizon into n intervals [si ei), with ei= si+1, such that the set {s1 ... sn en} includes all the time points at which information about Wx(t), xÎX, changes • E = set of pairs (x, y), xÎX, yÎY, such that x can execute during y

  25. Network flows (U) A[0..5 - 5 - 5..10] B[0..8 - 4 - 7..12] [0 3) forbidden interval [3 6) A [3 5) C[5..12 - 3 - 14..15] B [5 6) forbidden interval [6 12) C [6 10) D[0..13 - 2 - 2..15] D [10 12) forbidden interval [3 6) [12 15)

  26. Network flows (U) • Minimal and maximal edge valuations "(x,y)ÎE, cmin(x, y) = |y| if x is constrained to execute over y, cmin(x, y) = 0 otherwise "(x,y)ÎE, cmax(x, y) = |y|

  27. Network flows (U) • The resource constraint is satisfiable if and only if there exists a compatible flow f such that: "xÎX, Sy such that (x, y)ÎE f(x, y) = duration(x) "yÎY, Sx such that (x, y)ÎE f(x, y) £ |y| "(x,y)ÎE, cmin(x, y) £ f(x, y) £ cmax(x, y)

  28. Network flows (U) A[0..5 - 5 - 5..10] B[0..8 - 4 - 7..12] [0 3) forbidden interval [3 6) A [3 5) C[5..12 - 3 - 14..15] B [5 6) forbidden interval [6 12) C [6 10) D[0..13 - 2 - 2..15] D [10 12) forbidden interval [3 6) [12 15) 3 2 4 2 3

  29. Network flows (U) • Adjustment of edge capacities (AEC) For each edge (x, y), determine the minimal flow fmin(x, y) and the maximal flow fmax(x, y) that can pass through (x, y) fmax(x, y) = 0 implies "tÎy, Wx(t) = 0 fmin(x, y) = |y| implies "tÎy, Wx(t) = 1 fmin(x, [si ei)) = d > 0 implies [start(x) £ ei- d] fmin(x, [si ei)) = d > 0 implies [si+ d £ end(x)]

  30. Network flows (U) • Global update of time bounds (GUTB) • Given activity x, find the minimal integer k such that there exists a compatible flow with f(x, yi) = 0 for k < i • Find the minimal flow fmin(x, yk) under the constraint f(x, yi) = 0 for k < i • Under these conditions, sk+ fmin(x, yk) is the best possible earliest end time for x

  31. Comparison • Theoretical results • Unique fixpoint semantics • Modelling power • Time and space complexity • Pruning power • Experimental results

  32. Unique fixpoint semantics Time-tables YES arc-consistency (bounds) Disjunctive constraints YES arc-consistency (bounds) Edge finding [B95] YES proof in [Baptiste 95] Network flows (AEC) YES arc-consistency (bounds) Network flows (GUTB) YES arc-consistency (bounds)

  33. Habographs Energetic resources Explicit time-tables Energetic rules Edge finding Modelling power (as of today) Disjunctive constraints Network flows

  34. Time and space complexity Time-tables O(ni*h) O(ni2) Incr. O(h) O(ni) Disjunctive constraints O(ni2) Incr. O(ni) Habographs O(ni*(h/d)2) Incr. O((h/d)2) Energetic resources O(ni*h/d) O(ni2) Incr. O(h/d) O(ni) Energetic rules O(ni3) O(ni) Edge finding [B95] O(ni2) O(ni) Edge finding [LB96] O(ni2) O(ni) Network flows (AEC) O(ni3*h) Incr. O(ni2) Network flows (GUTB) O(ni3*h) Incr. O(ni2)

  35. Edge-finding (+ startmin / endmax) Network flows (GUTB on all bounds) Habographs Edge finding (basic) Disjunctive constraints (with redundant) Energetic resources Explicit time-tables Disjunctive constraints (standard) Pruning power (U)

  36. 215 210 25 Experiments (10/43) MT06 CAR1 CAR2 CAR3 CAR4 CAR5 CAR6 CAR7 CAR8 MT10 Disjunctive constraint [Baptiste 95] Number of fails CPU time (RS6000) Network flow (GUTB) [Baptiste 95] Number of fails CPU time (RS6000) Edge finding [Le Pape & Baptiste 96] Number of fails CPU time (PC)

More Related