User:Paolo Liberatore~enwiki/Tw


 * 1) split from dual problem an article "decomposition method" with a redirect from "structural decomposition method"
 * 2) move dual problem to constraint binarization; add hidden variables

Article decomposition method:


 * 1) definition: a method for translating a csp into a csp that is equivalent in some way but possibly easier to solve;
 * 2) decomposition methods (mostly?) group sets of variables into a single one in order to obtain an acyclic problem; this process require solving a subproblem  for each of these sets of variables; hence the name "decomposition"
 * 3) other methods based on translation are those based on width/induced width can be considered forms of decomposition; these methods are structural, but is not clear why they should be called "decomposition methods"
 * 4) overview:
 * 5) what is a decomposition and how it is used:
 * 6) tree structure with sets of variables as nodes
 * 7) since this is an acyclic problem, it can be solved in time polynomial in its size (this can be done by directional arc consistency, or using the specialized algorithm)
 * 8) in order for this being polynomial in the size of the original problem, the decomposition must be of polynomial size; this is true if the sets of variables are bounded in size by a constant, but there are other possibilities
 * 9) the width is a measure of the decomposition; it is defined so that if a decomposition has width bounded by a constant then the new problem has size polynomial in the size of the original problem
 * 10) how to obtain a polynomial restriction:
 * 11) a decomposition is considered; the restriction is obtained by fixing a bound on the width of instances
 * 12) for this restriction being polynomial is necessary that:
 * 13) given an instance, it is polynomial to derive a decomposition ofthat width
 * 14) given the decomposition, solving is polynomial
 * 15) the decomposition and the width are defined in such a way both steps are polynomnial for instances of bounded width


 * Hypertree/acyclic hypergraph=an hypergraph that has a join tree
 * Acyclic CSP problem=one that has a join tree

Solving from a tree decomposition
Given a tree decomposition of any kind of a problem, solving can be done by creating a problem whose variables are sets of variables, whose domains are composition of some constraints, and whose constraints are equalities of variables of the original problem. Since this problem is binary and acyclic, it can be solved in time polynomial in its size. However, this is polynomial algorithm for the original problem only if the size of the new problem is polynomial in the size of the original problem.

Variables and constraints
If the number of variables in each node of a tree decomposition is bounded by a constant, the new problem has size polynomial in that of the original one. However, the same is also guaranteed if the variables in each node are a subset of the scopes of a set of constraints of fixed size. This is because the constraints are part of the input (they are not fixed, however). As a result, one can combine all constraints in each node in a new constraint in polynomial time, as this is the combination of a fixed number of constraints whose relations are part of the input.

Hypertree decomposition uses this idea by associating to each node not only a set of variables, but also a set of constraints whose scope include all the variables of each node. Since a set of variables is not necessarily equal to the union of the scopes of a set of constraints, the constraints of a node are allowed to have variables that are not associated with these constraints. These variables are treated as existentially quantified when producing the relation at each node; equality of two "extra" variables is not even required, as all constraints are enforced somewhere; what is essential is that these constraints are enforced to avoid explosion of size of the produced relation.

Restriction based on width
The above tells that a problem can be solved in polynomial time from a given tree decomposition of fixed width (however width is defined). However, this fact does not immediately allow telling that the structural restriction of fixed width is tractable. Indeed, such a restriction only allows telling that instances have all a tree decomposition of fixed width, but does not tell how to derive this decomposition. As a result, other conditions may be needed to show tractability. In particular, a width restriction is tractable if:


 * 1) given an instance of width bounded by a constant, determining a tree decomposition of that width is tractable;
 * 2) the problem can be solved in polynomial time given the tree decomposition.

In other words, a width restriction is tractable if it ensures both that a tree can be built, and that the new binary problem can be build from it in polynomial time.