PowerPoint Presentation

Shared by: 63QLrX
Categories
Tags
-
Stats
views:
0
posted:
11/7/2012
language:
English
pages:
58
Document Sample
scope of work template
							Constraint Satisfaction
      Problems
               Contents

 Representations
 Solving with Tree Search and Heuristics
 Constraint Propagation
 Tree Clustering
              Posing a CSP
 A set of variables V1, …, Vn
 A domain over each variable D1,…,Dn
 A set of constraint relations C1,…,Cm
  between variables which indicate permitted
  combinations

   Goal is to find an assignment to each
    variable such than none of the constraints
    are violated
            Constraint Graphs
 Nodes = variables
 Edges = constraints


   Example: map coloring


        A                       A
                 B
                            B       C
        C
                 D              D
      N-ary Constraint Graphs
   Example:
    – Variables: X=[1,2] Y=[3,4] Z=[5,6]
    – Constraints: X + Y = Z

               X                             X




      Y                 Z          Y                Z

          Hyper graph            Primal constraint graph


                                           (Roman Barták, 1998 )
         Making a Binary CSP
   Can convert n-ary constraint C into a unary
    constraint on new variable Vc
    – Dc = cartesian product of vars in C


   Can convert n-ary CSP into a binary CSP
    – Create var Vc for each constraint C (as above)
    – Domain Dc = cartesian product – tuples that violate C
    – Add binary equivalence constraints between new
      variables Vc, Vc’:C,C’ share var X  Vc,Vc’ must agree
      on X
    Making a Unary Constraint
 Variables: X=[1,2] Y=[3,4] Z=[5,6]
 Constraints: X + Y = Z


             X

                           XYZ

      Y            Z        XYZ= [(1,3,5),(1,3,6),
                                  (1,4,5),(1,4,6),
                                  (2,3,5),(2,3,6)
                                  (2,4,5),(2,4,6)]

                                   (Roman Barták, 1998 )
    Making a Unary Constraint
 Variables: X=[1,2] Y=[3,4] Z=[5,6]
 Constraints: X + Y = Z


             X

                           XYZ

      Y            Z        XYZ= [(1,4,5),
                                  (2,3,5),
                                  (2,4,6)]


                                   (Roman Barták, 1998 )
        Making a Binary CSP
 Variables: X=[1,2] Y=[3,4] Z=[5,6] W=[1,3]
 Constraints: X + Y = Z, W<Y


        X
                                 XYZ

                                      Y
    Y         Z
                                  WY

                          Dual constraint graph
        W
                                  (Roman Barták, 1998 )
        Making a Binary CSP
 Variables: X=[1,2] Y=[3,4] Z=[5,6] W=[1,3]
 Constraints: X + Y = Z, W<Y


        X
                                 XYZ

                                      Y
    Y         Z
                                  WY

                          Dual constraint graph
        W
                                  (Roman Barták, 1998 )
               Contents

 Representations
 Solving with Tree Search and Heuristics
 Constraint Propagation
 Tree Clustering
            Generate and Test
   Generate each possible assignment to the
    variables and test if constraints are satisfied
    – Exponential possibilities: O(d n)
    – Simple but extremely wasteful!
         DFS and Backtracking
   Depth first search
    – Levels represent variables
    – Branches off nodes represent a possible instantiations
      of variables


   Test against constraints after every variable
    instantiation and backtrack if violation
    – Incrementally attempts to extend partial solution
    – Whole subtrees eliminated at once
       Example
             V1
       red green blue

  V2                  V3
red                 red green

          (*,*,*)
          Example
                V1
          red green blue

  V2                     V3
red                    red green

             (*,*,*)

(r,*,*)
          Example
                V1
          red green blue

  V2                     V3
red                    red green

             (*,*,*)

(r,*,*)

(r,r,*)
          Example
                V1
          red green blue

  V2                     V3
red                    red green

             (*,*,*)

(r,*,*)      (g,*,*)

(r,r,*)      (g,r,*)
          Example
                V1
          red green blue

  V2                          V3
red                         red green

             (*,*,*)

(r,*,*)      (g,*,*)

(r,r,*)      (g,r,*)

          (g,r,r) (g,r,g)
          Example
                V1
          red green blue

  V2                        V3
red                       red green

             (*,*,*)

(r,*,*)      (g,*,*)        (b,*,*)

(r,r,*)      (g,r,*)        (b,r,*)

          (g,r,r) (g,r,g) (b,r,r) (b,r,g)
             Forward Checking
   Backtracking is still wasteful
    – A lot of time is spent searching in areas where no
      solution remains
    – Ex. setting V4 to value X1 eliminates all possible values
      for V8 under the given constraints
    – Can cause thrashing


   Forward checking removes restricted values from
    the domains of all uninstantiated variables
    – If a domain becomes empty backtracking is done
      immediately
                       Heuristics
   The search can usually be sped up by searching
    intelligently:
    – Most-constrained variable: Expand subtree of
      variables that have the fewest possible values within
      their domain first
    – Most-constraining variable: Expand subtree of
      variables which most restrict others first
    – Least-constraining value: Choose values that allow
      the most options for the remaining variables first
               Contents

 Representations
 Solving with Tree Search and Heuristics
 Constraint Propagation
 Tree Clustering
         Constraint Propagation

   A preprocessing step to shrink the CSP
    – Constraints are used to gradually narrow down the
      possible values from the domains of the variables


   A singleton may result
    – If the domains of each variable contain a single value
      we do not need to search
              Arc Consistency
   Arc (Vi,Vj) in a constraint graph is arc
    consistent if for every value of Vi there is
    some value that is permitted for Vj

   Algorithm:
    do
     foreach edge (i,j)
      delete values from Di that cause Arc(Vi,Vj) to fail
    while deletions


   Complexity O(ed3)
                        Example

                           V1
                          green


             V2                     V3
       red green blue             green blue



Consider edge (1,3)
                        Example

                           V1
                          green


             V2                     V3
       red green blue             green blue



Consider edge (3,1)
                        Example

                           V1
                          green


             V2                     V3
       red green blue             green blue



Consider edge (2,1)
                        Example

                           V1
                          green


             V2                     V3
       red green blue             green blue



Consider edge (2,3)
                        Example

                               V1
                              green


             V2                         V3
       red green blue                 green blue



Consistent and a singleton!
        Levels of Consistency
   Algorithms we have seen before are
    combinations of tree search and arc
    consistency:
       Generate and Test       TS
       Backtracking            BT = TS + AC 1/5
       Forward Checking        FC = TS + AC 1/4
       Partial Lookahead       PL = FC + AC 1/3
       Full Lookahead          FL = FC + AC 1/2
       Really Full Lookahead   RFL = FC + AC

                                          (Nadel, 1988)
                       Backtracking
   Given:
     – check(i,Xi,j,Xj): true if Vi = Xi and Vj = Xj is
       permitted by constraints
     – revise(i,j): true if Di is empty after making
       Arc(Vi,Vj) = true
    function BT(i,var)                      function BT(i)
    for(var[i]=Di)                          EMPTY_DOMAIN = check_backward(i)
     CONSISTENT = true                      if ~EMPTY_DOMAIN
     for(j=1:i-1)                            for(var[i]=Di)
      CONISITENT = check(i,var[i],j,var[j])   Di = var[i]
     end                                      if i==n
                                               disp(var)
     if CONSISTENT                            else
      if i==n                                  BT(i+1)
        disp(var)                            end
      else
        BT(i+1,var)                         function check_backward(i)
    end                                     for(j=1:i-1)
                                             if revise(i,j) return true
                                            end
                                            return false
             Forward Checking
                function FC(i)
                EMPTY_DOMAIN = check_forward(i)
                if ~EMPTY_DOMAIN
                 for(var[i]=Di)
                  Di = var[i]
                  if i==n
                   disp(var)
                  else
                   FC(i+1)
                 end

                function check_forward(i)
                if i>1
                 for(j=i:n)
                  if revise(j,i-1) return true
                 end
                 return false




   Similar to backtracking except more arc-
    consistency
  Levels of Consistency

Generate and Test       TS
Backtracking            BT = TS + AC 1/5
Forward Checking        FC = TS + AC 1/4
Partial Lookahead       PL = FC + AC 1/3
Full Lookahead          FL = FC + AC 1/2
Really Full Lookahead   RFL = FC + AC




                                    (Nadel, 1988)
A Stronger Degree of Consistency
    A graph is K-consistent if we can choose values
     for any K-1 variables that satisfy all the
     constraints, then for any Kth variable be able to
     assign it a value that satisfies the constraints

    A graph is strongly K-consistent if J-consistent
     for all J < K
     – Node consistency is equivalent to strong 1-consistency
     – Arc consistency is equivalent to strong 2-consistency
      Towards Backtrack Free
             Search
   A graph that has strong n-consistency
    requires no search
    – Acquiring strong n-consistency is exponential
      in the number of variables (Cooper, 1989)

   For a general graph that is strongly k-
    consistent (where k < n) backtracking
    cannot be avoided
                 Example
                       V1
                   red green

          V2                       V3
      red green                  green blue

                       (*,*,*)

             (r,*,*)


       (r,r,*)         …

Arc consistent, yet a search will backtrack!
          Constraint Graph Width
                     V1    V1    V2   V2    V3    V3
     V1
                     V2    V3    V1   V3    V1    V2
V2        V3
                     V3    V2    V3   V1    V2    V1
                      1     1     1    2     1        2  1
    The nodes of a constraint graph can be ordered
 The width of a node in an ordered graph is equal
  to the number of incoming arcs from higher up
  nodes
 The width of an ordered graph is the max width of
  its vertices
 The width of a constraint graph is the min width of
  each of its orderings
        Backtrack Free Search
   Theorem: If a constraint graph is strongly K-
    consistent, and K is greater than its width, then
    there exists a search order that is backtrack free

    – K>2 consistency algorithms add arcs requiring even
      greater consistency
    – If a graph has width 1 we can use node and arc
      consistency to get strong 2-consistency without adding
      arcs
    – All tree structured constraint graphs have width 1
      (Freuder 1988)
               Contents

 Representations
 Solving with Tree Search and Heuristics
 Constraint Propagation
 Tree Clustering
     Tree Clustering Motivation
   Tree structured constraint graphs can be solved
    without backtracking
    – We would like to turn non-tree graphs into trees by
      grouping variables
    – The grouped variables themselves become smaller
      CSP’s
    – Solving a CSP is exponential in the worst case so
      reducing the number of variables we consider at once is
      also important

   If we want the CSP for many queries it is worth
    investing more time in restructuring it

                                               (Dechter, 1988)
                       Redundancy
   Constraints in the dual graph are equalities

 Variables: A, B, C, D, E, F
 Constraints: (ABC), (AEF), (CDE), (ACE)


         ABC       A    AEF      ABC            AEF
               C
        AC             AE E     AC            AE

         ACE CE         CDE      ACE CE         CDE

                                     Join graph/tree
                 Tree Clustering
   If the dual graph cannot be reduced to a join tree
    we can still make it acyclic:

    – Condition for acyclicity: A CSP is acyclic iff its primal
      graph is chordal and conformal

   Given a primal graph its dual can be made acyclic:
    – Triangulate graph to make it chordal
    – The maximal cliques are constraints/nodes in the new
      dual graph


                                                 (Beeri, 1983)
                 Triangulation

   Use maximum cardinality search (m-ordering) to
    order the nodes


   Add an edge between any two nonadjacent nodes
    that are connected by nodes higher in the ordering




                                          (Tarjan, 1984)
                  The Algorithm

   Build the primal graph for the CSP
    – O(n2)
   Triangulate
    – O(n2)
   Use maximal cliques as new nodes in dual graph
    – O(n)
   Remove any redundancies in the new graph
    – O(n)
                        Example
 Variables: A, B, C, D, E
 Constraints: (A,C), (A,D), (B,D), (C,E), (D,E)


              BD                        BD
          D        D                D        D

         AD   D    DE              AD        DE
     A                  E      A                   E

    AC        C         CE   AC         C          CE

                                   Still cyclic!
                      Example
 Variables: A, B, C, D, E
 Constraints: (A,C), (A,D), (B,D), (C,E), (D,E)

                         B

        E                A                 E
    C       D                          C       D
                         C
        A       B                          A       B
                         D

                         E

                Order: E, D, C, A, B
                    Example
 Variables: A, B, C, D, E
 Constraints: (A,C), (A,D), (B,D), (C,E), (D,E)




        E                 BD                 BD
    C       D         D        D         D
                    ACD        CDE    ACD         CDE
        A       B         CD                 CD

                                          Acyclic!
              Solving the CSP
   Solve each node of the tree as a separate small
    CSP
    – This can be done in parallel
    – The solutions to each node constitute the domain of that
      node in the tree
    – O(d m)
 Use arc consistency to reduce the domains of each
  node
 Solve the entire CSP without backtracking
Appendix
          Example CSP’s

 N-queens
 Map coloring
 Cryptoarithmatic


 Wireless network base station placement
 Object recognition from image features
              Heuristic Repair

   Start with a random instantiation of variables,
    choose a variable and reassign it so that fewest
    constraints are violated

   Repeat this some number of times, if constraints
    still violated, restart with a new random
    instantiation

   Similar to GSAT
              Graham’s Algorithm
   Given a dual constraint graph
    – If Vi is a variable that appears in exactly one node then
      remove Vi
    – If the variables in Ni are a subset of variables in another
      node Nj then remove Ni
 Repeat until neither applies
 Graph is acyclic if the result is the empty set
 Easy to verify




                                                     (Graham, 1979)
                  Graham’s Algorithm
        Trees collapse to empty set
         –    Edges in dual graph are constraints on common vars
         –    Nodes in a tree share vars only with their parents
         –    Step 1 removes any unique vars from the children
         –    After step 1 the children are removed by step 2 since
              they are now subsets of the parent

         ab                      ab
                                                   ab           []

ag               bd        a             b

                                Step-1           Step-2        Step-1
           Graham’s Algorithm
   Cycles don’t collapse
    – Step 1 will fail since cycles are created among nodes
      with vars that are shared among multiple nodes
    – Step 2 must fail since if any node was a subset of
      another it would have to share all of its variables with at
      least one other node


                   ag

                                       ab

                   bg
Graham’s Algorithm  Primal
     Graph is Chordal
   Assume Graham’s algorithm succeeds
    – Step 1 must have removed every node of the
      primal graph
    – Assume there was a chordless cycle
       Let z be a node on the cycle that is first eliminated
       Let x, y be nodes on the cycle adjacent to z

       For step 1 to apply z must have belonged to only one
       constraint (which are cliques/hyperedges)
       With z gone the constraint is left with x and y

       Thus x and y are connected  contradiction!
                     Why m-ordering?
   We want an ordering that will not add any edges
    to chordal graphs

   Property P (for zero fill-in):
    –   If u < v < w
    –   If (u,w) is an edge
    –   If (v,w) is not an edge
    –   Then exists vertex x             w
            v<x
            (v, x) is an edge       v       u
            (w, x) is not an edge

                                         x
           Proof of Property P
   Assumptions
    – Given chordal graph G
    – Given an ordering a with Property P
   Define property Q:
    – Let V0, V1, …, Vk be an unchorded path for which a(Vk)
      is maximum
    – Vk > … > Vi+1 > Vi < … < V2 < V1 < Vk < V0
    – Not possible!
                           …
                           w     - order: u < v < w
                                 - if no edge (v,w) then
                      …    v
                                   v, u, w satisfies property Q
                          u
                          …
          M-ordering Satisfies P

   Suppose u < v < w

                        w


                   v        u


                        x

						
Related docs
Other docs by 63QLrX
MINUTES APRIL 10 2008a FINAL
Views: 1  |  Downloads: 0
RENT ASSESSMENT PANEL: LAY MEMBER
Views: 1  |  Downloads: 0
shropshirecouncil
Views: 4  |  Downloads: 0
Name: _____ Date
Views: 0  |  Downloads: 0
Data Access and Management Policy Committee
Views: 0  |  Downloads: 0
HONITON TOWN COUNCIL
Views: 0  |  Downloads: 0
PowerPoint Presentation
Views: 0  |  Downloads: 0