In graph theory, a **path** in a graph is a finite or infinite sequence of edges which joins a sequence of vertices which, by most definitions, are all distinct (and since the vertices are distinct, so are the edges). A **directed path** (sometimes called **dipath**^{ [1] }) in a directed graph is a finite or infinite sequence of edges which joins a sequence of distinct vertices, but with the added restriction that the edges be all directed in the same direction.

Paths are fundamental concepts of graph theory, described in the introductory sections of most graph theory texts. See e.g. Bondy and Murty (1976), Gibbons (1985), or Diestel (2005). Korte et al. (1990) cover more advanced algorithmic topics concerning paths in graphs.

- Let
*G*= (*V*,*E*,*ϕ*) be a graph. A finite walk is a sequence of edges (*e*_{1},*e*_{2}, …,*e*_{n − 1}) for which there is a sequence of vertices (*v*_{1},*v*_{2}, …,*v*_{n}) such that*ϕ*(*e*_{i}) = {*v*_{i},*v*_{i + 1}} for*i*= 1, 2, …,*n*− 1. (*v*_{1},*v*_{2}, …,*v*_{n}) is the*vertex sequence*of the walk. This walk is*closed*if*v*_{1}=*v*_{n}, and*open*else. An infinite walk is a sequence of edges of the same type described here, but with no first or last vertex, and a semi-infinite walk (or ray) has a first vertex but no last vertex.

- A
**trail**is a walk in which all edges are distinct.^{ [2] } - A
**path**is a trail in which all vertices (and therefore also all edges) are distinct.^{ [2] }

If *w* = (*e*_{1}, *e*_{2}, …, *e*_{n − 1}) is a finite walk with vertex sequence (*v*_{1}, *v*_{2}, …, *v*_{n}) then *w* is said to be a *walk from**v*_{1}*to**v*_{n}. Similarly for a trail or a path. If there is a finite walk between two *distinct* vertices then there is also a finite trail and a finite path between them.

Some authors do not require that all vertices of a path be distinct and instead use the term **simple path** to refer to such a path.

A weighted graph associates a value (*weight*) with every edge in the graph. The *weight of a walk* (or trail or path) in a weighted graph is the sum of the weights of the traversed edges. Sometimes the words *cost* or *length* are used instead of weight.

- A
**directed walk**is a finite or infinite sequence of edges directed in the same direction which joins a sequence of vertices.^{ [2] }

- Let
*G*= (*V*,*E*,*ϕ*) be a directed graph. A finite directed walk is a sequence of edges (*e*_{1},*e*_{2}, …,*e*_{n − 1}) for which there is a sequence of vertices (*v*_{1},*v*_{2}, …,*v*_{n}) such that*ϕ*(*e*_{i}) = (*v*_{i},*v*_{i + 1}) for*i*= 1, 2, …,*n*− 1. (*v*_{1},*v*_{2}, …,*v*_{n}) is the*vertex sequence*of the directed walk. An infinite directed walk is a sequence of edges of the same type described here, but with no first or last vertex, and a semi-infinite directed walk (or ray) has a first vertex but no last vertex.

- A
**directed trail**is a directed walk in which all edges are distinct.^{ [2] } - A
**directed path**is a directed trail in which all vertices are distinct.^{ [2] }

If *w* = (*e*_{1}, *e*_{2}, …, *e*_{n − 1}) is a finite directed walk with vertex sequence (*v*_{1}, *v*_{2}, …, *v*_{n}) then *w* is said to be a *walk from**v*_{1}*to**v*_{n}. Similarly for a directed trail or a path. If there is a finite directed walk between two *distinct* vertices then there is also a finite directed trail and a finite directed path between them.

Some authors do not require that all vertices of a directed path be distinct and instead use the term **simple directed path** to refer to such a directed path.

A weighted directed graph associates a value (*weight*) with every edge in the directed graph. The *weight of a directed walk* (or trail or path) in a weighted directed graph is the sum of the weights of the traversed edges. Sometimes the words *cost* or *length* are used instead of weight.

- A graph is connected if there are paths containing each pair of vertices.
- A directed graph is strongly connected if there are oppositely oriented directed paths containing each pair of vertices.
- A path such that no graph edges connect two nonconsecutive path vertices is called an induced path.
- A path that includes every vertex of the graph is known as a Hamiltonian path.
- Two paths are
*vertex-independent*(alternatively,*internally vertex-disjoint*) if they do not have any internal vertex in common. Similarly, two paths are*edge-independent*(or*edge-disjoint*) if they do not have any internal edge in common. Two internally vertex-disjoint paths are edge-disjoint, but the converse is not necessarily true. - The distance between two vertices in a graph is the length of a shortest path between them, if one exists, and otherwise the distance is infinity.
- The diameter of a connected graph is the largest distance (defined above) between pairs of vertices of the graph.

Several algorithms exist to find shortest and longest paths in graphs, with the important distinction that the former problem is computationally much easier than the latter.

Dijkstra's algorithm produces a list of shortest paths from a source vertex to every other vertex in directed and undirected graphs with non-negative edge weights (or no edge weights), whilst the Bellman–Ford algorithm can be applied to directed graphs with negative edge weights. The Floyd–Warshall algorithm can be used to find the shortest paths between all pairs of vertices in weighted directed graphs.

In mathematics, **graph theory** is the study of *graphs*, which are mathematical structures used to model pairwise relations between objects. A graph in this context is made up of *vertices* which are connected by *edges*. A distinction is made between **undirected graphs**, where edges link two vertices symmetrically, and **directed graphs**, where edges link two vertices asymmetrically. Graphs are one of the principal objects of study in discrete mathematics.

In graph theory, the **shortest path problem** is the problem of finding a path between two vertices in a graph such that the sum of the weights of its constituent edges is minimized.

In graph theory, a **cycle** in a graph is a non-empty trail in which the only repeated vertices are the first and last vertices. A **directed cycle** in a directed graph is a non-empty directed trail in which the only repeated vertices are the first and last vertices.

In computer science, the **Floyd–Warshall algorithm** is an algorithm for finding shortest paths in a directed weighted graph with positive or negative edge weights. A single execution of the algorithm will find the lengths of shortest paths between all pairs of vertices. Although it does not return details of the paths themselves, it is possible to reconstruct the paths with simple modifications to the algorithm. Versions of the algorithm can also be used for finding the transitive closure of a relation , or widest paths between all pairs of vertices in a weighted graph.

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.

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.

In graph theory, an **Eulerian trail** is a trail in a finite graph that visits every edge exactly once. Similarly, an **Eulerian circuit** or **Eulerian cycle** is an Eulerian trail that starts and ends on the same vertex. They were first discussed by Leonhard Euler while solving the famous Seven Bridges of Königsberg problem in 1736. The problem can be stated mathematically like this:

In graph theory, the **Robertson–Seymour theorem** states that the undirected graphs, partially ordered by the graph minor relationship, form a well-quasi-ordering. Equivalently, every family of graphs that is closed under minors can be defined by a finite set of forbidden minors, in the same way that Wagner's theorem characterizes the planar graphs as being the graphs that do not have the complete graph *K*_{5} or the complete bipartite graph *K*_{3,3} as minors.

In the mathematical field of graph theory, a **spanning tree***T* of an undirected graph *G* is a subgraph that is a tree which includes all of the vertices of *G*. In general, a graph may have several spanning trees, but a graph that is not connected will not contain a spanning tree. If all of the edges of *G* are also edges of a spanning tree *T* of *G*, then *G* is a tree and is identical to *T*.

In the mathematical discipline of graph theory, **Menger's theorem** says that in a finite graph, the size of a minimum cut set is equal to the maximum number of disjoint paths that can be found between any pair of vertices. Proved by Karl Menger in 1927, it characterizes the connectivity of a graph. It is generalized by the max-flow min-cut theorem, which is a weighted, edge version, and which in turn is a special case of the strong duality theorem for linear programs.

**Johnson's algorithm** is a way to find the shortest paths between all pairs of vertices in an edge-weighted, directed graph. It allows some of the edge weights to be negative numbers, but no negative-weight cycles may exist. It works by using the Bellman–Ford algorithm to compute a transformation of the input graph that removes all negative weights, allowing Dijkstra's algorithm to be used on the transformed graph. It is named after Donald B. Johnson, who first published the technique in 1977.

In computer science, **graph traversal** refers to the process of visiting each vertex in a graph. Such traversals are classified by the order in which the vertices are visited. Tree traversal is a special case of graph traversal.

In topology, a branch of mathematics, the **ends** of a topological space are, roughly speaking, the connected components of the "ideal boundary" of the space. That is, each end represents a topologically distinct way to move to infinity within the space. Adding a point at each end yields a compactification of the original space, known as the **end compactification**.

In the mathematical field of graph theory, the **Rado graph**, **Erdős–Rényi graph**, or **random graph** is a countably infinite graph that can be constructed by choosing independently at random for each pair of its vertices whether to connect the vertices by an edge. The names of this graph honor Richard Rado, Paul Erdős, and Alfréd Rényi, mathematicians who studied it in the early 1960s; it appears even earlier in the work of Wilhelm Ackermann (1937). The Rado graph can also be constructed non-randomly, by symmetrizing the membership relation of the hereditarily finite sets, by applying the BIT predicate to the binary representations of the natural numbers, or as an infinite Paley graph that has edges connecting pairs of prime numbers congruent to 1 mod 4 that are quadratic residues modulo each other.

In mathematics, and more specifically in graph theory, a **directed graph** is a graph that is made up of a set of vertices connected by edges, where the edges have a direction associated with them.

In graph theory, a branch of mathematics, a **squaregraph** is a type of undirected graph that can be drawn in the plane in such a way that every bounded face is a quadrilateral and every vertex with three or fewer neighbors is incident to an unbounded face.

In the mathematical discipline of graph theory, a graph *C* is a **covering graph** of another graph *G* if there is a **covering map** from the vertex set of *C* to the vertex set of *G*. A covering map *f* is a surjection and a local isomorphism: the neighbourhood of a vertex *v* in *C* is mapped bijectively onto the neighbourhood of *f*(*v*) in *G*.

In theoretical computer science and network routing, **Suurballe's algorithm** is an algorithm for finding two disjoint paths in a nonnegatively-weighted directed graph, so that both paths connect the same pair of vertices and have minimum total length. The algorithm was conceived by John W. Suurballe and published in 1974. The main idea of Suurballe's algorithm is to use Dijkstra's algorithm to find one path, to modify the weights of the graph edges, and then to run Dijkstra's algorithm a second time. The output of the algorithm is formed by combining these two paths, discarding edges that are traversed in opposite directions by the paths, and using the remaining edges to form the two paths to return as the output. The modification to the weights is similar to the weight modification in Johnson's algorithm, and preserves the non-negativity of the weights while allowing the second instance of Dijkstra's algorithm to find the correct second path.

In the mathematics of infinite graphs, an **end** of a graph represents, intuitively, a direction in which the graph extends to infinity. Ends may be formalized mathematically as equivalence classes of infinite paths, as havens describing strategies for pursuit-evasion games on the graph, or as topological ends of topological spaces associated with the graph.

In graph theory, a branch of mathematics, **Halin's grid theorem** states that the infinite graphs with **thick ends** are exactly the graphs containing subdivisions of the hexagonal tiling of the plane. It was published by Rudolf Halin (1965), and is a precursor to the work of Robertson and Seymour linking treewidth to large grid minors, which became an important component of the algorithmic theory of bidimensionality.

- Bender, Edward A.; Williamson, S. Gill (2010).
*Lists, Decisions and Graphs. With an Introduction to Probability*. - Bondy, J. A.; Murty, U. S. R. (1976).
*Graph Theory with Applications*. North Holland. p. 12-21. ISBN 0-444-19451-7. - Diestel, Reinhard (2005).
*Graph Theory*. Springer-Verlag. pp. 6–9. ISBN 3-540-26182-6. - Gibbons, A. (1985).
*Algorithmic Graph Theory*. Cambridge University Press. pp. 5–6. ISBN 0-521-28881-9. - Korte, Bernhard; Lovász, László; Prömel, Hans Jürgen; Schrijver, Alexander (1990).
*Paths, Flows, and VLSI-Layout*. Springer-Verlag. ISBN 0-387-52685-4.

This page is based on this Wikipedia article

Text is available under the CC BY-SA 4.0 license; additional terms may apply.

Images, videos and audio are available under their respective licenses.

Text is available under the CC BY-SA 4.0 license; additional terms may apply.

Images, videos and audio are available under their respective licenses.