# Glossary of graph theory

Template:Sister Graph theory is a growing area in mathematical research, and has a large specialized vocabulary. Some authors use the same word with different meanings. Some authors use different words to mean the same thing. This page attempts to describe the majority of current usage.

## Basics

A **graph** *G* consists of two types of elements, namely *vertices* and *edges*. Every edge has two *endpoints* in the set of vertices, and is said to **connect** or **join** the two endpoints. An edge can thus be defined as a set of two vertices (or an ordered pair, in the case of a **directed graph** - see Section Direction). The two endpoints of an edge are also said to be **adjacent** to each other.

Alternative models of graphs exist; e.g., a graph may be thought of as a Boolean binary function over the set of vertices or as a square (0,1)-matrix.

A **vertex** is simply drawn as a *node* or a *dot*. The **vertex set** of *G* is usually denoted by *V*(*G*), or *V* when there is no danger of confusion. The **order** of a graph is the number of its vertices, i.e. |*V*(*G*)|.

An **edge** (a set of two elements) is drawn as a *line* connecting two vertices, called **endpoints** or **end vertices** or **endvertices**. An edge with endvertices *x* and *y* is denoted by *xy* (without any symbol in between). The **edge set** of *G* is usually denoted by *E*(*G*), or *E* when there is no danger of confusion. An edge *xy* is called **incident** to a vertex when this vertex is one of the endpoints *x* or *y*.

The **size** of a graph is the number of its edges, i.e. |*E*(*G*)|.^{[1]}

A **loop** is an edge whose endpoints are the same vertex. A **link** has two distinct endvertices. An edge is **multiple** if there is another edge with the same endvertices; otherwise it is **simple**. The **multiplicity of an edge** is the number of multiple edges sharing the same end vertices; the **multiplicity of a graph**, the maximum multiplicity of its edges. A graph is a **simple graph** if it has no multiple edges or loops, a **multigraph** if it has multiple edges, but no loops, and a **multigraph** or **pseudograph** if it contains both multiple edges and loops (the literature is highly inconsistent).

When stated without any qualification, a graph is usually assumed to be simple, except in the literature of **category theory**, where it refers to a **quiver**.

Graphs whose edges or vertices have names or labels are known as **labeled**, those without as **unlabeled**. Graphs with labeled vertices only are **vertex-labeled**, those with labeled edges only are **edge-labeled**. The difference between a labeled and an unlabeled graph is that the latter has no specific set of vertices or edges; it is regarded as another way to look upon an isomorphism type of graphs. (Thus, this usage distinguishes between graphs with identifiable vertex or edge sets on the one hand, and isomorphism types or classes of graphs on the other.)

(**Graph labeling** usually refers to the assignment of labels (usually natural numbers, usually distinct) to the edges and vertices of a graph, subject to certain rules depending on the situation. This should not be confused with a graph's merely having distinct labels or names on the vertices.)

A **hyperedge** is an edge that is allowed to take on any number of vertices, possibly more than 2. A graph that allows any hyperedge is called a **hypergraph**. A simple graph can be considered a special case of the hypergraph, namely the 2-uniform hypergraph. However, when stated without any qualification, an edge is always assumed to consist of at most 2 vertices, and a graph is never confused with a hypergraph.

A **non-edge** (or **anti-edge**) is an edge that is not present in the graph. More formally, for two vertices and , is a non-edge in a graph whenever is not an edge in . This means that there is either no edge between the two vertices or (for directed graphs) at most one of and from is an arc in G.

Occasionally the term **cotriangle** or **anti-triangle** is used for a set of three vertices none of which are connected.

The **complement** of a graph *G* is a graph with the same vertex set as *G* but with an edge set such that *xy* is an edge in if and only if *xy* is not an edge in *G*.

An **edgeless graph** or **empty graph** or **null graph** is a graph with zero or more vertices, but no edges. The **empty graph** or **null graph** may also be the graph with no vertices and no edges. If it is a graph with no edges and any number of vertices, it may be called the **null graph on vertices**. (There is no consistency at all in the literature.)

A graph is **infinite** if it has infinitely many vertices or edges or both; otherwise the graph is **finite**. An infinite graph where every vertex has finite *degree* is called **locally finite**. When stated without any qualification, a graph is usually assumed to be finite. See also continuous graph.

Two graphs *G* and *H* are said to be **isomorphic**, denoted by *G* ~ *H*, if there is a one-to-one correspondence, called an **isomorphism**, between the vertices of the graph such that two vertices are adjacent in *G* if and only if their corresponding vertices are adjacent in *H*. Likewise, a graph *G* is said to be **homomorphic ** to a graph *H* if there is a mapping, called a **homomorphism**, from *V*(*G*) to *V*(*H*) such that if two vertices are adjacent in *G* then their corresponding vertices are adjacent in *H*.

### Subgraphs

A **subgraph** of a graph *G* is a graph whose vertex set is a subset of that of *G*, and whose adjacency relation is a subset of that of *G* restricted to this subset. In the other direction, a **supergraph** of a graph *G* is a graph of which *G* is a subgraph. We say a graph *G* **contains** another graph *H* if some subgraph of *G* is *H* or is isomorphic to *H*.

A subgraph *H* is a **spanning subgraph**, or **factor**, of a graph *G* if it has the same vertex set as *G*. We say *H* spans *G*.

A subgraph *H* of a graph *G* is said to be **induced** (or **full**) if, for any pair of vertices *x* and *y* of H, *xy* is an edge of *H* if and only if *xy* is an edge of G. In other words, *H* is an induced subgraph of *G* if it has exactly the edges that appear in *G* over the same vertex set. If the vertex set of *H* is the subset *S* of *V(G)*, then *H* can be written as *G*[*S*] and is said to be **induced by S**.

A graph *G* is **minimal** with some property *P* provided that *G* has property *P* and no proper subgraph of *G* has property *P*. In this definition, the term *subgraph* is usually understood to mean "induced subgraph." The notion of maximality is defined dually: *G* is **maximal** with *P* provided that *P*(*G*) and *G* has no proper supergraph *H* such that *P*(*H*).

A graph that does *not* contain *H* as an induced subgraph is said to be ** H-free**, and more generally if is a family of graphs then the graphs that do not contain any induced subgraph isomorphic to a member of are called -free.

^{[2]}For example the triangle-free graphs are the graphs that do not have a triangle graph as an induced subgraph. Many important classes of graphs can be defined by sets of forbidden subgraphs, the graphs that are not in the class and are minimal with respect to subgraphs, induced subgraphs, or graph minors.

A **universal graph** in a class * K* of graphs is a simple graph in which every element in

*can be embedded as a subgraph.*

**K**### Walks

A **walk** is a sequence of vertices and edges, where each edge's endpoints are the preceding and following vertices in the sequence. A walk is **closed** if its first and last vertices are the same, and **open** if they are different.

The **length** *l* of a walk is the number of edges that it uses. For an open walk, *l* = *n*–1, where *n* is the number of vertices visited (a vertex is counted each time it is visited). For a closed walk, *l* = *n* (the start/end vertex is listed twice, but is not counted twice). In the example graph, (1, 2, 5, 1, 2, 3) is an open walk with length 5, and (4, 5, 2, 1, 5, 4) is a closed walk of length 5.

A **trail** is a walk in which all the edges are distinct. A closed trail has been called a **tour** or **circuit**, but these are not universal, and the latter is often reserved for a regular subgraph of degree two.

Traditionally, a **path** referred to what is now usually known as an *open walk*. Nowadays, when stated without any qualification, a path is usually understood to be **simple**, meaning that no vertices (and thus no edges) are repeated. (The term **chain** has also been used to refer to a walk in which all vertices and edges are distinct.) In the example graph, (5, 2, 1) is a path of length 2. The closed equivalent to this type of walk, a walk that starts and ends at the same vertex but otherwise has no repeated vertices or edges, is called a **cycle**. Like *path*, this term traditionally referred to any closed walk, but now is usually understood to be simple by definition. In the example graph, (1, 5, 2, 1) is a cycle of length 3. (A cycle, unlike a path, is not allowed to have length 0.) Paths and cycles of *n* vertices are often denoted by *P _{n}* and

*C*, respectively. (Some authors use the length instead of the number of vertices, however.)

_{n}*C*_{1} is a **loop**, *C*_{2} is a **digon** (a pair of parallel undirected edges in a multigraph, or a pair of antiparallel edges in a directed graph), and *C*_{3} is called a **triangle**.

A cycle that has odd length is an **odd cycle**; otherwise it is an **even cycle**. One theorem is that a graph is bipartite if and only if it contains no odd cycles. (See complete bipartite graph.)

A graph is **acyclic** if it contains no cycles; **unicyclic** if it contains exactly one cycle; and **pancyclic** if it contains cycles of every possible length (from 3 to the order of the graph).

A **wheel graph** is a graph with *n* vertices (*n ≥ 4*), formed by connecting a single vertex to all vertices of *C*_{n-1}.

The **girth** of a graph is the length of a shortest (simple) cycle in the graph; and the **circumference**, the length of a longest (simple) cycle. The girth and circumference of an acyclic graph are defined to be infinity ∞.

A path or cycle is **Hamiltonian** (or *spanning*) if it uses all vertices exactly once. A graph that contains a Hamiltonian path is **traceable**; and one that contains a Hamiltonian path for any given pair of (distinct) end vertices is a **Hamiltonian connected graph**. A graph that contains a Hamiltonian cycle is a **Hamiltonian graph**.

A trail or circuit (or cycle) is **Eulerian** if it uses all edges precisely once. A graph that contains an Eulerian trail is **traversable**. A graph that contains an Eulerian circuit is an **Eulerian graph**.

Two paths are **internally disjoint** (some people call it *independent*) if they do not have any vertex in common, except the first and last ones.

A **theta graph** is the union of three internally disjoint (simple) paths that have the same two distinct end vertices.^{[3]} A **theta _{0} graph** has seven vertices which can be arranged as the vertices of a regular hexagon plus an additional vertex in the center. The eight edges are the perimeter of the hexagon plus one diameter.

### Trees

A **tree** is a connected acyclic simple graph. For directed graphs, each vertex has at most one incoming edge. A vertex of degree 1 is called a **leaf**, or *pendant vertex*. An edge incident to a leaf is a **leaf edge**, or *pendant edge*. (Some people define a leaf edge as a *leaf* and then define a *leaf vertex* on top of it. These two sets of definitions are often used interchangeably.) A non-leaf vertex is an **internal vertex**. Sometimes, one vertex of the tree is distinguished, and called the **root**; in this case, the tree is called **rooted**. Rooted trees are often treated as **directed acyclic graphs** with the edges pointing away from the root.

A **subtree** of the tree *T* is a connected subgraph of *T*.

A **forest** is an acyclic simple graph. For directed graphs, each vertex has at most one incoming edge. (That is, a tree with the connectivity requirement removed; a graph containing multiple disconnected trees.)

A **subforest** of the forest *F* is a subgraph of *F*.

A **spanning tree** is a spanning subgraph that is a tree. Every graph has a spanning forest. But only a connected graph has a spanning tree.

A special kind of tree called a **star** is *K*_{1,k}. An induced star with 3 edges is a **claw**.

A **caterpillar** is a tree in which all non-leaf nodes form a single path.

A ** k-ary** tree is a rooted tree in which every internal vertex has no more than

*k*

*children*. A 1-ary tree is just a path. A 2-ary tree is also called a

**binary tree**.

### Cliques

The **complete graph** *K _{n}* of order

*n*is a simple graph with

*n*vertices in which every vertex is adjacent to every other. The example graph to the right is complete. The complete graph on

*n*vertices is often denoted by

*K*. It has

_{n}*n*(

*n*-1)/2 edges (corresponding to all possible choices of pairs of vertices).

A **clique** in a graph is a set of pairwise adjacent vertices. Since any subgraph induced by a clique is a complete subgraph, the two terms and their notations are usually used interchangeably. A ** k-clique** is a clique of order

*k*. In the example graph above, vertices 1, 2 and 5 form a 3-clique, or a

*triangle*. A maximal clique is a clique that is not a subset of any other clique (some authors reserve the term clique for maximal cliques).

The **clique number** ω(*G*) of a graph *G* is the order of a largest clique in *G*.

### Strongly connected component

A related but weaker concept is that of a *strongly connected component*. Informally, a strongly connected component of a directed graph is a subgraph where all nodes in the subgraph are reachable by all other nodes in the subgraph. Reachability between nodes is established by the existence of a *path* between the nodes.

A directed graph can be decomposed into strongly connected components by running the depth-first search (DFS) algorithm twice: first, on the graph itself and next on the *transpose graph* in decreasing order of the finishing times of the first DFS. Given a directed graph *G*, the transpose *G*_{T} is the graph *G* with all the edge directions reversed.

### Hypercubes

A **hypercube graph** is a regular graph with *2 ^{n}* vertices,

*2*edges, and

^{n−1}n*n*edges touching each vertex. It can be obtained as the one-dimensional skeleton of the geometric

**hypercube**.

### Knots

A **knot** in a directed graph is a collection of vertices and edges with the property that every vertex in the knot has outgoing edges, and all outgoing edges from vertices in the knot terminate at other vertices in the knot. Thus it is impossible to leave the knot while following the directions of the edges.

### Minors

A *minor* of is an injection from to such that every edge in corresponds to a path (disjoint from all other such paths) in such that every vertex in is in one or more paths, or is part of the injection from to . This can alternatively be phrased in terms of *contractions*, which are operations which collapse a path and all vertices on it into a single edge (see Minor (graph theory)).

### Embedding

An *embedding* of is an injection from to such that every edge in corresponds to a path in
.^{[4]}

## Adjacency and degree

In graph theory, degree, especially that of a vertex, is usually a *measure of immediate adjacency*.

An edge connects two vertices; these two vertices are said to be **incident** to that edge, or, equivalently, that edge incident to those two vertices. All degree-related concepts have to do with adjacency or incidence.

The **degree**, or *valency*, *d _{G}*(

*v*) of a vertex

*v*in a graph

*G*is the number of edges incident to

*v*, with loops being counted twice. A vertex of degree 0 is an

**isolated vertex**. A vertex of degree 1 is a leaf. In the labelled simple graph example, vertices 1 and 3 have a degree of 2, vertices 2, 4 and 5 have a degree of 3, and vertex 6 has a degree of 1. If

*E*is finite, then the total sum of vertex degrees is equal to twice the number of edges.

The **total degree** of a graph is the sum of the degrees of all its vertices. Thus, for a graph without loops, it is equal to the number of incidences between vertices and edges. The handshaking lemma states that the total degree is always equal to two times the number of edges, loops included. This means that for a simple graph with 3 vertices with each vertex having a degree of two (i.e. a triangle) the total degree would be six (e.g. 3 x 2 = 6).

A **degree sequence** is a list of degrees of a graph in non-increasing order (e.g. *d*_{1} ≥ *d*_{2} ≥ … ≥ *d _{n}*). A sequence of non-increasing integers is

**realizable**if it is a degree sequence of some graph.

Two vertices *u* and *v* are called **adjacent** if an edge exists between them. We denote this by *u* ~ *v* or *u* ↓ *v*. In the above graph, vertices 1 and 2 are adjacent, but vertices 2 and 4 are not. The set of **neighbors** of *v*, that is, vertices adjacent to *v* not including *v* itself, forms an induced subgraph called the **(open) neighborhood** of *v* and denoted *N _{G}*(

*v*). When

*v*is also included, it is called a

**closed neighborhood**and denoted by

*N*[

_{G}*v*]. When stated without any qualification, a neighborhood is assumed to be open. The subscript

*G*is usually dropped when there is no danger of confusion; the same neighborhood notation may also be used to refer to sets of adjacent vertices rather than the corresponding induced subgraphs. In the example graph, vertex 1 has two neighbors: vertices 2 and 5. For a simple graph, the number of neighbors that a vertex has coincides with its degree.

A **dominating set** of a graph is a vertex subset whose closed neighborhood includes all vertices of the graph. A vertex *v* **dominates** another vertex *u* if there is an edge from *v* to *u*. A vertex subset *V* **dominates** another vertex subset *U* if every vertex in *U* is adjacent to some vertex in *V*. The minimum size of a dominating set is the **domination number** γ(*G*).

In computers, a finite, directed or undirected graph (with *n* vertices, say) is often represented by its **adjacency matrix**: an *n*-by-*n* matrix whose entry in row *i* and column *j* gives the number of edges from the *i*-th to the *j*-th vertex.

**Spectral graph theory** studies relationships between the properties of a graph and its adjacency matrix or other matrices associated with the graph.

The **maximum degree** Δ(*G*) of a graph *G* is the largest degree over all vertices; the **minimum degree** δ(*G*), the smallest.

A graph in which every vertex has the same degree is **regular**. It is ** k-regular** if every vertex has degree

*k*. A 0-regular graph is an independent set. A 1-regular graph is a matching. A 2-regular graph is a vertex disjoint union of cycles. A 3-regular graph is said to be

**cubic**, or

*trivalent*.

A ** k-factor** is a

*k*-regular spanning subgraph. A 1-factor is a

**perfect matching**. A partition of edges of a graph into

*k*-factors is called a

**. A**

*k*-factorization**is a graph that admits a**

*k*-factorable graph*k*-factorization.

A graph is **biregular** if it has unequal maximum and minimum degrees and every vertex has one of those two degrees.

A **strongly regular graph** is a regular graph such that any adjacent vertices have the same number of common neighbors as other adjacent pairs and that any nonadjacent vertices have the same number of common neighbors as other nonadjacent pairs.

### Independence

In graph theory, the word *independent* usually carries the connotation of *pairwise disjoint* or *mutually nonadjacent*. In this sense, independence is a form of *immediate nonadjacency*. An **isolated vertex** is a vertex not incident to any edges. An **independent set**, or *coclique*, or *stable set* or *staset*, is a set of vertices of which no pair is adjacent. Since the graph induced by any independent set is an empty graph, the two terms are usually used interchangeably. In the example at the top of this page, vertices 1, 3, and 6 form an independent set; and 2 and 4 form another one.

Two subgraphs are **edge disjoint** if they have no edges in common. Similarly, two subgraphs are **vertex disjoint** if they have no vertices (and thus, also no edges) in common. Unless specified otherwise, a set of **disjoint subgraphs** are assumed to be pairwise vertex disjoint.

The **independence number** α(*G*) of a graph *G* is the size of the largest independent set of *G*.

A graph can be **decomposed** into independent sets in the sense that the entire vertex set of the graph can be partitioned into pairwise disjoint independent subsets. Such independent subsets are called **partite sets**, or simply *parts*.

A graph that can be decomposed into two partite sets **bipartite**; three sets, **tripartite**; *k* sets, ** k-partite**; and an unknown number of sets,

**multipartite**. An 1-partite graph is the same as an independent set, or an empty graph. A 2-partite graph is the same as a bipartite graph. A graph that can be decomposed into

*k*partite sets is also said to be

**.**

*k*-colourableA **complete multipartite** graph is a graph in which vertices are adjacent if and only if they belong to different partite sets. A *complete bipartite graph* is also referred to as a **biclique**; if its partite sets contain *n* and *m* vertices, respectively, then the graph is denoted *K _{}*n

*,*m

*.*

A *k*-partite graph is **semiregular** if each of its partite sets has a uniform degree; **equipartite** if each partite set has the same size; and **balanced k-partite** if each partite set differs in size by at most 1 with any other.

The **matching number** of a graph *G* is the size of a largest **matching**, or pairwise vertex disjoint edges, of *G*.

A *spanning matching*, also called a **perfect matching** is a matching that covers all vertices of a graph.

## Complexity

Complexity of a graph denotes the quantity of information that a graph contained, and can be measured in several ways. For example, by counting the number of its spanning trees, or the value of a certain formula involving the number of vertices, edges, and proper paths in a graph.
^{[5]}

## Connectivity

Connectivity extends the concept of adjacency and is essentially a form (and measure) of *concatenated adjacency*.

If it is possible to establish a path from any vertex to any other vertex of a graph, the graph is said to be **connected**; otherwise, the graph is **disconnected**. A graph is **totally disconnected** if there is no path connecting any pair of vertices. This is just another name to describe an empty graph or independent set.

A **cut vertex**, or *articulation point*, is a vertex whose removal disconnects the remaining subgraph. A **cut set**, or *vertex cut* or *separating set*, is a set of vertices whose removal disconnects the remaining subgraph. A *bridge* is an analogous edge (see below).

If it is always possible to establish a path from any vertex to every other even after removing any *k* - 1 vertices, then the graph is said to be ** k-vertex-connected** or

**. Note that a graph is**

*k*-connected*k*-connected if and only if it contains

*k*internally disjoint paths between any two vertices. The example graph above is connected (and therefore 1-connected), but not 2-connected. The

**vertex connectivity**or

**connectivity**κ(

*G*) of a graph

*G*is the minimum number of vertices that need to be removed to disconnect

*G*. The complete graph

*K*has connectivity

_{n}*n*- 1 for

*n*> 1; and a disconnected graph has connectivity 0.

In network theory, a **giant component** is a connected subgraph that contains a majority of the entire graph's nodes.

A **bridge**, or *cut edge* or *isthmus*, is an edge whose removal disconnects a graph. (For example, all the edges in a tree are bridges.) A *cut vertex* is an analogous vertex (see above). A **disconnecting set** is a set of edges whose removal increases the number of components. An **edge cut** is the set of all edges which have one vertex in some proper vertex subset *S* and the other vertex in *V*(*G*)\*S*. Edges of *K*_{3} form a disconnecting set but not an edge cut. Any two edges of *K*_{3} form a minimal disconnecting set as well as an edge cut. An edge cut is necessarily a disconnecting set; and a minimal disconnecting set of a nonempty graph is necessarily an edge cut. A **bond** is a minimal (but not necessarily minimum), nonempty set of edges whose removal disconnects a graph.

A graph is ** k-edge-connected** if any subgraph formed by removing any

*k*- 1 edges is still connected. The

**edge connectivity**κ'(

*G*) of a graph

*G*is the minimum number of edges needed to disconnect

*G*. One well-known result is that κ(

*G*) ≤ κ'(

*G*) ≤ δ(

*G*).

A **component** is a maximally connected subgraph. A **block** is either a maximally 2-connected subgraph, a bridge (together with its vertices), or an isolated vertex. A **biconnected component** is a 2-connected component.

An **articulation point** (also known as a *separating vertex*) of a graph is a vertex whose removal from the graph increases its number of connected components. A biconnected component can be defined as a subgraph induced by a maximal set of nodes that has no separating vertex.

## Distance

The **distance** *d*_{G}(*u*, *v*) between two (not necessary distinct) vertices *u* and *v* in a graph *G* is the length of a shortest path (also called a **graph geodesic**) between them. The subscript *G* is usually dropped when there is no danger of confusion. When *u* and *v* are identical, their distance is 0. When *u* and *v* are unreachable from each other, their distance is defined to be infinity ∞.

The **eccentricity** ε_{G}(*v*) of a vertex *v* in a graph *G* is the maximum distance from *v* to any other vertex. The **diameter** diam(*G*) of a graph *G* is the maximum eccentricity over all vertices in a graph; and the **radius** rad(*G*), the minimum. When there are two components in *G*, diam(*G*) and rad(*G*) defined to be infinity ∞. Trivially, diam(*G*) ≤ 2 rad(*G*). Vertices with maximum eccentricity are called **peripheral vertices**. Vertices of minimum eccentricity form the **center**. A tree has at most two center vertices.

The **Wiener index of a vertex** *v* in a graph *G*, denoted by *W _{G}*(

*v*) is the sum of distances between

*v*and all others. The

**Wiener index of a graph**

*G*, denoted by

*W*(

*G*), is the sum of distances over all pairs of vertices. An undirected graph's

**Wiener polynomial**is defined to be Σ

*q*

^{d(u,v)}over all unordered pairs of vertices

*u*and

*v*. Wiener index and Wiener polynomial are of particular interest to mathematical chemists.

The *k*-th power*G ^{k}* of a graph

*G*is a supergraph formed by adding an edge between all pairs of vertices of

*G*with distance at most

*k*. A

*second power*of a graph is also called a

**square**.

A ** k-spanner** is a spanning subgraph, S, in which every two vertices are at most

*k*times as far apart on S than on G. The number

*k*is the

**dilation**.

*k*-spanner is used for studying geometric network optimization.

## Genus

A **crossing** is a pair of intersecting edges. A graph is **embeddable** on a surface if its vertices and edges can be arranged on it without any crossing. The **genus** of a graph is the lowest genus of any surface on which the graph can embed.

A **planar graph** is one which *can be* drawn on the (Euclidean) plane without any crossing; and a **plane graph**, one which *is* drawn in such fashion. In other words, a planar graph is a graph of genus 0. The example graph is planar; the complete graph on *n* vertices, for *n*> 4, is not planar. Also, a tree is necessarily a planar graph.

When a graph is drawn without any crossing, any cycle that surrounds a region without any edges reaching from the cycle into the region forms a **face**. Two faces on a plane graph are **adjacent** if they share a common edge. A **dual**, or *planar dual* when the context needs to be clarified, *G*^{*} of a plane graph *G* is a graph whose vertices represent the faces, including any outerface, of *G* and are adjacent in *G*^{*} if and only if their corresponding faces are adjacent in *G*. The dual of a planar graph is always a planar *pseudograph* (e.g. consider the dual of a triangle). In the familiar case of a 3-connected simple planar graph *G* (isomorphic to a convex polyhedron *P*), the dual *G*^{*} is also a 3-connected simple planar graph (and isomorphic to the dual polyhedron *P*^{*}).

Furthermore, since we can establish a sense of "inside" and "outside" on a plane, we can identify an "outermost" region that contains the entire graph if the graph does not cover the entire plane. Such outermost region is called an **outer face**. An **outerplanar graph** is one which *can be* drawn in the planar fashion such that its vertices are all adjacent to the outer face; and an **outerplane graph**, one which *is* drawn in such fashion.

The minimum number of crossings that must appear when a graph is drawn on a plane is called the **crossing number**.

The minimum number of planar graphs needed to cover a graph is the **thickness** of the graph.

## Weighted graphs and networks

A **weighted graph** associates a label (**weight**) with every edge in the graph. Weights are usually real numbers. They may be restricted to rational numbers or integers. Certain algorithms require further restrictions on weights; for instance, Dijkstra's algorithm works properly only for positive weights. The **weight of a path** or the **weight of a tree** in a weighted graph is the sum of the weights of the selected edges. Sometimes a non-edge (a vertex pair with no connecting edge) is indicated by labeling it with a special weight representing infinity. Sometimes the word **cost** is used instead of weight. When stated without any qualification, a graph is always assumed to be unweighted. In some writing on graph theory the term **network** is a synonym for a **weighted graph**. A network may be directed or undirected, it may contain special vertices (nodes), such as **source** or **sink**. The classical network problems include:

- minimum cost spanning tree,
- shortest paths,
- maximal flow (and the max-flow min-cut theorem)

## Direction

{{#invoke:main|main}}
A **directed arc**, or *directed edge*, is an ordered pair of endvertices that can be represented graphically as an arrow drawn between the endvertices. In such an ordered pair the first vertex is called the *initial vertex* or **tail**; the second one is called the *terminal vertex* or **head** (because it appears at the arrow head). An **undirected edge** disregards any sense of direction and treats both endvertices interchangeably. A **loop** in a digraph, however, keeps a sense of direction and treats both head and tail identically. A set of arcs are **multiple**, or *parallel*, if they share the same head and the same tail. A pair of arcs are **anti-parallel** if one's head/tail is the other's tail/head. A **digraph**, or *directed graph*, or **oriented graph**, is analogous to an undirected graph except that it contains only arcs. A **mixed graph** may contain both directed and undirected edges; it generalizes both directed and undirected graphs. When stated without any qualification, a graph is almost always assumed to be undirected.

A digraph is called **simple** if it has no loops and at most one arc between any pair of vertices. When stated without any qualification, a digraph is usually assumed to be simple. A **quiver** is a directed graph which is specifically allowed, but not required, to have loops and more than one arc between any pair of vertices.

In a digraph Γ, we distinguish the **out degree** *d*_{Γ}^{+}(*v*), the number of edges leaving a vertex *v*, and the **in degree** *d*_{Γ}^{-}(*v*), the number of edges entering a vertex *v*. If the graph is oriented, the degree *d*_{Γ}(*v*) of a vertex *v* is equal to the sum of its out- and in- degrees. When the context is clear, the subscript Γ can be dropped. Maximum and minimum out degrees are denoted by Δ^{+}(Γ) and δ^{+}(Γ); and maximum and minimum in degrees, Δ^{-}(Γ) and δ^{-}(Γ).

An **out-neighborhood**, or *successor set*, *N*^{+}_{Γ}(*v*) of a vertex *v* is the set of heads of arcs going from *v*. Likewise, an **in-neighborhood**, or *predecessor set*, *N*^{-}_{Γ}(*v*) of a vertex *v* is the set of tails of arcs going into *v*.

A **source** is a vertex with 0 in-degree; and a **sink**, 0 out-degree.

A vertex *v* **dominates** another vertex *u* if there is an arc from *v* to *u*. A vertex subset *S* is **out-dominating** if every vertex not in *S* is dominated by some vertex in *S*; and **in-dominating** if every vertex in *S* is dominated by some vertex not in *S*.

A **kernel** in a (possibly directed) graph G is an independent set S such that every vertex in V(G) \ S dominates some vertex in S. In undirected graphs, kernels are maximal independent sets.^{[6]} A digraph is **kernel perfect** if every induced sub-digraph has a kernel.^{[7]}

An **Eulerian digraph** is a digraph with equal in- and out-degrees at every vertex.

The **zweieck** of an undirected edge is the pair of diedges
and which form the simple dicircuit.

An **orientation** is an assignment of directions to the edges of an undirected or partially directed graph. When stated without any qualification, it is usually assumed that all undirected edges are replaced by a directed one in an orientation. Also, the underlying graph is usually assumed to be undirected and simple.

A **tournament** is a digraph in which each pair of vertices is connected by exactly one arc. In other words, it is an oriented complete graph.

A **directed path**, or just a *path* when the context is clear, is an oriented simple path such that all arcs go the same direction, meaning all internal vertices have in- and out-degrees 1. A vertex *v* is **reachable** from another vertex *u* if there is a directed path that starts from *u* and ends at *v*. Note that in general the condition that *u* is reachable from *v* does not imply that *v* is also reachable from *u*.

If *v* is reachable from *u*, then *u* is a **predecessor** of *v* and *v* is a **successor** of *u*. If there is an arc from *u* to *v*, then *u* is a **direct predecessor** of *v*, and *v* is a **direct successor** of *u*.

A digraph is **strongly connected** if every vertex is reachable from every other following the directions of the arcs. On the contrary, a digraph is **weakly connected** if its underlying undirected graph is connected. A weakly connected graph can be thought of as a digraph in which every vertex is "reachable" from every other but not necessarily following the directions of the arcs. A strong orientation is an orientation that produces a strongly connected digraph.

A **directed cycle**, or just a *cycle* when the context is clear, is an oriented simple cycle such that all arcs go the same direction, meaning all vertices have in- and out-degrees 1. A digraph is **acyclic** if it does not contain any directed cycle. A finite, acyclic digraph with no isolated vertices necessarily contains at least one source and at least one sink.

An **arborescence**, or *out-tree* or *branching*, is an oriented tree in which all vertices are reachable from a single vertex. Likewise, an *in-tree* is an oriented tree in which a single vertex is reachable from every other one.

### Directed acyclic graphs

{{#invoke:main|main}} The partial order structure of directed acyclic graphs (or DAGs) gives them their own terminology.

If there is a directed edge from *u* to *v*, then we say *u* is a **parent** of *v* and *v* is a **child** of *u*. If there is a directed path from *u* to *v*, we say *u* is an **ancestor** of *v* and *v* is a **descendant** of *u*.

The **moral graph** of a DAG is the undirected graph created by adding an (undirected) edge between all parents of the same node (sometimes called *marrying*), and then replacing all directed edges by undirected edges. A DAG is **perfect** if, for each node, the set of parents is complete (i.e. no new edges need to be added when forming the moral graph).

## Colouring

{{#invoke:main|main}}

Vertices in graphs can be given **colours** to identify or label them. Although they may actually be rendered in diagrams in different colours, working mathematicians generally pencil in numbers or letters (usually numbers) to represent the colours.

Given a graph G (V,E) a ** k-colouring** of G is a map ϕ : V → {1, ..., k} with the property that (u, v) ∈ E ⇒ ϕ(u) ≠ ϕ(v) - in other words, every vertex is assigned a colour with the condition that adjacent vertices cannot be assigned the same colour.

The **chromatic number** *χ*(G) is the smallest *k* for which G has a *k*-colouring.

Given a graph and a colouring, the **colour classes** of the graph are the sets of vertices given the same colour.

A graph is called **k-critical** if its chromatic number is k but all of its proper subgraphs have chromatic number less than k. An odd cycle is 3-critical, and the complete graph on k vertices is k-critical.

## Various

A **graph invariant** is a property of a graph *G*, usually a number or a polynomial, that depends only on the isomorphism class of *G*. Examples are the order, genus, chromatic number, and chromatic polynomial of a graph.

## See also

## References

- ↑ {{#invoke:citation/CS1|citation |CitationClass=book }}
- ↑ {{#invoke:citation/CS1|citation |CitationClass=citation }}.
- ↑ {{#invoke:citation/CS1|citation |CitationClass=citation }}; {{#invoke:citation/CS1|citation |CitationClass=citation }}.
- ↑ {{#invoke:citation/CS1|citation |CitationClass=book }}
- ↑ {{#invoke:citation/CS1|citation |CitationClass=citation }}
- ↑ Bondy, J.A., Murty, U.S.R.,
*Graph Theory*, p. 298 - ↑ Béla Bollobás,
*Modern Graph theory*, p. 298

- {{#invoke:citation/CS1|citation

|CitationClass=book
}}. [*Packed with advanced topics followed by a historical overview at the end of each chapter.*]

- {{#invoke:citation/CS1|citation

|CitationClass=book }}

- {{#invoke:citation/CS1|citation

|CitationClass=book
}} [*Standard textbook, most basic material and some deeper results, exercises of various difficulty and notes at the end of each chapter; known for being quasi error-free.*]

- West, Douglas B. (2001).
*Introduction to Graph Theory*(2ed). Upper Saddle River: Prentice Hall. ISBN 0-13-014400-2. [*Tons of illustrations, references, and exercises. The most complete introductory guide to the subject.*] - Weisstein, Eric W., "Graph",
*MathWorld*. - Zaslavsky, Thomas. Glossary of signed and gain graphs and allied areas.
*Electronic Journal of Combinatorics*, Dynamic Surveys in Combinatorics, # DS 8. http://www.combinatorics.org/Surveys/