- This article presents the essential definitions. For a more complete account see graph theory. For another use of the term "graph" in mathematics, see graph of a function. For the more general concept of the graph of a relation, see relation.
In mathematics and computer science, a graph is the basic object of study in graph theory. Informally speaking, a graph is a set of objects called points or vertices connected by links called lines or edges. In a graph proper, which is by default undirected, a line from point A to point B is considered to be the same thing as a line from point B to point A. In a digraph, short for directed graph, the two directions are counted as being distinct arcs or directed edges. Typically, a graph is depicted in diagrammatic form as a set of dots (for the points, vertices, or nodes), joined by curves (for the lines or edges).
Definitions in graph theory vary in the literature. The following are some of the more basic ways of defining graphs and related structures.
A graph or undirected graph G is an ordered pair G := (V, E) that is subject to the following conditions:
- V is a set of vertices or nodes,
- E is a set of unordered pairs of distinct vertices, called edges or lines.
- The vertices belonging to an edge are called the ends, endpoints, or end vertices of the edge.
V (and hence E) are usually taken to be finite sets, and many of the well-known results are not true (or are rather different) for infinite graphs because many of the arguments fail in the infinite case.
A directed graph or digraph G is an ordered pair G:=(V, A) with
- V, a set of vertices or nodes,
- A, a set of ordered pairs of vertices, called directed edges, arcs, or arrows. An edge e = (x, y) is considered to be directed from x to y; y is called the head and x is called the tail of the edge.
A variation on this definition is the oriented graph, which is a graph (or multigraph; see below) with an orientation or direction assigned to each of its edges. A distinction between a directed graph and an oriented simple graph is that if x and y are vertices, a directed graph allows both (x, y) and (y, x) as edges, while only one is permitted in an oriented graph. A more fundamental difference is that, in a directed graph (or multigraph), the directions are fixed, but in an oriented graph (or multigraph), only the underlying graph is fixed, while the orientation may vary.
A directed acyclic graph, also called a dag or DAG, is a directed graph with no directed cycles.
A quiver is sometimes said to be simply a directed graph, but in practice it is a directed graph with vector spaces attached to the vertices and linear transformations attached to the arcs.
A mixed graph G is an ordered triple G := (V,E,A) with V, E and A defined as above.
Variations in the definitions
As defined above, edges of undirected graphs have two distinct ends, and E and A are sets (with distinct elements, like all sets). Many applications require more general possibilities, but terminology varies.
A loop is an edge (directed or undirected) with both ends the same; these may be permitted or not permitted according to the application. In this context, an edge with two different ends is called a link.
Sometimes E and A are allowed to be multisets, so that there can be more than one edge (called multiple edges) between the same two vertices. Another way to allow multiple edges is to make E a set, independent of V, and to specify the endpoints of an edge by an incidence relation between V and E. The same applies to a directed edge set A, except that there must be two incidence relations, one for the head and one for the tail of each edge.
A simple graph is always understood to mean a "graph" which contains no loops or multiple edges. However, the unqualified term "graph" might allow or disallow loops and multiple edges in the literature, according to the preferences of the author and the requirements of the particular topic.
The term "multigraph" is used to indicate that multiple edges (and sometimes loops) are allowed. Where graphs are defined so as to allow loops and multiple edges, a multigraph is often defined to mean a graph without loops, however, where graphs are defined so as to disallow loops and mutiple edges, the term is often defined to mean a "graph" which can have loops or multiple edges.
Sometimes the term "pseudograph" is used to indicate that both multiple edges and loops are allowed. In exceptional situations it is even necessary to have edges with only one end, called halfedges, or no ends (loose edges); see for example signed graphs.
Properties of graphs
- For more definitions see Glossary of graph theory.
Two edges of a graph are called adjacent (sometimes coincident) if they share a common vertex. Similarly, two vertices are called adjacent if they share a common edge, in which case the common edge is said to join the two vertices. An edge and a vertex on that edge are called incident.
The graph with only one vertex and no edges is called the trivial graph. A graph with only vertices and no edges is known as an edgeless graph, empty graph, or null graph (there is no consistency in the literature). The graph with no vertices and no edges is sometimes called the null graph or empty graph, but not all mathematicians allow this object.
In a weighted graph or digraph, each edge is associated with some value, variously called its cost, weight, length or other term depending on the application; such graphs arise in many contexts, for example in optimal routing problems such as the traveling salesman problem.
Normally, the vertices of a graph, by their nature as elements of a set, are distinguishable. This kind of graph may be called vertex-labeled. However, for many questions it is better to treat vertices as indistinguishable; then the graph may be called unlabeled. (Of course, the vertices may be still distinguishable by the properties of the graph itself, e.g., by the numbers of incident edges). If vertices are indistinguishable they may be distinguished by giving each vertex a label, hence the name vertex-labeled graph. The same remarks apply to edges, so that graphs which have labeled edges are called edge-labeled graphs. Graphs with labels attached to edges or vertices are more generally designated as labeled. Consequently, graphs in which vertices are indistinguishable and edges are indistinguishable are called unlabelled. (Note that in the literature the term labeled may apply to other kinds of labeling, besides that which serves only to distinguish different vertices or edges.)
The picture is a graphic representation of the following graph
The fact that vertex 1 is adjacent to vertex 2 is sometimes denoted by 1 ~ 2.
- In category theory a category can be considered a directed multigraph with the objects as vertices and the morphisms as directed edges. The functors between categories induce then some, but not necessarily all, of the digraph morphisms.
- In computer science directed graphs are used to represent finite state machines and many other discrete structures.
- A binary relation R on a set X is a simple directed graph. Two edges x,y of X are connected by an arrow if xRy.
- In a complete graph each pair of vertices is joined by an edge, that is, the graph contains all possible edges.
- A planar graph can be drawn in a plane (embedded in a plane) with no crossing edges.
- A tree is a connected graph with no cycles.
- Bipartite graphs
- Perfect graphs
- Cayley graphs
- The Petersen graph and its generalizations
Operations on graphs
There are several operations that produce new graphs from old ones.
- Cartesian product of graphs
- Tensor product of graphs
- Strong product of graphs
- Lexicographic product of graphs
- Zig-zag product of graphs
In a hypergraph, an edge can join more than two vertices.
An undirected graph can be seen as a simplicial complex consisting of 1-simplices (the edges) and 0-simplices (the vertices). As such, complexes are generalizations of graphs since they allow for higher-dimensional simplices.
Every graph gives rise to a matroid, but in general the graph cannot be recovered from its matroid, so matroids are not truly generalizations of graphs.
In model theory, a graph is just a structure. But in that case, there is no limitation on the number of edges: it can be any cardinal number.
- Balakrishnan, V.K. (1997), Graph Theory, McGraw-Hill.
- Bollobas, Bela (2002), Modern Graph Theory, Springer, ISBN 0387984887.
- Diestel, Reinhard (2000), Graph Theory, 2nd edition, Springer, ISBN 0387989765.
- Gross, Jonathon L, and Yellen, Jay (2005), Graph Theory and Its Applications, 2nd edition, Chapman and Hall (CRC), ISBN 158488505X.
- Gross, Jonathon L, and Yellen, Jay; (eds., 2003), Handbook of Graph Theory, CRC, ISBN 1584880902.
- Zwillinger, Daniel (2002), CRC Standard Mathematical Tables and Formulae, ; 31st edition, Chapman and Hall (CRC), ISBN 1584882913.
- Glossary of graph theory
- List of graph theory topics
- Graph (data structure)
- Graph drawing
- Important publications in graph theory
- Dual graph
- Graph Theory online textbook
- Graph theory tutorial
- Some graph theory algorithm animations
- Step through the algorithm to understand it.
- The compendium of algorithm visualisation sites
- Challenging Benchmarks for Maximum Clique, Maximum Independent Set, Minimum Vertex Cover and Vertex Coloring
- Image gallery no.1: Some real-life networks
- Image gallery no.2: More real-life graphs
- Graph links collection
- Grafos Spanish copyleft software
- Source code for computing neighbor shells in particle systems under periodic boundary conditions
- Edge Addition Planarity Algorithm — Online version of a paper that describes the Boyer-Myrvold planarity algorithm.
- Edge Addition Planarity Algorithm Source Code — Free C source code for reference implementation of Boyer-Myrvold planarity algorithm, which provides both a combinatorial planar embedder and Kuratowski subgraph isolator.
- Weisstein, Eric W., Graph at MathWorld.
Portions of the above article were adapted from the following sources under the GNU Free Documentation License, under other applicable licenses, or by permission of the copyright holders.