# Graph (discrete mathematics)

In mathematics, and more specifically in graph theory, a graph is a structure amounting to a set of objects in which some pairs of the objects are in some sense "related". The objects correspond to mathematical abstractions called vertices and each of the related pairs of vertices is called an edge. Typically, a graph is depicted in diagrammatic form as a set of dots or circles for the vertices, joined by lines or curves for the edges. Graphs are one of the objects of study in discrete mathematics.
The edges may be directed or undirected. For example, if the vertices represent people at a party, and there is an edge between two people if they shake hands, then this graph is undirected because any person A can shake hands with a person B only if B also shakes hands with A. In contrast, if any edge from a person A to a person B corresponds to A owes money to B, then this graph is directed, because owing money is not necessarily reciprocated. The former type of graph is called an undirected graph while the latter type of graph is called a [|directed graph].
Graphs are the basic subject studied by graph theory. The word "graph" was first used in this sense by James Joseph Sylvester in 1878.

## Definitions

Definitions in graph theory vary. The following are some of the more basic ways of defining graphs and related mathematical structures.

### Graph

A graph is a pair, where is a set whose elements are called vertices, and is a set of two-sets of vertices, whose elements are called edges.
The vertices and of an edge are called the endpoints of the edge. The edge is said to join and and to be incident on and. A vertex may not belong to any edge.
A multigraph is a generalization that allows multiple edges adjacent to the same pair of vertices. In some texts, multigraphs are simply called graphs.
Sometimes, graphs are allowed to contain loops, which are edges that join a vertex to itself. For allowing loops, the above definition must be changed by defining edges as multisets of two vertices instead of two-sets. Such generalized graphs are called graphs with loops or simply graphs when it is clear from the context that loops are allowed.
Generally, the set of vertices V is supposed to be finite; this implies that the set of edges is also finite. Infinite graphs are sometimes considered, but are more often viewed as a special kind of binary relation, as most results on finite graphs do not extend to the infinite case, or need a rather different proof.
An empty graph is a graph that has an empty set of vertices. The order of a graph is its number of vertices. The size of a graph is its number of edges . However, in some contexts, such as for expressing the computational complexity of algorithms, the size is . The degree or valency of a vertex is the number of edges that are incident to it; for graphs with loops, a loop is counted twice.
In a graph of order, the maximum degree of each vertex is , and the maximum number of edges is .
The edges of a graph define a symmetric relation on the vertices, called the adjacency relation. Specifically, two vertices and are adjacent if is an edge.

### Directed graph

A directed graph or digraph is a graph in which edges have orientations.
In one restricted but very common sense of the term, a directed graph is an ordered pair comprising:
• , a set of vertices ;
• , a set of edges which are ordered pairs of vertices.
To avoid ambiguity, this type of object may be called precisely a directed simple graph.
In the edge directed from to, the vertices and are called the endpoints of the edge, the tail of the edge and the head of the edge. The edge is said to join and and to be incident on and on. A vertex may exist in a graph and not belong to an edge. The edge is called the inverted edge of. Multiple edges, not allowed under the definition above, are two or more edges with both the same tail and the same head.
In one more general sense of the term allowing multiple edges, a directed graph is an ordered triple comprising:
• , a set of vertices ;
• , a set of edges ;
• , an incidence function mapping every edge to an ordered pair of vertices.
To avoid ambiguity, this type of object may be called precisely a directed multigraph.
A loop is an edge that joins a vertex to itself. Directed graphs as defined in the two definitions above cannot have loops, because a loop joining a vertex to itself is the edge or is incident on which is not in. So to allow loops the definitions must be expanded. For directed simple graphs, the definition of should be modified to. For directed multigraphs, the definition of should be modified to. To avoid ambiguity, these types of objects may be called precisely a directed simple graph permitting loops and a directed multigraph permitting loops respectively.
The edges of a directed simple graph permitting loops is a homogeneous relation ~ on the vertices of that is called the adjacency relation of. Specifically, for each edge, its endpoints and are said to be adjacent to one another, which is denoted ~.

### Mixed graph

A mixed graph is a graph in which some edges may be directed and some may be undirected. It is an ordered triple for a mixed simple graph and for a mixed multigraph with V, E, A, ϕE and ϕA defined as above. Directed and undirected graphs are special cases.

### Weighted graph

A weighted graph or a network is a graph in which a number is assigned to each edge. Such weights might represent for example costs, lengths or capacities, depending on the problem at hand. Such graphs arise in many contexts, for example in shortest path problems such as the traveling salesman problem.

## Types of graphs

### Oriented graph

An oriented graph is a directed graph in which at most one of and may be edges of the graph. That is, it is a directed graph that can be formed as an orientation of an undirected graph. However, some authors use "oriented graph" to mean the same as "directed graph".

### Regular graph

A regular graph is a graph in which each vertex has the same number of neighbours, i.e., every vertex has the same degree. A regular graph with vertices of degree k is called a k‑regular graph or regular graph of degree k.

### Complete graph

A complete graph is a graph in which each pair of vertices is joined by an edge. A complete graph contains all possible edges.

### Finite graph

A finite graph is a graph in which the vertex set and the edge set are finite sets. Otherwise, it is called an infinite graph.
Most commonly in graph theory it is implied that the graphs discussed are finite. If the graphs are infinite, that is usually specifically stated.

### Connected graph

In an undirected graph, an unordered pair of vertices is called connected if a path leads from x to y. Otherwise, the unordered pair is called disconnected.
A connected graph is an undirected graph in which every unordered pair of vertices in the graph is connected. Otherwise, it is called a disconnected graph.
In a directed graph, an ordered pair of vertices is called strongly connected if a directed path leads from x to y. Otherwise, the ordered pair is called weakly connected if an undirected path leads from x to y after replacing all of its directed edges with undirected edges. Otherwise, the ordered pair is called disconnected.
A strongly connected graph is a directed graph in which every ordered pair of vertices in the graph is strongly connected. Otherwise, it is called a weakly connected graph if every ordered pair of vertices in the graph is weakly connected. Otherwise it is called a disconnected graph.
A k-vertex-connected graph or k-edge-connected graph is a graph in which no set of vertices exists that, when removed, disconnects the graph. A k-vertex-connected graph is often called simply a k-connected graph.

### Bipartite graph

A bipartite graph is a simple graph in which the vertex set can be partitioned into two sets, W and X, so that no two vertices in W share a common edge and no two vertices in X share a common edge. Alternatively, it is a graph with a chromatic number of 2.
In a complete bipartite graph, the vertex set is the union of two disjoint sets, W and X, so that every vertex in W is adjacent to every vertex in X but there are no edges within W or X.

### Path graph

A path graph or linear graph of order is a graph in which the vertices can be listed in an order v1, v2, …, vn such that the edges are the where i = 1, 2, …, n − 1. Path graphs can be characterized as connected graphs in which the degree of all but two vertices is 2 and the degree of the two remaining vertices is 1. If a path graph occurs as a subgraph of another graph, it is a path in that graph.

### Planar graph

A planar graph is a graph whose vertices and edges can be drawn in a plane such that no two of the edges intersect.

### Cycle graph

A cycle graph or circular graph of order is a graph in which the vertices can be listed in an order v1, v2, …, vn such that the edges are the where i = 1, 2, …, n − 1, plus the edge. Cycle graphs can be characterized as connected graphs in which the degree of all vertices is 2. If a cycle graph occurs as a subgraph of another graph, it is a cycle or circuit in that graph.

### Tree

A tree is an undirected graph in which any two vertices are connected by exactly one path, or equivalently a connected acyclic undirected graph.
A forest is an undirected graph in which any two vertices are connected by at most one path, or equivalently an acyclic undirected graph, or equivalently a disjoint union of trees.

### Polytree

A polytree is a directed acyclic graph whose underlying undirected graph is a tree.
A polyforest is a directed acyclic graph whose underlying undirected graph is a forest.

### Advanced classes

More advanced kinds of graphs are:
Two edges of a graph are called adjacent if they share a common vertex. Two edges of a directed graph are called consecutive if the head of the first one is the tail of the second one. 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. The graph with no vertices and no edges is sometimes called the null graph or empty graph, but the terminology is not consistent and not all mathematicians allow this object.
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. The same remarks apply to edges, so graphs with labeled edges are called edge-labeled. 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 unlabeled.
The category of all graphs is the slice category Set ↓ D where D: Set → Set is the functor taking a set s to s × s.

## Examples

• The diagram is a schematic representation of the graph with vertices and edges
• In computer science, directed graphs are used to represent knowledge, finite state machines, and many other discrete structures.
• A binary relation R on a set X defines a directed graph. An element x of X is a direct predecessor of an element y of X if and only if xRy.
• A directed graph can model information networks such as Twitter, with one user following another.
• Particularly regular examples of directed graphs are given by the Cayley graphs of finitely-generated groups, as well as Schreier coset graphs
• In category theory, every small category has an underlying directed multigraph whose vertices are the objects of the category, and whose edges are the arrows of the category. In the language of category theory, one says that there is a forgetful functor from the category of small categories to the category of quivers.

## Graph operations

There are several operations that produce new graphs from initial ones, which might be classified into the following categories:
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 and 0-simplices. As such, complexes are generalizations of graphs since they allow for higher-dimensional simplices.
Every graph gives rise to a matroid.
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, see continuous graph.
In computational biology, power graph analysis introduces power graphs as an alternative representation of undirected graphs.
In geographic information systems, geometric networks are closely modeled after graphs, and borrow many concepts from graph theory to perform spatial analysis on road networks or utility grids.