410 likes | 546 Views
Sweep Based Algorithms for Constraint Propagation Nicolas Beldiceanu SICS Lägerhyddsvägen 18 75237 Uppsala email: nicolas@sics.se. SICS Seminar, May 29 2001. Outline of the Presentation. INTRODUCTION Sweep Algorithms in Computational Geometry Main Ideas of Sweep Algorithms
E N D
Sweep Based Algorithms for Constraint PropagationNicolas BeldiceanuSICSLägerhyddsvägen 1875237 Uppsalaemail: nicolas@sics.se SICS Seminar, May 29 2001
Outline of the Presentation INTRODUCTION • Sweep Algorithms in Computational Geometry • Main Ideas of Sweep Algorithms CONJUNCTION OF CONSTRAINTS • Representing an Elementary Constraint: Forbidden Regions • The Sweep Algorithm CARDINALITY OPERATOR • Representing an Elementary Constraint: Forbidden and Safe Regions • The Sweep Algorithm NON-OVERLAPPING CONSTRAINT BETWEEN CONVEX POLYGONS • The Forbidden Polygon • The Sweep Algorithm CUMULATIVES CONSTRAINT • Definition of the Cumulatives Constraint • The Sweep Algorithm SUMMARY AND CONCLUSION
INTRODUCTION • Sweep Algorithms in Computational Geometry • Main Ideas of Sweep Algorithms CONJUNCTION OF CONSTRAINTS • Representing an Elementary Constraint: Forbidden Regions • The Sweep Algorithm CARDINALITY OPERATOR • Representing an Elementary Constraint: Forbidden and Safe Regions • The Sweep Algorithm NON-OVERLAPPING CONSTRAINT BETWEEN CONVEX POLYGONS • The Forbidden Polygon • The Sweep Algorithm CUMULATIVES CONSTRAINT • Definition of the Cumulatives Constraint • The Sweep Algorithm SUMMARY AND CONCLUSION
Sweep Algorithms in Computational Geometry Standard technique in the design of efficient algorithms, described in: Computational geometry, an introduction [Preparata & Shamos, 1985] Computational Geometry, Algorithms and Applications [Berg, Kreveld, Overmars & Schwarzkopf, 1997] Géométrie algorithmique [Boissonnat & Yvinec, 1995]
Applications of Sweep Algorithms Within theGeometry Literature Database, more than 100 references: • Voronoi diagram • Map overlay • Nearest objects • Triangulations • Hidden surface removals • Rectangles intersection • Shortest path But not yet used within constraint programming !
Applications of Sweep Algorithms within Constraint Programming Pruning for the following constraint patterns: • A conjunction of constraints with two sharedvariables • The cardinality operator with two sharedvariables • The non-overlapping constraint between polygons • A multi-resource cumulatives constraint
sweep line Steps of the sweep algorithm: event point y (1) (1)Move to the next eventpoint (2)Update the sweep line status: start events: end events: (2) sweep line status x Main Ideas of Sweep Algorithms(in the context of line segment intersection) GOAL: the worst case complexity should also depend of the number of intersections
INTRODUCTION • Sweep Algorithms in Computational Geometry • Main Ideas of Sweep Algorithms CONJUNCTION OF CONSTRAINTS • Representing an Elementary Constraint: Forbidden Regions • The Sweep Algorithm CARDINALITY OPERATOR • Representing an Elementary Constraint: Forbidden and Safe Regions • The Sweep Algorithm NON-OVERLAPPING CONSTRAINT BETWEEN CONVEX POLYGONS • The Forbidden Polygon • The Sweep Algorithm CUMULATIVES CONSTRAINT • Definition of the Cumulatives Constraint • The Sweep Algorithm SUMMARY AND CONCLUSION
Y X 4 3 2 1 0 0 1 2 3 4 Forbidden Regions DEFINITIONforbidden region according to a constraint Ctr and two variables X,Y of Ctr : Two intervals inf_x..sup_x and inf_y..sup_y such that: For all x in inf_x..sup_x, y in inf_y..sup_y: Ctr with the assignmentX=x andY=y is false. EXAMPLE forbidden regions of alldifferent({X,Y,R}) according to X and Y:
4 4 4 4 4 3 3 3 3 3 2 2 2 2 2 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4 Examples of Forbidden Regions Y Y Y Y Y X X X X X 0X4 0Y4 0R9 0X4 0Y4 0X4 0Y4 1S6 0X4 0Y4 0T2 0U3 0X4 0Y4 X+2T T+3X Y+4U U+2Y alldifferent({X,Y,R}) |X-Y|>2 X+2YS X+Y0 (mod 2) (A) (B) (C) (D) (E)
4 4 4 4 3 3 3 3 2 2 2 2 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4 Primitives for Getting Forbidden Regions on Request Y Y max(Y) get_first_forbidden_regions(X,Y,Ctr) get_next_forbidden_regions(X,Y,Ctr,Previous) get_last_forbidden_regions(X,Y,Ctr) get_prev_forbidden_regions(X,Y,Ctr,Previous) check_if_in_forbidden_regions(x,y,Ctr) min(Y) X X Y max(X) min(X) get_first_forbidden_regions X+Y0 (mod 2) X Y get_next_forbidden_regions X get_next_forbidden_regions
sweep line event point Y CTR1(X,Y,…) CTR2(X,Y,…) ……………… CTRn(X,Y,…) sweep line status Is min(X) feasible ? No, so move the sweep-line. X Basic Idea of Sweep Pruning Accumulates forbiden regions that come from different constraints involving two given variables X and Y
Sweep Line Status Y Y 1 2 1 1 1 1 sweep line status X X For each y dom(Y): number of forbidden regions containing the point (,y) Remove a value dom(X) if : for all y dom(Y) the number of forbidden regions is > 0
Possible Utilisations • Feasibility check Adjusting bounds Pruning values Y X Y X Y X
alldifferent({X,Y,R}) |X-Y|>2 X+2YS X+2T T+3X Y+4U U+2Y X+Y0 (mod 2) 4 3 2 1 0 An Example PROBLEM: Adjust minimum of X according to Y and to all following constraints: 0X4 0Y4 1S6 0T2 0U3 alldifferent({X,Y,R}) |X-Y|>2 X+2YS X+2T T+3XY+4U U+2Y X+Y0 (mod 2) Y X= 0
alldifferent({X,Y,R}) |X-Y|>2 X+2YS X+2T T+3X Y+4U U+2Y X+Y0 (mod 2) 4 4 3 3 2 2 1 1 0 0 An Example PROBLEM: Adjust minimum of X according to Y and to all following constraints: 0X4 0Y4 1S6 0T2 0U3 alldifferent({X,Y,R}) |X-Y|>2 X+2YS X+2T T+3XY+4U U+2Y X+Y0 (mod 2) Y Y x=0 X= 1
alldifferent({X,Y,R}) |X-Y|>2 X+2YS X+2T T+3X Y+4U U+2Y X+Y0 (mod 2) 4 4 4 4 4 3 3 3 3 3 2 2 2 2 2 1 1 1 1 1 0 0 0 0 0 An Example PROBLEM: Adjust minimum of X according to Y and to all following constraints: 0X4 0Y4 1S6 0T2 0U3 alldifferent({X,Y,R}) |X-Y|>2 X+2YS X+2T T+3XY+4U U+2Y X+Y0 (mod 2) Deduction: X>3 Y Y Y Y Y X=0 X=1 X=2 X=3 X= 4
X1,Y1 X2,Y2 • ARGUMENT • RESTRICTION(S) • VERTEXINPUT • VERTEXGENERATOR • EDGEINPUT • EDGEGENERATOR • EDGE ARITY • EDGE CONSTRAINT • GRAPH PROPERTY : OBJECTS: collection(X-dvar,Y-dvar,...) : required(OBJECTS.X,OBJECTS.Y) : OBJECTS : IDENTITY : OBJECTS : CLIQUE() : 2 : : NEDGE = |OBJECTS|.|OBJECTS| - |OBJECTS| X3,Y3 X4,Y4 Non-overlapping Scheduling with set-up Cyclic scheduling Typical Constraint Structure for Applying Sweep
Evaluation of the Filtering Algorithm forthe Non-Overlapping Rectangles Constraint Worst case complexity Memory consumption : n2 log(n) : no trail Empirical evaluation Incomparable rectangles Rectangles of same size Random small size Squares of sizes Mostly fixed Loose Set 1Set 2Set 3Set 4Set 5Set 6 cardinality113830 5110 508150 382870 9751490 1940 cons.disj. 5300 210 44190 16330 590890 10 diffn 600 140 690 1030 520 10 sweep260 170 30035012010 Time in msec for finding a first solution for 100 rectangles (SICStus Prolog gcc -O2 248Mhz UltraSPARC-II, Solaris 7)
INTRODUCTION • Sweep Algorithms in Computational Geometry • Main Ideas of Sweep Algorithms CONJUNCTION OF CONSTRAINTS • Representing an Elementary Constraint: Forbidden Regions • The Sweep Algorithm CARDINALITY OPERATOR • Representing an Elementary Constraint: Forbidden and Safe Regions • The Sweep Algorithm NON-OVERLAPPING CONSTRAINT BETWEEN CONVEX POLYGONS • The Forbidden Polygon • The Sweep Algorithm CUMULATIVES CONSTRAINT • Definition of the Cumulatives Constraint • The Sweep Algorithm SUMMARY AND CONCLUSION
: A Restricted Case of the cardinality Operator The cardinalityoperator, Van Hentenryck, P., Deville, Y. (ICLP 1991): n • Definition • Pruning : C = CTRj(V1,.., Vm ) j j=1 counting entailment : based on A restricted case of the cardinality operator : • Restriction • Pruning : 2 variables X and Y occur in each constraint CTRj considers interaction between constraints (through the shared variables)
4 3 2 1 0 0 1 2 3 4 Forbidden and Safe Regions DEFINITIONforbidden region according to a constraint Ctr and 2 variables X,Y of Ctr : Two intervals inf_x..sup_x and inf_y..sup_y such that: x inf_x..sup_x, y inf_y..sup_y: Ctr with the assignmentX=x andY=y isfalse. DEFINITIONsaferegion according to a constraint Ctr and 2 variables X,Y of Ctr : Two intervals inf_x..sup_x and inf_y..sup_y such that: x inf_x..sup_x, y inf_y..sup_y: Ctr with the assignmentX=x andY=y istrue. EXAMPLE Y 0 X 4 0 Y 4 1 S 6 X + 2Y S X
Y 1,0 1,1 0,1 0,1 1,0 1,0 X Sweep Line Status Y Safe regions Forbidden regions sweep line status X For each y dom(Y): number of safe regions number of forbidden regions containing the point (,y) Remove a value dom(X) if for all y dom(Y): nsafe[y]..nctrnforbidden[y] C =
alldifferent({X,Y,R}) |X-Y|>Z X+2YS X+1T T+1X Y+1U U+4Y X+Y0 (mod 2) 4 4 4 3 3 3 2 2 2 1 1 1 0 0 0 An Example PROBLEM: Adjust minimum of X according to Y and to the fact that 4 or 5 constraints should hold: 0X4 0Y4 2Z3 1S6 0T0 1U2 alldifferent({X,Y,R}) |X-Y|>Z X+2YS X+3T T+1XY+3U U+4Y X+Y0 (mod 2) Deduction: X>1 Y Y Y X=0 X=1 X=2
INTRODUCTION • Sweep Algorithms in Computational Geometry • Main Ideas of Sweep Algorithms CONJUNCTION OF CONSTRAINTS • Representing an Elementary Constraint: Forbidden Regions • The Sweep Algorithm CARDINALITY OPERATOR • Representing an Elementary Constraint: Forbidden and Safe Regions • The Sweep Algorithm NON-OVERLAPPING CONSTRAINT BETWEEN CONVEX POLYGONS • The Forbidden Polygon • The Sweep Algorithm CUMULATIVES CONSTRAINT • Definition of the Cumulatives Constraint • The Sweep Algorithm SUMMARY AND CONCLUSION
P1 Y X Translations of P1 with origin within D1 Polygon P1 with an origin X,Y D1 Polygon D1 for the domain of the origin of P1 A Family of Polygons
Shadow Polygon P1 P2 P2 Shadow polygon:P1 + (P2) If the origin of P2 is situated within the shadow polygon then P2 overlap P1 If the origin of P2 is situated outside the shadow polygon then P2 do not overlap P1
E1 E2 E4 E3 Extremum polygons of P1 according to its domain D1 Forbidden Polygon E1 E2 E3 E4 Forbidden(P1,P2) If the origin of P2 is situated within the forbidden polygon then P2 overlap any translation of P1 So, prune the origin variables of P2 with a sweep algorithm
GOAL: prune the x-coordinate Ox of the origin of P2 in order to avoid the origin to be located within Forbidden(P1,P2) Fupper(x0) Dupper(x0) P2 x0 Ox Dlower(x0) Flower(x0) Lx0 Domain(P2) Forbidden(P1,P2) PruningCondition NECESSARY CONDITION for pruning x0 from Ox: (Domain(P2)\Forbidden(P1, P2)• ) Lx0 does not contain any point with integer coordinates
Sweep Status: SweepAlgorithm(continuous case) • x0 • the 4 edges that are intersected by Lx0 the 4 y-coordinates of the intersected points Event points: Vertices of the two polygons Proper intersection between two edges
INTRODUCTION • Sweep Algorithms in Computational Geometry • Main Ideas of Sweep Algorithms CONJUNCTION OF CONSTRAINTS • Representing an Elementary Constraint: Forbidden Regions • The Sweep Algorithm CARDINALITY OPERATOR • Representing an Elementary Constraint: Forbidden and Safe Regions • The Sweep Algorithm NON-OVERLAPPING CONSTRAINT BETWEEN CONVEX POLYGONS • The Forbidden Polygon • The Sweep Algorithm CUMULATIVES CONSTRAINT • Definition of the Cumulatives Constraint • The Sweep Algorithm SUMMARY AND CONCLUSION
resource consumption 4 4 3 4 3 2 1 1 2 0 time resource consumption 7 0 6 Cumulated profiles 4 5 2 0 1 1 2 2 3 3 4 4 5 5 6 6 3 1 time 1 0 -1 2 1 0 -1 -2 The cumulative Constraint The originalcumulative constraint [Aggoun & Beldiceanu 92]: Restrict the resource consumption at each point in time. The generalizedcumulatives constraint [Beldiceanu & Carlsoon 01]: A pool of cumulative resources , Height of a task can be negative, Maximum or minimum resource consumption , Holds for time-points crossed by at least one task.
For all tasks : For all time-points crossed by task : Let be the machine where task is assigned , For all tasks that both cross point , and are assigned to : The sum of the height of tasks is not greater (less) than the capacity of machine . 1 2 3 4 5 6 1 0 -1 2 1 0 -1 -2 t i t D E F I N I T I O N m t s i m s m resource consumption 7 0 6 Machine 2 E X A M P L E 4 5 2 0 3 1 Machine 1 time
Sweep linestatus: Event points: number of tasks sum of the height start of each task end of each task that overlap the sweep line 4 3 2 1 0 5 The Sweep Algorithm: Fixed Tasks nb_task=1 sum_height=2 nb_task=2 sum_height=3 nb_task=0 sum_height=0 nb_task=1 sum_height=4 nb_task=0 sum_height=0 Sweep-line status resource Task 3 Task 2 Task 1 time Event points Minimum level to reach for those instants where there is at least one task 1 2 4 Current position of the sweep line: 3
The Sweep Algorithm: Not Yet Fixed Tasks QUESTION ANSWER ACTION : which instants to check ? : those instants for which there is a task that can cause a problem : count the number of such tasks that overlap the sweep line Preconditions for a Check Event max(origin[t])<min(end[t]) min(machine[t])=max(machine[t])=r max(height[t])<max(0,Limit[m]) machine[t] Start End : nb_task=nb_task+1 : nb_task=nb_task1
The Sweep Algorithm: Not Yet Fixed Tasks QUESTION ANSWER ACTION : how to build an ”optimistic” resource consumption profile ? : consider the ”bad” and ”good” tasks : sum up the height of such tasks that overlap the sweep line Preconditions for a Bad Profile Event max(origin[t]) < min(end[t]) min(machine[t]) = max(machine[t]) = r max(height[t]) < 0 r Start End : sum_height=sum_height+max(height[t]) : sum_height=sum_heightmax(height[t]) Preconditions for a Good Profile Event r r dom(machine[t]) max(height[t]) > 0 Start End : sum_height=sum_height+max(height[t]) : sum_height=sum_heightmax(height[t])
INITIALIZATION 1. Scan the tasks and generate the check and profile events 2. Sort the events in increasing order 3. Set nb_task and sum_height to 0 and d to the smallest date 4. while there still exist an event Edo MODIFY SWEEP STATUS 5. ifddate of Ethen 6. ifnb_task0 andsum_height<limit to reach thenreturn fail 7. Set d to date of E 8. if type of E=check then add E.inc to nb_taskelse add E.inc to sum_height CHECK 9. Extract the next event E (if it exists) 10. ifnb_task0 andsum_height<limit to reach thenreturn fail CHECK The Sweep Algorithm: Main Loop(simplified version: one resource, no pruning)
INTRODUCTION • Sweep Algorithms in Computational Geometry • Main Ideas of Sweep Algorithms CONJUNCTION OF CONSTRAINTS • Representing an Elementary Constraint: Forbidden Regions • The Sweep Algorithm CARDINALITY OPERATOR • Representing an Elementary Constraint: Forbidden and Safe Regions • The Sweep Algorithm NON-OVERLAPPING CONSTRAINT BETWEEN CONVEX POLYGONS • The Forbidden Polygon • The Sweep Algorithm CUMULATIVES CONSTRAINT • Definition of the Cumulatives Constraint • The Sweep Algorithm SUMMARY AND CONCLUSION
Summary Sweep axis Event points Sweep status • domain of the variable to prune • start of forbidden regions • end of forbidden regions # of forbidden regions Conjunction of constraints • domain of the variable to prune • start of forbidden regions • end of forbidden regions • start of safe regions • end of safe regions # of forbidden regions # of safe regions contradiction Cardinality operator • domain of the variable to prune • vertices of the forbidden and domain polygons • edges proper intersection • the 4 edges intersected by the sweep line • the 4 y-coordinates of the 4 intersected points Non-overlapping between polygons time axis task earliest start task latest start task earliest end task latest end # of tasks to check cumulated height of the optimistic profile Cumulatives constraint
Conclusion • Yet another use of sweep algorithms (sweep algorithms were already used for a lot of different purpose) • Combine generality (forbidden, safe regions) with a specific algorithm (sweep) (lead to a generic class of propagation algorithms and to open global constraints) • Worst case complexity of the algorithms could perhaps be improved (for instance by using specialized data structures for searching the relevant regions) • May become a standard technique for constraint solving (there may exist other utilisations of sweep algorithms for constraint propagation)
Further Sources of Information http://www.sics.se/libindex.html • Sweep as a Generic Pruning Technique Applied to the Non-Overlapping Rectangles Constraint, [Beldiceanu,Carlsson 2001] . • Sweep as a Generic Pruning Technique Applied to Constraint Relaxation, [Beldiceanu,Carlsson 2001] .(in preparation) • Non-overlapping Constraints between Convex Polytopes, [Beldiceanu,Guo,Thiel 2001] . • A New Multi-Resource cumulatives Constraint with Negative Heights, [Beldiceanu,Carlsson 2001] . http://www.sics.se/sicstus/ • Implementation of different variants of the non-overlapping rectangles constraint, • Implementation of the multi-resource cumulatives constraint.