Path (graph theory)

For the family of graphs known as paths, see Path graph.
A hypercube graph showing a Hamiltonian path in red, and a longest induced path in bold black.

In graph theory, a path in a graph is a finite or infinite sequence of edges which connect a sequence of vertices which, by most definitions, are all distinct from one another. In a directed graph, a directed path (sometimes called dipath[1]) is again a sequence of edges (or arcs) which connect a sequence of vertices, but with the added restriction that the edges all be 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.

Definitions

A walk of length $k$ in a graph is an alternating sequence of vertices and edges, $v_0,e_0,v_1,e_1,v_2,\ldots, v_{k-1},e_{k-1},v_k$, which begins and ends with vertices. If the graph is directed, then $e_i$ is an arc from $v_i$ to $v_{i+1}$. An infinite path is an alternating sequence of the same type described here, but with no first or last vertex, and a semi-infinite path (also ray) has a first vertex, $v_0$, but no last vertex. Most authors require that all of the edges and vertices be distinct from one another.

A weighted graph associates a value (weight) with every edge in the graph. The weight of a 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.

Examples

• 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, unless P=NP. 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.