School of Computer Science Constraint Satisfaction Problems and Multi-Objective Optimisation: first steps Markus Wagner Joint work with Tommaso Urli (Università degli Studi di Udine) Life Impact The University of Adelaide Constraint Programming A technology for declarative description and effective solving of large, particularly combinatorial, problems especially in areas of planning and scheduling. History • c-networks and c-satisfaction studied in AI since the ’70s • Since the ’80s: systematic use of constraints Programming: the process of the generation of requirements (constraints) and solution of these requirements, by specialized constraint solvers. 1 Applications Examples • Computer graphics (geometric coherence) • Natural language processing (efficient parsing) • Database systems (data consistency) • Operations research (real-world) • … Current research • Foundational issues • Implementation aspects • (new applications) 2 Constraints What is a constraint? Logical relation among variables restricts possible values that variables can take represents some partial knowledge about the variables of interest Properties • Declarative (no computational procedure to enforce) • Additive (order not of interest, just the conjunction) • Non-directional (constraint on X,Y can be used to infer constraint on X given a constraint on Y) • Rarely independent • … 3 Constraint Satisfaction Problem A Constraint Satisfaction Problem (CSP) consist of: • a set of variables X={x1,...,xn}, • for each variable xi, a finite set Di of possible values (their domains), • and a set of constraints restricting the values that the variables can simultaneously take. A solution to a CSP is an assignment of a value from its domain to every variable, in such a way that every constraint is satisfied. (one assignment, all assignments, “best” assignment) 4 How to solve CSPs? (1/2) Systematic search algorithms (slow) • Generate and test, Backtracking (iteratively improvements) Consistency techniques • Binary constraints: achieve node/arc/path consistency Constraint propagation • Forward checking (prevent future conflicts, earlier pruning) • … How to solve CSPs? (2/2) Variable/value ordering • "Deal with hard cases first: they can only get more difficult if you put them off.” And many other techniques… Heuristic and stochastic algorithms • Incrementally alter inconsistent value assignments • Use “repair” or “hill-climbing” metaphor to move towards more and more complete solutions • Incomplete 6 Heuristic and stochastic algorithms Guiding ideas • hill climbing (better evaluation value) and gradient descent • minimise the number of conflicts • tabu search • EAs, … How to deal with constraints • Transform constraints into an objective, and the EA pursues the objective (indirect constraint handling) • Enforcing a direct constraint handling in the EA (objective?) • Mixed approach (optimise some objectives and satisfy some constraints at the same time) 7 Our approach Explore the benefits of using the multi-objective algorithm AGE, which has proven to work 'relatively' independent of the number of objectives. Objectives • Each constraint is a single objective • the degree of violation becomes the objective value of a solution (limits us to mathematical expressions) Goal • Find a solution that covers the origin. Example… 8 Constraint 2 X = 5 Y = 1 Z = 4 Constraint 1 9 Constraint 2 X ∈ [ 5,10] Y ∈ [-1, 1] Z ∈ [ 4,40] Constraint 1 10 Constraint 2 X Y Z ∈ X ∈ Y ∈ Z X [ Y∈ [ Z∈ [ ∈ ∈ [ , ] , ] ∈ , ] [,[5,10] ] ∈[-1, [ ,1] ] , ] X ∈ […,…] [ 4,40] Y ∈ […,…] Z ∈ […,…] X ∈ […,…] Y ∈ […,…] Z ∈ […,…] Constraint 1 11 Constraint 2 X ∈ [ 5,5+a] Y ∈ [ 0, a] Z ∈ [ 8,8+a] X Y Z ∈ X ∈ Y ∈ Z X [ Y∈ [ Z∈ [ ∈ ∈ [ , ] , ] ∈ , ] [,[5,10] ] ∈[-1, [ ,1] ] , ] [ 4,40] X ∈ […,…] Y ∈ […,…] Z ∈ […,…] Constraint 1 12 Status • We can solve very easy instances (but are too slow) • We do not want to beat other CSP-EAs (“trivial”), but “proper solvers”. Problem • archive grows quickly (AGE technicality), slowing us down • So far: general purpose variation operators Next steps • Interval arithmetic and problem-specific variation operators • Hybridization of a “proper solver” with our approach as a heuristic • Identify strengths and weaknesses (Fuzzy/weighted CSP?) 13