Filtering Algorithms for Global Constraints Mats Carlsson Constraint Programming Global Constraints Filtering Algorithms for Global Constraints Classes of Constraints Application-Based Graph-Based Mats Carlsson Filtering Algorithms Adding Redundant Constraints Swedish Institute of Computer Science (SICS) GAC-Schema Finite Automata Computational Geometr Matching Theory Flow Theory Scheduling Theory November 12, 2005 Final Remarks References
Outline Filtering Algorithms for Global Constraints Mats Carlsson Constraint Programming Systems Global Constraints Constraint Programming Global Constraints Classes of Constraints Classes of Constraints Application-Based Application-Based Graph-Based Graph-Based Filtering Algorithms Filtering Algorithms Adding Redundant Constraints GAC-Schema Adding Redundant Constraints Finite Automata Computational Geometr GAC-Schema Matching Theory Flow Theory Finite Automata Scheduling Theory Computational Geometry Final Remarks Matching Theory References Flow Theory Scheduling Theory Final Remarks References
Constraint Programming Systems Filtering Algorithms for Global Constraints Mats Carlsson Constraint Programming Global Constraints Classes of Constraints Application-Based Graph-Based ◮ constraint network: domain variables and Filtering Algorithms Adding Redundant Constraints constraints GAC-Schema Finite Automata ◮ propagation loop Computational Geometr Matching Theory ◮ search procedure Flow Theory Scheduling Theory Final Remarks References
The CP View Filtering Algorithms for Global Constraints Problem = conjunction of constraints Mats Carlsson Constraint Programming Global Constraints Classes of Constraints Application-Based Graph-Based ◮ constraint = subproblem Filtering Algorithms Adding Redundant Constraints ◮ trivial constraint: x < y GAC-Schema Finite Automata ◮ complex constraint: all different ([ x 1 , . . . , x n ]) : the Computational Geometr Matching Theory x i variables must be pairwise different Flow Theory Scheduling Theory Final Remarks References
Problem Solving Filtering Algorithms for Global Constraints Problem solving = propagation + search Mats Carlsson Constraint Programming Global Constraints Classes of Constraints ◮ every constraint C comes with a filtering algorithm Application-Based Graph-Based (FA), aka. propagator Filtering Algorithms ◮ the FA removes values that do not belong to any Adding Redundant Constraints GAC-Schema solution of C from the domains of the variables Finite Automata Computational Geometr ◮ the propagation loop applies FA’s until a fixpoint is Matching Theory Flow Theory reached Scheduling Theory ◮ the search procedure adds tentative constraints at Final Remarks References such fixpoints
Strength of Filtering Filtering Algorithms for Global Constraints Notions of Consistency Mats Carlsson Constraint Programming Global Constraints Classes of Constraints Application-Based ◮ arc-consistency (AC): all values that do not belong Graph-Based Filtering Algorithms to any solution of C are removed (perfect filtering) Adding Redundant Constraints GAC-Schema ◮ sometimes called generalized arc-consistency Finite Automata (GAC) in the context of non-binary constraints Computational Geometr Matching Theory ◮ a weaker form, bound-consistency (BC), adjusts Flow Theory Scheduling Theory the lower and upper bounds of domains Final Remarks References
Strength of Filtering Filtering Algorithms for Global Constraints Example [Puget 1998] Mats Carlsson Constraint Network Constraint Programming Global Constraints all different ([ x , y , z , u , v , w ]) Classes of Constraints x ∈ [ 3 , 4 ] , y = 7 , z ∈ [ 2 , 5 ] , Application-Based Graph-Based u ∈ [ 2 , 7 ] , v ∈ [ 1 , 3 ] , w ∈ [ 3 , 4 ] Filtering Algorithms Adding Redundant Constraints GAC-Schema Arc-Consistent Domains Finite Automata Computational Geometr Matching Theory x ∈ [ 3 , 4 ] , y = 7 , z ∈ { 2 , 5 } , Flow Theory Scheduling Theory u ∈ { 2 , 5 , 6 } , v ∈ [ 1 , 2 ] , w ∈ [ 3 , 4 ] Final Remarks References Bound-Consistent Domains x ∈ [ 3 , 4 ] , y = 7 , z ∈ [ 2 , 5 ] , u ∈ [ 2 , 6 ] , v ∈ [ 1 , 2 ] , w ∈ [ 3 , 4 ]
Outline Filtering Algorithms for Global Constraints Mats Carlsson Constraint Programming Systems Global Constraints Constraint Programming Global Constraints Classes of Constraints Classes of Constraints Application-Based Application-Based Graph-Based Graph-Based Filtering Algorithms Filtering Algorithms Adding Redundant Constraints GAC-Schema Adding Redundant Constraints Finite Automata Computational Geometr GAC-Schema Matching Theory Flow Theory Finite Automata Scheduling Theory Computational Geometry Final Remarks Matching Theory References Flow Theory Scheduling Theory Final Remarks References
Global Constraints Filtering Algorithms for Global Constraints Definition Mats Carlsson Constraint Programming Global Constraints Classes of Constraints Application-Based C is a global constraint iff C is ... Graph-Based Filtering Algorithms ◮ a non-binary constraint Adding Redundant Constraints GAC-Schema ◮ a conjunction of elementary constraints Finite Automata Computational Geometr ◮ an abstraction for which we can have a FA with a Matching Theory Flow Theory global view Scheduling Theory Final Remarks References
Global Constraints Filtering Algorithms for Global Constraints Advantages Mats Carlsson Constraint Programming Global Constraints Classes of Constraints Application-Based Graph-Based expressiveness they correspond to common Filtering Algorithms structures in combinatorial problems Adding Redundant Constraints GAC-Schema reusability a library of global constraints is a library Finite Automata Computational Geometr of reusable software components Matching Theory Flow Theory efficiency they admit powerful filtering algorithms Scheduling Theory Final Remarks References
Outline Filtering Algorithms for Global Constraints Mats Carlsson Constraint Programming Systems Global Constraints Constraint Programming Global Constraints Classes of Constraints Classes of Constraints Application-Based Application-Based Graph-Based Graph-Based Filtering Algorithms Filtering Algorithms Adding Redundant Constraints GAC-Schema Adding Redundant Constraints Finite Automata Computational Geometr GAC-Schema Matching Theory Flow Theory Finite Automata Scheduling Theory Computational Geometry Final Remarks Matching Theory References Flow Theory Scheduling Theory Final Remarks References
An Application-Based Classification Filtering Algorithms for Global Constraints Mats Carlsson Constraint Programming Global Constraints Classes of Constraints ◮ order constraints Application-Based Graph-Based ◮ value constraints Filtering Algorithms Adding Redundant Constraints ◮ partitioning constraints GAC-Schema Finite Automata ◮ timetabling constraints Computational Geometr Matching Theory ◮ graph constraints Flow Theory Scheduling Theory ◮ scheduling constraints Final Remarks ◮ data constraints References
Some Order Constraints Filtering Algorithms for Global Constraints Mats Carlsson Constraint Programming Global Constraints min ( x , [ y 1 , . . . , y n ]) Classes of Constraints Application-Based max ( x , [ y 1 , . . . , y n ]) Graph-Based min n ( x , k , [ y 1 , . . . , y n ]) x is the kth smallest value Filtering Algorithms Adding Redundant Constraints GAC-Schema max n ( x , k , [ y 1 , . . . , y n ]) x is the kth largest value Finite Automata Computational Geometr sorting ([ x 1 , . . . , x n ] , [ y 1 , . . . , y n ]) [ y 1 , . . . , y n ] is a Matching Theory permutation of [ x 1 , . . . , x n ] in Flow Theory Scheduling Theory nondecreasing order. Final Remarks lex chain ([ t 1 , . . . , t n ]) [ t 1 , . . . , t n ] is a sequence of tuples References in lexicographic order.
Some Value Constraints Filtering Algorithms for Global Constraints Mats Carlsson Constraint Programming Global Constraints Classes of Constraints among ( k , [ y 1 , . . . , y n ] , [ v 1 , . . . , v m ]) k vars in [ y 1 , . . . , y n ] Application-Based Graph-Based take values in [ v 1 , . . . , v m ] Filtering Algorithms common ( k , l , [ x 1 , . . . , x n ] , [ y 1 , . . . , y m ]) k vars in Adding Redundant Constraints GAC-Schema [ x 1 , . . . , x n ] take values in [ y 1 , . . . , y m ] , and Finite Automata Computational Geometr l vars in [ y 1 , . . . , y m ] take values in Matching Theory [ x 1 , . . . , x n ] Flow Theory Scheduling Theory same ([ x 1 , . . . , x n ] , [ y 1 , . . . , y n ]) [ x 1 , . . . , x n ] is a Final Remarks permutation of [ y 1 , . . . , y n ] References
Some Partitioning Constraints Filtering Algorithms for Global Constraints Mats Carlsson Constraint Programming Global Constraints Classes of Constraints Application-Based all different ([ x 1 , . . . , x n ]) ∀ i , j : x i � = x j Graph-Based Filtering Algorithms symmetric all different ([ x 1 , . . . , x n ]) Adding Redundant Constraints ∀ i , j : x i � = x j ∧ ( x i = j ≡ x j = i ) GAC-Schema Finite Automata nvalue ( k , [ x 1 , . . . , x n ]) x i take k different values Computational Geometr Matching Theory Flow Theory gcc ([ x 1 , . . . , x n ] , [( v 1 , c 1 ) , . . . , ( v m , c m )]) value v j occurs Scheduling Theory c j times in [ x 1 , . . . , x n ] Final Remarks References
Recommend
More recommend