150 likes | 282 Views
Constraint Satisfaction Problems and Multi-Objective Optimisation: first steps. Markus Wagner Joint work with Tommaso Urli (Università degli Studi di Udine). Constraint Programming.
E N D
Constraint Satisfaction Problems and Multi-Objective Optimisation: first steps Markus Wagner Joint work with Tommaso Urli(Università degli Studi di Udine)
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.
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)
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 • …
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)
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
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)
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…
Constraint 2 Constraint 1 X = 5 Y = 1 Z = 4
Constraint 2 Constraint 1 X ∈ [ 5,10] Y ∈ [-1, 1] Z ∈ [ 4,40]
Constraint 2 X ∈ […,…] Y ∈ […,…] Z ∈ […,…] Constraint 1 X ∈ [ 5,10] Y ∈ [-1, 1] Z ∈ [ 4,40] X ∈ [ , ] Y ∈ [ , ] Z ∈ [ , ] X ∈ […,…] Y ∈ […,…] Z ∈ […,…] X ∈ [ , ] Y ∈ [ , ] Z ∈ [ , ]
Constraint 2 Constraint 1 X ∈ [ 5,10] Y ∈ [-1, 1] Z ∈ [ 4,40] X ∈ [ , ] Y ∈ [ , ] Z ∈ [ , ] X ∈ […,…] Y ∈ […,…] Z ∈ […,…] X ∈ [ , ] Y ∈ [ , ] Z ∈ [ , ] X ∈ [ 5,5+a] Y ∈ [ 0, a] Z ∈ [ 8,8+a]
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?)