For shortest path problems in
computational geometry, see
Euclidean shortest path. The shortest multiple disconnected path is a representation of the primitive path network within the framework of
Reptation theory. The
widest path problem seeks a path so that the minimum label of any edge is as large as possible. Other related problems may be classified into the following categories.
Paths with constraints Unlike the shortest path problem, which can be solved in polynomial time in graphs without negative cycles, shortest path problems which include additional constraints on the desired solution path are called
Constrained Shortest Path First, and are harder to solve. One example is the constrained shortest path problem, which attempts to minimize the total cost of the path while at the same time maintaining another metric below a given threshold. This makes the problem
NP-complete (such problems are not believed to be efficiently solvable for large sets of data, see
P = NP problem). Another
NP-complete example requires a specific set of vertices to be included in the path, which makes the problem similar to the
Traveling Salesman Problem (TSP). The TSP is the problem of finding the shortest path that goes through every vertex exactly once, and returns to the start. The problem of
finding the longest path in a graph is also NP-complete.
Partial observability The
Canadian traveller problem and the stochastic shortest path problem are generalizations where either the graph is not completely known to the mover, changes over time, or where actions (traversals) are probabilistic.
Strategic shortest paths Sometimes, the edges in a graph have personalities: each edge has its own selfish interest. An example is a communication network, in which each edge is a computer that possibly belongs to a different person. Different computers have different transmission speeds, so every edge in the network has a numeric weight equal to the number of milliseconds it takes to transmit a message. Our goal is to send a message between two points in the network in the shortest time possible. If we know the transmission-time of each computer (the weight of each edge), then we can use a standard shortest-paths algorithm. If we do not know the transmission times, then we have to ask each computer to tell us its transmission-time. But, the computers may be selfish: a computer might tell us that its transmission time is very long, so that we will not bother it with our messages. A possible solution to this problem is to use
a variant of the VCG mechanism, which gives the computers an incentive to reveal their true weights.
Negative cycle detection In some cases, the main goal is not to find the shortest path, but only to detect if the graph contains a negative cycle. Some shortest-paths algorithms can be used for this purpose: • The
Bellman–Ford algorithm can be used to detect a negative cycle in time O(|V||E|). • Cherkassky and Goldberg survey several other algorithms for negative cycle detection. ==General algebraic framework on semirings: the algebraic path problem==