In
constraint satisfaction In artificial intelligence and operations research, constraint satisfaction is the process of finding a solution through
a set of constraints that impose conditions that the variables must satisfy. A solution is therefore a set of values for th ...
research in
artificial intelligence
Artificial intelligence (AI) is intelligence—perceiving, synthesizing, and inferring information—demonstrated by machines, as opposed to intelligence displayed by animals and humans. Example tasks in which this is done include speech re ...
and
operations research
Operations research ( en-GB, operational research) (U.S. Air Force Specialty Code: Operations Analysis), often shortened to the initialism OR, is a discipline that deals with the development and application of analytical methods to improve deci ...
, constraint graphs and hypergraphs are used to represent relations among constraints in a
constraint satisfaction problem
Constraint satisfaction problems (CSPs) are mathematical questions defined as a set of objects whose state must satisfy a number of constraints or limitations. CSPs represent the entities in a problem as a homogeneous collection of finite constra ...
. A constraint graph is a
special case
In logic, especially as applied in mathematics, concept is a special case or specialization of concept precisely if every instance of is also an instance of but not vice versa, or equivalently, if is a generalization of . A limiting case is ...
of a
factor graph
A factor graph is a bipartite graph representing the factorization of a function. In probability theory and its applications, factor graphs are used to represent factorization of a probability distribution function, enabling efficient computatio ...
, which allows for the existence of free variables.
Constraint hypergraph
The constraint hypergraph of a constraint satisfaction problem is a
hypergraph
In mathematics, a hypergraph is a generalization of a graph in which an edge can join any number of vertices. In contrast, in an ordinary graph, an edge connects exactly two vertices.
Formally, an undirected hypergraph H is a pair H = (X,E) wh ...
in which the vertices correspond to the variables, and the
hyperedges
This is a glossary of graph theory. Graph theory is the study of graphs, systems of nodes or vertices connected in pairs by lines or edges.
Symbols
A
B
...
correspond to the constraints. A set of vertices forms a hyperedge if the corresponding variables are those occurring in some constraint.
[
A simple way to represent the constraint hypergraph is by using a classical graph with the following properties:
# Vertices correspond either to variables or to constraints,
# an edge can only connect a variable-vertex to a constraint-vertex, and
# 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
In the mathematical field of graph theory, a bipartite graph (or bigraph) is a graph whose vertices can be divided into two disjoint and independent sets U and V, that is every edge connects a vertex in U to one in V. Vertex sets U and V are ...
. The hypergraph is recovered by defining the vertices 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
Graph may refer to:
Mathematics
*Graph (discrete mathematics), a structure made of vertices and edges
**Graph theory, the study of such graphs and their properties
*Graph (topology), a topological space resembling a graph in the sense of discre ...
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.[''Handbook of Constraint Programming'', by Francesca Rossi, Peter Van Beek, Toby Walsh (2006) ]
p. 211, 212
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 constraint scopes involved in the constraints of the problem, and two vertices are connected by an edge if the corresponding scopes have common variables.[
]
References
{{reflist
Constraint programming
Application-specific graphs