1 / 16

Motivation

Motivation. Problem formulation should change to accommodate changes in real world! Some examples: delayed trains, flights, … broken machines, ill workers, … new demands, … interactive solvers, …. Problem area. Dynamic CSP:

aelwen
Download Presentation

Motivation

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. Motivation Problem formulation should change to accommodate changes in real world! • Some examples: • delayed trains, flights, … • broken machines, ill workers, … • new demands, … • interactive solvers, …

  2. Problem area Dynamic CSP: • constraints can be added to and retracted from the constraint model dynamically in an arbitrary order Solving approaches: • robust solutions (still valid after small changes) • new solutions with minimal perturbations (changes) • reusing the original solutions for a new solution • reusing the reasoning process • maintaining maximal arc consistency after constraint addition or retraction

  3. Current situation Dynamic versions of AC algorithms • AC-4  DnAC-4 • fast but large memory consumption • AC-6  DnAC-6 • fast but still large memory consumption • so far fastest algorithm for maintaining dynamic AC • AC-3  AC|DC • low memory consumption but slow • AC-3.1  AC-3.1|DC • substitutes AC-3 in AC|DC by an optimal AC algorithm

  4. Constraint retractionbase approach • restore values that were deleted when propagating through the retracted constraint • propagate domain extensions to other variables (like reverted AC) • algorithms differ in how many values are returned back to domains • remove inconsistencies via “standard” arc consistency algorithms • algorithms differ in used AC algorithm

  5. Our approach • improve practical time efficiency ofAC|DC while keeping low memory consumption • using an optimal (fine-grained) AC algorithm increases memory consumption (AC-3.1|DC) • restore only the most promising values(our experiments showed that AC|DC restores many values that are immediately deleted by AC) How? • use information about the reason and “time” of value removal

  6. Removal information When and why a given value has been removed? • Justification • the first neighboring variable in which the eliminated valuelost all supports (like in DnAC) • Removal time • when the variable was eliminated(a continual counter of all deleted values) Usage:A value V is restored if the neighboring variable • is justification for the value V • has a restored supporter for the value V • has a restored value that has been eliminatedbefore V new

  7. Exampleinitial pruning Constraints are incrementally added to the problem and AC is established after each step B=D (1) B: 2/D6 3/D9 4 D: 1/B1 2/C5 3/C8 4 C=D (3) C: 1/A3 2/A4 3/E7 4 C≠E (4) A<C (2) A: 2 3 4/C2 E: 3 order number when the constraint is added justification for value removalVariableTime

  8. Exampleconstraint retraction Constraint A<C is removed from the problem B=D (1) B: 2/D6 3/D9 4 D: 1/B1 2/C5 3/C8 4 C=D (3) C: 1 2 3/E7 4 C≠E (4) A: 2 3 4 E: 3 These values are returned to domains because they were deleted when propagating via the retracted constraint

  9. Examplepropagation Propagate extended domains B=D B: 2 3/D9 4 D: 1/B1 2 3/C8 4 C=D C: 1 2 3/E7 4 C≠E A: 2 3 4 E: 3 AC is re-established at the end again B=D B: 2 3/D9 4 D: 1/B1 2 3/C8 4 C=D C: 1/D10 2 3/E7 4 C≠E A: 2 3 4 E: 3

  10. The algorithmmodified AC-3 functionpropagate-ac3'(P, data, revise) 1 queue := revise 2 while queue not empty do 3 select and remove a constraint c from queue 4 {u,v} := the variables constrained by c 5 (P,data,revise_u) := filter-arc-ac3'(P, data, c, u, v) 6 (P,data,revise_v) := filter-arc-ac3'(P, data, c, v, u) 7 queue := queue  revise_u  revise_v 8 return (P,data) function filter-arc-ac3'(P, data, c, u, v) 1 modified := false 2 for each d in P.D[u] do 3 if d has no support in P.D[v] w.r.t. c then 4 P.D[v] := P.D[v] - {d} 5 data.justif[u,d].var := v 6 data.justif[u,d].time := data.time 7 data.time := data.time + 1 8 modified := true 9 ifnot modified then 10 return (P,data,Ø) 11 return (P,data,{e in P.C|u is constrained by e and e≠c}) new

  11. The algorithminitialization function retract-constraint-ac|dc2(P, data, c) 1 (P,data,restored_u) := 2 initialize-ac|dc2(P, data, c, u, v) 3 (P,data,restored_v) := 4 initialize-ac|dc2(P, data, c, v, u) 5 P.C := P.C - {c} 6 (P,data,revise) := 7 propagate-ac|dc2(P, data,{restored_u,restored_v}) 8 (P,data) := propagate-ac3'(P, data, revise) 9 return (P,data) function initialize-ac|dc2(P, data, c, u, v) 1 restored_u := Ø 2 time_u :=  3 for each d in (P.D0[u] - P.D[u]) do 4 if data.justif[u,d].var = v then 5 P.D[u] := P.D[u]  {d} 6 data.justif[u,d].var := NIL 7 restored_u := restored_u  {d} 8 time_u := min(time_u, data.justif[u,d].time) 9 return (P,data,(u,time_u,restored_u)) new

  12. The algorithmpropagation function propagate-ac|dc2(P, data, restore) 1 revise := Ø 2 while restore not empty do 3 select and remove (u,time_u,restored_u) from restore 4 for each c in P.C|u is constrained by c do 5 {u,v} := the variables constrained by c 6 restored_v := Ø 7 time_v :=  8 for each d in (P.D0[v] - P.D[v]) do 9 if data.justif[v, d].var = u then 10 if data.justif[v, d].time > time_u then 11 if d has a support in restored_u w.r.t. c then 12 P.D[v] := P.D[v]  {d} 13 data.justif[v,d].var := NIL 14 restored_v := restored_v  {d} 15 time_v := min(time_v, data.justif[v,d].time) 16 restore := restore  {(v,time_v,restored_v)} 17 revise := revise  {e in P.C|u is constrained by e}) 18 return (P,data,revise) new

  13. Experimentsconstraint checks RCSP 100, 50, 0.3, p2 Consistent states Inconsistent states AC|DC • AC|DC-2 DnAC-6 (tightness) constraints added incrementally until a given density reached or inconsistency detected and after that 10% of randomly selected constraints retracted

  14. Experimentsruntime comparison RCSP 100, 50, 0.3, p2 Consistent states Inconsistent states AC|DC • AC|DC-2 DnAC-6 (tightness) constraints added incrementally until a given density reached or inconsistency detected and after that 10% of randomly selected constraints retracted

  15. Experimentsmemory consumption RCSP 100, d, 0.3, p2 NOTE: includes extensional representation of the constraints that is almost identical to memory consumption of AC|DC and AC|DC-2!

  16. A New Algorithm for Maintaining Arc Consistencyafter Constraint Retraction Pavel Surynek and Roman Barták Charles University, Prague pavel.surynek@seznam.cz roman.bartak@mff.cuni.cz

More Related