Decomposition method (constraint satisfaction): Difference between revisions

Content deleted Content added
Brvman (talk | contribs)
m Cycle hypercutset: spelling fix
GreenC bot (talk | contribs)
 
(11 intermediate revisions by 10 users not shown)
Line 1:
{{More citations needed|date=June 2019}}
 
In [[constraint satisfaction]], a '''decomposition method''' translates a [[constraint satisfaction problem]] into another constraint satisfaction problem that is binary and [[directed acyclic graph|acyclic]]. Decomposition methods work by grouping variables into sets, and solving a subproblem for each set. These translations are done because solving binary acyclic problems is a [[tractable problem]].
 
Line 108 ⟶ 110:
===Hinge decomposition===
 
AnA hinge is a subset of nodes of hypergraph having some properties defined below. AnA hinge decomposition is based on the sets of variables that are minimal hinges of the hypergraph whose nodes are the variables of the constraint satisfaction problem and whose hyperedges are the scopes of its constraints.
 
The definition of hinge is as follows. Let <math>H</math> be a set of hyperedges. A path w.r.t.with respect to <math>H</math> is a sequence of edges such that the intersection of each one with the next one is non-empty and not contained in the nodes of <math>H</math>. A set of edges is connected w.r.t.with respect to <math>H</math> if, for each pair of its edges, there is a path w.r.t.with respect to <math>H</math> of which the two nodes are the first and the last edge. A connected component w.r.t.with respect to <math>H</math> is a maximal set of connected edges with respect to <math>H</math>.
 
Hinges are defined for reduced hypergraphs, which are hypergraphs where no hyperedge is contained in another. A set of at least two edges <math>H</math> is a hinge if, for every connected component <math>F</math> w.r.t.with respect to <math>H</math>, all nodes in <math>F</math> that are also in <math>H</math> are all contained in a single edge of <math>H</math>.
 
AnA hinge decomposition is based on the correspondence between constraint satisfaction problems and hypergraphs. The hypergraph associated with a problem has the variables of the problem as nodes are the scopes of the constraints as hyperedges. AnA hinge decomposition of a constraint satisfaction problem is a tree whose nodes are some minimal hinges of the hypergraph associated to the problem and such that some other conditions are met. By the correspondence of problems with hypergraphs, a hinge is a set of scopes of constraints, and can therefore be considered as a set of constraints. The additional conditions of the definition of a hinge decomposition are three, of which the first two ensure equivalence of the original problem with the new one. The two conditions for equivalence are: the scope of each constraint is contained in at least one node of the tree, and the subtree induced by a variable of the original problem is connected. The additional condition is that, if two nodes are joined, then they share exactly one constraint, and the scope of this constraint contains all variables shared by the two nodes.
 
The maximal number of constraints of a node is the same for all hinge decompositions of the same problem. This number is called the ''degree of cyclicity'' of the problem or its hingewidth.
Line 217 ⟶ 219:
In a tree, every edge breaks the graph in two parts. The constraint passed along an edge tells how the part of the originating end of the edge affects the variables of the destination node. In other words, a constraint passed from node <math>i</math> to node <math>j</math> tells how the nodes "on the side of <math>i</math>" constrain the variables of node <math>j</math>.
 
If the variables of these two nodes are <math>X_i</math> and <math>X_j</math>, the nodes on the sizeside of <math>i</math> do not affect all variables <math>X_j</math> but only the shared variables <math>X_i \cap X_j</math>. As a result, the influence on <math>X_j</math> of the nodes on the side of <math>i</math> can be represented as a constraint on variables <math>X_i \cap X_j</math>. Such a constraint can be seen as a "summary" of how a set of nodes affects another node.
 
The algorithm proceeds from the leaves of the tree. In each node, the summaries of its children (if any) are collected. These summary and the constraint of the node are used to generate the summary of the node for its parent. When the root is reached, the process is inverted: the summary of each node for each child is generated and sent it. When all leaves are reached, the algorithm stops.
Line 268 ⟶ 270:
 
# [http://www.cs.uu.nl/research/projects/treewidthlib/ Treewidthlib]: A benchmark for algorithms for Treewidth and related graph problems
# [https://web.archive.org/web/20060512022851/http://www.ics.uci.edu/~vgogate/ A C++ implementation] used in the paper "A complete [[Anytime Algorithm]] for Treewidth, Vibhav Gogate and Rina Dechter, UAI 2004." [https://web.archive.org/web/20060512022851/http://www.ics.uci.edu/~vgogate/ The link] is to the author homepage, where both LINUX source and Windows executable is distributed.
# [http://www.dbai.tuwien.ac.at/proj/hypertree/downloads.html An implementation of Hypertree Decomposition], using several heuristics.
# [http://carlit.toulouse.inra.fr/cgi-bin/awki.cgi/ToolBarIntro Toolbar tool has implementation of some tree decomposition heuristics]
Line 278 ⟶ 280:
| first=Rina
| last=Dechter
|authorlink = Rina Dechter
| title=Constraint Processing
| publisher=Morgan Kaufmann
Line 284 ⟶ 287:
}} {{ISBN|1-55860-890-7}}
*{{cite book
| firstfirst1=Rod
| lastlast1=Downey
|author1link = Rod Downey
|author2=Michael Fellows
|first2=Michael
|last2 = Fellows
|author2author2link = Michael Fellows
| title=Parameterized complexity
| publisher=Springer
Line 295 ⟶ 301:
| first=Georg
| last=Gottlob
|author1link = Georg Gottlob
|author2=Nicola Leone |author3=Francesco Scarcello
|first2=Nicola|last2 = Leone
|author2link = Nicola Leone
|first3=Francesco| last3 = Scarcello
| title=Hypertree Decompositions: A Survey
| book-title=[[International Symposium on Mathematical Foundations of Computer Science|MFCS]] 2001
| booktitle=MFCS 2001
| pages=37–57
| year=2001
| url=http://www.springerlink.com/(rqc54x55rqwetq55eco03ymp)/app/home/contribution.asp?referrer=parent&backto=issue,5,61;journal,1765,3346;linkingpublicationresults,1:105633,1
}}{{dead link|date=January 2025|bot=medic}}{{cbignore|bot=medic}}
}}
*{{cite journal
| first=Georg
| last=Gottlob
|author2first2=Nicola|last2 = Leone |author3first3=Francesco| last3 = Scarcello
| title=A comparison of structural CSP decomposition methods
| journal=[[Artificial Intelligence (journal)|Artificial Intelligence]]
| volume=124
| issue=2
| pages=243–282
| year=2000
| doi=10.1016/S0004-3702(00)00078-3}}| doi-access=free
}}
 
[[Category:Constraint programming]]