chapter 1 constraints
play

Chapter 1: Constraints What are they, what do they do and what can - PDF document

Constraint Logic Programming Chapter 1: Constraints What are they, what do they do and what can I use them for. 1 Constraints What are constraints? Modelling problems Constraint solving Tree constraints Other constraint


  1. Constraint Logic Programming Chapter 1: Constraints What are they, what do they do and what can I use them for. 1 Constraints � What are constraints? � Modelling problems � Constraint solving � Tree constraints � Other constraint domains � Properties of constraint solving 2 Peter Stuckey 1

  2. Constraint Logic Programming Constraints Variable : a place holder for values , , , , , X Y Z L U List 3 21 Function Symbol : mapping of values to values + − × ÷ , , , ,sin,cos,|| Relation Symbol : relation between values , , = ≤ ≠ 3 Constraints Primitive Constraint : constraint relation with arguments ≥ 4 X + 2 = 9 X Y Constraint : conjunction of primitive constraints ≤ 3 ∧ = ∧ ≥ 4 X X Y Y 4 Peter Stuckey 2

  3. Constraint Logic Programming Satisfiability Valuation: an assignment of values to variables { 3 , 4 , 2 } θ = X Y Z � � � θ ( 2 ) ( 3 2 4 ) 11 X + Y = + × = Solution: valuation which satisfies constraint θ ( 3 1 ) ≥ ∧ = + X Y X ( 3 3 4 3 1 ) = ≥ ∧ = + = true 5 Satisfiability Satisfiable: constraint has a solution Unsatisfiable: constraint does not have a solution 3 1 satisfiable ≤ ∧ = + X Y X 3 1 6 ≤ ∧ = + ∧ ≥ X Y X Y unsatisfiable 6 Peter Stuckey 3

  4. Constraint Logic Programming Constraints as Syntax � Constraints are strings of symbols � Brackets don't matter (don't use them) ( = 0 ∧ = 1 ) ∧ = 2 ≡ = 0 ∧ ( = 1 ∧ = 2 ) X Y Z X Y Z � Order does matter = 0 ∧ = 1 ∧ = 2 ≡ = 1 ∧ = 2 ∧ = 0 X Y Z / Y Z X � Some algorithms will depend on order 7 Equivalent Constraints Two different constraints can represent the same information > 0 ↔ 0 < X X = ∧ 1 = 2 ↔ = 2 ∧ = 1 X Y Y X = + ∧ 1 ≥ 2 ↔ = + ∧ 1 ≥ 3 X Y Y X Y X Two constraints are equivalent if they have the same set of solutions 8 Peter Stuckey 4

  5. Constraint Logic Programming Modelling with constraints � Constraints describe idealized behaviour of objects in the real world 1 = 1 × 1 V I R 2 = 2 × 2 V I R + + V R1 R2 1 0 V − V = V2 − 2 = 0 V V V1 1 − 2 = 0 V V I1 I I2 1 2 0 I − I − I = -- - -- 3_ − + 1 + 2 = 0 I I I 9 Modelling with constraints Buildin g a House 0 T ≥ start S Stage S ≥ + 7 T T foundations Foundations A S 7 days ≥ + 4 T T interior walls Stage A B A ≥ + 3 T T exterior walls Interior W alls Chim ney Exterior W alls C A 4 days 3 days 3 days ≥ + 3 T T chimney Stage B Stage C D A ≥ + 2 T T roof Doors Roof W indows 2 days 2 days 3 days D C ≥ + 2 T T doors S tage D E B ≥ + 3 T T Tiles tiles 3 days E D 3 ≥ + T T windows S tage E 10 E C Peter Stuckey 5

  6. ✁ ✁ ✁ ✁ ✁ ✁ Constraint Logic Programming Constraint Satisfaction � Given a constraint C two questions � satisfaction : does it have a solution? � solution : give me a solution, if it has one? � The first is more basic � A constraint solver answers the satisfaction problem 11 Constraint Satisfaction � How do we answer the question? � Simple approach try all valuations. > X Y > X Y { 1 , 1 } X Y false � � { 1 , 1 } X Y false { 2 , 1 } X Y true � � { 1 , 2 } X Y false { 2 , 2 } X Y false { 1 , 3 } X Y false � � { 3 , 1 } X Y true • � � { 3 , 2 } X Y true • � � • • 12 • Peter Stuckey 6

  7. Constraint Logic Programming Constraint Satisfaction � The enumeration method wont work for Reals (why not?) � A smarter version will be used for finite domain constraints � How do we solve Real constraints � Remember Gauss-Jordan elimination from high school 13 Gauss-Jordan elimination � Choose an equation c from C � Rewrite c into the form x = e � Replace x everywhere else in C by e � Continue until � all equations are in the form x = e � or an equation is equivalent to d = 0 ( d != 0 ) � Return true in the first case else false 14 Peter Stuckey 7

  8. Constraint Logic Programming Gauss-Jordan Example 1 1 + = 2 + ∧ X Y Z 1 + X = 2 Y + Z 3 Z − X = ∧ X + Y = 5 + Z Replace X by 2Y+Z-1 = 2 + − 1 ∧ X Y Z − 2 = 2 Y − 2 − + 1 = 3 ∧ Z Y Z 2 + − 1 + = 5 + Y Z Y Z Replace Y by -1 = − 2 + − 1 ∧ X Z = − 1 ∧ Y − 4 = 5 − 2 + Z − 1 − 1 = 5 + Z 15 Return false Gauss-Jordan Example 2 1 + X = 2 Y Z + 1 2 + X = Y + Z ∧ − = 3 Z X Replace X by 2Y+Z-1 2 1 X = Y + Z − ∧ − 2 = 2 Y − 2 − + 1 = 3 Z Y Z Replace Y by -1 = − 3 ∧ X Z = − 1 Y Solved form : constraints in this form are satisfiable 16 Peter Stuckey 8

  9. Constraint Logic Programming Solved Form � Non-parametric variable: appears on the left of one equation. � Parametric variable: appears on the right of any number of equations. � Solution: choose parameter values and determine non-parameters = − 3 ∧ 4 3 1 X Z X = − = Z = 4 = − 1 = − 1 Y Y 17 Tree Constraints � Tree constraints represent structured data � Tree constructor: character string � cons, node, null, widget, f � Constant: constructor or number � Tree: � A constant is a tree � A constructor with a list of > 0 trees is a tree � Drawn with constructor above children 18 Peter Stuckey 9

  10. Constraint Logic Programming Tree Examples order cons part quantity date red cons 77665 17 3 feb 1994 widget blue cons red moose red cons order(part(77665, widget(red, moose)), cons(red,cons(blue,con quantity(17), date(3, feb, 1994)) s(red,cons(…)))) 19 Tree Constraints � Height of a tree: � a constant has height 1 � a tree with children t1, …, tn has height one more than the maximum of trees t1,…,tn � Finite tree: has finite height � Examples: height 4 and height ∞ 20 Peter Stuckey 10

  11. Constraint Logic Programming Terms � A term is a tree with variables replacing subtrees � Term: � A constant is a term � A variable is a term � A constructor with a list of > 0 terms is a term � Drawn with constructor above children � Term equation: s = t ( s,t terms) 21 Term Examples cons order red cons part Q date B cons 77665 3 feb Y widget red L C moose order(part(77665, widget(C, moose)), cons(red,cons(B,cons(r Q, date(3, feb, Y)) ed,L))) 22 Peter Stuckey 11

  12. � Constraint Logic Programming Tree Constraint Solving � Assign trees to variables so that the terms are identical � cons(R, cons(B, nil)) = cons(red, L) { , ( , ), } R red L cons blue nil B blue � � � � Similar to Gauss-Jordan � Starts with a set of term equations C and an empty set of term equations S � Continues until C is empty or it returns false 23 Tree Constraint Solving unify(C) � Remove equation c from C � case x=x: do nothing � case f(s1,..,sn)=g(t1,..,tn): return false � case f(s1,..,sn)=f(t1,..,tn): ✁ add s1=t1, .., sn=tn to C ✂ case t=x ( x variable): add x=t to C ✂ case x=t ( x variable): add x=t to S ✁ substitute t for x everywhere else in C and S 24 Peter Stuckey 12

  13. � � � � Constraint Logic Programming Tree Solving Example C S true ( , ) = ( , ) ∧ = ( , ) cons Y nil cons X Z Y cons a T true ( , ) Y = X ∧ nil = Z ∧ Y = cons a T Y = X = ∧ = ( , ) nil Z X cons a T = Y X = ∧ = ( , ) Z nil X cons a T = ∧ = Y X Z nil = ( , ) X cons a T ( , ) ( , ) Y = cons a T ∧ Z = nil ∧ X = cons a T true Like Gauss-Jordan, variables are parameters or non-parameters. A solution results from setting parameters (I.e T ) to any value. { , ( , ), ( , ), } T nil X cons a nil Y cons a nil Z nil 25 One extra case � Is there a solution to X = f(X) ? � NO! ✁ if the height of X in the solution is n ✁ then f(X) has height n+1 � Occurs check: ✁ before substituting t for x ✁ check that x does not occur in t 26 Peter Stuckey 13

  14. Constraint Logic Programming Other Constraint Domains � There are many � Boolean constraints � Sequence constraints � Blocks world � Many more, usually related to some well understood mathematical structure 27 Boolean Constraints Used to model circuits, register allocation problems, etc. X ( ) O ↔ X ∨ Y ∧ O Z ↔ ( & ) ∧ A X Y ↔ ¬ ∧ N A N ↔ ( & ) Z O N A Y Boolean constraint An exclusive or gate describing the xor circuit 28 Peter Stuckey 14

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend