Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 Constraint Programming: An Introduction Adapted by Cristian OLIVA from Peter Stuckey (1998) Ho Chi Minh City.

Similar presentations


Presentation on theme: "1 Constraint Programming: An Introduction Adapted by Cristian OLIVA from Peter Stuckey (1998) Ho Chi Minh City."— Presentation transcript:

1 1 Constraint Programming: An Introduction Adapted by Cristian OLIVA from Peter Stuckey (1998) Ho Chi Minh City

2 2 Definitions  A constraint C is of the form where m  0 y c 1,c 2,…,c m are primitives constraints. There are two distinct constraints : TRUE and FALSE The empty conjunction of constraints is written as true. The conjunction of two constraints C 1 and C 2 is written

3 3 Definitions Given a domain D and a constraint C, we can determine values of variables for which the constraint holds. EXAMPLE 1. X=Y+Z The assignment : Holds the constraint and for that the constraint is TRUE. The assignment : Doesn’t hold the constraint and then the constraint is FALSE.

4 4 Definitions  A set of pairs  for a set V of variables is an asignment of values from the domaine D to variables in V. Let be V={x 1,x 2,…,x n } and V'V, then (V') is : where

5 5 Definitions  (V') is an instantiation of the variables in V'.  An instantiation (V'), where V'V, is a partial solution if it satisfy all primitive constraints that contain the variables of V'.  An instantiation (V) is a solution if it satisfy the constraint C with domain D.

6 6 Definitions  A constraint C is satisfiable if it has at least one solution. Otherwise, it is unsatisfiable.  Two constraints C 1 and C 2 are equivalent if they have the same set of solutions.

7 7 Definitions  The function primitivas takes a constraint. and returns the set of primitive constraints {c 1,c 2,…,c m }

8 8 Definitions  Given a constraint C and given a domain D, Satisfaction : Does the constraint have a solution? Solution : Give me a solution to the constraint if one exists. Constraint solver is an algorithm that determine the satisfaction of a constraint. However, these algorithms find solutions too.

9 9 Domains  In general, constraints in Constraint programming mainly operate on domains which are either discrete or continuous. The most known are : Linear arithmetics constraints Booleans constraints Sequence constraints Blocks world constraints Finite constraints domains Others…

10 10 Finite Constraint Domains  Constraint Satisfaction Problems (CSP).  A CSP consist in : A set of variables V={x 1,x 2,…,x n } For each variable x i there is a finite set of possible values D(x i ) (domain) A set of constraints C that restrict possible values that a variable can take.  A solution to the CSP is an instantiation (V) that satisfy C.

11 11 Constraint Satisfaction Problem  ¿How to model an optimisation problem by using CSP ? It can be express as a sequence of CSP. For instance, we can create a variable that represents the objective value. We can add the following constraint: Objective_function<objective_current_value

12 Different kinds of constraint satisfaction techniques  Some of the constraint satisfaction techniques are: Chronological backtracking: Exponential time complexity. Complete solver. Polynomial time complexity. Incomplete Solver. Local consistency  Node consistency  Arc Consistency  Hyper-arc Consistency  Bounds consistency 12

13 13 Local Consistency Notion  The arity of a primitive constraint is the number of variables it involves. The arity of a CSP is equal to the arity of the highest arity constraint.

14 14 Local Consistency Notion  An instantiation (V'), where V'V, is consistent if and only if (V') is a partial solution of CSP.  A solution to the CSP is a consistent instantiation (V).

15 15 Node and Arc consistency  Basic Idea: Find a CSP equivalent to the original one with smaller domains.  Key: examine 1 prim. constraint c, one at a time.  Consistency-Node: (vars(c)={x}) remove the values of the domain of x that no satisfy c  Consistency-Arc: (vars(c)={x,y}) remove the values of D(x) for which there is not a value in D(y) that satisfy c and vice-versa.

16 16 Node consistent  A primitive constraint c es node consistent with domain D if |vars(c)| 1 or if vars(c) = {x} then for each d in D(x) d  x is a solution of c.  A CSP is node consistent if each primitive constraint is node consistent with D.

17 17 Node-consistent Example 1: This CSP is node-consistent? NO!!!

18 18 Achieving Node Consistency 18  Node_consistent  Node_consistent(c,d) For each prim. Constraint c in C node_consistent_primitive  D := node_consistent_primitive(c, D) Return D  Node_consistent_primitive  Node_consistent_primitive(c, D) If |vars(c)| =1 then  Let {x} = vars(c) Return D

19 19 Arc Consistency  A primitive constraint c is arc consistent with domain D if |vars{c}| ≠2 or Vars(c) = {x,y} and for each d in d(x) there exists e in d(y) such that and similarly for y  A CSP is arc consistent if each prim. Constraint in it is arc consistent

20 20 Arc-Consistency Example 2: This CSP is arc-consistent? NO!!!

21 21 Achieving Arc Consistency  Arc_consistent  Arc_consistent(c,d) Repeat  W := d  For each prim. Constraint c in C arc_consistent_primitive  D := arc_consistent_primitive(c,d) Until W = D Return D

22 22 Achieving Arc Consistency  Arc_consistent_primitive  Arc_consistent_primitive(c, D) If |vars(c)| = 2 then Return D  Removes values which are not arc consistent with c

23 23 Using node and arc consistency.  We can build constraint solvers using the consistency methods  Two important kinds of domain False domain: some variable has empty domain Valuation domain: each variable has a singleton domain

24 24 Node and Arc Cons. Solver  Arc_solve(C,D) node_consistent D := node_consistent(C,D) arc_consistent D := arc_consistent(C,D) if D is a false domain  return false if D is a valuation domain  return satisfiable(C,D) return unknown

25 25 Example : Graph colouring A B C D E F G

26 26 Node and Arc Solver Example Colouring graph: with constraints A B C D E F G Node consistent

27 27 A B C D E F G Arc consistent Node and Arc Solver Example Colouring graph: with constraints

28 A B C D E F G Arc- consistent Node and Arc Solver Example Colouring graph: with constraints

29 A B C D E F G Arc- consistent Reponse: Unknown Node and Arc Solver Example Colouring graph: with constraints

30 30 Backtracking Constraint Solver  We can combine consistency with the backtracking solver.  Apply node and arc consistency before starting the backtracking solver and after each variable is given a value.

31 31 A B C D E F G Backtracking Choice a variable whose domain has a cardinality >1, G Add constraint G=redApply consistency Reponse: satisfiable (TRUE) Backtracking Constraint Solver Colouring graph: with constraints

32 32 Hyper-arc consistency  What happens when we have primitive constraints that contains more than two variables?  hyper-arc consistency: extending the arc consistency to a arbitrary number of variables.  Unfortunately determine the hyper-arc consistency is NP-hard.  What is the solution?

33 33 Hyper-arc consistency  A primitive constraint c is hyper-arc consistent with domain D if for each variable x in c and domain assignment tD(X), there is an assignment t 1,…,t k to the remaining variables in c such that t j D(X j ) for 1j k and ((t 1,X 1 ),…(t k,X k )) is a solution of c.  A CSP is hyper-arc consistent if each primitive constraint c i is hyper-arc consistent.

34 34 Bounds Consistency  arithmetic CSP: constraints are integer  range: [l..u] represents the set of integers {l, l+1,..., u}  idea use real number consistency and only examine the endpoints (upper and lower bounds) of the domain of each variable  Define min(D,x) as minimum element in domain of x, similarly for max(D,x)

35 35 Bounds consistency  A prim. constraint c is bounds consistent with domain D if for each var x in vars(c) exist real numbers d 1,..., d k for remaining vars x1,..., xk such that : is a solution of c And similarly for  An arithmetic CSP is bounds consistent if all its primitive constraints are.

36 36 Examples What domain is bounds consistent? Compare with the hyper-arc consistent domain

37 37 Achieving Bounds Consistency  Given a current domain D we wish to modify the endpoints of domains so the result is bounds consistent  propagation rules do this

38 38 Achieving Bounds Consistency Consider the primitive constraint X = Y + Z which is equivalent to the three forms Reasoning about minimum and maximum values: : Propagation rules for the constraint X = Y + Z

39 39 Propagation rules for X=Y+Z Bounds_consistency(D) Return D

40 40 Propagation rules for Disequations give weak propagation rules, only when one side takes a fixed value that equals the minimum or maximum of the other is there propagation.

41 41 Alldifferent  alldifferent({V 1,...,V n }) holds when each variable V 1,..,V n takes a different value alldifferent({X, Y, Z}) is equivalent to  Arc consistent with domain  BUT there is no solution! specialized consistency for alldifferent can find it

42 42 Other Complex Constraints  schedule n tasks with start times Si and durations Di needing resources Ri where L resources are available at each moment  array access if I = i, then X = V i and if X ≠ V i then I ≠ i

43 43 Optimization for CSP  Because domains are finite can use a solver to build a straightforward optimizer  retry_int_opt  retry_int_opt(C, D, f, best) int_solv D2 := int_solv(C,D) if D2 is a false domain then return best let sol be the solution corresponding to D2 retry_int_opt return retry_int_opt(C /\ f < sol(f), D, f, sol)

44 44 Optimization Backtracking  Since the solver may use backtrack search anyway combine it with the optimization  At each step in backtracking search, if best is the best solution so far add the constraint f < best(f)

45 45 Branch and Bound Opt.  The previous methods,unlike simplex don't use the objective function to direct search  branch and bound optimization for (C,f) use simplex to find a real optimal, if solution is integer stop otherwise choose a var x with non-integer opt value d and examine the problems use the current best solution to constrain prob.


Download ppt "1 Constraint Programming: An Introduction Adapted by Cristian OLIVA from Peter Stuckey (1998) Ho Chi Minh City."

Similar presentations


Ads by Google