Jump to content

Constraint graph

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by 129.175.127.67 (talk) at 17:16, 13 February 2012 (Constraint hypergraph: added representation as a bipartite graph for better clarity, for people that don't know hypergraphs.). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

In constraint satisfaction research of artificial intelligence and operations research, constraint graphs and hypergraphs are used to represent relations among constraints in a constraint satisfaction problem.

Constraint hypergraph

The constraint hypergraph of a constraint satisfaction problem is a hypergraph in which hypervertices correspond to the variables and the hyperedges correspond to the constraints. Two hypervertices are in the same hyperedge if the two variables occur in the same constraint.[1]

A simple way to represent the constraint hypergraph is by using a classical graph with the following properties:

  1. Vertices correspond either to variables or to constraints,
  2. an edge can only connect a variable-vertex to a constraint-vertex, and
  3. there is an edge between a variable-vertex and a constraint-vertex if and only if the corresponding variable occurs in the corresponding constraint.

Properties 1 and 2 define a bipartite graph. The definition of the hypergraph is obtained by defining the hypervertices as the variable-vertices and the hyperedges as the sets of variable-vertices connected to each constraint-vertex.

Primal constraint graph

The primal constraint graph or simply primal graph (also the Gaifman graph) of a constraint satisfaction problem is the graph whose nodes are the variables of the problem and an edge joins a pair of variables if the two variables occur together in a constraint. [1]

The primal constraint graph is in fact the primal graph of the constraint hypergraph.

Dual constraint graph

The set of variables involved in a constraint is called the constraint scope. The dual constraint graph is the graph in which the vertices are all possible constraint scopes involved in the constraints of the problem and two vertices are connected by an edge if the corresponding scopes have common variables. [1]

References

  1. ^ a b c Handbook of Constraint Programming, by Francesca Rossi, Peter Van Beek, Toby Walsh (2006) ISBN 0444527265, p. 211, 212