âčïž Skipped - page is already crawled
| Filter | Status | Condition | Details |
|---|---|---|---|
| HTTP status | PASS | download_http_code = 200 | HTTP 200 |
| Age cutoff | PASS | download_stamp > now() - 6 MONTH | 0.6 months ago (distributed domain, exempt) |
| History drop | PASS | isNull(history_drop_reason) | No drop reason |
| Spam/ban | PASS | fh_dont_index != 1 AND ml_spam_score = 0 | ml_spam_score=0 |
| Canonical | PASS | meta_canonical IS NULL OR = '' OR = src_unparsed | Not set |
| Property | Value |
|---|---|
| URL | https://en.wikipedia.org/wiki/Shortest_path_problem |
| Last Crawled | 2026-03-21 08:59:16 (17 days ago) |
| First Indexed | 2013-08-08 23:09:54 (12 years ago) |
| HTTP Status Code | 200 |
| Meta Title | Shortest path problem - Wikipedia |
| Meta Description | null |
| Meta Canonical | null |
| Boilerpipe Text | From Wikipedia, the free encyclopedia
Shortest path (A, C, E, D, F), blue, between vertices A and F in the weighted directed graph
In
graph theory
, the
shortest path problem
is the problem of finding a
path
between two
vertices
(or nodes) in a
graph
such that the sum of the
weights
of its constituent edges is minimized.
[
1
]
The problem of finding the shortest path between two intersections on a road map may be modeled as a special case of the shortest path problem in graphs, where the vertices correspond to intersections and the edges correspond to road segments, each weighted by the length or distance of each segment.
[
2
]
The shortest path problem can be defined for
graphs
whether
undirected
,
directed
, or
mixed
. The definition for undirected graphs states that every edge can be traversed in either direction. Directed graphs require that consecutive vertices be connected by an appropriate directed edge.
[
3
]
Two vertices are adjacent when they are both incident to a common edge. A
path
in an undirected graph is a
sequence
of vertices
such that
is adjacent to
for
. Such a path
is called a path of length
from
to
. (The
are variables; their numbering relates to their position in the sequence and need not relate to a canonical labeling.)
Let
where
is the edge incident to both
and
. Given a
real-valued
weight function
, and an undirected (simple) graph
, the shortest path from
to
is the path
(where
and
) that over all possible
minimizes the sum
When each edge in the graph has unit weight or
, this is equivalent to finding the path with fewest edges.
The problem is also sometimes called the
single-pair shortest path problem
, to distinguish it from the following variations:
The
single-source shortest path problem
, in which we have to find shortest paths from a source vertex
v
to all other vertices in the graph.
The
single-destination shortest path problem
, in which we have to find shortest paths from all vertices in the directed graph to a single destination vertex
v
. This can be reduced to the single-source shortest path problem by reversing the arcs in the directed graph.
The
all-pairs shortest path problem
, in which we have to find shortest paths between every pair of vertices
v
,
v'
in the graph.
These generalizations have significantly more efficient algorithms than the simplistic approach of running a single-pair shortest path algorithm on all relevant pairs of vertices.
Several well-known algorithms exist for solving this problem and its variants.
Dijkstra's algorithm
solves the single-source shortest path problem with only non-negative edge weights.
BellmanâFord algorithm
solves the single-source problem if edge weights may be negative.
A* search algorithm
solves for single-pair shortest path using heuristics to try to speed up the search.
FloydâWarshall algorithm
solves all pairs shortest paths.
Johnson's algorithm
solves all pairs shortest paths, and may be faster than FloydâWarshall on
sparse graphs
.
Viterbi algorithm
solves the shortest stochastic path problem with an additional probabilistic weight on each node.
Additional algorithms and associated evaluations may be found in
Cherkassky, Goldberg & Radzik (1996)
.
Single-source shortest paths
[
edit
]
Weights
Time complexity
Author
+
O
(
V
2
)
Dijkstra 1959
+
O
((
E
 +Â
V
)Â logÂ
V
)
Johnson 1977
(
binary heap
)
+
O
(
E
 +Â
V
 logÂ
V
)
Fredman & Tarjan 1984
(
Fibonacci heap
)
O
(
E
)
Thorup 1999
(requires constant-time multiplication)
+
Duan et al. 2023
Algorithm
Time complexity
Author
Breadth-first search
O
(
E
 +Â
V
)
Directed acyclic graphs
[
edit
]
An algorithm using
topological sorting
can solve the single-source shortest path problem in time
Î(
E
+
V
)
in arbitrarily-weighted directed acyclic graphs.
[
4
]
Directed graphs with nonnegative weights
[
edit
]
The following table is taken from
Schrijver (2004)
, with some corrections and additions.
A green background indicates an asymptotically best bound in the table;
L
is the maximum length (or weight) among all edges, assuming integer edge weights.
Weights
Algorithm
Time complexity
Author
Ford 1956
BellmanâFord algorithm
Shimbel 1955
,
Bellman 1958
,
Moore 1959
Dantzig 1960
Dijkstra's algorithm
with list
Leyzorek et al. 1957
,
Dijkstra 1959
, Minty (see
Pollack & Wiebenson 1960
),
Whiting & Hillier 1960
Dijkstra's algorithm
with
binary heap
Johnson 1977
Dijkstra's algorithm
with
Fibonacci heap
Fredman & Tarjan 1984
,
Fredman & Tarjan 1987
Quantum
Dijkstra algorithm
with adjacency list
DĂŒrr et al. 2006
[
5
]
Dijkstra's
-
BellmanâFord
hybrid with a
divide-and-conquer
frontier reduction
Duan et al. 2025
[
6
]
Dial's algorithm
[
7
]
(
Dijkstra's algorithm
using a
bucket queue
with
L
buckets)
Dial 1969
Johnson 1981
,
Karlsson & Poblete 1983
Gabow's algorithm
Gabow 1983
,
Gabow 1985
Ahuja et al. 1990
Thorup
Thorup 2004
Directed graphs with arbitrary weights without negative cycles
[
edit
]
Weights
Algorithm
Time complexity
Author
Ford 1956
BellmanâFord algorithm
Shimbel 1955
,
Bellman 1958
,
Moore 1959
Johnson-Dijkstra
with
binary heap
Johnson 1977
Johnson-Dijkstra
with
Fibonacci heap
Fredman & Tarjan 1984
,
Fredman & Tarjan 1987
, adapted after
Johnson 1977
Johnson's technique
applied to Dial's algorithm
[
7
]
Dial 1969
, adapted after
Johnson 1977
Interior-point method
with Laplacian solver
Cohen et al. 2017
Interior-point method
with
flow solver
Axiotis, MÄ
dry & Vladu 2020
Robust
interior-point method
with sketching
van den Brand et al. 2020
interior-point method
with dynamic min-ratio cycle data structure
Chen et al. 2022
Based on low-diameter decomposition
Bernstein, Nanongkai & Wulff-Nilsen 2022
Hop-limited shortest paths
Fineman 2024
Directed graphs with arbitrary weights with negative cycles
[
edit
]
Finds a negative cycle or calculates distances to all vertices.
Weights
Algorithm
Time complexity
Author
Andrew V. Goldberg
Planar graphs with nonnegative weights
[
edit
]
Weights
Algorithm
Time complexity
Author
Henzinger et al. 1997
Network flows
[
8
]
are a fundamental concept in graph theory and operations research, often used to model problems involving the transportation of goods, liquids, or information through a network. A network flow problem typically involves a directed graph where each edge represents a pipe, wire, or road, and each edge has a capacity, which is the maximum amount that can flow through it. The goal is to find a feasible flow that maximizes the flow from a source node to a sink node.
Shortest Path Problems
can be used to solve certain network flow problems, particularly when dealing with single-source, single-sink networks. In these scenarios, we can transform the network flow problem into a series of shortest path problems.
Transformation Steps
[
edit
]
[
9
]
Create a Residual Graph:
For each edge (u, v) in the original graph, create two edges in the residual graph:
(u, v) with capacity c(u, v)
(v, u) with capacity 0
The residual graph represents the remaining capacity available in the network.
Find the Shortest Path:
Use a shortest path algorithm (e.g., Dijkstra's algorithm, Bellman-Ford algorithm) to find the shortest path from the source node to the sink node in the residual graph.
Augment the Flow:
Find the minimum capacity along the shortest path.
Increase the flow on the edges of the shortest path by this minimum capacity.
Decrease the capacity of the edges in the forward direction and increase the capacity of the edges in the backward direction.
Update the Residual Graph:
Update the residual graph based on the augmented flow.
Repeat:
Repeat steps 2-4 until no more paths can be found from the source to the sink.
All-pairs shortest paths
[
edit
]
The all-pairs shortest path problem finds the shortest paths between every pair of vertices
v
,
v'
in the graph. The all-pairs shortest paths problem for unweighted directed graphs was introduced by
Shimbel (1953)
, who observed that it could be solved by a linear number of matrix multiplications that takes a total time of
O
(
V
4
)
.
Weights
Time complexity
Algorithm
+
O
(
V
3
)
FloydâWarshall algorithm
Seidel's algorithm
(expected running time using
fast matrix multiplication algorithms
)
Williams 2014
+
O
(
EV
 log α(
E
,
V
))
Pettie & Ramachandran 2002
O
(
EV
)
Thorup 1999
applied to every vertex (requires constant-time multiplication).
Weights
Time complexity
Algorithm
(no negative cycles)
FloydâWarshall algorithm
Williams 2014
(no negative cycles)
Quantum search
[
10
]
[
11
]
(no negative cycles)
O
(
EV
 +Â
V
2
 logÂ
V
)
JohnsonâDijkstra
(no negative cycles)
O
(
EV
 +Â
V
2
 log logÂ
V
)
Pettie 2004
O
(
EV
 +Â
V
2
 log logÂ
V
)
Hagerup 2000
Shortest path algorithms are applied to automatically find directions between physical locations, such as driving directions on
web mapping
websites like
MapQuest
or
Google Maps
. For this application fast specialized algorithms are available.
[
12
]
If one represents a nondeterministic
abstract machine
as a graph where vertices describe states and edges describe possible transitions, shortest path algorithms can be used to find an optimal sequence of choices to reach a certain goal state, or to establish lower bounds on the time needed to reach a given state. For example, if vertices represent the states of a puzzle like a
Rubik's Cube
and each directed edge corresponds to a single move or turn, shortest path algorithms can be used to find a solution that uses the minimum possible number of moves.
In a
networking
or
telecommunications
mindset, this shortest path problem is sometimes called the min-delay path problem and usually tied with a
widest path problem
. For example, the algorithm may seek the shortest (min-delay) widest path, or widest shortest (min-delay) path.
[
13
]
A more lighthearted application is the games of "
six degrees of separation
" that try to find the shortest path in graphs like movie stars appearing in the same film.
Other applications, often studied in
operations research
, include plant and facility layout,
robotics
,
transportation
, and
VLSI
design.
[
14
]
A road network can be considered as a graph with positive weights. The nodes represent road junctions and each edge of the graph is associated with a road segment between two junctions. The weight of an edge may correspond to the length of the associated road segment, the time needed to traverse the segment, or the cost of traversing the segment. Using directed edges it is also possible to model one-way streets. Such graphs are special in the sense that some edges are more important than others for long-distance travel (e.g. highways). This property has been formalized using the notion of highway dimension.
[
15
]
There are a great number of algorithms that exploit this property and are therefore able to compute the shortest path a lot quicker than would be possible on general graphs.
All of these algorithms work in two phases. In the first phase, the graph is preprocessed without knowing the source or target node. The second phase is the query phase. In this phase, source and target node are known. The idea is that the road network is static, so the preprocessing phase can be done once and used for a large number of queries on the same road network.
The algorithm with the fastest known query time is called hub labeling and is able to compute shortest path on the road networks of Europe or the US in a fraction of a microsecond.
[
16
]
Other techniques that have been used are:
ALT (
A* search
, landmarks, and
triangle inequality
)
Arc flags
Contraction hierarchies
Transit node routing
Reach-based pruning
Labeling
Hub labels
For shortest path problems in
computational geometry
, see
Euclidean shortest path
.
The shortest multiple disconnected path
[
17
]
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
[
edit
]
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,
[
18
]
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,
[
19
]
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
[
edit
]
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.
[
20
]
[
21
]
Strategic shortest paths
[
edit
]
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
[
edit
]
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
.
Cherkassky and Goldberg
[
22
]
survey several other algorithms for negative cycle detection.
General algebraic framework on semirings: the algebraic path problem
[
edit
]
Many problems can be framed as a form of the shortest path for some suitably substituted notions of addition along a path and taking the minimum. The general approach to these is to consider the two operations to be those of a
semiring
. Semiring multiplication is done along the path, and the addition is between paths. This general framework is known as the
algebraic path problem
.
[
23
]
[
24
]
[
25
]
Most of the classic shortest-path algorithms (and new ones) can be formulated as solving linear systems over such algebraic structures.
[
26
]
More recently, an even more general framework for solving these (and much less obviously related problems) has been developed under the banner of
valuation algebras
.
[
27
]
Shortest path in stochastic time-dependent networks
[
edit
]
In real-life, a transportation network is usually stochastic and time-dependent. The travel duration on a road segment depends on many factors such as the amount of traffic (origin-destination matrix), road work, weather, accidents and vehicle breakdowns. A more realistic model of such a road network is a stochastic time-dependent (STD) network.
[
28
]
[
29
]
There is no accepted definition of optimal path under uncertainty (that is, in stochastic road networks). It is a controversial subject, despite considerable progress during the past decade. One common definition is a path with the minimum expected travel time. The main advantage of this approach is that it can make use of efficient shortest path algorithms for deterministic networks. However, the resulting optimal path may not be reliable, because this approach fails to address travel time variability.
To tackle this issue, some researchers use travel duration distribution instead of its expected value. So, they find the probability distribution of total travel duration using different optimization methods such as
dynamic programming
and
Dijkstra's algorithm
.
[
30
]
These methods use
stochastic optimization
, specifically stochastic dynamic programming to find the shortest path in networks with probabilistic arc length.
[
31
]
The terms
travel time reliability
and
travel time variability
are used as opposites in the transportation research literature: the higher the variability, the lower the reliability of predictions.
To account for variability, researchers have suggested two alternative definitions for an optimal path under uncertainty. The
most reliable path
is one that maximizes the probability of arriving on time given a travel time budget. An
α-reliable path
is one that minimizes the travel time budget required to arrive on time with a given probability.
Bidirectional search
â An algorithm that finds the shortest path between two vertices on a directed graph
Euclidean shortest path
 â Problem of computing shortest paths around geometric obstacles
Flow network
 â Directed graph where edges have a capacity
K shortest path routing
 â Computational problem of graph theory
Min-plus matrix multiplication
 â Mathematical operation on matrices
Pathfinding
 â Plotting by a computer application
Shortest Path Bridging
Shortest path tree
 â Type of spanning tree
TRILL
(TRansparent Interconnection of Lots of Links)
^
Ortega-Arranz, Hector; Llanos, Diego R.; Gonzalez-Escribano, Arturo (2015).
The Shortest-Path Problem
. Synthesis Lectures on Theoretical Computer Science. Cham: Springer.
doi
:
10.1007/978-3-031-02574-7
.
ISBN
Â
978-3-031-01446-8
.
^
Guenin, Bertrand (2014).
Gentle Introduction to Optimization
. Jochen Koenemann, Levent Tunçel (1st ed.). West Nyack: Cambridge University Press. p. 27.
ISBN
Â
978-1-107-05344-1
.
^
Deo, Narsingh (17 August 2016).
Graph Theory with Applications to Engineering and Computer Science
. Courier Dover Publications.
ISBN
Â
978-0-486-80793-5
.
^
Cormen et al. 2001
, p. 655
^
DĂŒrr, Christoph; Heiligman, Mark; HĂžyer, Peter; Mhalla, Mehdi (January 2006). "Quantum query complexity of some graph problems".
SIAM Journal on Computing
.
35
(6):
1310â
1328.
arXiv
:
quant-ph/0401091
.
doi
:
10.1137/050644719
.
ISSN
Â
0097-5397
.
S2CID
Â
14253494
.
^
Brubaker, Ben (2025-08-06).
"New Method Is the Fastest Way To Find the Best Routes"
.
Quanta Magazine
. Retrieved
2025-08-11
.
^
a
b
Dial, Robert B. (1969).
"Algorithm 360: Shortest-Path Forest with Topological Ordering [H]"
.
Communications of the ACM
.
12
(11):
632â
633.
doi
:
10.1145/363269.363610
.
S2CID
Â
6754003
.
^
Cormen, Thomas H. (July 31, 2009).
Introduction to Algorithms
(3rd ed.). MIT Press.
ISBN
Â
9780262533058
.
^
Kleinberg, Jon; Tardos, Ăva (2005).
Algorithm Design
(1st ed.). Addison-Wesley.
ISBN
Â
978-0321295354
.
^
DĂŒrr, C.; HĂžyer, P. (1996-07-18). "A Quantum Algorithm for Finding the Minimum".
arXiv
:
quant-ph/9607014
.
^
Nayebi, Aran; Williams, V. V. (2014-10-22). "Quantum algorithms for shortest paths problems in structured instances".
arXiv
:
1410.6220
[
quant-ph
].
^
Sanders, Peter
(March 23, 2009).
"Fast route planning"
.
Google Tech Talk
.
Archived
from the original on 2021-12-11.
^
Hoceini, S.; A. Mellouk; Y. Amirat (2005).
"K-Shortest Paths Q-Routing: A New QoS Routing Algorithm in Telecommunication Networks"
.
Networking - ICN 2005, Lecture Notes in Computer Science, Vol. 3421
. Vol. 3421. Springer, Berlin, Heidelberg. pp.Â
164â
172.
doi
:
10.1007/978-3-540-31957-3_21
.
ISBN
Â
978-3-540-25338-9
.
^
Chen, Danny Z. (December 1996). "Developing algorithms and software for geometric path planning problems".
ACM Computing Surveys
.
28
(4es). Article 18.
doi
:
10.1145/242224.242246
.
S2CID
Â
11761485
.
^
Abraham, Ittai; Fiat, Amos;
Goldberg, Andrew V.
; Werneck, Renato F.
"Highway Dimension, Shortest Paths, and Provably Efficient Algorithms"
. ACM-SIAM Symposium on Discrete Algorithms, pages 782â793, 2010.
^
Abraham, Ittai; Delling, Daniel;
Goldberg, Andrew V.
; Werneck, Renato F.
research.microsoft.com/pubs/142356/HL-TR.pdf "A Hub-Based Labeling Algorithm for Shortest Paths on Road Networks"
. Symposium on Experimental Algorithms, pages 230â241, 2011.
^
Kroger, Martin (2005). "Shortest multiple disconnected path for the analysis of entanglements in two- and three-dimensional polymeric systems".
Computer Physics Communications
.
168
(3):
209â
232.
Bibcode
:
2005CoPhC.168..209K
.
doi
:
10.1016/j.cpc.2005.01.020
.
^
Lozano, Leonardo; Medaglia, Andrés L (2013). "On an exact method for the constrained shortest path problem".
Computers & Operations Research
.
40
(1):
378â
384.
doi
:
10.1016/j.cor.2012.07.008
.
^
Osanlou, Kevin; Bursuc, Andrei; Guettier, Christophe; Cazenave, Tristan; Jacopin, Eric (2019). "Optimal Solving of Constrained Path-Planning Problems with Graph Convolutional Networks and Optimized Tree Search".
2019 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)
. pp.Â
3519â
3525.
arXiv
:
2108.01036
.
doi
:
10.1109/IROS40897.2019.8968113
.
ISBN
Â
978-1-7281-4004-9
.
S2CID
Â
210706773
.
^
Bar-Noy, Amotz; Schieber, Baruch (1991). "The canadian traveller problem".
Proceedings of the Second Annual ACM-SIAM Symposium on Discrete Algorithms
:
261â
270.
CiteSeerX
Â
10.1.1.1088.3015
.
^
Nikolova, Evdokia; Karger, David R.
"Route planning under uncertainty: the Canadian traveller problem"
(PDF)
.
Proceedings of the 23rd National Conference on Artificial Intelligence (AAAI)
. pp.Â
969â
974.
Archived
(PDF)
from the original on 2022-10-09.
^
Cherkassky, Boris V.; Goldberg, Andrew V. (1999-06-01).
"Negative-cycle detection algorithms"
.
Mathematical Programming
.
85
(2):
277â
311.
doi
:
10.1007/s101070050058
.
ISSN
Â
1436-4646
.
S2CID
Â
79739
.
^
Pair, Claude (1967). "Sur des algorithmes pour des problĂšmes de cheminement dans les graphes finis" [On algorithms for path problems in finite graphs]. In
Rosentiehl, Pierre
(ed.).
Théorie des graphes (journées internationales d'études) [Theory of Graphs (international symposium)]
. Rome (Italy), July 1966. Dunod (Paris); Gordon and Breach (New York). p. 271.
OCLC
Â
901424694
.
^
Derniame, Jean Claude; Pair, Claude (1971).
ProblĂšmes de cheminement dans les graphes
[
Path Problems in Graphs
]. Dunod (Paris).
^
Baras, John; Theodorakopoulos, George (4 April 2010).
Path Problems in Networks
. Morgan & Claypool Publishers. pp. 9â.
ISBN
Â
978-1-59829-924-3
.
^
Gondran, Michel; Minoux, Michel (2008). "chapter 4".
Graphs, Dioids and Semirings: New Models and Algorithms
. Springer Science & Business Media.
ISBN
Â
978-0-387-75450-5
.
^
Pouly, Marc; Kohlas, JĂŒrg (2011). "Chapter 6. Valuation Algebras for Path Problems".
Generic Inference: A Unifying Theory for Automated Reasoning
. John Wiley & Sons.
ISBN
Â
978-1-118-01086-0
.
^
Loui, R.P., 1983. Optimal paths in graphs with stochastic or multidimensional weights. Communications of the ACM, 26(9), pp.670-676.
^
Rajabi-Bahaabadi, Mojtaba; Shariat-Mohaymany, Afshin; Babaei, Mohsen; Ahn, Chang Wook (2015). "Multi-objective path finding in stochastic time-dependent road networks using non-dominated sorting genetic algorithm".
Expert Systems with Applications
.
42
(12):
5056â
5064.
doi
:
10.1016/j.eswa.2015.02.046
.
^
Olya, Mohammad Hessam (2014). "Finding shortest path in a combined exponential â gamma probability distribution arc length".
International Journal of Operational Research
.
21
(1) 64020:
25â
37.
doi
:
10.1504/IJOR.2014.064020
.
^
Olya, Mohammad Hessam (2014). "Applying Dijkstra's algorithm for general shortest path problem with normal probability distribution arc length".
International Journal of Operational Research
.
21
(2) 64541:
143â
154.
doi
:
10.1504/IJOR.2014.064541
.
Ahuja, Ravindra K.; Mehlhorn, Kurt; Orlin, James;
Tarjan, Robert E.
(April 1990).
"Faster algorithms for the shortest path problem"
(PDF)
.
Journal of the ACM
.
37
(2). ACM:
213â
223.
doi
:
10.1145/77600.77615
.
hdl
:
1721.1/47994
.
S2CID
Â
5499589
.
Archived
(PDF)
from the original on 2022-10-09.
Axiotis, Kyriakos; MÄ
dry, Aleksander; Vladu, Adrian (2020). "Circulation control for faster minimum cost flow in unit-capacity graphs". In Irani, Sandy (ed.).
61st IEEE Annual Symposium on Foundations of Computer Science, FOCS 2020, Durham, NC, USA, November 16â19, 2020
. IEEE. pp.Â
93â
104.
arXiv
:
2003.04863
.
doi
:
10.1109/FOCS46700.2020.00018
.
ISBN
Â
978-1-7281-9621-3
.
Bellman, Richard
(1958).
"On a routing problem"
.
Quarterly of Applied Mathematics
.
16
:
87â
90.
doi
:
10.1090/qam/102435
.
MR
Â
0102435
.
Bernstein, Aaron; Nanongkai, Danupon; Wulff-Nilsen, Christian (2022). "Negative-Weight Single-Source Shortest Paths in Near-linear Time".
2022 IEEE 63rd Annual Symposium on Foundations of Computer Science (FOCS)
. IEEE. pp.Â
600â
611.
arXiv
:
2203.03456
.
doi
:
10.1109/focs54457.2022.00063
.
ISBN
Â
978-1-6654-5519-0
.
S2CID
Â
247958461
.
van den Brand, Jan; Lee, Yin Tat; Nanongkai, Danupon; Peng, Richard; Saranurak, Thatchaphol; Sidford, Aaron; Song, Zhao; Wang, Di (2020). "Bipartite matching in nearly-linear time on moderately dense graphs". In Irani, Sandy (ed.).
61st IEEE Annual Symposium on Foundations of Computer Science, FOCS 2020, Durham, NC, USA, November 16â19, 2020
. IEEE. pp.Â
919â
930.
arXiv
:
2009.01802
.
doi
:
10.1109/FOCS46700.2020.00090
.
ISBN
Â
978-1-7281-9621-3
.
Chen, Li; Kyng, Rasmus; Liu, Yang P.; Peng, Richard; Gutenberg, Maximilian Probst; Sachdeva, Sushant (2022). "Maximum flow and minimum-cost flow in almost-linear time".
63rd IEEE Annual Symposium on Foundations of Computer Science, FOCS 2022, Denver, CO, USA, October 31 â November 3, 2022
. IEEE. pp.Â
612â
623.
arXiv
:
2203.00671
.
doi
:
10.1109/FOCS54457.2022.00064
.
ISBN
Â
978-1-6654-5519-0
.
Cohen, Michael B.; MÄ
dry, Aleksander; Sankowski, Piotr; Vladu, Adrian (2017). "Negative-weight shortest paths and unit capacity minimum cost flow in
time". In Klein, Philip N. (ed.).
Proceedings of the Twenty-Eighth Annual ACMâSIAM Symposium on Discrete Algorithms, SODA 2017, Barcelona, Spain, Hotel Porta Fira, January 16â19
. Society for Industrial and Applied Mathematics. pp.Â
752â
771.
doi
:
10.1137/1.9781611974782.48
.
Duan, Ran; Mao, Jiayi; Shu, Xinkai; Yin, Longhui (2023). "A Randomized Algorithm for Single-Source Shortest Path on Undirected Real-Weighted Graphs".
2023 IEEE 64th Annual Symposium on Foundations of Computer Science (FOCS)
. IEEE. pp.Â
484â
492.
arXiv
:
2307.04139
.
doi
:
10.1109/focs57990.2023.00035
.
ISBN
Â
979-8-3503-1894-4
.
S2CID
Â
259501045
.
Duan, Ran; Mao, Jiayi; Mao, Xiao; Shu, Xinkai; Yin, Longhui (2025). "Breaking the Sorting Barrier for Directed Single-Source Shortest Paths".
Proceedings of the 57th Annual ACM Symposium on Theory of Computing (STOC)
. Association for Computing Machinery. pp.Â
36â
44.
doi
:
10.1145/3717823.3718179
.
ISBN
Â
979-8-4007-1510-5
.
Cherkassky, Boris V.;
Goldberg, Andrew V.
; Radzik, Tomasz (1996).
"Shortest paths algorithms: theory and experimental evaluation"
.
Mathematical Programming
. Ser. A.
73
(2):
129â
174.
doi
:
10.1016/0025-5610(95)00021-6
.
MR
Â
1392160
.
Cormen, Thomas H.
;
Leiserson, Charles E.
;
Rivest, Ronald L.
;
Stein, Clifford
(2001) [1990]. "Single-Source Shortest Paths and All-Pairs Shortest Paths".
Introduction to Algorithms
(2nd ed.). MIT Press and McGraw-Hill. pp.Â
580â
642.
ISBN
Â
0-262-03293-7
.
Dantzig, G. B. (January 1960). "On the Shortest Route through a Network".
Management Science
.
6
(2):
187â
190.
doi
:
10.1287/mnsc.6.2.187
.
Dijkstra, E. W.
(1959). "A note on two problems in connexion with graphs".
Numerische Mathematik
.
1
:
269â
271.
Bibcode
:
1959NuMat...1..269D
.
doi
:
10.1007/BF01386390
.
S2CID
Â
123284777
.
Fineman, Jeremy T. (2024). "Single-source shortest paths with negative real weights in
time". In Mohar, Bojan; Shinkar, Igor; O'Donnell, Ryan (eds.).
Proceedings of the 56th Annual ACM Symposium on Theory of Computing, STOC 2024, Vancouver, BC, Canada, June 24â28, 2024
. Association for Computing Machinery. pp.Â
3â
14.
arXiv
:
2311.02520
.
doi
:
10.1145/3618260.3649614
.
Ford, L. R. (1956).
Network Flow Theory
(Report). Santa Monica, CA: RAND Corporation. P-923.
Fredman, Michael Lawrence
;
Tarjan, Robert E.
(1984).
Fibonacci heaps and their uses in improved network optimization algorithms
. 25th Annual Symposium on Foundations of Computer Science.
IEEE
. pp.Â
338â
346.
doi
:
10.1109/SFCS.1984.715934
.
ISBN
Â
0-8186-0591-X
.
Fredman, Michael Lawrence
;
Tarjan, Robert E.
(1987).
"Fibonacci heaps and their uses in improved network optimization algorithms"
.
Journal of the Association for Computing Machinery
.
34
(3):
596â
615.
doi
:
10.1145/28869.28874
.
S2CID
Â
7904683
.
Gabow, H. N.
(1983).
"Scaling algorithms for network problems"
(PDF)
.
Proceedings of the 24th Annual Symposium on Foundations of Computer Science (FOCS 1983)
. pp.Â
248â
258.
doi
:
10.1109/SFCS.1983.68
.
Gabow, Harold N.
(1985).
"Scaling algorithms for network problems"
.
Journal of Computer and System Sciences
.
31
(2):
148â
168.
doi
:
10.1016/0022-0000(85)90039-X
.
MR
Â
0828519
.
Hagerup, Torben (2000).
"Improved Shortest Paths on the Word RAM"
. In Montanari, Ugo; Rolim, José D. P.; Welzl, Emo (eds.).
Proceedings of the 27th International Colloquium on Automata, Languages and Programming
. pp.Â
61â
72.
ISBN
Â
978-3-540-67715-4
.
Henzinger, Monika R.; Klein, Philip; Rao, Satish; Subramanian, Sairam (1997).
"Faster Shortest-Path Algorithms for Planar Graphs"
.
Journal of Computer and System Sciences
.
55
(1):
3â
23.
doi
:
10.1006/jcss.1997.1493
.
Johnson, Donald B.
(1977).
"Efficient algorithms for shortest paths in sparse networks"
.
Journal of the ACM
.
24
(1):
1â
13.
doi
:
10.1145/321992.321993
.
S2CID
Â
207678246
.
Johnson, Donald B.
(December 1981). "A priority queue in which initialization and queue operations take
O
(log log
D
)
time".
Mathematical Systems Theory
.
15
(1):
295â
309.
doi
:
10.1007/BF01786986
.
MR
Â
0683047
.
S2CID
Â
35703411
.
Karlsson, Rolf G.; Poblete, Patricio V. (1983).
"An
O
(
m
log log
D
)
algorithm for shortest paths"
.
Discrete Applied Mathematics
.
6
(1):
91â
93.
doi
:
10.1016/0166-218X(83)90104-X
.
MR
Â
0700028
.
Leyzorek, M.; Gray, R. S.; Johnson, A. A.; Ladew, W. C.; Meaker, S. R. Jr.; Petry, R. M.; Seitz, R. N. (1957).
Investigation of Model Techniques â First Annual Report â 6 June 1956 â 1 July 1957 â A Study of Model Techniques for Communication Systems
. Cleveland, Ohio: Case Institute of Technology.
Moore, E. F.
(1959). "The shortest path through a maze".
Proceedings of an International Symposium on the Theory of Switching (Cambridge, Massachusetts, 2â5 April 1957)
. Cambridge: Harvard University Press. pp.Â
285â
292.
Pettie, Seth; Ramachandran, Vijaya (2002).
"Computing shortest paths with comparisons and additions"
.
Proceedings of the Thirteenth Annual ACM-SIAM Symposium on Discrete Algorithms
. pp.Â
267â276
.
ISBN
Â
978-0-89871-513-2
.
Pettie, Seth (26 January 2004).
"A new approach to all-pairs shortest paths on real-weighted graphs"
.
Theoretical Computer Science
.
312
(1):
47â
74.
doi
:
10.1016/s0304-3975(03)00402-x
.
Pollack, Maurice; Wiebenson, Walter (MarchâApril 1960). "Solution of the Shortest-Route ProblemâA Review".
Oper. Res
.
8
(2):
224â
230.
doi
:
10.1287/opre.8.2.224
.
Attributes Dijkstra's algorithm to Minty ("private communication") on p. 225.
Schrijver, Alexander (2004).
Combinatorial Optimization â Polyhedra and Efficiency
. Algorithms and Combinatorics. Vol. 24. Springer. vol.A, sect.7.5b, p. 103.
ISBN
Â
978-3-540-20456-5
.
Shimbel, Alfonso (1953). "Structural parameters of communication networks".
Bulletin of Mathematical Biophysics
.
15
(4):
501â
507.
Bibcode
:
1953BMaB...15..501S
.
doi
:
10.1007/BF02476438
.
Shimbel, A. (1955). "Structure in communication nets".
Proceedings of the Symposium on Information Networks
. New York, NY: Polytechnic Press of the Polytechnic Institute of Brooklyn. pp.Â
199â
203.
Thorup, Mikkel (1999).
"Undirected single-source shortest paths with positive integer weights in linear time"
.
Journal of the ACM
.
46
(3):
362â
394.
doi
:
10.1145/316542.316548
.
S2CID
Â
207654795
.
Thorup, Mikkel (2004).
"Integer priority queues with decrease key in constant time and the single source shortest paths problem"
.
Journal of Computer and System Sciences
.
69
(3):
330â
353.
doi
:
10.1016/j.jcss.2004.04.003
.
Whiting, P. D.; Hillier, J. A. (MarchâJune 1960). "A Method for Finding the Shortest Route through a Road Network".
Operational Research Quarterly
.
11
(1/2):
37â
40.
doi
:
10.1057/jors.1960.32
.
Williams, Ryan
(2014). "Faster all-pairs shortest paths via circuit complexity".
Proceedings of the 46th Annual ACM
Symposium on Theory of Computing
(STOC '14)
. New York: ACM. pp.Â
664â
673.
arXiv
:
1312.6680
.
doi
:
10.1145/2591796.2591811
.
MR
Â
3238994
.
AltıntaĆ, Gökhan (2020).
Exact Solutions of Shortest-Path Problems Based on Mechanical Analogies: In Connection with Labyrinths
. Amazon Digital Services LLC.
ISBN
Â
9798655831896
.
Frigioni, D.; Marchetti-Spaccamela, A.; Nanni, U. (1998). "Fully dynamic output bounded single source shortest path problem".
Proc. 7th Annu. ACM-SIAM Symp. Discrete Algorithms
. Atlanta, GA. pp.Â
212â
221.
CiteSeerX
Â
10.1.1.32.9856
.
Dreyfus, S. E. (October 1967).
An Appraisal of Some Shortest Path Algorithms
(PDF)
(Report). Project Rand. United States Air Force. RM-5433-PR.
Archived
(PDF)
from the original on November 17, 2015.
DTIC AD-661265. |
| Markdown | [Jump to content](https://en.wikipedia.org/wiki/Shortest_path_problem#bodyContent)
Main menu
Main menu
move to sidebar
hide
Navigation
- [Main page](https://en.wikipedia.org/wiki/Main_Page "Visit the main page [z]")
- [Contents](https://en.wikipedia.org/wiki/Wikipedia:Contents "Guides to browsing Wikipedia")
- [Current events](https://en.wikipedia.org/wiki/Portal:Current_events "Articles related to current events")
- [Random article](https://en.wikipedia.org/wiki/Special:Random "Visit a randomly selected article [x]")
- [About Wikipedia](https://en.wikipedia.org/wiki/Wikipedia:About "Learn about Wikipedia and how it works")
- [Contact us](https://en.wikipedia.org/wiki/Wikipedia:Contact_us "How to contact Wikipedia")
Contribute
- [Help](https://en.wikipedia.org/wiki/Help:Contents "Guidance on how to use and edit Wikipedia")
- [Learn to edit](https://en.wikipedia.org/wiki/Help:Introduction "Learn how to edit Wikipedia")
- [Community portal](https://en.wikipedia.org/wiki/Wikipedia:Community_portal "The hub for editors")
- [Recent changes](https://en.wikipedia.org/wiki/Special:RecentChanges "A list of recent changes to Wikipedia [r]")
- [Upload file](https://en.wikipedia.org/wiki/Wikipedia:File_upload_wizard "Add images or other media for use on Wikipedia")
- [Special pages](https://en.wikipedia.org/wiki/Special:SpecialPages "A list of all special pages [q]")
[  ](https://en.wikipedia.org/wiki/Main_Page)
[Search](https://en.wikipedia.org/wiki/Special:Search "Search Wikipedia [f]")
Appearance
- [Donate](https://donate.wikimedia.org/?wmf_source=donate&wmf_medium=sidebar&wmf_campaign=en.wikipedia.org&uselang=en)
- [Create account](https://en.wikipedia.org/w/index.php?title=Special:CreateAccount&returnto=Shortest+path+problem "You are encouraged to create an account and log in; however, it is not mandatory")
- [Log in](https://en.wikipedia.org/w/index.php?title=Special:UserLogin&returnto=Shortest+path+problem "You're encouraged to log in; however, it's not mandatory. [o]")
Personal tools
- [Donate](https://donate.wikimedia.org/?wmf_source=donate&wmf_medium=sidebar&wmf_campaign=en.wikipedia.org&uselang=en)
- [Create account](https://en.wikipedia.org/w/index.php?title=Special:CreateAccount&returnto=Shortest+path+problem "You are encouraged to create an account and log in; however, it is not mandatory")
- [Log in](https://en.wikipedia.org/w/index.php?title=Special:UserLogin&returnto=Shortest+path+problem "You're encouraged to log in; however, it's not mandatory. [o]")
## Contents
move to sidebar
hide
- [(Top)](https://en.wikipedia.org/wiki/Shortest_path_problem)
- [1 Definition](https://en.wikipedia.org/wiki/Shortest_path_problem#Definition)
- [2 Algorithms](https://en.wikipedia.org/wiki/Shortest_path_problem#Algorithms)
- [3 Single-source shortest paths](https://en.wikipedia.org/wiki/Shortest_path_problem#Single-source_shortest_paths)
Toggle Single-source shortest paths subsection
- [3\.1 Undirected graphs](https://en.wikipedia.org/wiki/Shortest_path_problem#Undirected_graphs)
- [3\.2 Unweighted graphs](https://en.wikipedia.org/wiki/Shortest_path_problem#Unweighted_graphs)
- [3\.3 Directed acyclic graphs](https://en.wikipedia.org/wiki/Shortest_path_problem#Directed_acyclic_graphs)
- [3\.4 Directed graphs with nonnegative weights](https://en.wikipedia.org/wiki/Shortest_path_problem#Directed_graphs_with_nonnegative_weights)
- [3\.5 Directed graphs with arbitrary weights without negative cycles](https://en.wikipedia.org/wiki/Shortest_path_problem#Directed_graphs_with_arbitrary_weights_without_negative_cycles)
- [3\.6 Directed graphs with arbitrary weights with negative cycles](https://en.wikipedia.org/wiki/Shortest_path_problem#Directed_graphs_with_arbitrary_weights_with_negative_cycles)
- [3\.7 Planar graphs with nonnegative weights](https://en.wikipedia.org/wiki/Shortest_path_problem#Planar_graphs_with_nonnegative_weights)
- [4 Applications](https://en.wikipedia.org/wiki/Shortest_path_problem#Applications)
Toggle Applications subsection
- [4\.1 Transformation Steps](https://en.wikipedia.org/wiki/Shortest_path_problem#Transformation_Steps)
- [5 All-pairs shortest paths](https://en.wikipedia.org/wiki/Shortest_path_problem#All-pairs_shortest_paths)
Toggle All-pairs shortest paths subsection
- [5\.1 Undirected graph](https://en.wikipedia.org/wiki/Shortest_path_problem#Undirected_graph)
- [5\.2 Directed graph](https://en.wikipedia.org/wiki/Shortest_path_problem#Directed_graph)
- [6 Applications](https://en.wikipedia.org/wiki/Shortest_path_problem#Applications_2)
Toggle Applications subsection
- [6\.1 Road networks](https://en.wikipedia.org/wiki/Shortest_path_problem#Road_networks)
- [7 Related problems](https://en.wikipedia.org/wiki/Shortest_path_problem#Related_problems)
Toggle Related problems subsection
- [7\.1 Paths with constraints](https://en.wikipedia.org/wiki/Shortest_path_problem#Paths_with_constraints)
- [7\.2 Partial observability](https://en.wikipedia.org/wiki/Shortest_path_problem#Partial_observability)
- [7\.3 Strategic shortest paths](https://en.wikipedia.org/wiki/Shortest_path_problem#Strategic_shortest_paths)
- [7\.4 Negative cycle detection](https://en.wikipedia.org/wiki/Shortest_path_problem#Negative_cycle_detection)
- [8 General algebraic framework on semirings: the algebraic path problem](https://en.wikipedia.org/wiki/Shortest_path_problem#General_algebraic_framework_on_semirings:_the_algebraic_path_problem)
- [9 Shortest path in stochastic time-dependent networks](https://en.wikipedia.org/wiki/Shortest_path_problem#Shortest_path_in_stochastic_time-dependent_networks)
- [10 See also](https://en.wikipedia.org/wiki/Shortest_path_problem#See_also)
- [11 References](https://en.wikipedia.org/wiki/Shortest_path_problem#References)
Toggle References subsection
- [11\.1 Notes](https://en.wikipedia.org/wiki/Shortest_path_problem#Notes)
- [11\.2 Bibliography](https://en.wikipedia.org/wiki/Shortest_path_problem#Bibliography)
- [12 Further reading](https://en.wikipedia.org/wiki/Shortest_path_problem#Further_reading)
Toggle the table of contents
# Shortest path problem
23 languages
- [ۧÙŰč۱ۚÙŰ©](https://ar.wikipedia.org/wiki/%D9%85%D8%B3%D8%A3%D9%84%D8%A9_%D8%A7%D9%84%D9%85%D8%B3%D8%A7%D8%B1_%D8%A7%D9%84%D8%A3%D9%82%D8%B5%D8%B1 "Ù
۳ۣÙŰ© ۧÙÙ
۳ۧ۱ ۧÙŰŁÙ۔۱ â Arabic")
- [CatalĂ ](https://ca.wikipedia.org/wiki/Problema_del_cam%C3%AD_m%C3%A9s_curt "Problema del camĂ mĂ©s curt â Catalan")
- [Deutsch](https://de.wikipedia.org/wiki/K%C3%BCrzester_Pfad "KĂŒrzester Pfad â German")
- [Español](https://es.wikipedia.org/wiki/Problema_del_camino_m%C3%A1s_corto "Problema del camino mĂĄs corto â Spanish")
- [Ùۧ۱۳Û](https://fa.wikipedia.org/wiki/%D9%85%D8%B3%D8%A6%D9%84%D9%87_%DB%8C%D8%A7%D9%81%D8%AA%D9%86_%DA%A9%D9%88%D8%AA%D8%A7%D9%87%E2%80%8C%D8%AA%D8%B1%DB%8C%D9%86_%D9%85%D8%B3%DB%8C%D8%B1 "Ù
۳ۊÙÙ ÛۧÙŰȘÙ Ú©ÙŰȘۧÙâŰȘ۱ÛÙ Ù
ŰłÛ۱ â Persian")
- [Français](https://fr.wikipedia.org/wiki/Probl%C3%A8me_de_plus_court_chemin "ProblĂšme de plus court chemin â French")
- [Bahasa Indonesia](https://id.wikipedia.org/wiki/Masalah_lintasan_terpendek "Masalah lintasan terpendek â Indonesian")
- [Italiano](https://it.wikipedia.org/wiki/Cammino_minimo "Cammino minimo â Italian")
- [æ„æŹèȘ](https://ja.wikipedia.org/wiki/%E6%9C%80%E7%9F%AD%E7%B5%8C%E8%B7%AF%E5%95%8F%E9%A1%8C "æçç”è·ŻćéĄ â Japanese")
- [íê”ìŽ](https://ko.wikipedia.org/wiki/%EC%B5%9C%EB%8B%A8_%EA%B2%BD%EB%A1%9C_%EB%AC%B8%EC%A0%9C "ì”ëš êČœëĄ ëŹžì â Korean")
- [LietuviĆł](https://lt.wikipedia.org/wiki/Trumpiausio_kelio_problema "Trumpiausio kelio problema â Lithuanian")
- [Bahasa Melayu](https://ms.wikipedia.org/wiki/Jarak_terpendek "Jarak terpendek â Malay")
- [Polski](https://pl.wikipedia.org/wiki/Problem_najkr%C3%B3tszej_%C5%9Bcie%C5%BCki "Problem najkrĂłtszej ĆcieĆŒki â Polish")
- [PortuguĂȘs](https://pt.wikipedia.org/wiki/Problema_do_caminho_m%C3%ADnimo "Problema do caminho mĂnimo â Portuguese")
- [Đ ŃŃŃĐșĐžĐč](https://ru.wikipedia.org/wiki/%D0%97%D0%B0%D0%B4%D0%B0%D1%87%D0%B0_%D0%BE_%D0%BA%D1%80%D0%B0%D1%82%D1%87%D0%B0%D0%B9%D1%88%D0%B5%D0%BC_%D0%BF%D1%83%D1%82%D0%B8 "ĐаЎаŃа ĐŸ ĐșŃаŃŃаĐčŃĐ”ĐŒ ĐżŃŃĐž â Russian")
- [SlovenĆĄÄina](https://sl.wikipedia.org/wiki/Problem_najkraj%C5%A1ih_poti "Problem najkrajĆĄih poti â Slovenian")
- [ĐĄŃĐżŃĐșĐž / srpski](https://sr.wikipedia.org/wiki/Problem_najkra%C4%87eg_puta "Problem najkraÄeg puta â Serbian")
- [àčàžàžą](https://th.wikipedia.org/wiki/%E0%B8%9B%E0%B8%B1%E0%B8%8D%E0%B8%AB%E0%B8%B2%E0%B8%A7%E0%B8%B4%E0%B8%96%E0%B8%B5%E0%B8%AA%E0%B8%B1%E0%B9%89%E0%B8%99%E0%B8%AA%E0%B8%B8%E0%B8%94 "àžàž±àžàž«àžČàž§àžŽàžàž”àžȘàž±àčàžàžȘàžžàž â Thai")
- [TĂŒrkçe](https://tr.wikipedia.org/wiki/En_k%C4%B1sa_yol_problemi "En kısa yol problemi â Turkish")
- [ĐŁĐșŃаŃĐœŃŃĐșа](https://uk.wikipedia.org/wiki/%D0%97%D0%B0%D0%B4%D0%B0%D1%87%D0%B0_%D0%BF%D1%80%D0%BE_%D0%BD%D0%B0%D0%B9%D0%BA%D0%BE%D1%80%D0%BE%D1%82%D1%88%D0%B8%D0%B9_%D1%88%D0%BB%D1%8F%D1%85 "ĐаЎаŃа ĐżŃĐŸ ĐœĐ°ĐčĐșĐŸŃĐŸŃŃĐžĐč ŃĐ»ŃŃ
â Ukrainian")
- [ۧ۱ۯÙ](https://ur.wikipedia.org/wiki/%DA%A9%D9%85%D8%AA%D8%B1%DB%8C%D9%86_%D8%B1%D8%B3%D8%AA%DB%81_%D8%A7%D9%84%D8%AE%D9%88%D8%A7%D8%B1%D8%B2%D9%85 "Ú©Ù
ŰȘ۱ÛÙ Ű±ŰłŰȘÛ Ű§ÙŰźÙۧ۱ŰČÙ
â Urdu")
- [Tiáșżng Viá»t](https://vi.wikipedia.org/wiki/B%C3%A0i_to%C3%A1n_%C4%91%C6%B0%E1%BB%9Dng_%C4%91i_ng%E1%BA%AFn_nh%E1%BA%A5t "BĂ i toĂĄn ÄÆ°á»ng Äi ngáșŻn nháș„t â Vietnamese")
- [äžæ](https://zh.wikipedia.org/wiki/%E6%9C%80%E7%9F%AD%E8%B7%AF%E9%97%AE%E9%A2%98 "æçè·Żéźéą â Chinese")
[Edit links](https://www.wikidata.org/wiki/Special:EntityPage/Q1058754#sitelinks-wikipedia "Edit interlanguage links")
- [Article](https://en.wikipedia.org/wiki/Shortest_path_problem "View the content page [c]")
- [Talk](https://en.wikipedia.org/wiki/Talk:Shortest_path_problem "Discuss improvements to the content page [t]")
English
- [Read](https://en.wikipedia.org/wiki/Shortest_path_problem)
- [Edit](https://en.wikipedia.org/w/index.php?title=Shortest_path_problem&action=edit "Edit this page [e]")
- [View history](https://en.wikipedia.org/w/index.php?title=Shortest_path_problem&action=history "Past revisions of this page [h]")
Tools
Tools
move to sidebar
hide
Actions
- [Read](https://en.wikipedia.org/wiki/Shortest_path_problem)
- [Edit](https://en.wikipedia.org/w/index.php?title=Shortest_path_problem&action=edit "Edit this page [e]")
- [View history](https://en.wikipedia.org/w/index.php?title=Shortest_path_problem&action=history)
General
- [What links here](https://en.wikipedia.org/wiki/Special:WhatLinksHere/Shortest_path_problem "List of all English Wikipedia pages containing links to this page [j]")
- [Related changes](https://en.wikipedia.org/wiki/Special:RecentChangesLinked/Shortest_path_problem "Recent changes in pages linked from this page [k]")
- [Upload file](https://en.wikipedia.org/wiki/Wikipedia:File_Upload_Wizard "Upload files [u]")
- [Permanent link](https://en.wikipedia.org/w/index.php?title=Shortest_path_problem&oldid=1343777190 "Permanent link to this revision of this page")
- [Page information](https://en.wikipedia.org/w/index.php?title=Shortest_path_problem&action=info "More information about this page")
- [Cite this page](https://en.wikipedia.org/w/index.php?title=Special:CiteThisPage&page=Shortest_path_problem&id=1343777190&wpFormIdentifier=titleform "Information on how to cite this page")
- [Get shortened URL](https://en.wikipedia.org/w/index.php?title=Special:UrlShortener&url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FShortest_path_problem)
Print/export
- [Download as PDF](https://en.wikipedia.org/w/index.php?title=Special:DownloadAsPdf&page=Shortest_path_problem&action=show-download-screen "Download this page as a PDF file")
- [Printable version](https://en.wikipedia.org/w/index.php?title=Shortest_path_problem&printable=yes "Printable version of this page [p]")
In other projects
- [Wikidata item](https://www.wikidata.org/wiki/Special:EntityPage/Q1058754 "Structured data on this page hosted by Wikidata [g]")
Appearance
move to sidebar
hide
From Wikipedia, the free encyclopedia
Computational problem of graph theory
| | |
|---|---|
|  | |
| | |
|  | This article includes a list of [general references](https://en.wikipedia.org/wiki/Wikipedia:Citing_sources#General_references "Wikipedia:Citing sources"), but **it lacks sufficient corresponding [inline citations](https://en.wikipedia.org/wiki/Wikipedia:Citing_sources#Inline_citations "Wikipedia:Citing sources")**. Please help to [improve](https://en.wikipedia.org/wiki/Wikipedia:WikiProject_Reliability "Wikipedia:WikiProject Reliability") this article by [introducing](https://en.wikipedia.org/wiki/Wikipedia:When_to_cite "Wikipedia:When to cite") more precise citations. *(June 2009)* *([Learn how and when to remove this message](https://en.wikipedia.org/wiki/Help:Maintenance_template_removal "Help:Maintenance template removal"))* |
| | |
|  | This article needs to be **updated**. The reason given is: **<https://ieeexplore.ieee.org/document/11369194>**. Please help update this article to reflect recent events or newly available information. *(March 2026)* |
[](https://en.wikipedia.org/wiki/File:Shortest_path_with_direct_weights.svg)
Shortest path (A, C, E, D, F), blue, between vertices A and F in the weighted directed graph
In [graph theory](https://en.wikipedia.org/wiki/Graph_theory "Graph theory"), the **shortest path problem** is the problem of finding a [path](https://en.wikipedia.org/wiki/Path_\(graph_theory\) "Path (graph theory)") between two [vertices](https://en.wikipedia.org/wiki/Vertex_\(graph_theory\) "Vertex (graph theory)") (or nodes) in a [graph](https://en.wikipedia.org/wiki/Graph_\(discrete_mathematics\) "Graph (discrete mathematics)") such that the sum of the [weights](https://en.wikipedia.org/wiki/Glossary_of_graph_theory_terms#weighted_graph "Glossary of graph theory terms") of its constituent edges is minimized.[\[1\]](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_note-1)
The problem of finding the shortest path between two intersections on a road map may be modeled as a special case of the shortest path problem in graphs, where the vertices correspond to intersections and the edges correspond to road segments, each weighted by the length or distance of each segment.[\[2\]](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_note-2)
## Definition
\[[edit](https://en.wikipedia.org/w/index.php?title=Shortest_path_problem&action=edit§ion=1 "Edit section: Definition")\]
The shortest path problem can be defined for [graphs](https://en.wikipedia.org/wiki/Graph_\(discrete_mathematics\) "Graph (discrete mathematics)") whether [undirected](https://en.wikipedia.org/wiki/Graph_\(discrete_mathematics\)#Undirected_graph "Graph (discrete mathematics)"), [directed](https://en.wikipedia.org/wiki/Graph_\(discrete_mathematics\)#Directed_graph "Graph (discrete mathematics)"), or [mixed](https://en.wikipedia.org/wiki/Mixed_graph "Mixed graph"). The definition for undirected graphs states that every edge can be traversed in either direction. Directed graphs require that consecutive vertices be connected by an appropriate directed edge.[\[3\]](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_note-3)
Two vertices are adjacent when they are both incident to a common edge. A [path](https://en.wikipedia.org/wiki/Path_\(graph_theory\) "Path (graph theory)") in an undirected graph is a [sequence](https://en.wikipedia.org/wiki/Sequence "Sequence") of vertices P \= ( v 1 , v 2 , ⊠, v n ) â V Ă V à ⯠à V {\\displaystyle P=(v\_{1},v\_{2},\\ldots ,v\_{n})\\in V\\times V\\times \\cdots \\times V}  such that v i {\\displaystyle v\_{i}}  is adjacent to v i \+ 1 {\\displaystyle v\_{i+1}}  for 1 †i \< n {\\displaystyle 1\\leq i\<n} . Such a path P {\\displaystyle P}  is called a path of length n â 1 {\\displaystyle n-1}  from v 1 {\\displaystyle v\_{1}}  to v n {\\displaystyle v\_{n}} . (The v i {\\displaystyle v\_{i}}  are variables; their numbering relates to their position in the sequence and need not relate to a canonical labeling.)
Let E \= { e i , j } {\\displaystyle E=\\{e\_{i,j}\\}}  where e i , j {\\displaystyle e\_{i,j}}  is the edge incident to both v i {\\displaystyle v\_{i}}  and v j {\\displaystyle v\_{j}} . Given a [real-valued](https://en.wikipedia.org/wiki/Function_\(mathematics\)#Real_function "Function (mathematics)") weight function f : E â R {\\displaystyle f:E\\rightarrow \\mathbb {R} } , and an undirected (simple) graph G {\\displaystyle G} , the shortest path from v {\\displaystyle v}  to v âČ {\\displaystyle v'}  is the path P \= ( v 1 , v 2 , ⊠, v n ) {\\displaystyle P=(v\_{1},v\_{2},\\ldots ,v\_{n})}  (where v 1 \= v {\\displaystyle v\_{1}=v}  and v n \= v âČ {\\displaystyle v\_{n}=v'} ) that over all possible n {\\displaystyle n}  minimizes the sum â i \= 1 n â 1 f ( e i , i \+ 1 ) . {\\displaystyle \\sum \_{i=1}^{n-1}f(e\_{i,i+1}).}  When each edge in the graph has unit weight or f : E â { 1 } {\\displaystyle f:E\\rightarrow \\{1\\}} , this is equivalent to finding the path with fewest edges.
The problem is also sometimes called the **single-pair shortest path problem**, to distinguish it from the following variations:
- The **single-source shortest path problem**, in which we have to find shortest paths from a source vertex *v* to all other vertices in the graph.
- The **single-destination shortest path problem**, in which we have to find shortest paths from all vertices in the directed graph to a single destination vertex *v*. This can be reduced to the single-source shortest path problem by reversing the arcs in the directed graph.
- The **all-pairs shortest path problem**, in which we have to find shortest paths between every pair of vertices *v*, *v'* in the graph.
These generalizations have significantly more efficient algorithms than the simplistic approach of running a single-pair shortest path algorithm on all relevant pairs of vertices.
## Algorithms
\[[edit](https://en.wikipedia.org/w/index.php?title=Shortest_path_problem&action=edit§ion=2 "Edit section: Algorithms")\]
Several well-known algorithms exist for solving this problem and its variants.
- [Dijkstra's algorithm](https://en.wikipedia.org/wiki/Dijkstra%27s_algorithm "Dijkstra's algorithm") solves the single-source shortest path problem with only non-negative edge weights.
- [BellmanâFord algorithm](https://en.wikipedia.org/wiki/Bellman%E2%80%93Ford_algorithm "BellmanâFord algorithm") solves the single-source problem if edge weights may be negative.
- [A\* search algorithm](https://en.wikipedia.org/wiki/A*_search_algorithm "A* search algorithm") solves for single-pair shortest path using heuristics to try to speed up the search.
- [FloydâWarshall algorithm](https://en.wikipedia.org/wiki/Floyd%E2%80%93Warshall_algorithm "FloydâWarshall algorithm") solves all pairs shortest paths.
- [Johnson's algorithm](https://en.wikipedia.org/wiki/Johnson%27s_algorithm "Johnson's algorithm") solves all pairs shortest paths, and may be faster than FloydâWarshall on [sparse graphs](https://en.wikipedia.org/wiki/Sparse_graph "Sparse graph").
- [Viterbi algorithm](https://en.wikipedia.org/wiki/Viterbi_algorithm "Viterbi algorithm") solves the shortest stochastic path problem with an additional probabilistic weight on each node.
Additional algorithms and associated evaluations may be found in [Cherkassky, Goldberg & Radzik (1996)](https://en.wikipedia.org/wiki/Shortest_path_problem#CITEREFCherkasskyGoldbergRadzik1996).
## Single-source shortest paths
\[[edit](https://en.wikipedia.org/w/index.php?title=Shortest_path_problem&action=edit§ion=3 "Edit section: Single-source shortest paths")\]
### Undirected graphs
\[[edit](https://en.wikipedia.org/w/index.php?title=Shortest_path_problem&action=edit§ion=4 "Edit section: Undirected graphs")\]
| Weights | [Time complexity](https://en.wikipedia.org/wiki/Time_complexity "Time complexity") | Author |
|---|---|---|
| R {\\displaystyle \\mathbb {R} } \+ | | |
### Unweighted graphs
\[[edit](https://en.wikipedia.org/w/index.php?title=Shortest_path_problem&action=edit§ion=5 "Edit section: Unweighted graphs")\]
| Algorithm | Time complexity | Author |
|---|---|---|
| [Breadth-first search](https://en.wikipedia.org/wiki/Breadth-first_search "Breadth-first search") | *O*(*E* + *V*) | |
### Directed acyclic graphs
\[[edit](https://en.wikipedia.org/w/index.php?title=Shortest_path_problem&action=edit§ion=6 "Edit section: Directed acyclic graphs")\]
An algorithm using [topological sorting](https://en.wikipedia.org/wiki/Topological_sorting#Application_to_shortest_path_finding "Topological sorting") can solve the single-source shortest path problem in time Î(*E* + *V*) in arbitrarily-weighted directed acyclic graphs.[\[4\]](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_note-4)
### Directed graphs with nonnegative weights
\[[edit](https://en.wikipedia.org/w/index.php?title=Shortest_path_problem&action=edit§ion=7 "Edit section: Directed graphs with nonnegative weights")\]
The following table is taken from [Schrijver (2004)](https://en.wikipedia.org/wiki/Shortest_path_problem#CITEREFSchrijver2004), with some corrections and additions. A green background indicates an asymptotically best bound in the table; *L* is the maximum length (or weight) among all edges, assuming integer edge weights.
| Weights | Algorithm | Time complexity | Author |
|---|---|---|---|
| R {\\displaystyle \\mathbb {R} }  | | | |
| | |
|---|---|
|  | This list is [incomplete](https://en.wikipedia.org/wiki/Wikipedia:WikiProject_Lists#Incomplete_lists "Wikipedia:WikiProject Lists"); you can help by [adding missing items](https://en.wikipedia.org/w/index.php?title=Shortest_path_problem&action=edit). *(February 2011)* |
### Directed graphs with arbitrary weights without negative cycles
\[[edit](https://en.wikipedia.org/w/index.php?title=Shortest_path_problem&action=edit§ion=8 "Edit section: Directed graphs with arbitrary weights without negative cycles")\]
| Weights | Algorithm | Time complexity | Author |
|---|---|---|---|
| R {\\displaystyle \\mathbb {R} }  | | | |
| | |
|---|---|
|  | This list is [incomplete](https://en.wikipedia.org/wiki/Wikipedia:WikiProject_Lists#Incomplete_lists "Wikipedia:WikiProject Lists"); you can help by [adding missing items](https://en.wikipedia.org/w/index.php?title=Shortest_path_problem&action=edit). *(December 2012)* |
### Directed graphs with arbitrary weights with negative cycles
\[[edit](https://en.wikipedia.org/w/index.php?title=Shortest_path_problem&action=edit§ion=9 "Edit section: Directed graphs with arbitrary weights with negative cycles")\]
Finds a negative cycle or calculates distances to all vertices.
| Weights | Algorithm | Time complexity | Author |
|---|---|---|---|
| Z {\\displaystyle \\mathbb {Z} }  | | | |
### Planar graphs with nonnegative weights
\[[edit](https://en.wikipedia.org/w/index.php?title=Shortest_path_problem&action=edit§ion=10 "Edit section: Planar graphs with nonnegative weights")\]
| Weights | Algorithm | Time complexity | Author |
|---|---|---|---|
| R â„ 0 {\\displaystyle \\mathbb {R} \_{\\geq 0}}  | | | |
## Applications
\[[edit](https://en.wikipedia.org/w/index.php?title=Shortest_path_problem&action=edit§ion=11 "Edit section: Applications")\]
**Network flows**[\[8\]](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_note-8) are a fundamental concept in graph theory and operations research, often used to model problems involving the transportation of goods, liquids, or information through a network. A network flow problem typically involves a directed graph where each edge represents a pipe, wire, or road, and each edge has a capacity, which is the maximum amount that can flow through it. The goal is to find a feasible flow that maximizes the flow from a source node to a sink node.
**Shortest Path Problems** can be used to solve certain network flow problems, particularly when dealing with single-source, single-sink networks. In these scenarios, we can transform the network flow problem into a series of shortest path problems.
### Transformation Steps
\[[edit](https://en.wikipedia.org/w/index.php?title=Shortest_path_problem&action=edit§ion=12 "Edit section: Transformation Steps")\]
[\[9\]](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_note-9)
1. **Create a Residual Graph:**
- For each edge (u, v) in the original graph, create two edges in the residual graph:
- (u, v) with capacity c(u, v)
- (v, u) with capacity 0
- The residual graph represents the remaining capacity available in the network.
2. **Find the Shortest Path:**
- Use a shortest path algorithm (e.g., Dijkstra's algorithm, Bellman-Ford algorithm) to find the shortest path from the source node to the sink node in the residual graph.
3. **Augment the Flow:**
- Find the minimum capacity along the shortest path.
- Increase the flow on the edges of the shortest path by this minimum capacity.
- Decrease the capacity of the edges in the forward direction and increase the capacity of the edges in the backward direction.
4. **Update the Residual Graph:**
- Update the residual graph based on the augmented flow.
5. **Repeat:**
- Repeat steps 2-4 until no more paths can be found from the source to the sink.
## All-pairs shortest paths
\[[edit](https://en.wikipedia.org/w/index.php?title=Shortest_path_problem&action=edit§ion=13 "Edit section: All-pairs shortest paths")\]
The all-pairs shortest path problem finds the shortest paths between every pair of vertices v, v' in the graph. The all-pairs shortest paths problem for unweighted directed graphs was introduced by [Shimbel (1953)](https://en.wikipedia.org/wiki/Shortest_path_problem#CITEREFShimbel1953), who observed that it could be solved by a linear number of matrix multiplications that takes a total time of *O*(*V*4).
### Undirected graph
\[[edit](https://en.wikipedia.org/w/index.php?title=Shortest_path_problem&action=edit§ion=14 "Edit section: Undirected graph")\]
| Weights | Time complexity | Algorithm |
|---|---|---|
| R {\\displaystyle \\mathbb {R} } \+ | | |
### Directed graph
\[[edit](https://en.wikipedia.org/w/index.php?title=Shortest_path_problem&action=edit§ion=15 "Edit section: Directed graph")\]
| Weights | Time complexity | Algorithm |
|---|---|---|
| R {\\displaystyle \\mathbb {R} }  (no negative cycles) | | |
## Applications
\[[edit](https://en.wikipedia.org/w/index.php?title=Shortest_path_problem&action=edit§ion=16 "Edit section: Applications")\]
Shortest path algorithms are applied to automatically find directions between physical locations, such as driving directions on [web mapping](https://en.wikipedia.org/wiki/Web_mapping "Web mapping") websites like [MapQuest](https://en.wikipedia.org/wiki/MapQuest "MapQuest") or [Google Maps](https://en.wikipedia.org/wiki/Google_Maps "Google Maps"). For this application fast specialized algorithms are available.[\[12\]](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_note-12)
If one represents a nondeterministic [abstract machine](https://en.wikipedia.org/wiki/Abstract_machine "Abstract machine") as a graph where vertices describe states and edges describe possible transitions, shortest path algorithms can be used to find an optimal sequence of choices to reach a certain goal state, or to establish lower bounds on the time needed to reach a given state. For example, if vertices represent the states of a puzzle like a [Rubik's Cube](https://en.wikipedia.org/wiki/Rubik%27s_Cube "Rubik's Cube") and each directed edge corresponds to a single move or turn, shortest path algorithms can be used to find a solution that uses the minimum possible number of moves.
In a [networking](https://en.wikipedia.org/wiki/Computer_network "Computer network") or [telecommunications](https://en.wikipedia.org/wiki/Telecommunications_network "Telecommunications network") mindset, this shortest path problem is sometimes called the min-delay path problem and usually tied with a [widest path problem](https://en.wikipedia.org/wiki/Widest_path_problem "Widest path problem"). For example, the algorithm may seek the shortest (min-delay) widest path, or widest shortest (min-delay) path.[\[13\]](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_note-13)
A more lighthearted application is the games of "[six degrees of separation](https://en.wikipedia.org/wiki/Six_degrees_of_separation "Six degrees of separation")" that try to find the shortest path in graphs like movie stars appearing in the same film.
Other applications, often studied in [operations research](https://en.wikipedia.org/wiki/Operations_research "Operations research"), include plant and facility layout, [robotics](https://en.wikipedia.org/wiki/Robotics "Robotics"), [transportation](https://en.wikipedia.org/wiki/Transportation "Transportation"), and [VLSI](https://en.wikipedia.org/wiki/Very-large-scale_integration "Very-large-scale integration") design.[\[14\]](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_note-14)
### Road networks
\[[edit](https://en.wikipedia.org/w/index.php?title=Shortest_path_problem&action=edit§ion=17 "Edit section: Road networks")\]
A road network can be considered as a graph with positive weights. The nodes represent road junctions and each edge of the graph is associated with a road segment between two junctions. The weight of an edge may correspond to the length of the associated road segment, the time needed to traverse the segment, or the cost of traversing the segment. Using directed edges it is also possible to model one-way streets. Such graphs are special in the sense that some edges are more important than others for long-distance travel (e.g. highways). This property has been formalized using the notion of highway dimension.[\[15\]](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_note-15) There are a great number of algorithms that exploit this property and are therefore able to compute the shortest path a lot quicker than would be possible on general graphs.
All of these algorithms work in two phases. In the first phase, the graph is preprocessed without knowing the source or target node. The second phase is the query phase. In this phase, source and target node are known. The idea is that the road network is static, so the preprocessing phase can be done once and used for a large number of queries on the same road network.
The algorithm with the fastest known query time is called hub labeling and is able to compute shortest path on the road networks of Europe or the US in a fraction of a microsecond.[\[16\]](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_note-16) Other techniques that have been used are:
- ALT ([A\* search](https://en.wikipedia.org/wiki/A*_search "A* search"), landmarks, and [triangle inequality](https://en.wikipedia.org/wiki/Triangle_inequality "Triangle inequality"))
- Arc flags
- [Contraction hierarchies](https://en.wikipedia.org/wiki/Contraction_hierarchies "Contraction hierarchies")
- [Transit node routing](https://en.wikipedia.org/wiki/Transit_node_routing "Transit node routing")
- Reach-based pruning
- Labeling
- [Hub labels](https://en.wikipedia.org/wiki/Hub_labels "Hub labels")
## Related problems
\[[edit](https://en.wikipedia.org/w/index.php?title=Shortest_path_problem&action=edit§ion=18 "Edit section: Related problems")\]
For shortest path problems in [computational geometry](https://en.wikipedia.org/wiki/Computational_geometry "Computational geometry"), see [Euclidean shortest path](https://en.wikipedia.org/wiki/Euclidean_shortest_path "Euclidean shortest path").
The shortest multiple disconnected path [\[17\]](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_note-17) is a representation of the primitive path network within the framework of [Reptation theory](https://en.wikipedia.org/wiki/Reptation_theory "Reptation theory"). The [widest path problem](https://en.wikipedia.org/wiki/Widest_path_problem "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
\[[edit](https://en.wikipedia.org/w/index.php?title=Shortest_path_problem&action=edit§ion=19 "Edit section: 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](https://en.wikipedia.org/wiki/Constrained_Shortest_Path_First "Constrained Shortest Path First"), and are harder to solve. One example is the constrained shortest path problem,[\[18\]](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_note-18) 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](https://en.wikipedia.org/wiki/NP-complete "NP-complete") (such problems are not believed to be efficiently solvable for large sets of data, see [P = NP problem](https://en.wikipedia.org/wiki/P_%3D_NP_problem "P = NP problem")). Another [NP-complete](https://en.wikipedia.org/wiki/NP-complete "NP-complete") example requires a specific set of vertices to be included in the path,[\[19\]](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_note-19) which makes the problem similar to the [Traveling Salesman Problem](https://en.wikipedia.org/wiki/Traveling_Salesman_Problem "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](https://en.wikipedia.org/wiki/Longest_path_problem "Longest path problem") in a graph is also NP-complete.
### Partial observability
\[[edit](https://en.wikipedia.org/w/index.php?title=Shortest_path_problem&action=edit§ion=20 "Edit section: Partial observability")\]
The [Canadian traveller problem](https://en.wikipedia.org/wiki/Canadian_traveller_problem "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.[\[20\]](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_note-20)[\[21\]](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_note-21)
### Strategic shortest paths
\[[edit](https://en.wikipedia.org/w/index.php?title=Shortest_path_problem&action=edit§ion=21 "Edit section: Strategic shortest paths")\]
| | |
|---|---|
| [](https://en.wikipedia.org/wiki/File:Question_book-new.svg) | This section **does not [cite](https://en.wikipedia.org/wiki/Wikipedia:Citing_sources "Wikipedia:Citing sources") any [sources](https://en.wikipedia.org/wiki/Wikipedia:Verifiability "Wikipedia:Verifiability")**. Please help [improve this section](https://en.wikipedia.org/wiki/Special:EditPage/Shortest_path_problem "Special:EditPage/Shortest path problem") by [adding citations to reliable sources](https://en.wikipedia.org/wiki/Help:Referencing_for_beginners "Help:Referencing for beginners"). Unsourced material may be challenged and [removed](https://en.wikipedia.org/wiki/Wikipedia:Verifiability#Burden_of_evidence "Wikipedia:Verifiability"). *(December 2015)* *([Learn how and when to remove this message](https://en.wikipedia.org/wiki/Help:Maintenance_template_removal "Help:Maintenance template removal"))* |
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](https://en.wikipedia.org/wiki/Vickrey%E2%80%93Clarke%E2%80%93Groves_mechanism#quickest_paths "VickreyâClarkeâGroves mechanism"), which gives the computers an incentive to reveal their true weights.
### Negative cycle detection
\[[edit](https://en.wikipedia.org/w/index.php?title=Shortest_path_problem&action=edit§ion=22 "Edit section: 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](https://en.wikipedia.org/wiki/Bellman%E2%80%93Ford_algorithm "BellmanâFord algorithm") can be used to detect a negative cycle in time
O
(
\|
V
\|
\|
E
\|
)
{\\displaystyle O(\|V\|\|E\|)}

.
- Cherkassky and Goldberg[\[22\]](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_note-22) survey several other algorithms for negative cycle detection.
## General algebraic framework on semirings: the algebraic path problem
\[[edit](https://en.wikipedia.org/w/index.php?title=Shortest_path_problem&action=edit§ion=23 "Edit section: General algebraic framework on semirings: the algebraic path problem")\]
| | |
|---|---|
| [![\[icon\]](https://upload.wikimedia.org/wikipedia/commons/thumb/1/1c/Wiki_letter_w_cropped.svg/20px-Wiki_letter_w_cropped.svg.png)](https://en.wikipedia.org/wiki/File:Wiki_letter_w_cropped.svg) | This section **needs expansion**. You can help by [adding missing information](https://en.wikipedia.org/w/index.php?title=Shortest_path_problem&action=edit§ion=). *(August 2014)* |
Many problems can be framed as a form of the shortest path for some suitably substituted notions of addition along a path and taking the minimum. The general approach to these is to consider the two operations to be those of a [semiring](https://en.wikipedia.org/wiki/Semiring "Semiring"). Semiring multiplication is done along the path, and the addition is between paths. This general framework is known as the [algebraic path problem](https://en.wikipedia.org/wiki/Algebraic_path_problem "Algebraic path problem").[\[23\]](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_note-Pair1966-23)[\[24\]](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_note-24)[\[25\]](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_note-BarasTheodorakopoulos2010-25)
Most of the classic shortest-path algorithms (and new ones) can be formulated as solving linear systems over such algebraic structures.[\[26\]](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_note-GondranMinoux2008-26)
More recently, an even more general framework for solving these (and much less obviously related problems) has been developed under the banner of [valuation algebras](https://en.wikipedia.org/wiki/Valuation_algebra "Valuation algebra").[\[27\]](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_note-PoulyKohlas2012-27)
## Shortest path in stochastic time-dependent networks
\[[edit](https://en.wikipedia.org/w/index.php?title=Shortest_path_problem&action=edit§ion=24 "Edit section: Shortest path in stochastic time-dependent networks")\]
In real-life, a transportation network is usually stochastic and time-dependent. The travel duration on a road segment depends on many factors such as the amount of traffic (origin-destination matrix), road work, weather, accidents and vehicle breakdowns. A more realistic model of such a road network is a stochastic time-dependent (STD) network.[\[28\]](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_note-28)[\[29\]](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_note-29)
There is no accepted definition of optimal path under uncertainty (that is, in stochastic road networks). It is a controversial subject, despite considerable progress during the past decade. One common definition is a path with the minimum expected travel time. The main advantage of this approach is that it can make use of efficient shortest path algorithms for deterministic networks. However, the resulting optimal path may not be reliable, because this approach fails to address travel time variability.
To tackle this issue, some researchers use travel duration distribution instead of its expected value. So, they find the probability distribution of total travel duration using different optimization methods such as [dynamic programming](https://en.wikipedia.org/wiki/Dynamic_programming "Dynamic programming") and [Dijkstra's algorithm](https://en.wikipedia.org/wiki/Dijkstra%27s_algorithm "Dijkstra's algorithm") .[\[30\]](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_note-30) These methods use [stochastic optimization](https://en.wikipedia.org/wiki/Stochastic_optimization "Stochastic optimization"), specifically stochastic dynamic programming to find the shortest path in networks with probabilistic arc length.[\[31\]](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_note-31) The terms *travel time reliability* and *travel time variability* are used as opposites in the transportation research literature: the higher the variability, the lower the reliability of predictions.
To account for variability, researchers have suggested two alternative definitions for an optimal path under uncertainty. The *most reliable path* is one that maximizes the probability of arriving on time given a travel time budget. An *α-reliable path* is one that minimizes the travel time budget required to arrive on time with a given probability.
## See also
\[[edit](https://en.wikipedia.org/w/index.php?title=Shortest_path_problem&action=edit§ion=25 "Edit section: See also")\]
- [Bidirectional search](https://en.wikipedia.org/wiki/Bidirectional_search "Bidirectional search") â An algorithm that finds the shortest path between two vertices on a directed graph
- [Euclidean shortest path](https://en.wikipedia.org/wiki/Euclidean_shortest_path "Euclidean shortest path") â Problem of computing shortest paths around geometric obstacles
- [Flow network](https://en.wikipedia.org/wiki/Flow_network "Flow network") â Directed graph where edges have a capacity
- [K shortest path routing](https://en.wikipedia.org/wiki/K_shortest_path_routing "K shortest path routing") â Computational problem of graph theory
- [Min-plus matrix multiplication](https://en.wikipedia.org/wiki/Min-plus_matrix_multiplication "Min-plus matrix multiplication") â Mathematical operation on matrices
- [Pathfinding](https://en.wikipedia.org/wiki/Pathfinding "Pathfinding") â Plotting by a computer application
- [Shortest Path Bridging](https://en.wikipedia.org/wiki/Shortest_Path_Bridging "Shortest Path Bridging")
- [Shortest path tree](https://en.wikipedia.org/wiki/Shortest_path_tree "Shortest path tree") â Type of spanning treePages displaying short descriptions of redirect targets
- [TRILL](https://en.wikipedia.org/wiki/TRILL "TRILL") (TRansparent Interconnection of Lots of Links)
## References
\[[edit](https://en.wikipedia.org/w/index.php?title=Shortest_path_problem&action=edit§ion=26 "Edit section: References")\]
### Notes
\[[edit](https://en.wikipedia.org/w/index.php?title=Shortest_path_problem&action=edit§ion=27 "Edit section: Notes")\]
1. **[^](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_ref-1)**
Ortega-Arranz, Hector; Llanos, Diego R.; Gonzalez-Escribano, Arturo (2015). [*The Shortest-Path Problem*](https://link.springer.com/book/10.1007/978-3-031-02574-7). Synthesis Lectures on Theoretical Computer Science. Cham: Springer. [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1007/978-3-031-02574-7](https://doi.org/10.1007%2F978-3-031-02574-7). [ISBN](https://en.wikipedia.org/wiki/ISBN_\(identifier\) "ISBN (identifier)")
[978-3-031-01446-8](https://en.wikipedia.org/wiki/Special:BookSources/978-3-031-01446-8 "Special:BookSources/978-3-031-01446-8")
.
2. **[^](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_ref-2)**
Guenin, Bertrand (2014). *Gentle Introduction to Optimization*. Jochen Koenemann, Levent Tunçel (1st ed.). West Nyack: Cambridge University Press. p. 27. [ISBN](https://en.wikipedia.org/wiki/ISBN_\(identifier\) "ISBN (identifier)")
[978-1-107-05344-1](https://en.wikipedia.org/wiki/Special:BookSources/978-1-107-05344-1 "Special:BookSources/978-1-107-05344-1")
.
3. **[^](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_ref-3)**
Deo, Narsingh (17 August 2016). [*Graph Theory with Applications to Engineering and Computer Science*](https://books.google.com/books?id=uk1KDAAAQBAJ). Courier Dover Publications. [ISBN](https://en.wikipedia.org/wiki/ISBN_\(identifier\) "ISBN (identifier)")
[978-0-486-80793-5](https://en.wikipedia.org/wiki/Special:BookSources/978-0-486-80793-5 "Special:BookSources/978-0-486-80793-5")
.
4. **[^](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_ref-4)** [Cormen et al. 2001](https://en.wikipedia.org/wiki/Shortest_path_problem#CITEREFCormenLeisersonRivestStein2001), p. 655
5. **[^](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_ref-5)**
DĂŒrr, Christoph; Heiligman, Mark; HĂžyer, Peter; Mhalla, Mehdi (January 2006). "Quantum query complexity of some graph problems". *SIAM Journal on Computing*. **35** (6): 1310â1328\. [arXiv](https://en.wikipedia.org/wiki/ArXiv_\(identifier\) "ArXiv (identifier)"):[quant-ph/0401091](https://arxiv.org/abs/quant-ph/0401091). [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1137/050644719](https://doi.org/10.1137%2F050644719). [ISSN](https://en.wikipedia.org/wiki/ISSN_\(identifier\) "ISSN (identifier)") [0097-5397](https://search.worldcat.org/issn/0097-5397). [S2CID](https://en.wikipedia.org/wiki/S2CID_\(identifier\) "S2CID (identifier)") [14253494](https://api.semanticscholar.org/CorpusID:14253494).
6. **[^](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_ref-6)**
Brubaker, Ben (2025-08-06). ["New Method Is the Fastest Way To Find the Best Routes"](https://www.quantamagazine.org/new-method-is-the-fastest-way-to-find-the-best-routes-20250806/). *Quanta Magazine*. Retrieved 2025-08-11.
7. ^ [***a***](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_ref-dial69_7-0) [***b***](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_ref-dial69_7-1)
Dial, Robert B. (1969). ["Algorithm 360: Shortest-Path Forest with Topological Ordering \[H\]"](https://doi.org/10.1145%2F363269.363610). *Communications of the ACM*. **12** (11): 632â633\. [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1145/363269.363610](https://doi.org/10.1145%2F363269.363610). [S2CID](https://en.wikipedia.org/wiki/S2CID_\(identifier\) "S2CID (identifier)") [6754003](https://api.semanticscholar.org/CorpusID:6754003).
8. **[^](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_ref-8)**
Cormen, Thomas H. (July 31, 2009). *Introduction to Algorithms* (3rd ed.). MIT Press. [ISBN](https://en.wikipedia.org/wiki/ISBN_\(identifier\) "ISBN (identifier)")
[9780262533058](https://en.wikipedia.org/wiki/Special:BookSources/9780262533058 "Special:BookSources/9780262533058")
.
9. **[^](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_ref-9)**
Kleinberg, Jon; Tardos, Ăva (2005). [*Algorithm Design*](https://www.nytimes.com/2009/08/06/technology/06stats.html?_r=2&scp=1&sq=statistics&st=nyt) (1st ed.). Addison-Wesley. [ISBN](https://en.wikipedia.org/wiki/ISBN_\(identifier\) "ISBN (identifier)")
[978-0321295354](https://en.wikipedia.org/wiki/Special:BookSources/978-0321295354 "Special:BookSources/978-0321295354")
.
10. **[^](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_ref-10)**
DĂŒrr, C.; HĂžyer, P. (1996-07-18). "A Quantum Algorithm for Finding the Minimum". [arXiv](https://en.wikipedia.org/wiki/ArXiv_\(identifier\) "ArXiv (identifier)"):[quant-ph/9607014](https://arxiv.org/abs/quant-ph/9607014).
11. **[^](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_ref-11)**
Nayebi, Aran; Williams, V. V. (2014-10-22). "Quantum algorithms for shortest paths problems in structured instances". [arXiv](https://en.wikipedia.org/wiki/ArXiv_\(identifier\) "ArXiv (identifier)"):[1410\.6220](https://arxiv.org/abs/1410.6220) \[[quant-ph](https://arxiv.org/archive/quant-ph)\].
12. **[^](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_ref-12)**
[Sanders, Peter](https://en.wikipedia.org/wiki/Peter_Sanders_\(computer_scientist\) "Peter Sanders (computer scientist)") (March 23, 2009). ["Fast route planning"](https://www.youtube.com/watch?v=-0ErpE8tQbw). *Google Tech Talk*. [Archived](https://ghostarchive.org/varchive/youtube/20211211/-0ErpE8tQbw) from the original on 2021-12-11.
13. **[^](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_ref-13)**
Hoceini, S.; A. Mellouk; Y. Amirat (2005). ["K-Shortest Paths Q-Routing: A New QoS Routing Algorithm in Telecommunication Networks"](https://doi.org/10.1007/978-3-540-31957-3_21). *Networking - ICN 2005, Lecture Notes in Computer Science, Vol. 3421*. Vol. 3421. Springer, Berlin, Heidelberg. pp. 164â172\. [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1007/978-3-540-31957-3\_21](https://doi.org/10.1007%2F978-3-540-31957-3_21). [ISBN](https://en.wikipedia.org/wiki/ISBN_\(identifier\) "ISBN (identifier)")
[978-3-540-25338-9](https://en.wikipedia.org/wiki/Special:BookSources/978-3-540-25338-9 "Special:BookSources/978-3-540-25338-9")
.
14. **[^](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_ref-14)**
Chen, Danny Z. (December 1996). "Developing algorithms and software for geometric path planning problems". *ACM Computing Surveys*. **28** (4es). Article 18. [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1145/242224.242246](https://doi.org/10.1145%2F242224.242246). [S2CID](https://en.wikipedia.org/wiki/S2CID_\(identifier\) "S2CID (identifier)") [11761485](https://api.semanticscholar.org/CorpusID:11761485).
15. **[^](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_ref-15)** Abraham, Ittai; Fiat, Amos; [Goldberg, Andrew V.](https://en.wikipedia.org/wiki/Andrew_V._Goldberg "Andrew V. Goldberg"); Werneck, Renato F. ["Highway Dimension, Shortest Paths, and Provably Efficient Algorithms"](http://research.microsoft.com/pubs/115272/soda10.pdf%20research.microsoft.com/pubs/115272/soda10.pdf). ACM-SIAM Symposium on Discrete Algorithms, pages 782â793, 2010.
16. **[^](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_ref-16)** Abraham, Ittai; Delling, Daniel; [Goldberg, Andrew V.](https://en.wikipedia.org/wiki/Andrew_V._Goldberg "Andrew V. Goldberg"); Werneck, Renato F. [research.microsoft.com/pubs/142356/HL-TR.pdf "A Hub-Based Labeling Algorithm for Shortest Paths on Road Networks"](http://research.microsoft.com/pubs/142356/HL-TR.pdf). Symposium on Experimental Algorithms, pages 230â241, 2011.
17. **[^](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_ref-17)**
Kroger, Martin (2005). "Shortest multiple disconnected path for the analysis of entanglements in two- and three-dimensional polymeric systems". *Computer Physics Communications*. **168** (3): 209â232\. [Bibcode](https://en.wikipedia.org/wiki/Bibcode_\(identifier\) "Bibcode (identifier)"):[2005CoPhC.168..209K](https://ui.adsabs.harvard.edu/abs/2005CoPhC.168..209K). [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1016/j.cpc.2005.01.020](https://doi.org/10.1016%2Fj.cpc.2005.01.020).
18. **[^](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_ref-18)**
Lozano, Leonardo; Medaglia, AndrĂ©s L (2013). "On an exact method for the constrained shortest path problem". *Computers & Operations Research*. **40** (1): 378â384\. [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1016/j.cor.2012.07.008](https://doi.org/10.1016%2Fj.cor.2012.07.008).
19. **[^](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_ref-19)**
Osanlou, Kevin; Bursuc, Andrei; Guettier, Christophe; Cazenave, Tristan; Jacopin, Eric (2019). "Optimal Solving of Constrained Path-Planning Problems with Graph Convolutional Networks and Optimized Tree Search". *2019 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)*. pp. 3519â3525\. [arXiv](https://en.wikipedia.org/wiki/ArXiv_\(identifier\) "ArXiv (identifier)"):[2108\.01036](https://arxiv.org/abs/2108.01036). [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1109/IROS40897.2019.8968113](https://doi.org/10.1109%2FIROS40897.2019.8968113). [ISBN](https://en.wikipedia.org/wiki/ISBN_\(identifier\) "ISBN (identifier)")
[978-1-7281-4004-9](https://en.wikipedia.org/wiki/Special:BookSources/978-1-7281-4004-9 "Special:BookSources/978-1-7281-4004-9")
. [S2CID](https://en.wikipedia.org/wiki/S2CID_\(identifier\) "S2CID (identifier)") [210706773](https://api.semanticscholar.org/CorpusID:210706773).
20. **[^](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_ref-20)**
Bar-Noy, Amotz; Schieber, Baruch (1991). "The canadian traveller problem". *Proceedings of the Second Annual ACM-SIAM Symposium on Discrete Algorithms*: 261â270\. [CiteSeerX](https://en.wikipedia.org/wiki/CiteSeerX_\(identifier\) "CiteSeerX (identifier)") [10\.1.1.1088.3015](https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.1088.3015).
21. **[^](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_ref-21)**
Nikolova, Evdokia; Karger, David R. ["Route planning under uncertainty: the Canadian traveller problem"](https://www.aaai.org/Papers/AAAI/2008/AAAI08-154.pdf) (PDF). *Proceedings of the 23rd National Conference on Artificial Intelligence (AAAI)*. pp. 969â974\. [Archived](https://ghostarchive.org/archive/20221009/https://www.aaai.org/Papers/AAAI/2008/AAAI08-154.pdf) (PDF) from the original on 2022-10-09.
22. **[^](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_ref-22)**
Cherkassky, Boris V.; Goldberg, Andrew V. (1999-06-01). ["Negative-cycle detection algorithms"](https://doi.org/10.1007/s101070050058). *Mathematical Programming*. **85** (2): 277â311\. [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1007/s101070050058](https://doi.org/10.1007%2Fs101070050058). [ISSN](https://en.wikipedia.org/wiki/ISSN_\(identifier\) "ISSN (identifier)") [1436-4646](https://search.worldcat.org/issn/1436-4646). [S2CID](https://en.wikipedia.org/wiki/S2CID_\(identifier\) "S2CID (identifier)") [79739](https://api.semanticscholar.org/CorpusID:79739).
23. **[^](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_ref-Pair1966_23-0)**
Pair, Claude (1967). "Sur des algorithmes pour des problÚmes de cheminement dans les graphes finis" \[On algorithms for path problems in finite graphs\]. In [Rosentiehl, Pierre](https://en.wikipedia.org/wiki/Pierre_Rosenstiehl "Pierre Rosenstiehl") (ed.). *Théorie des graphes (journées internationales d'études) \[Theory of Graphs (international symposium)\]*. Rome (Italy), July 1966. Dunod (Paris); Gordon and Breach (New York). p. 271. [OCLC](https://en.wikipedia.org/wiki/OCLC_\(identifier\) "OCLC (identifier)") [901424694](https://search.worldcat.org/oclc/901424694).
24. **[^](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_ref-24)**
Derniame, Jean Claude; Pair, Claude (1971). *ProblĂšmes de cheminement dans les graphes* \[*Path Problems in Graphs*\]. Dunod (Paris).
25. **[^](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_ref-BarasTheodorakopoulos2010_25-0)**
Baras, John; Theodorakopoulos, George (4 April 2010). [*Path Problems in Networks*](https://books.google.com/books?id=fZJeAQAAQBAJ&pg=PA9). Morgan & Claypool Publishers. pp. 9â. [ISBN](https://en.wikipedia.org/wiki/ISBN_\(identifier\) "ISBN (identifier)")
[978-1-59829-924-3](https://en.wikipedia.org/wiki/Special:BookSources/978-1-59829-924-3 "Special:BookSources/978-1-59829-924-3")
.
26. **[^](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_ref-GondranMinoux2008_26-0)**
Gondran, Michel; Minoux, Michel (2008). "chapter 4". *Graphs, Dioids and Semirings: New Models and Algorithms*. Springer Science & Business Media. [ISBN](https://en.wikipedia.org/wiki/ISBN_\(identifier\) "ISBN (identifier)")
[978-0-387-75450-5](https://en.wikipedia.org/wiki/Special:BookSources/978-0-387-75450-5 "Special:BookSources/978-0-387-75450-5")
.
27. **[^](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_ref-PoulyKohlas2012_27-0)**
Pouly, Marc; Kohlas, JĂŒrg (2011). "Chapter 6. Valuation Algebras for Path Problems". *Generic Inference: A Unifying Theory for Automated Reasoning*. John Wiley & Sons. [ISBN](https://en.wikipedia.org/wiki/ISBN_\(identifier\) "ISBN (identifier)")
[978-1-118-01086-0](https://en.wikipedia.org/wiki/Special:BookSources/978-1-118-01086-0 "Special:BookSources/978-1-118-01086-0")
.
28. **[^](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_ref-28)** Loui, R.P., 1983. Optimal paths in graphs with stochastic or multidimensional weights. Communications of the ACM, 26(9), pp.670-676.
29. **[^](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_ref-29)**
Rajabi-Bahaabadi, Mojtaba; Shariat-Mohaymany, Afshin; Babaei, Mohsen; Ahn, Chang Wook (2015). "Multi-objective path finding in stochastic time-dependent road networks using non-dominated sorting genetic algorithm". *Expert Systems with Applications*. **42** (12): 5056â5064\. [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1016/j.eswa.2015.02.046](https://doi.org/10.1016%2Fj.eswa.2015.02.046).
30. **[^](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_ref-30)**
Olya, Mohammad Hessam (2014). "Finding shortest path in a combined exponential â gamma probability distribution arc length". *International Journal of Operational Research*. **21** (1) 64020: 25â37\. [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1504/IJOR.2014.064020](https://doi.org/10.1504%2FIJOR.2014.064020).
31. **[^](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_ref-31)**
Olya, Mohammad Hessam (2014). "Applying Dijkstra's algorithm for general shortest path problem with normal probability distribution arc length". *International Journal of Operational Research*. **21** (2) 64541: 143â154\. [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1504/IJOR.2014.064541](https://doi.org/10.1504%2FIJOR.2014.064541).
### Bibliography
\[[edit](https://en.wikipedia.org/w/index.php?title=Shortest_path_problem&action=edit§ion=28 "Edit section: Bibliography")\]
- Ahuja, Ravindra K.; Mehlhorn, Kurt; Orlin, James; [Tarjan, Robert E.](https://en.wikipedia.org/wiki/Robert_Tarjan "Robert Tarjan") (April 1990). ["Faster algorithms for the shortest path problem"](https://apps.dtic.mil/sti/pdfs/ADA194031.pdf) (PDF). *Journal of the ACM*. **37** (2). ACM: 213â223\. [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1145/77600.77615](https://doi.org/10.1145%2F77600.77615). [hdl](https://en.wikipedia.org/wiki/Hdl_\(identifier\) "Hdl (identifier)"):[1721\.1/47994](https://hdl.handle.net/1721.1%2F47994). [S2CID](https://en.wikipedia.org/wiki/S2CID_\(identifier\) "S2CID (identifier)") [5499589](https://api.semanticscholar.org/CorpusID:5499589). [Archived](https://ghostarchive.org/archive/20221009/https://apps.dtic.mil/sti/pdfs/ADA194031.pdf) (PDF) from the original on 2022-10-09.
- Axiotis, Kyriakos; MÄ
dry, Aleksander; Vladu, Adrian (2020). "Circulation control for faster minimum cost flow in unit-capacity graphs". In Irani, Sandy (ed.). *61st IEEE Annual Symposium on Foundations of Computer Science, FOCS 2020, Durham, NC, USA, November 16â19, 2020*. IEEE. pp. 93â104\. [arXiv](https://en.wikipedia.org/wiki/ArXiv_\(identifier\) "ArXiv (identifier)"):[2003\.04863](https://arxiv.org/abs/2003.04863). [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1109/FOCS46700.2020.00018](https://doi.org/10.1109%2FFOCS46700.2020.00018). [ISBN](https://en.wikipedia.org/wiki/ISBN_\(identifier\) "ISBN (identifier)")
[978-1-7281-9621-3](https://en.wikipedia.org/wiki/Special:BookSources/978-1-7281-9621-3 "Special:BookSources/978-1-7281-9621-3")
.
- [Bellman, Richard](https://en.wikipedia.org/wiki/Richard_Bellman "Richard Bellman") (1958). ["On a routing problem"](https://doi.org/10.1090%2Fqam%2F102435). *Quarterly of Applied Mathematics*. **16**: 87â90\. [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1090/qam/102435](https://doi.org/10.1090%2Fqam%2F102435). [MR](https://en.wikipedia.org/wiki/MR_\(identifier\) "MR (identifier)") [0102435](https://mathscinet.ams.org/mathscinet-getitem?mr=0102435).
- Bernstein, Aaron; Nanongkai, Danupon; Wulff-Nilsen, Christian (2022). "Negative-Weight Single-Source Shortest Paths in Near-linear Time". *2022 IEEE 63rd Annual Symposium on Foundations of Computer Science (FOCS)*. IEEE. pp. 600â611\. [arXiv](https://en.wikipedia.org/wiki/ArXiv_\(identifier\) "ArXiv (identifier)"):[2203\.03456](https://arxiv.org/abs/2203.03456). [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1109/focs54457.2022.00063](https://doi.org/10.1109%2Ffocs54457.2022.00063). [ISBN](https://en.wikipedia.org/wiki/ISBN_\(identifier\) "ISBN (identifier)")
[978-1-6654-5519-0](https://en.wikipedia.org/wiki/Special:BookSources/978-1-6654-5519-0 "Special:BookSources/978-1-6654-5519-0")
. [S2CID](https://en.wikipedia.org/wiki/S2CID_\(identifier\) "S2CID (identifier)") [247958461](https://api.semanticscholar.org/CorpusID:247958461).
- van den Brand, Jan; Lee, Yin Tat; Nanongkai, Danupon; Peng, Richard; Saranurak, Thatchaphol; Sidford, Aaron; Song, Zhao; Wang, Di (2020). "Bipartite matching in nearly-linear time on moderately dense graphs". In Irani, Sandy (ed.). *61st IEEE Annual Symposium on Foundations of Computer Science, FOCS 2020, Durham, NC, USA, November 16â19, 2020*. IEEE. pp. 919â930\. [arXiv](https://en.wikipedia.org/wiki/ArXiv_\(identifier\) "ArXiv (identifier)"):[2009\.01802](https://arxiv.org/abs/2009.01802). [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1109/FOCS46700.2020.00090](https://doi.org/10.1109%2FFOCS46700.2020.00090). [ISBN](https://en.wikipedia.org/wiki/ISBN_\(identifier\) "ISBN (identifier)")
[978-1-7281-9621-3](https://en.wikipedia.org/wiki/Special:BookSources/978-1-7281-9621-3 "Special:BookSources/978-1-7281-9621-3")
.
- Chen, Li; Kyng, Rasmus; Liu, Yang P.; Peng, Richard; Gutenberg, Maximilian Probst; Sachdeva, Sushant (2022). "Maximum flow and minimum-cost flow in almost-linear time". *63rd IEEE Annual Symposium on Foundations of Computer Science, FOCS 2022, Denver, CO, USA, October 31 â November 3, 2022*. IEEE. pp. 612â623\. [arXiv](https://en.wikipedia.org/wiki/ArXiv_\(identifier\) "ArXiv (identifier)"):[2203\.00671](https://arxiv.org/abs/2203.00671). [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1109/FOCS54457.2022.00064](https://doi.org/10.1109%2FFOCS54457.2022.00064). [ISBN](https://en.wikipedia.org/wiki/ISBN_\(identifier\) "ISBN (identifier)")
[978-1-6654-5519-0](https://en.wikipedia.org/wiki/Special:BookSources/978-1-6654-5519-0 "Special:BookSources/978-1-6654-5519-0")
.
- Cohen, Michael B.; MÄ
dry, Aleksander; Sankowski, Piotr; Vladu, Adrian (2017). "Negative-weight shortest paths and unit capacity minimum cost flow in
O
~
(
m
10
/
7
log
âĄ
W
)
{\\displaystyle {\\tilde {O}}(m^{10/7}\\log W)}

time". In Klein, Philip N. (ed.). *Proceedings of the Twenty-Eighth Annual ACMâSIAM Symposium on Discrete Algorithms, SODA 2017, Barcelona, Spain, Hotel Porta Fira, January 16â19*. Society for Industrial and Applied Mathematics. pp. 752â771\. [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1137/1.9781611974782.48](https://doi.org/10.1137%2F1.9781611974782.48).
- Duan, Ran; Mao, Jiayi; Shu, Xinkai; Yin, Longhui (2023). "A Randomized Algorithm for Single-Source Shortest Path on Undirected Real-Weighted Graphs". *2023 IEEE 64th Annual Symposium on Foundations of Computer Science (FOCS)*. IEEE. pp. 484â492\. [arXiv](https://en.wikipedia.org/wiki/ArXiv_\(identifier\) "ArXiv (identifier)"):[2307\.04139](https://arxiv.org/abs/2307.04139). [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1109/focs57990.2023.00035](https://doi.org/10.1109%2Ffocs57990.2023.00035). [ISBN](https://en.wikipedia.org/wiki/ISBN_\(identifier\) "ISBN (identifier)")
[979-8-3503-1894-4](https://en.wikipedia.org/wiki/Special:BookSources/979-8-3503-1894-4 "Special:BookSources/979-8-3503-1894-4")
. [S2CID](https://en.wikipedia.org/wiki/S2CID_\(identifier\) "S2CID (identifier)") [259501045](https://api.semanticscholar.org/CorpusID:259501045).
- Duan, Ran; Mao, Jiayi; Mao, Xiao; Shu, Xinkai; Yin, Longhui (2025). "Breaking the Sorting Barrier for Directed Single-Source Shortest Paths". *Proceedings of the 57th Annual ACM Symposium on Theory of Computing (STOC)*. Association for Computing Machinery. pp. 36â44\. [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1145/3717823.3718179](https://doi.org/10.1145%2F3717823.3718179). [ISBN](https://en.wikipedia.org/wiki/ISBN_\(identifier\) "ISBN (identifier)")
[979-8-4007-1510-5](https://en.wikipedia.org/wiki/Special:BookSources/979-8-4007-1510-5 "Special:BookSources/979-8-4007-1510-5")
.
- Cherkassky, Boris V.; [Goldberg, Andrew V.](https://en.wikipedia.org/wiki/Andrew_V._Goldberg "Andrew V. Goldberg"); Radzik, Tomasz (1996). ["Shortest paths algorithms: theory and experimental evaluation"](http://ftp.cs.stanford.edu/cs/theory/pub/goldberg/sp-alg.ps.Z). *Mathematical Programming*. Ser. A. **73** (2): 129â174\. [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1016/0025-5610(95)00021-6](https://doi.org/10.1016%2F0025-5610%2895%2900021-6). [MR](https://en.wikipedia.org/wiki/MR_\(identifier\) "MR (identifier)") [1392160](https://mathscinet.ams.org/mathscinet-getitem?mr=1392160).
- [Cormen, Thomas H.](https://en.wikipedia.org/wiki/Thomas_H._Cormen "Thomas H. Cormen"); [Leiserson, Charles E.](https://en.wikipedia.org/wiki/Charles_E._Leiserson "Charles E. Leiserson"); [Rivest, Ronald L.](https://en.wikipedia.org/wiki/Ron_Rivest "Ron Rivest"); [Stein, Clifford](https://en.wikipedia.org/wiki/Clifford_Stein "Clifford Stein") (2001) \[1990\]. "Single-Source Shortest Paths and All-Pairs Shortest Paths". [*Introduction to Algorithms*](https://en.wikipedia.org/wiki/Introduction_to_Algorithms "Introduction to Algorithms") (2nd ed.). MIT Press and McGraw-Hill. pp. 580â642\. [ISBN](https://en.wikipedia.org/wiki/ISBN_\(identifier\) "ISBN (identifier)")
[0-262-03293-7](https://en.wikipedia.org/wiki/Special:BookSources/0-262-03293-7 "Special:BookSources/0-262-03293-7")
.
- Dantzig, G. B. (January 1960). "On the Shortest Route through a Network". *Management Science*. **6** (2): 187â190\. [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1287/mnsc.6.2.187](https://doi.org/10.1287%2Fmnsc.6.2.187).
- [Dijkstra, E. W.](https://en.wikipedia.org/wiki/Edsger_W._Dijkstra "Edsger W. Dijkstra") (1959). "A note on two problems in connexion with graphs". *Numerische Mathematik*. **1**: 269â271\. [Bibcode](https://en.wikipedia.org/wiki/Bibcode_\(identifier\) "Bibcode (identifier)"):[1959NuMat...1..269D](https://ui.adsabs.harvard.edu/abs/1959NuMat...1..269D). [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1007/BF01386390](https://doi.org/10.1007%2FBF01386390). [S2CID](https://en.wikipedia.org/wiki/S2CID_\(identifier\) "S2CID (identifier)") [123284777](https://api.semanticscholar.org/CorpusID:123284777).
- Fineman, Jeremy T. (2024). "Single-source shortest paths with negative real weights in
O
~
(
m
n
8
/
9
)
{\\displaystyle {\\tilde {O}}(mn^{8/9})}

time". In Mohar, Bojan; Shinkar, Igor; O'Donnell, Ryan (eds.). *Proceedings of the 56th Annual ACM Symposium on Theory of Computing, STOC 2024, Vancouver, BC, Canada, June 24â28, 2024*. Association for Computing Machinery. pp. 3â14\. [arXiv](https://en.wikipedia.org/wiki/ArXiv_\(identifier\) "ArXiv (identifier)"):[2311\.02520](https://arxiv.org/abs/2311.02520). [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1145/3618260.3649614](https://doi.org/10.1145%2F3618260.3649614).
- Ford, L. R. (1956). [Network Flow Theory](http://www.rand.org/pubs/papers/P923.html) (Report). Santa Monica, CA: RAND Corporation. P-923.
- [Fredman, Michael Lawrence](https://en.wikipedia.org/wiki/Michael_Fredman "Michael Fredman"); [Tarjan, Robert E.](https://en.wikipedia.org/wiki/Robert_Tarjan "Robert Tarjan") (1984). *Fibonacci heaps and their uses in improved network optimization algorithms*. 25th Annual Symposium on Foundations of Computer Science. [IEEE](https://en.wikipedia.org/wiki/IEEE "IEEE"). pp. 338â346\. [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1109/SFCS.1984.715934](https://doi.org/10.1109%2FSFCS.1984.715934). [ISBN](https://en.wikipedia.org/wiki/ISBN_\(identifier\) "ISBN (identifier)")
[0-8186-0591-X](https://en.wikipedia.org/wiki/Special:BookSources/0-8186-0591-X "Special:BookSources/0-8186-0591-X")
.
- [Fredman, Michael Lawrence](https://en.wikipedia.org/wiki/Michael_Fredman "Michael Fredman"); [Tarjan, Robert E.](https://en.wikipedia.org/wiki/Robert_Tarjan "Robert Tarjan") (1987). ["Fibonacci heaps and their uses in improved network optimization algorithms"](https://doi.org/10.1145%2F28869.28874). *Journal of the Association for Computing Machinery*. **34** (3): 596â615\. [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1145/28869.28874](https://doi.org/10.1145%2F28869.28874). [S2CID](https://en.wikipedia.org/wiki/S2CID_\(identifier\) "S2CID (identifier)") [7904683](https://api.semanticscholar.org/CorpusID:7904683).
- [Gabow, H. N.](https://en.wikipedia.org/wiki/Harold_N._Gabow "Harold N. Gabow") (1983). ["Scaling algorithms for network problems"](http://www.eecs.umich.edu/~pettie/matching/Gabow-scaling-algorithms-for-network-problems.pdf) (PDF). *Proceedings of the 24th Annual Symposium on Foundations of Computer Science (FOCS 1983)*. pp. 248â258\. [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1109/SFCS.1983.68](https://doi.org/10.1109%2FSFCS.1983.68).
- [Gabow, Harold N.](https://en.wikipedia.org/wiki/Harold_N._Gabow "Harold N. Gabow") (1985). ["Scaling algorithms for network problems"](https://doi.org/10.1016%2F0022-0000%2885%2990039-X). *[Journal of Computer and System Sciences](https://en.wikipedia.org/wiki/Journal_of_Computer_and_System_Sciences "Journal of Computer and System Sciences")*. **31** (2): 148â168\. [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1016/0022-0000(85)90039-X](https://doi.org/10.1016%2F0022-0000%2885%2990039-X). [MR](https://en.wikipedia.org/wiki/MR_\(identifier\) "MR (identifier)") [0828519](https://mathscinet.ams.org/mathscinet-getitem?mr=0828519).
- Hagerup, Torben (2000). ["Improved Shortest Paths on the Word RAM"](http://dl.acm.org/citation.cfm?id=686343&CFID=563073233&CFTOKEN=28801665). In Montanari, Ugo; Rolim, JosĂ© D. P.; Welzl, Emo (eds.). *Proceedings of the 27th International Colloquium on Automata, Languages and Programming*. pp. 61â72\. [ISBN](https://en.wikipedia.org/wiki/ISBN_\(identifier\) "ISBN (identifier)")
[978-3-540-67715-4](https://en.wikipedia.org/wiki/Special:BookSources/978-3-540-67715-4 "Special:BookSources/978-3-540-67715-4")
.
- Henzinger, Monika R.; Klein, Philip; Rao, Satish; Subramanian, Sairam (1997). ["Faster Shortest-Path Algorithms for Planar Graphs"](https://doi.org/10.1006%2Fjcss.1997.1493). *Journal of Computer and System Sciences*. **55** (1): 3â23\. [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1006/jcss.1997.1493](https://doi.org/10.1006%2Fjcss.1997.1493).
- [Johnson, Donald B.](https://en.wikipedia.org/wiki/Donald_B._Johnson "Donald B. Johnson") (1977). ["Efficient algorithms for shortest paths in sparse networks"](https://doi.org/10.1145%2F321992.321993). *[Journal of the ACM](https://en.wikipedia.org/wiki/Journal_of_the_ACM "Journal of the ACM")*. **24** (1): 1â13\. [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1145/321992.321993](https://doi.org/10.1145%2F321992.321993). [S2CID](https://en.wikipedia.org/wiki/S2CID_\(identifier\) "S2CID (identifier)") [207678246](https://api.semanticscholar.org/CorpusID:207678246).
- [Johnson, Donald B.](https://en.wikipedia.org/wiki/Donald_B._Johnson "Donald B. Johnson") (December 1981). "A priority queue in which initialization and queue operations take *O*(log log *D*) time". *Mathematical Systems Theory*. **15** (1): 295â309\. [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1007/BF01786986](https://doi.org/10.1007%2FBF01786986). [MR](https://en.wikipedia.org/wiki/MR_\(identifier\) "MR (identifier)") [0683047](https://mathscinet.ams.org/mathscinet-getitem?mr=0683047). [S2CID](https://en.wikipedia.org/wiki/S2CID_\(identifier\) "S2CID (identifier)") [35703411](https://api.semanticscholar.org/CorpusID:35703411).
- Karlsson, Rolf G.; Poblete, Patricio V. (1983). ["An *O*(*m* log log *D*) algorithm for shortest paths"](https://doi.org/10.1016%2F0166-218X%2883%2990104-X). *[Discrete Applied Mathematics](https://en.wikipedia.org/wiki/Discrete_Applied_Mathematics "Discrete Applied Mathematics")*. **6** (1): 91â93\. [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1016/0166-218X(83)90104-X](https://doi.org/10.1016%2F0166-218X%2883%2990104-X). [MR](https://en.wikipedia.org/wiki/MR_\(identifier\) "MR (identifier)") [0700028](https://mathscinet.ams.org/mathscinet-getitem?mr=0700028).
- Leyzorek, M.; Gray, R. S.; Johnson, A. A.; Ladew, W. C.; Meaker, S. R. Jr.; Petry, R. M.; Seitz, R. N. (1957). *Investigation of Model Techniques â First Annual Report â 6 June 1956 â 1 July 1957 â A Study of Model Techniques for Communication Systems*. Cleveland, Ohio: Case Institute of Technology.
- [Moore, E. F.](https://en.wikipedia.org/wiki/Edward_F._Moore "Edward F. Moore") (1959). "The shortest path through a maze". *Proceedings of an International Symposium on the Theory of Switching (Cambridge, Massachusetts, 2â5 April 1957)*. Cambridge: Harvard University Press. pp. 285â292\.
- Pettie, Seth; Ramachandran, Vijaya (2002). ["Computing shortest paths with comparisons and additions"](https://archive.org/details/proceedingsofthi2002acms/page/267). *Proceedings of the Thirteenth Annual ACM-SIAM Symposium on Discrete Algorithms*. pp. [267â276](https://archive.org/details/proceedingsofthi2002acms/page/267). [ISBN](https://en.wikipedia.org/wiki/ISBN_\(identifier\) "ISBN (identifier)")
[978-0-89871-513-2](https://en.wikipedia.org/wiki/Special:BookSources/978-0-89871-513-2 "Special:BookSources/978-0-89871-513-2")
.
- Pettie, Seth (26 January 2004). ["A new approach to all-pairs shortest paths on real-weighted graphs"](https://doi.org/10.1016%2Fs0304-3975%2803%2900402-x). *Theoretical Computer Science*. **312** (1): 47â74\. [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1016/s0304-3975(03)00402-x](https://doi.org/10.1016%2Fs0304-3975%2803%2900402-x).
- Pollack, Maurice; Wiebenson, Walter (MarchâApril 1960). "Solution of the Shortest-Route ProblemâA Review". *Oper. Res*. **8** (2): 224â230\. [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1287/opre.8.2.224](https://doi.org/10.1287%2Fopre.8.2.224).
Attributes Dijkstra's algorithm to Minty ("private communication") on p. 225.
- Schrijver, Alexander (2004). *Combinatorial Optimization â Polyhedra and Efficiency*. Algorithms and Combinatorics. Vol. 24. Springer. vol.A, sect.7.5b, p. 103. [ISBN](https://en.wikipedia.org/wiki/ISBN_\(identifier\) "ISBN (identifier)")
[978-3-540-20456-5](https://en.wikipedia.org/wiki/Special:BookSources/978-3-540-20456-5 "Special:BookSources/978-3-540-20456-5")
.
- Shimbel, Alfonso (1953). "Structural parameters of communication networks". *Bulletin of Mathematical Biophysics*. **15** (4): 501â507\. [Bibcode](https://en.wikipedia.org/wiki/Bibcode_\(identifier\) "Bibcode (identifier)"):[1953BMaB...15..501S](https://ui.adsabs.harvard.edu/abs/1953BMaB...15..501S). [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1007/BF02476438](https://doi.org/10.1007%2FBF02476438).
- Shimbel, A. (1955). "Structure in communication nets". *Proceedings of the Symposium on Information Networks*. New York, NY: Polytechnic Press of the Polytechnic Institute of Brooklyn. pp. 199â203\.
- Thorup, Mikkel (1999). ["Undirected single-source shortest paths with positive integer weights in linear time"](https://doi.org/10.1145%2F316542.316548). *Journal of the ACM*. **46** (3): 362â394\. [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1145/316542.316548](https://doi.org/10.1145%2F316542.316548). [S2CID](https://en.wikipedia.org/wiki/S2CID_\(identifier\) "S2CID (identifier)") [207654795](https://api.semanticscholar.org/CorpusID:207654795).
- Thorup, Mikkel (2004). ["Integer priority queues with decrease key in constant time and the single source shortest paths problem"](https://doi.org/10.1016%2Fj.jcss.2004.04.003). *Journal of Computer and System Sciences*. **69** (3): 330â353\. [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1016/j.jcss.2004.04.003](https://doi.org/10.1016%2Fj.jcss.2004.04.003).
- Whiting, P. D.; Hillier, J. A. (MarchâJune 1960). "A Method for Finding the Shortest Route through a Road Network". *Operational Research Quarterly*. **11** (1/2): 37â40\. [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1057/jors.1960.32](https://doi.org/10.1057%2Fjors.1960.32).
- [Williams, Ryan](https://en.wikipedia.org/wiki/Ryan_Williams_\(computer_scientist\) "Ryan Williams (computer scientist)") (2014). "Faster all-pairs shortest paths via circuit complexity". *Proceedings of the 46th Annual ACM [Symposium on Theory of Computing](https://en.wikipedia.org/wiki/Symposium_on_Theory_of_Computing "Symposium on Theory of Computing") (STOC '14)*. New York: ACM. pp. 664â673\. [arXiv](https://en.wikipedia.org/wiki/ArXiv_\(identifier\) "ArXiv (identifier)"):[1312\.6680](https://arxiv.org/abs/1312.6680). [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1145/2591796.2591811](https://doi.org/10.1145%2F2591796.2591811). [MR](https://en.wikipedia.org/wiki/MR_\(identifier\) "MR (identifier)") [3238994](https://mathscinet.ams.org/mathscinet-getitem?mr=3238994).
## Further reading
\[[edit](https://en.wikipedia.org/w/index.php?title=Shortest_path_problem&action=edit§ion=29 "Edit section: Further reading")\]
- AltıntaĆ, Gökhan (2020). [*Exact Solutions of Shortest-Path Problems Based on Mechanical Analogies: In Connection with Labyrinths*](https://books.google.com/books?id=oSvHzQEACAAJ). Amazon Digital Services LLC. [ISBN](https://en.wikipedia.org/wiki/ISBN_\(identifier\) "ISBN (identifier)")
[9798655831896](https://en.wikipedia.org/wiki/Special:BookSources/9798655831896 "Special:BookSources/9798655831896")
.
- Frigioni, D.; Marchetti-Spaccamela, A.; Nanni, U. (1998). "Fully dynamic output bounded single source shortest path problem". *Proc. 7th Annu. ACM-SIAM Symp. Discrete Algorithms*. Atlanta, GA. pp. 212â221\. [CiteSeerX](https://en.wikipedia.org/wiki/CiteSeerX_\(identifier\) "CiteSeerX (identifier)") [10\.1.1.32.9856](https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.32.9856).
- Dreyfus, S. E. (October 1967). [An Appraisal of Some Shortest Path Algorithms](http://apps.dtic.mil/dtic/tr/fulltext/u2/661265.pdf) (PDF) (Report). Project Rand. United States Air Force. RM-5433-PR. [Archived](https://web.archive.org/web/20151117014431/http://www.dtic.mil/dtic/tr/fulltext/u2/661265.pdf) (PDF) from the original on November 17, 2015.
DTIC AD-661265.
| [v](https://en.wikipedia.org/wiki/Template:Graph_traversal_algorithms "Template:Graph traversal algorithms") [t](https://en.wikipedia.org/wiki/Template_talk:Graph_traversal_algorithms "Template talk:Graph traversal algorithms") [e](https://en.wikipedia.org/wiki/Special:EditPage/Template:Graph_traversal_algorithms "Special:EditPage/Template:Graph traversal algorithms")[Graph](https://en.wikipedia.org/wiki/Graph_traversal "Graph traversal") and [tree](https://en.wikipedia.org/wiki/Tree_traversal "Tree traversal") traversal algorithms | |
|---|---|
| [Search](https://en.wikipedia.org/wiki/Graph_traversal "Graph traversal") | [αâÎČ pruning](https://en.wikipedia.org/wiki/Alpha%E2%80%93beta_pruning "Alphaâbeta pruning") [**A\***](https://en.wikipedia.org/wiki/A*_search_algorithm "A* search algorithm") [IDA\*](https://en.wikipedia.org/wiki/Iterative_deepening_A* "Iterative deepening A*") [LPA\*](https://en.wikipedia.org/wiki/Lifelong_Planning_A* "Lifelong Planning A*") [SMA\*](https://en.wikipedia.org/wiki/SMA* "SMA*") [Best-first search](https://en.wikipedia.org/wiki/Best-first_search "Best-first search") [Beam search](https://en.wikipedia.org/wiki/Beam_search "Beam search") [Bidirectional search](https://en.wikipedia.org/wiki/Bidirectional_search "Bidirectional search") [Breadth-first search](https://en.wikipedia.org/wiki/Breadth-first_search "Breadth-first search") [Lexicographic](https://en.wikipedia.org/wiki/Lexicographic_breadth-first_search "Lexicographic breadth-first search") [Parallel](https://en.wikipedia.org/wiki/Parallel_breadth-first_search "Parallel breadth-first search") [B\*](https://en.wikipedia.org/wiki/B* "B*") [Depth-first search](https://en.wikipedia.org/wiki/Depth-first_search "Depth-first search") [Iterative deepening](https://en.wikipedia.org/wiki/Iterative_deepening_depth-first_search "Iterative deepening depth-first search") [D\*](https://en.wikipedia.org/wiki/D* "D*") [Fringe search](https://en.wikipedia.org/wiki/Fringe_search "Fringe search") [Jump point search](https://en.wikipedia.org/wiki/Jump_point_search "Jump point search") [Monte Carlo tree search](https://en.wikipedia.org/wiki/Monte_Carlo_tree_search "Monte Carlo tree search") [SSS\*](https://en.wikipedia.org/wiki/SSS* "SSS*") |
| [Shortest path]() | [BellmanâFord](https://en.wikipedia.org/wiki/Bellman%E2%80%93Ford_algorithm "BellmanâFord algorithm") [Dijkstra's](https://en.wikipedia.org/wiki/Dijkstra%27s_algorithm "Dijkstra's algorithm") [FloydâWarshall](https://en.wikipedia.org/wiki/Floyd%E2%80%93Warshall_algorithm "FloydâWarshall algorithm") [Johnson's](https://en.wikipedia.org/wiki/Johnson%27s_algorithm "Johnson's algorithm") [Shortest path faster](https://en.wikipedia.org/wiki/Shortest_path_faster_algorithm "Shortest path faster algorithm") [Yen's](https://en.wikipedia.org/wiki/Yen%27s_algorithm "Yen's algorithm") |
| [Minimum spanning tree](https://en.wikipedia.org/wiki/Minimum_spanning_tree "Minimum spanning tree") | [BorĆŻvka's](https://en.wikipedia.org/wiki/Bor%C5%AFvka%27s_algorithm "BorĆŻvka's algorithm") [Kruskal's](https://en.wikipedia.org/wiki/Kruskal%27s_algorithm "Kruskal's algorithm") [Prim's](https://en.wikipedia.org/wiki/Prim%27s_algorithm "Prim's algorithm") [Reverse-delete](https://en.wikipedia.org/wiki/Reverse-delete_algorithm "Reverse-delete algorithm") |
| [List of graph search algorithms](https://en.wikipedia.org/wiki/List_of_algorithms#Graph_search "List of algorithms") | |
| [Authority control databases](https://en.wikipedia.org/wiki/Help:Authority_control "Help:Authority control") [](https://www.wikidata.org/wiki/Q1058754#identifiers "Edit this at Wikidata") | |
|---|---|
| International | [GND](https://d-nb.info/gnd/4138403-9) |
| Other | [Yale LUX](https://lux.collections.yale.edu/view/concept/20f81b3b-453f-47f4-87ba-7b252da0431f) |

Retrieved from "<https://en.wikipedia.org/w/index.php?title=Shortest_path_problem&oldid=1343777190>"
[Categories](https://en.wikipedia.org/wiki/Help:Category "Help:Category"):
- [Network theory](https://en.wikipedia.org/wiki/Category:Network_theory "Category:Network theory")
- [Graph distance](https://en.wikipedia.org/wiki/Category:Graph_distance "Category:Graph distance")
- [Polynomial-time problems](https://en.wikipedia.org/wiki/Category:Polynomial-time_problems "Category:Polynomial-time problems")
- [Computational problems in graph theory](https://en.wikipedia.org/wiki/Category:Computational_problems_in_graph_theory "Category:Computational problems in graph theory")
- [Edsger W. Dijkstra](https://en.wikipedia.org/wiki/Category:Edsger_W._Dijkstra "Category:Edsger W. Dijkstra")
Hidden categories:
- [Articles with short description](https://en.wikipedia.org/wiki/Category:Articles_with_short_description "Category:Articles with short description")
- [Short description is different from Wikidata](https://en.wikipedia.org/wiki/Category:Short_description_is_different_from_Wikidata "Category:Short description is different from Wikidata")
- [Articles lacking in-text citations from June 2009](https://en.wikipedia.org/wiki/Category:Articles_lacking_in-text_citations_from_June_2009 "Category:Articles lacking in-text citations from June 2009")
- [All articles lacking in-text citations](https://en.wikipedia.org/wiki/Category:All_articles_lacking_in-text_citations "Category:All articles lacking in-text citations")
- [Wikipedia articles in need of updating from March 2026](https://en.wikipedia.org/wiki/Category:Wikipedia_articles_in_need_of_updating_from_March_2026 "Category:Wikipedia articles in need of updating from March 2026")
- [All Wikipedia articles in need of updating](https://en.wikipedia.org/wiki/Category:All_Wikipedia_articles_in_need_of_updating "Category:All Wikipedia articles in need of updating")
- [Articles with multiple maintenance issues](https://en.wikipedia.org/wiki/Category:Articles_with_multiple_maintenance_issues "Category:Articles with multiple maintenance issues")
- [Incomplete lists from February 2011](https://en.wikipedia.org/wiki/Category:Incomplete_lists_from_February_2011 "Category:Incomplete lists from February 2011")
- [Incomplete lists from December 2012](https://en.wikipedia.org/wiki/Category:Incomplete_lists_from_December_2012 "Category:Incomplete lists from December 2012")
- [Articles needing additional references from December 2015](https://en.wikipedia.org/wiki/Category:Articles_needing_additional_references_from_December_2015 "Category:Articles needing additional references from December 2015")
- [All articles needing additional references](https://en.wikipedia.org/wiki/Category:All_articles_needing_additional_references "Category:All articles needing additional references")
- [Articles to be expanded from August 2014](https://en.wikipedia.org/wiki/Category:Articles_to_be_expanded_from_August_2014 "Category:Articles to be expanded from August 2014")
- [All articles to be expanded](https://en.wikipedia.org/wiki/Category:All_articles_to_be_expanded "Category:All articles to be expanded")
- [Pages displaying short descriptions of redirect targets via Module:Annotated link](https://en.wikipedia.org/wiki/Category:Pages_displaying_short_descriptions_of_redirect_targets_via_Module:Annotated_link "Category:Pages displaying short descriptions of redirect targets via Module:Annotated link")
- This page was last edited on 16 March 2026, at 09:00 (UTC).
- Text is available under the [Creative Commons Attribution-ShareAlike 4.0 License](https://en.wikipedia.org/wiki/Wikipedia:Text_of_the_Creative_Commons_Attribution-ShareAlike_4.0_International_License "Wikipedia:Text of the Creative Commons Attribution-ShareAlike 4.0 International License"); additional terms may apply. By using this site, you agree to the [Terms of Use](https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Terms_of_Use "foundation:Special:MyLanguage/Policy:Terms of Use") and [Privacy Policy](https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy "foundation:Special:MyLanguage/Policy:Privacy policy"). WikipediaÂź is a registered trademark of the [Wikimedia Foundation, Inc.](https://wikimediafoundation.org/), a non-profit organization.
- [Privacy policy](https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy)
- [About Wikipedia](https://en.wikipedia.org/wiki/Wikipedia:About)
- [Disclaimers](https://en.wikipedia.org/wiki/Wikipedia:General_disclaimer)
- [Contact Wikipedia](https://en.wikipedia.org/wiki/Wikipedia:Contact_us)
- [Legal & safety contacts](https://foundation.wikimedia.org/wiki/Special:MyLanguage/Legal:Wikimedia_Foundation_Legal_and_Safety_Contact_Information)
- [Code of Conduct](https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Universal_Code_of_Conduct)
- [Developers](https://developer.wikimedia.org/)
- [Statistics](https://stats.wikimedia.org/#/en.wikipedia.org)
- [Cookie statement](https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Cookie_statement)
- [Mobile view](https://en.wikipedia.org/w/index.php?title=Shortest_path_problem&mobileaction=toggle_view_mobile)
- [](https://www.wikimedia.org/)
- [](https://www.mediawiki.org/)
Search
Toggle the table of contents
Shortest path problem
23 languages
[Add topic](https://en.wikipedia.org/wiki/Shortest_path_problem) |
| Readable Markdown | From Wikipedia, the free encyclopedia
[](https://en.wikipedia.org/wiki/File:Shortest_path_with_direct_weights.svg)
Shortest path (A, C, E, D, F), blue, between vertices A and F in the weighted directed graph
In [graph theory](https://en.wikipedia.org/wiki/Graph_theory "Graph theory"), the **shortest path problem** is the problem of finding a [path](https://en.wikipedia.org/wiki/Path_\(graph_theory\) "Path (graph theory)") between two [vertices](https://en.wikipedia.org/wiki/Vertex_\(graph_theory\) "Vertex (graph theory)") (or nodes) in a [graph](https://en.wikipedia.org/wiki/Graph_\(discrete_mathematics\) "Graph (discrete mathematics)") such that the sum of the [weights](https://en.wikipedia.org/wiki/Glossary_of_graph_theory_terms#weighted_graph "Glossary of graph theory terms") of its constituent edges is minimized.[\[1\]](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_note-1)
The problem of finding the shortest path between two intersections on a road map may be modeled as a special case of the shortest path problem in graphs, where the vertices correspond to intersections and the edges correspond to road segments, each weighted by the length or distance of each segment.[\[2\]](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_note-2)
The shortest path problem can be defined for [graphs](https://en.wikipedia.org/wiki/Graph_\(discrete_mathematics\) "Graph (discrete mathematics)") whether [undirected](https://en.wikipedia.org/wiki/Graph_\(discrete_mathematics\)#Undirected_graph "Graph (discrete mathematics)"), [directed](https://en.wikipedia.org/wiki/Graph_\(discrete_mathematics\)#Directed_graph "Graph (discrete mathematics)"), or [mixed](https://en.wikipedia.org/wiki/Mixed_graph "Mixed graph"). The definition for undirected graphs states that every edge can be traversed in either direction. Directed graphs require that consecutive vertices be connected by an appropriate directed edge.[\[3\]](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_note-3)
Two vertices are adjacent when they are both incident to a common edge. A [path](https://en.wikipedia.org/wiki/Path_\(graph_theory\) "Path (graph theory)") in an undirected graph is a [sequence](https://en.wikipedia.org/wiki/Sequence "Sequence") of vertices  such that  is adjacent to  for . Such a path  is called a path of length  from  to . (The  are variables; their numbering relates to their position in the sequence and need not relate to a canonical labeling.)
Let  where  is the edge incident to both  and . Given a [real-valued](https://en.wikipedia.org/wiki/Function_\(mathematics\)#Real_function "Function (mathematics)") weight function , and an undirected (simple) graph , the shortest path from  to  is the path  (where  and ) that over all possible  minimizes the sum  When each edge in the graph has unit weight or , this is equivalent to finding the path with fewest edges.
The problem is also sometimes called the **single-pair shortest path problem**, to distinguish it from the following variations:
- The **single-source shortest path problem**, in which we have to find shortest paths from a source vertex *v* to all other vertices in the graph.
- The **single-destination shortest path problem**, in which we have to find shortest paths from all vertices in the directed graph to a single destination vertex *v*. This can be reduced to the single-source shortest path problem by reversing the arcs in the directed graph.
- The **all-pairs shortest path problem**, in which we have to find shortest paths between every pair of vertices *v*, *v'* in the graph.
These generalizations have significantly more efficient algorithms than the simplistic approach of running a single-pair shortest path algorithm on all relevant pairs of vertices.
Several well-known algorithms exist for solving this problem and its variants.
- [Dijkstra's algorithm](https://en.wikipedia.org/wiki/Dijkstra%27s_algorithm "Dijkstra's algorithm") solves the single-source shortest path problem with only non-negative edge weights.
- [BellmanâFord algorithm](https://en.wikipedia.org/wiki/Bellman%E2%80%93Ford_algorithm "BellmanâFord algorithm") solves the single-source problem if edge weights may be negative.
- [A\* search algorithm](https://en.wikipedia.org/wiki/A*_search_algorithm "A* search algorithm") solves for single-pair shortest path using heuristics to try to speed up the search.
- [FloydâWarshall algorithm](https://en.wikipedia.org/wiki/Floyd%E2%80%93Warshall_algorithm "FloydâWarshall algorithm") solves all pairs shortest paths.
- [Johnson's algorithm](https://en.wikipedia.org/wiki/Johnson%27s_algorithm "Johnson's algorithm") solves all pairs shortest paths, and may be faster than FloydâWarshall on [sparse graphs](https://en.wikipedia.org/wiki/Sparse_graph "Sparse graph").
- [Viterbi algorithm](https://en.wikipedia.org/wiki/Viterbi_algorithm "Viterbi algorithm") solves the shortest stochastic path problem with an additional probabilistic weight on each node.
Additional algorithms and associated evaluations may be found in [Cherkassky, Goldberg & Radzik (1996)](https://en.wikipedia.org/wiki/Shortest_path_problem#CITEREFCherkasskyGoldbergRadzik1996).
## Single-source shortest paths
\[[edit](https://en.wikipedia.org/w/index.php?title=Shortest_path_problem&action=edit§ion=3 "Edit section: Single-source shortest paths")\]
| Weights | [Time complexity](https://en.wikipedia.org/wiki/Time_complexity "Time complexity") | Author |
|---|---|---|
| \+ | | |
| Algorithm | Time complexity | Author |
|---|---|---|
| [Breadth-first search](https://en.wikipedia.org/wiki/Breadth-first_search "Breadth-first search") | *O*(*E* + *V*) | |
### Directed acyclic graphs
\[[edit](https://en.wikipedia.org/w/index.php?title=Shortest_path_problem&action=edit§ion=6 "Edit section: Directed acyclic graphs")\]
An algorithm using [topological sorting](https://en.wikipedia.org/wiki/Topological_sorting#Application_to_shortest_path_finding "Topological sorting") can solve the single-source shortest path problem in time Î(*E* + *V*) in arbitrarily-weighted directed acyclic graphs.[\[4\]](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_note-4)
### Directed graphs with nonnegative weights
\[[edit](https://en.wikipedia.org/w/index.php?title=Shortest_path_problem&action=edit§ion=7 "Edit section: Directed graphs with nonnegative weights")\]
The following table is taken from [Schrijver (2004)](https://en.wikipedia.org/wiki/Shortest_path_problem#CITEREFSchrijver2004), with some corrections and additions. A green background indicates an asymptotically best bound in the table; *L* is the maximum length (or weight) among all edges, assuming integer edge weights.
| Weights | Algorithm | Time complexity | Author |
|---|---|---|---|
|  | | | |
### Directed graphs with arbitrary weights without negative cycles
\[[edit](https://en.wikipedia.org/w/index.php?title=Shortest_path_problem&action=edit§ion=8 "Edit section: Directed graphs with arbitrary weights without negative cycles")\]
| Weights | Algorithm | Time complexity | Author |
|---|---|---|---|
|  | | | |
### Directed graphs with arbitrary weights with negative cycles
\[[edit](https://en.wikipedia.org/w/index.php?title=Shortest_path_problem&action=edit§ion=9 "Edit section: Directed graphs with arbitrary weights with negative cycles")\]
Finds a negative cycle or calculates distances to all vertices.
| Weights | Algorithm | Time complexity | Author |
|---|---|---|---|
|  | | | |
### Planar graphs with nonnegative weights
\[[edit](https://en.wikipedia.org/w/index.php?title=Shortest_path_problem&action=edit§ion=10 "Edit section: Planar graphs with nonnegative weights")\]
| Weights | Algorithm | Time complexity | Author |
|---|---|---|---|
|  | | | |
**Network flows**[\[8\]](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_note-8) are a fundamental concept in graph theory and operations research, often used to model problems involving the transportation of goods, liquids, or information through a network. A network flow problem typically involves a directed graph where each edge represents a pipe, wire, or road, and each edge has a capacity, which is the maximum amount that can flow through it. The goal is to find a feasible flow that maximizes the flow from a source node to a sink node.
**Shortest Path Problems** can be used to solve certain network flow problems, particularly when dealing with single-source, single-sink networks. In these scenarios, we can transform the network flow problem into a series of shortest path problems.
### Transformation Steps
\[[edit](https://en.wikipedia.org/w/index.php?title=Shortest_path_problem&action=edit§ion=12 "Edit section: Transformation Steps")\]
[\[9\]](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_note-9)
1. **Create a Residual Graph:**
- For each edge (u, v) in the original graph, create two edges in the residual graph:
- (u, v) with capacity c(u, v)
- (v, u) with capacity 0
- The residual graph represents the remaining capacity available in the network.
2. **Find the Shortest Path:**
- Use a shortest path algorithm (e.g., Dijkstra's algorithm, Bellman-Ford algorithm) to find the shortest path from the source node to the sink node in the residual graph.
3. **Augment the Flow:**
- Find the minimum capacity along the shortest path.
- Increase the flow on the edges of the shortest path by this minimum capacity.
- Decrease the capacity of the edges in the forward direction and increase the capacity of the edges in the backward direction.
4. **Update the Residual Graph:**
- Update the residual graph based on the augmented flow.
5. **Repeat:**
- Repeat steps 2-4 until no more paths can be found from the source to the sink.
## All-pairs shortest paths
\[[edit](https://en.wikipedia.org/w/index.php?title=Shortest_path_problem&action=edit§ion=13 "Edit section: All-pairs shortest paths")\]
The all-pairs shortest path problem finds the shortest paths between every pair of vertices v, v' in the graph. The all-pairs shortest paths problem for unweighted directed graphs was introduced by [Shimbel (1953)](https://en.wikipedia.org/wiki/Shortest_path_problem#CITEREFShimbel1953), who observed that it could be solved by a linear number of matrix multiplications that takes a total time of *O*(*V*4).
| Weights | Time complexity | Algorithm |
|---|---|---|
| \+ | | |
| Weights | Time complexity | Algorithm |
|---|---|---|
|  (no negative cycles) | | |
Shortest path algorithms are applied to automatically find directions between physical locations, such as driving directions on [web mapping](https://en.wikipedia.org/wiki/Web_mapping "Web mapping") websites like [MapQuest](https://en.wikipedia.org/wiki/MapQuest "MapQuest") or [Google Maps](https://en.wikipedia.org/wiki/Google_Maps "Google Maps"). For this application fast specialized algorithms are available.[\[12\]](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_note-12)
If one represents a nondeterministic [abstract machine](https://en.wikipedia.org/wiki/Abstract_machine "Abstract machine") as a graph where vertices describe states and edges describe possible transitions, shortest path algorithms can be used to find an optimal sequence of choices to reach a certain goal state, or to establish lower bounds on the time needed to reach a given state. For example, if vertices represent the states of a puzzle like a [Rubik's Cube](https://en.wikipedia.org/wiki/Rubik%27s_Cube "Rubik's Cube") and each directed edge corresponds to a single move or turn, shortest path algorithms can be used to find a solution that uses the minimum possible number of moves.
In a [networking](https://en.wikipedia.org/wiki/Computer_network "Computer network") or [telecommunications](https://en.wikipedia.org/wiki/Telecommunications_network "Telecommunications network") mindset, this shortest path problem is sometimes called the min-delay path problem and usually tied with a [widest path problem](https://en.wikipedia.org/wiki/Widest_path_problem "Widest path problem"). For example, the algorithm may seek the shortest (min-delay) widest path, or widest shortest (min-delay) path.[\[13\]](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_note-13)
A more lighthearted application is the games of "[six degrees of separation](https://en.wikipedia.org/wiki/Six_degrees_of_separation "Six degrees of separation")" that try to find the shortest path in graphs like movie stars appearing in the same film.
Other applications, often studied in [operations research](https://en.wikipedia.org/wiki/Operations_research "Operations research"), include plant and facility layout, [robotics](https://en.wikipedia.org/wiki/Robotics "Robotics"), [transportation](https://en.wikipedia.org/wiki/Transportation "Transportation"), and [VLSI](https://en.wikipedia.org/wiki/Very-large-scale_integration "Very-large-scale integration") design.[\[14\]](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_note-14)
A road network can be considered as a graph with positive weights. The nodes represent road junctions and each edge of the graph is associated with a road segment between two junctions. The weight of an edge may correspond to the length of the associated road segment, the time needed to traverse the segment, or the cost of traversing the segment. Using directed edges it is also possible to model one-way streets. Such graphs are special in the sense that some edges are more important than others for long-distance travel (e.g. highways). This property has been formalized using the notion of highway dimension.[\[15\]](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_note-15) There are a great number of algorithms that exploit this property and are therefore able to compute the shortest path a lot quicker than would be possible on general graphs.
All of these algorithms work in two phases. In the first phase, the graph is preprocessed without knowing the source or target node. The second phase is the query phase. In this phase, source and target node are known. The idea is that the road network is static, so the preprocessing phase can be done once and used for a large number of queries on the same road network.
The algorithm with the fastest known query time is called hub labeling and is able to compute shortest path on the road networks of Europe or the US in a fraction of a microsecond.[\[16\]](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_note-16) Other techniques that have been used are:
- ALT ([A\* search](https://en.wikipedia.org/wiki/A*_search "A* search"), landmarks, and [triangle inequality](https://en.wikipedia.org/wiki/Triangle_inequality "Triangle inequality"))
- Arc flags
- [Contraction hierarchies](https://en.wikipedia.org/wiki/Contraction_hierarchies "Contraction hierarchies")
- [Transit node routing](https://en.wikipedia.org/wiki/Transit_node_routing "Transit node routing")
- Reach-based pruning
- Labeling
- [Hub labels](https://en.wikipedia.org/wiki/Hub_labels "Hub labels")
For shortest path problems in [computational geometry](https://en.wikipedia.org/wiki/Computational_geometry "Computational geometry"), see [Euclidean shortest path](https://en.wikipedia.org/wiki/Euclidean_shortest_path "Euclidean shortest path").
The shortest multiple disconnected path [\[17\]](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_note-17) is a representation of the primitive path network within the framework of [Reptation theory](https://en.wikipedia.org/wiki/Reptation_theory "Reptation theory"). The [widest path problem](https://en.wikipedia.org/wiki/Widest_path_problem "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
\[[edit](https://en.wikipedia.org/w/index.php?title=Shortest_path_problem&action=edit§ion=19 "Edit section: 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](https://en.wikipedia.org/wiki/Constrained_Shortest_Path_First "Constrained Shortest Path First"), and are harder to solve. One example is the constrained shortest path problem,[\[18\]](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_note-18) 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](https://en.wikipedia.org/wiki/NP-complete "NP-complete") (such problems are not believed to be efficiently solvable for large sets of data, see [P = NP problem](https://en.wikipedia.org/wiki/P_%3D_NP_problem "P = NP problem")). Another [NP-complete](https://en.wikipedia.org/wiki/NP-complete "NP-complete") example requires a specific set of vertices to be included in the path,[\[19\]](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_note-19) which makes the problem similar to the [Traveling Salesman Problem](https://en.wikipedia.org/wiki/Traveling_Salesman_Problem "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](https://en.wikipedia.org/wiki/Longest_path_problem "Longest path problem") in a graph is also NP-complete.
### Partial observability
\[[edit](https://en.wikipedia.org/w/index.php?title=Shortest_path_problem&action=edit§ion=20 "Edit section: Partial observability")\]
The [Canadian traveller problem](https://en.wikipedia.org/wiki/Canadian_traveller_problem "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.[\[20\]](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_note-20)[\[21\]](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_note-21)
### Strategic shortest paths
\[[edit](https://en.wikipedia.org/w/index.php?title=Shortest_path_problem&action=edit§ion=21 "Edit section: 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](https://en.wikipedia.org/wiki/Vickrey%E2%80%93Clarke%E2%80%93Groves_mechanism#quickest_paths "VickreyâClarkeâGroves mechanism"), which gives the computers an incentive to reveal their true weights.
### Negative cycle detection
\[[edit](https://en.wikipedia.org/w/index.php?title=Shortest_path_problem&action=edit§ion=22 "Edit section: 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](https://en.wikipedia.org/wiki/Bellman%E2%80%93Ford_algorithm "BellmanâFord algorithm") can be used to detect a negative cycle in time .
- Cherkassky and Goldberg[\[22\]](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_note-22) survey several other algorithms for negative cycle detection.
## General algebraic framework on semirings: the algebraic path problem
\[[edit](https://en.wikipedia.org/w/index.php?title=Shortest_path_problem&action=edit§ion=23 "Edit section: General algebraic framework on semirings: the algebraic path problem")\]
Many problems can be framed as a form of the shortest path for some suitably substituted notions of addition along a path and taking the minimum. The general approach to these is to consider the two operations to be those of a [semiring](https://en.wikipedia.org/wiki/Semiring "Semiring"). Semiring multiplication is done along the path, and the addition is between paths. This general framework is known as the [algebraic path problem](https://en.wikipedia.org/wiki/Algebraic_path_problem "Algebraic path problem").[\[23\]](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_note-Pair1966-23)[\[24\]](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_note-24)[\[25\]](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_note-BarasTheodorakopoulos2010-25)
Most of the classic shortest-path algorithms (and new ones) can be formulated as solving linear systems over such algebraic structures.[\[26\]](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_note-GondranMinoux2008-26)
More recently, an even more general framework for solving these (and much less obviously related problems) has been developed under the banner of [valuation algebras](https://en.wikipedia.org/wiki/Valuation_algebra "Valuation algebra").[\[27\]](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_note-PoulyKohlas2012-27)
## Shortest path in stochastic time-dependent networks
\[[edit](https://en.wikipedia.org/w/index.php?title=Shortest_path_problem&action=edit§ion=24 "Edit section: Shortest path in stochastic time-dependent networks")\]
In real-life, a transportation network is usually stochastic and time-dependent. The travel duration on a road segment depends on many factors such as the amount of traffic (origin-destination matrix), road work, weather, accidents and vehicle breakdowns. A more realistic model of such a road network is a stochastic time-dependent (STD) network.[\[28\]](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_note-28)[\[29\]](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_note-29)
There is no accepted definition of optimal path under uncertainty (that is, in stochastic road networks). It is a controversial subject, despite considerable progress during the past decade. One common definition is a path with the minimum expected travel time. The main advantage of this approach is that it can make use of efficient shortest path algorithms for deterministic networks. However, the resulting optimal path may not be reliable, because this approach fails to address travel time variability.
To tackle this issue, some researchers use travel duration distribution instead of its expected value. So, they find the probability distribution of total travel duration using different optimization methods such as [dynamic programming](https://en.wikipedia.org/wiki/Dynamic_programming "Dynamic programming") and [Dijkstra's algorithm](https://en.wikipedia.org/wiki/Dijkstra%27s_algorithm "Dijkstra's algorithm") .[\[30\]](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_note-30) These methods use [stochastic optimization](https://en.wikipedia.org/wiki/Stochastic_optimization "Stochastic optimization"), specifically stochastic dynamic programming to find the shortest path in networks with probabilistic arc length.[\[31\]](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_note-31) The terms *travel time reliability* and *travel time variability* are used as opposites in the transportation research literature: the higher the variability, the lower the reliability of predictions.
To account for variability, researchers have suggested two alternative definitions for an optimal path under uncertainty. The *most reliable path* is one that maximizes the probability of arriving on time given a travel time budget. An *α-reliable path* is one that minimizes the travel time budget required to arrive on time with a given probability.
- [Bidirectional search](https://en.wikipedia.org/wiki/Bidirectional_search "Bidirectional search") â An algorithm that finds the shortest path between two vertices on a directed graph
- [Euclidean shortest path](https://en.wikipedia.org/wiki/Euclidean_shortest_path "Euclidean shortest path") â Problem of computing shortest paths around geometric obstacles
- [Flow network](https://en.wikipedia.org/wiki/Flow_network "Flow network") â Directed graph where edges have a capacity
- [K shortest path routing](https://en.wikipedia.org/wiki/K_shortest_path_routing "K shortest path routing") â Computational problem of graph theory
- [Min-plus matrix multiplication](https://en.wikipedia.org/wiki/Min-plus_matrix_multiplication "Min-plus matrix multiplication") â Mathematical operation on matrices
- [Pathfinding](https://en.wikipedia.org/wiki/Pathfinding "Pathfinding") â Plotting by a computer application
- [Shortest Path Bridging](https://en.wikipedia.org/wiki/Shortest_Path_Bridging "Shortest Path Bridging")
- [Shortest path tree](https://en.wikipedia.org/wiki/Shortest_path_tree "Shortest path tree") â Type of spanning tree
- [TRILL](https://en.wikipedia.org/wiki/TRILL "TRILL") (TRansparent Interconnection of Lots of Links)
1. **[^](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_ref-1)**
Ortega-Arranz, Hector; Llanos, Diego R.; Gonzalez-Escribano, Arturo (2015). [*The Shortest-Path Problem*](https://link.springer.com/book/10.1007/978-3-031-02574-7). Synthesis Lectures on Theoretical Computer Science. Cham: Springer. [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1007/978-3-031-02574-7](https://doi.org/10.1007%2F978-3-031-02574-7). [ISBN](https://en.wikipedia.org/wiki/ISBN_\(identifier\) "ISBN (identifier)")
[978-3-031-01446-8](https://en.wikipedia.org/wiki/Special:BookSources/978-3-031-01446-8 "Special:BookSources/978-3-031-01446-8")
.
2. **[^](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_ref-2)**
Guenin, Bertrand (2014). *Gentle Introduction to Optimization*. Jochen Koenemann, Levent Tunçel (1st ed.). West Nyack: Cambridge University Press. p. 27. [ISBN](https://en.wikipedia.org/wiki/ISBN_\(identifier\) "ISBN (identifier)")
[978-1-107-05344-1](https://en.wikipedia.org/wiki/Special:BookSources/978-1-107-05344-1 "Special:BookSources/978-1-107-05344-1")
.
3. **[^](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_ref-3)**
Deo, Narsingh (17 August 2016). [*Graph Theory with Applications to Engineering and Computer Science*](https://books.google.com/books?id=uk1KDAAAQBAJ). Courier Dover Publications. [ISBN](https://en.wikipedia.org/wiki/ISBN_\(identifier\) "ISBN (identifier)")
[978-0-486-80793-5](https://en.wikipedia.org/wiki/Special:BookSources/978-0-486-80793-5 "Special:BookSources/978-0-486-80793-5")
.
4. **[^](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_ref-4)** [Cormen et al. 2001](https://en.wikipedia.org/wiki/Shortest_path_problem#CITEREFCormenLeisersonRivestStein2001), p. 655
5. **[^](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_ref-5)**
DĂŒrr, Christoph; Heiligman, Mark; HĂžyer, Peter; Mhalla, Mehdi (January 2006). "Quantum query complexity of some graph problems". *SIAM Journal on Computing*. **35** (6): 1310â1328\. [arXiv](https://en.wikipedia.org/wiki/ArXiv_\(identifier\) "ArXiv (identifier)"):[quant-ph/0401091](https://arxiv.org/abs/quant-ph/0401091). [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1137/050644719](https://doi.org/10.1137%2F050644719). [ISSN](https://en.wikipedia.org/wiki/ISSN_\(identifier\) "ISSN (identifier)") [0097-5397](https://search.worldcat.org/issn/0097-5397). [S2CID](https://en.wikipedia.org/wiki/S2CID_\(identifier\) "S2CID (identifier)") [14253494](https://api.semanticscholar.org/CorpusID:14253494).
6. **[^](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_ref-6)**
Brubaker, Ben (2025-08-06). ["New Method Is the Fastest Way To Find the Best Routes"](https://www.quantamagazine.org/new-method-is-the-fastest-way-to-find-the-best-routes-20250806/). *Quanta Magazine*. Retrieved 2025-08-11.
7. ^ [***a***](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_ref-dial69_7-0) [***b***](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_ref-dial69_7-1)
Dial, Robert B. (1969). ["Algorithm 360: Shortest-Path Forest with Topological Ordering \[H\]"](https://doi.org/10.1145%2F363269.363610). *Communications of the ACM*. **12** (11): 632â633\. [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1145/363269.363610](https://doi.org/10.1145%2F363269.363610). [S2CID](https://en.wikipedia.org/wiki/S2CID_\(identifier\) "S2CID (identifier)") [6754003](https://api.semanticscholar.org/CorpusID:6754003).
8. **[^](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_ref-8)**
Cormen, Thomas H. (July 31, 2009). *Introduction to Algorithms* (3rd ed.). MIT Press. [ISBN](https://en.wikipedia.org/wiki/ISBN_\(identifier\) "ISBN (identifier)")
[9780262533058](https://en.wikipedia.org/wiki/Special:BookSources/9780262533058 "Special:BookSources/9780262533058")
.
9. **[^](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_ref-9)**
Kleinberg, Jon; Tardos, Ăva (2005). [*Algorithm Design*](https://www.nytimes.com/2009/08/06/technology/06stats.html?_r=2&scp=1&sq=statistics&st=nyt) (1st ed.). Addison-Wesley. [ISBN](https://en.wikipedia.org/wiki/ISBN_\(identifier\) "ISBN (identifier)")
[978-0321295354](https://en.wikipedia.org/wiki/Special:BookSources/978-0321295354 "Special:BookSources/978-0321295354")
.
10. **[^](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_ref-10)**
DĂŒrr, C.; HĂžyer, P. (1996-07-18). "A Quantum Algorithm for Finding the Minimum". [arXiv](https://en.wikipedia.org/wiki/ArXiv_\(identifier\) "ArXiv (identifier)"):[quant-ph/9607014](https://arxiv.org/abs/quant-ph/9607014).
11. **[^](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_ref-11)**
Nayebi, Aran; Williams, V. V. (2014-10-22). "Quantum algorithms for shortest paths problems in structured instances". [arXiv](https://en.wikipedia.org/wiki/ArXiv_\(identifier\) "ArXiv (identifier)"):[1410\.6220](https://arxiv.org/abs/1410.6220) \[[quant-ph](https://arxiv.org/archive/quant-ph)\].
12. **[^](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_ref-12)**
[Sanders, Peter](https://en.wikipedia.org/wiki/Peter_Sanders_\(computer_scientist\) "Peter Sanders (computer scientist)") (March 23, 2009). ["Fast route planning"](https://www.youtube.com/watch?v=-0ErpE8tQbw). *Google Tech Talk*. [Archived](https://ghostarchive.org/varchive/youtube/20211211/-0ErpE8tQbw) from the original on 2021-12-11.
13. **[^](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_ref-13)**
Hoceini, S.; A. Mellouk; Y. Amirat (2005). ["K-Shortest Paths Q-Routing: A New QoS Routing Algorithm in Telecommunication Networks"](https://doi.org/10.1007/978-3-540-31957-3_21). *Networking - ICN 2005, Lecture Notes in Computer Science, Vol. 3421*. Vol. 3421. Springer, Berlin, Heidelberg. pp. 164â172\. [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1007/978-3-540-31957-3\_21](https://doi.org/10.1007%2F978-3-540-31957-3_21). [ISBN](https://en.wikipedia.org/wiki/ISBN_\(identifier\) "ISBN (identifier)")
[978-3-540-25338-9](https://en.wikipedia.org/wiki/Special:BookSources/978-3-540-25338-9 "Special:BookSources/978-3-540-25338-9")
.
14. **[^](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_ref-14)**
Chen, Danny Z. (December 1996). "Developing algorithms and software for geometric path planning problems". *ACM Computing Surveys*. **28** (4es). Article 18. [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1145/242224.242246](https://doi.org/10.1145%2F242224.242246). [S2CID](https://en.wikipedia.org/wiki/S2CID_\(identifier\) "S2CID (identifier)") [11761485](https://api.semanticscholar.org/CorpusID:11761485).
15. **[^](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_ref-15)** Abraham, Ittai; Fiat, Amos; [Goldberg, Andrew V.](https://en.wikipedia.org/wiki/Andrew_V._Goldberg "Andrew V. Goldberg"); Werneck, Renato F. ["Highway Dimension, Shortest Paths, and Provably Efficient Algorithms"](http://research.microsoft.com/pubs/115272/soda10.pdf%20research.microsoft.com/pubs/115272/soda10.pdf). ACM-SIAM Symposium on Discrete Algorithms, pages 782â793, 2010.
16. **[^](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_ref-16)** Abraham, Ittai; Delling, Daniel; [Goldberg, Andrew V.](https://en.wikipedia.org/wiki/Andrew_V._Goldberg "Andrew V. Goldberg"); Werneck, Renato F. [research.microsoft.com/pubs/142356/HL-TR.pdf "A Hub-Based Labeling Algorithm for Shortest Paths on Road Networks"](http://research.microsoft.com/pubs/142356/HL-TR.pdf). Symposium on Experimental Algorithms, pages 230â241, 2011.
17. **[^](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_ref-17)**
Kroger, Martin (2005). "Shortest multiple disconnected path for the analysis of entanglements in two- and three-dimensional polymeric systems". *Computer Physics Communications*. **168** (3): 209â232\. [Bibcode](https://en.wikipedia.org/wiki/Bibcode_\(identifier\) "Bibcode (identifier)"):[2005CoPhC.168..209K](https://ui.adsabs.harvard.edu/abs/2005CoPhC.168..209K). [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1016/j.cpc.2005.01.020](https://doi.org/10.1016%2Fj.cpc.2005.01.020).
18. **[^](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_ref-18)**
Lozano, Leonardo; Medaglia, AndrĂ©s L (2013). "On an exact method for the constrained shortest path problem". *Computers & Operations Research*. **40** (1): 378â384\. [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1016/j.cor.2012.07.008](https://doi.org/10.1016%2Fj.cor.2012.07.008).
19. **[^](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_ref-19)**
Osanlou, Kevin; Bursuc, Andrei; Guettier, Christophe; Cazenave, Tristan; Jacopin, Eric (2019). "Optimal Solving of Constrained Path-Planning Problems with Graph Convolutional Networks and Optimized Tree Search". *2019 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)*. pp. 3519â3525\. [arXiv](https://en.wikipedia.org/wiki/ArXiv_\(identifier\) "ArXiv (identifier)"):[2108\.01036](https://arxiv.org/abs/2108.01036). [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1109/IROS40897.2019.8968113](https://doi.org/10.1109%2FIROS40897.2019.8968113). [ISBN](https://en.wikipedia.org/wiki/ISBN_\(identifier\) "ISBN (identifier)")
[978-1-7281-4004-9](https://en.wikipedia.org/wiki/Special:BookSources/978-1-7281-4004-9 "Special:BookSources/978-1-7281-4004-9")
. [S2CID](https://en.wikipedia.org/wiki/S2CID_\(identifier\) "S2CID (identifier)") [210706773](https://api.semanticscholar.org/CorpusID:210706773).
20. **[^](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_ref-20)**
Bar-Noy, Amotz; Schieber, Baruch (1991). "The canadian traveller problem". *Proceedings of the Second Annual ACM-SIAM Symposium on Discrete Algorithms*: 261â270\. [CiteSeerX](https://en.wikipedia.org/wiki/CiteSeerX_\(identifier\) "CiteSeerX (identifier)") [10\.1.1.1088.3015](https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.1088.3015).
21. **[^](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_ref-21)**
Nikolova, Evdokia; Karger, David R. ["Route planning under uncertainty: the Canadian traveller problem"](https://www.aaai.org/Papers/AAAI/2008/AAAI08-154.pdf) (PDF). *Proceedings of the 23rd National Conference on Artificial Intelligence (AAAI)*. pp. 969â974\. [Archived](https://ghostarchive.org/archive/20221009/https://www.aaai.org/Papers/AAAI/2008/AAAI08-154.pdf) (PDF) from the original on 2022-10-09.
22. **[^](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_ref-22)**
Cherkassky, Boris V.; Goldberg, Andrew V. (1999-06-01). ["Negative-cycle detection algorithms"](https://doi.org/10.1007/s101070050058). *Mathematical Programming*. **85** (2): 277â311\. [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1007/s101070050058](https://doi.org/10.1007%2Fs101070050058). [ISSN](https://en.wikipedia.org/wiki/ISSN_\(identifier\) "ISSN (identifier)") [1436-4646](https://search.worldcat.org/issn/1436-4646). [S2CID](https://en.wikipedia.org/wiki/S2CID_\(identifier\) "S2CID (identifier)") [79739](https://api.semanticscholar.org/CorpusID:79739).
23. **[^](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_ref-Pair1966_23-0)**
Pair, Claude (1967). "Sur des algorithmes pour des problÚmes de cheminement dans les graphes finis" \[On algorithms for path problems in finite graphs\]. In [Rosentiehl, Pierre](https://en.wikipedia.org/wiki/Pierre_Rosenstiehl "Pierre Rosenstiehl") (ed.). *Théorie des graphes (journées internationales d'études) \[Theory of Graphs (international symposium)\]*. Rome (Italy), July 1966. Dunod (Paris); Gordon and Breach (New York). p. 271. [OCLC](https://en.wikipedia.org/wiki/OCLC_\(identifier\) "OCLC (identifier)") [901424694](https://search.worldcat.org/oclc/901424694).
24. **[^](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_ref-24)**
Derniame, Jean Claude; Pair, Claude (1971). *ProblĂšmes de cheminement dans les graphes* \[*Path Problems in Graphs*\]. Dunod (Paris).
25. **[^](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_ref-BarasTheodorakopoulos2010_25-0)**
Baras, John; Theodorakopoulos, George (4 April 2010). [*Path Problems in Networks*](https://books.google.com/books?id=fZJeAQAAQBAJ&pg=PA9). Morgan & Claypool Publishers. pp. 9â. [ISBN](https://en.wikipedia.org/wiki/ISBN_\(identifier\) "ISBN (identifier)")
[978-1-59829-924-3](https://en.wikipedia.org/wiki/Special:BookSources/978-1-59829-924-3 "Special:BookSources/978-1-59829-924-3")
.
26. **[^](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_ref-GondranMinoux2008_26-0)**
Gondran, Michel; Minoux, Michel (2008). "chapter 4". *Graphs, Dioids and Semirings: New Models and Algorithms*. Springer Science & Business Media. [ISBN](https://en.wikipedia.org/wiki/ISBN_\(identifier\) "ISBN (identifier)")
[978-0-387-75450-5](https://en.wikipedia.org/wiki/Special:BookSources/978-0-387-75450-5 "Special:BookSources/978-0-387-75450-5")
.
27. **[^](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_ref-PoulyKohlas2012_27-0)**
Pouly, Marc; Kohlas, JĂŒrg (2011). "Chapter 6. Valuation Algebras for Path Problems". *Generic Inference: A Unifying Theory for Automated Reasoning*. John Wiley & Sons. [ISBN](https://en.wikipedia.org/wiki/ISBN_\(identifier\) "ISBN (identifier)")
[978-1-118-01086-0](https://en.wikipedia.org/wiki/Special:BookSources/978-1-118-01086-0 "Special:BookSources/978-1-118-01086-0")
.
28. **[^](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_ref-28)** Loui, R.P., 1983. Optimal paths in graphs with stochastic or multidimensional weights. Communications of the ACM, 26(9), pp.670-676.
29. **[^](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_ref-29)**
Rajabi-Bahaabadi, Mojtaba; Shariat-Mohaymany, Afshin; Babaei, Mohsen; Ahn, Chang Wook (2015). "Multi-objective path finding in stochastic time-dependent road networks using non-dominated sorting genetic algorithm". *Expert Systems with Applications*. **42** (12): 5056â5064\. [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1016/j.eswa.2015.02.046](https://doi.org/10.1016%2Fj.eswa.2015.02.046).
30. **[^](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_ref-30)**
Olya, Mohammad Hessam (2014). "Finding shortest path in a combined exponential â gamma probability distribution arc length". *International Journal of Operational Research*. **21** (1) 64020: 25â37\. [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1504/IJOR.2014.064020](https://doi.org/10.1504%2FIJOR.2014.064020).
31. **[^](https://en.wikipedia.org/wiki/Shortest_path_problem#cite_ref-31)**
Olya, Mohammad Hessam (2014). "Applying Dijkstra's algorithm for general shortest path problem with normal probability distribution arc length". *International Journal of Operational Research*. **21** (2) 64541: 143â154\. [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1504/IJOR.2014.064541](https://doi.org/10.1504%2FIJOR.2014.064541).
- Ahuja, Ravindra K.; Mehlhorn, Kurt; Orlin, James; [Tarjan, Robert E.](https://en.wikipedia.org/wiki/Robert_Tarjan "Robert Tarjan") (April 1990). ["Faster algorithms for the shortest path problem"](https://apps.dtic.mil/sti/pdfs/ADA194031.pdf) (PDF). *Journal of the ACM*. **37** (2). ACM: 213â223\. [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1145/77600.77615](https://doi.org/10.1145%2F77600.77615). [hdl](https://en.wikipedia.org/wiki/Hdl_\(identifier\) "Hdl (identifier)"):[1721\.1/47994](https://hdl.handle.net/1721.1%2F47994). [S2CID](https://en.wikipedia.org/wiki/S2CID_\(identifier\) "S2CID (identifier)") [5499589](https://api.semanticscholar.org/CorpusID:5499589). [Archived](https://ghostarchive.org/archive/20221009/https://apps.dtic.mil/sti/pdfs/ADA194031.pdf) (PDF) from the original on 2022-10-09.
- Axiotis, Kyriakos; MÄ
dry, Aleksander; Vladu, Adrian (2020). "Circulation control for faster minimum cost flow in unit-capacity graphs". In Irani, Sandy (ed.). *61st IEEE Annual Symposium on Foundations of Computer Science, FOCS 2020, Durham, NC, USA, November 16â19, 2020*. IEEE. pp. 93â104\. [arXiv](https://en.wikipedia.org/wiki/ArXiv_\(identifier\) "ArXiv (identifier)"):[2003\.04863](https://arxiv.org/abs/2003.04863). [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1109/FOCS46700.2020.00018](https://doi.org/10.1109%2FFOCS46700.2020.00018). [ISBN](https://en.wikipedia.org/wiki/ISBN_\(identifier\) "ISBN (identifier)")
[978-1-7281-9621-3](https://en.wikipedia.org/wiki/Special:BookSources/978-1-7281-9621-3 "Special:BookSources/978-1-7281-9621-3")
.
- [Bellman, Richard](https://en.wikipedia.org/wiki/Richard_Bellman "Richard Bellman") (1958). ["On a routing problem"](https://doi.org/10.1090%2Fqam%2F102435). *Quarterly of Applied Mathematics*. **16**: 87â90\. [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1090/qam/102435](https://doi.org/10.1090%2Fqam%2F102435). [MR](https://en.wikipedia.org/wiki/MR_\(identifier\) "MR (identifier)") [0102435](https://mathscinet.ams.org/mathscinet-getitem?mr=0102435).
- Bernstein, Aaron; Nanongkai, Danupon; Wulff-Nilsen, Christian (2022). "Negative-Weight Single-Source Shortest Paths in Near-linear Time". *2022 IEEE 63rd Annual Symposium on Foundations of Computer Science (FOCS)*. IEEE. pp. 600â611\. [arXiv](https://en.wikipedia.org/wiki/ArXiv_\(identifier\) "ArXiv (identifier)"):[2203\.03456](https://arxiv.org/abs/2203.03456). [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1109/focs54457.2022.00063](https://doi.org/10.1109%2Ffocs54457.2022.00063). [ISBN](https://en.wikipedia.org/wiki/ISBN_\(identifier\) "ISBN (identifier)")
[978-1-6654-5519-0](https://en.wikipedia.org/wiki/Special:BookSources/978-1-6654-5519-0 "Special:BookSources/978-1-6654-5519-0")
. [S2CID](https://en.wikipedia.org/wiki/S2CID_\(identifier\) "S2CID (identifier)") [247958461](https://api.semanticscholar.org/CorpusID:247958461).
- van den Brand, Jan; Lee, Yin Tat; Nanongkai, Danupon; Peng, Richard; Saranurak, Thatchaphol; Sidford, Aaron; Song, Zhao; Wang, Di (2020). "Bipartite matching in nearly-linear time on moderately dense graphs". In Irani, Sandy (ed.). *61st IEEE Annual Symposium on Foundations of Computer Science, FOCS 2020, Durham, NC, USA, November 16â19, 2020*. IEEE. pp. 919â930\. [arXiv](https://en.wikipedia.org/wiki/ArXiv_\(identifier\) "ArXiv (identifier)"):[2009\.01802](https://arxiv.org/abs/2009.01802). [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1109/FOCS46700.2020.00090](https://doi.org/10.1109%2FFOCS46700.2020.00090). [ISBN](https://en.wikipedia.org/wiki/ISBN_\(identifier\) "ISBN (identifier)")
[978-1-7281-9621-3](https://en.wikipedia.org/wiki/Special:BookSources/978-1-7281-9621-3 "Special:BookSources/978-1-7281-9621-3")
.
- Chen, Li; Kyng, Rasmus; Liu, Yang P.; Peng, Richard; Gutenberg, Maximilian Probst; Sachdeva, Sushant (2022). "Maximum flow and minimum-cost flow in almost-linear time". *63rd IEEE Annual Symposium on Foundations of Computer Science, FOCS 2022, Denver, CO, USA, October 31 â November 3, 2022*. IEEE. pp. 612â623\. [arXiv](https://en.wikipedia.org/wiki/ArXiv_\(identifier\) "ArXiv (identifier)"):[2203\.00671](https://arxiv.org/abs/2203.00671). [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1109/FOCS54457.2022.00064](https://doi.org/10.1109%2FFOCS54457.2022.00064). [ISBN](https://en.wikipedia.org/wiki/ISBN_\(identifier\) "ISBN (identifier)")
[978-1-6654-5519-0](https://en.wikipedia.org/wiki/Special:BookSources/978-1-6654-5519-0 "Special:BookSources/978-1-6654-5519-0")
.
- Cohen, Michael B.; MÄ
dry, Aleksander; Sankowski, Piotr; Vladu, Adrian (2017). "Negative-weight shortest paths and unit capacity minimum cost flow in  time". In Klein, Philip N. (ed.). *Proceedings of the Twenty-Eighth Annual ACMâSIAM Symposium on Discrete Algorithms, SODA 2017, Barcelona, Spain, Hotel Porta Fira, January 16â19*. Society for Industrial and Applied Mathematics. pp. 752â771\. [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1137/1.9781611974782.48](https://doi.org/10.1137%2F1.9781611974782.48).
- Duan, Ran; Mao, Jiayi; Shu, Xinkai; Yin, Longhui (2023). "A Randomized Algorithm for Single-Source Shortest Path on Undirected Real-Weighted Graphs". *2023 IEEE 64th Annual Symposium on Foundations of Computer Science (FOCS)*. IEEE. pp. 484â492\. [arXiv](https://en.wikipedia.org/wiki/ArXiv_\(identifier\) "ArXiv (identifier)"):[2307\.04139](https://arxiv.org/abs/2307.04139). [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1109/focs57990.2023.00035](https://doi.org/10.1109%2Ffocs57990.2023.00035). [ISBN](https://en.wikipedia.org/wiki/ISBN_\(identifier\) "ISBN (identifier)")
[979-8-3503-1894-4](https://en.wikipedia.org/wiki/Special:BookSources/979-8-3503-1894-4 "Special:BookSources/979-8-3503-1894-4")
. [S2CID](https://en.wikipedia.org/wiki/S2CID_\(identifier\) "S2CID (identifier)") [259501045](https://api.semanticscholar.org/CorpusID:259501045).
- Duan, Ran; Mao, Jiayi; Mao, Xiao; Shu, Xinkai; Yin, Longhui (2025). "Breaking the Sorting Barrier for Directed Single-Source Shortest Paths". *Proceedings of the 57th Annual ACM Symposium on Theory of Computing (STOC)*. Association for Computing Machinery. pp. 36â44\. [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1145/3717823.3718179](https://doi.org/10.1145%2F3717823.3718179). [ISBN](https://en.wikipedia.org/wiki/ISBN_\(identifier\) "ISBN (identifier)")
[979-8-4007-1510-5](https://en.wikipedia.org/wiki/Special:BookSources/979-8-4007-1510-5 "Special:BookSources/979-8-4007-1510-5")
.
- Cherkassky, Boris V.; [Goldberg, Andrew V.](https://en.wikipedia.org/wiki/Andrew_V._Goldberg "Andrew V. Goldberg"); Radzik, Tomasz (1996). ["Shortest paths algorithms: theory and experimental evaluation"](http://ftp.cs.stanford.edu/cs/theory/pub/goldberg/sp-alg.ps.Z). *Mathematical Programming*. Ser. A. **73** (2): 129â174\. [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1016/0025-5610(95)00021-6](https://doi.org/10.1016%2F0025-5610%2895%2900021-6). [MR](https://en.wikipedia.org/wiki/MR_\(identifier\) "MR (identifier)") [1392160](https://mathscinet.ams.org/mathscinet-getitem?mr=1392160).
- [Cormen, Thomas H.](https://en.wikipedia.org/wiki/Thomas_H._Cormen "Thomas H. Cormen"); [Leiserson, Charles E.](https://en.wikipedia.org/wiki/Charles_E._Leiserson "Charles E. Leiserson"); [Rivest, Ronald L.](https://en.wikipedia.org/wiki/Ron_Rivest "Ron Rivest"); [Stein, Clifford](https://en.wikipedia.org/wiki/Clifford_Stein "Clifford Stein") (2001) \[1990\]. "Single-Source Shortest Paths and All-Pairs Shortest Paths". [*Introduction to Algorithms*](https://en.wikipedia.org/wiki/Introduction_to_Algorithms "Introduction to Algorithms") (2nd ed.). MIT Press and McGraw-Hill. pp. 580â642\. [ISBN](https://en.wikipedia.org/wiki/ISBN_\(identifier\) "ISBN (identifier)")
[0-262-03293-7](https://en.wikipedia.org/wiki/Special:BookSources/0-262-03293-7 "Special:BookSources/0-262-03293-7")
.
- Dantzig, G. B. (January 1960). "On the Shortest Route through a Network". *Management Science*. **6** (2): 187â190\. [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1287/mnsc.6.2.187](https://doi.org/10.1287%2Fmnsc.6.2.187).
- [Dijkstra, E. W.](https://en.wikipedia.org/wiki/Edsger_W._Dijkstra "Edsger W. Dijkstra") (1959). "A note on two problems in connexion with graphs". *Numerische Mathematik*. **1**: 269â271\. [Bibcode](https://en.wikipedia.org/wiki/Bibcode_\(identifier\) "Bibcode (identifier)"):[1959NuMat...1..269D](https://ui.adsabs.harvard.edu/abs/1959NuMat...1..269D). [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1007/BF01386390](https://doi.org/10.1007%2FBF01386390). [S2CID](https://en.wikipedia.org/wiki/S2CID_\(identifier\) "S2CID (identifier)") [123284777](https://api.semanticscholar.org/CorpusID:123284777).
- Fineman, Jeremy T. (2024). "Single-source shortest paths with negative real weights in  time". In Mohar, Bojan; Shinkar, Igor; O'Donnell, Ryan (eds.). *Proceedings of the 56th Annual ACM Symposium on Theory of Computing, STOC 2024, Vancouver, BC, Canada, June 24â28, 2024*. Association for Computing Machinery. pp. 3â14\. [arXiv](https://en.wikipedia.org/wiki/ArXiv_\(identifier\) "ArXiv (identifier)"):[2311\.02520](https://arxiv.org/abs/2311.02520). [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1145/3618260.3649614](https://doi.org/10.1145%2F3618260.3649614).
- Ford, L. R. (1956). [Network Flow Theory](http://www.rand.org/pubs/papers/P923.html) (Report). Santa Monica, CA: RAND Corporation. P-923.
- [Fredman, Michael Lawrence](https://en.wikipedia.org/wiki/Michael_Fredman "Michael Fredman"); [Tarjan, Robert E.](https://en.wikipedia.org/wiki/Robert_Tarjan "Robert Tarjan") (1984). *Fibonacci heaps and their uses in improved network optimization algorithms*. 25th Annual Symposium on Foundations of Computer Science. [IEEE](https://en.wikipedia.org/wiki/IEEE "IEEE"). pp. 338â346\. [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1109/SFCS.1984.715934](https://doi.org/10.1109%2FSFCS.1984.715934). [ISBN](https://en.wikipedia.org/wiki/ISBN_\(identifier\) "ISBN (identifier)")
[0-8186-0591-X](https://en.wikipedia.org/wiki/Special:BookSources/0-8186-0591-X "Special:BookSources/0-8186-0591-X")
.
- [Fredman, Michael Lawrence](https://en.wikipedia.org/wiki/Michael_Fredman "Michael Fredman"); [Tarjan, Robert E.](https://en.wikipedia.org/wiki/Robert_Tarjan "Robert Tarjan") (1987). ["Fibonacci heaps and their uses in improved network optimization algorithms"](https://doi.org/10.1145%2F28869.28874). *Journal of the Association for Computing Machinery*. **34** (3): 596â615\. [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1145/28869.28874](https://doi.org/10.1145%2F28869.28874). [S2CID](https://en.wikipedia.org/wiki/S2CID_\(identifier\) "S2CID (identifier)") [7904683](https://api.semanticscholar.org/CorpusID:7904683).
- [Gabow, H. N.](https://en.wikipedia.org/wiki/Harold_N._Gabow "Harold N. Gabow") (1983). ["Scaling algorithms for network problems"](http://www.eecs.umich.edu/~pettie/matching/Gabow-scaling-algorithms-for-network-problems.pdf) (PDF). *Proceedings of the 24th Annual Symposium on Foundations of Computer Science (FOCS 1983)*. pp. 248â258\. [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1109/SFCS.1983.68](https://doi.org/10.1109%2FSFCS.1983.68).
- [Gabow, Harold N.](https://en.wikipedia.org/wiki/Harold_N._Gabow "Harold N. Gabow") (1985). ["Scaling algorithms for network problems"](https://doi.org/10.1016%2F0022-0000%2885%2990039-X). *[Journal of Computer and System Sciences](https://en.wikipedia.org/wiki/Journal_of_Computer_and_System_Sciences "Journal of Computer and System Sciences")*. **31** (2): 148â168\. [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1016/0022-0000(85)90039-X](https://doi.org/10.1016%2F0022-0000%2885%2990039-X). [MR](https://en.wikipedia.org/wiki/MR_\(identifier\) "MR (identifier)") [0828519](https://mathscinet.ams.org/mathscinet-getitem?mr=0828519).
- Hagerup, Torben (2000). ["Improved Shortest Paths on the Word RAM"](http://dl.acm.org/citation.cfm?id=686343&CFID=563073233&CFTOKEN=28801665). In Montanari, Ugo; Rolim, JosĂ© D. P.; Welzl, Emo (eds.). *Proceedings of the 27th International Colloquium on Automata, Languages and Programming*. pp. 61â72\. [ISBN](https://en.wikipedia.org/wiki/ISBN_\(identifier\) "ISBN (identifier)")
[978-3-540-67715-4](https://en.wikipedia.org/wiki/Special:BookSources/978-3-540-67715-4 "Special:BookSources/978-3-540-67715-4")
.
- Henzinger, Monika R.; Klein, Philip; Rao, Satish; Subramanian, Sairam (1997). ["Faster Shortest-Path Algorithms for Planar Graphs"](https://doi.org/10.1006%2Fjcss.1997.1493). *Journal of Computer and System Sciences*. **55** (1): 3â23\. [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1006/jcss.1997.1493](https://doi.org/10.1006%2Fjcss.1997.1493).
- [Johnson, Donald B.](https://en.wikipedia.org/wiki/Donald_B._Johnson "Donald B. Johnson") (1977). ["Efficient algorithms for shortest paths in sparse networks"](https://doi.org/10.1145%2F321992.321993). *[Journal of the ACM](https://en.wikipedia.org/wiki/Journal_of_the_ACM "Journal of the ACM")*. **24** (1): 1â13\. [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1145/321992.321993](https://doi.org/10.1145%2F321992.321993). [S2CID](https://en.wikipedia.org/wiki/S2CID_\(identifier\) "S2CID (identifier)") [207678246](https://api.semanticscholar.org/CorpusID:207678246).
- [Johnson, Donald B.](https://en.wikipedia.org/wiki/Donald_B._Johnson "Donald B. Johnson") (December 1981). "A priority queue in which initialization and queue operations take *O*(log log *D*) time". *Mathematical Systems Theory*. **15** (1): 295â309\. [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1007/BF01786986](https://doi.org/10.1007%2FBF01786986). [MR](https://en.wikipedia.org/wiki/MR_\(identifier\) "MR (identifier)") [0683047](https://mathscinet.ams.org/mathscinet-getitem?mr=0683047). [S2CID](https://en.wikipedia.org/wiki/S2CID_\(identifier\) "S2CID (identifier)") [35703411](https://api.semanticscholar.org/CorpusID:35703411).
- Karlsson, Rolf G.; Poblete, Patricio V. (1983). ["An *O*(*m* log log *D*) algorithm for shortest paths"](https://doi.org/10.1016%2F0166-218X%2883%2990104-X). *[Discrete Applied Mathematics](https://en.wikipedia.org/wiki/Discrete_Applied_Mathematics "Discrete Applied Mathematics")*. **6** (1): 91â93\. [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1016/0166-218X(83)90104-X](https://doi.org/10.1016%2F0166-218X%2883%2990104-X). [MR](https://en.wikipedia.org/wiki/MR_\(identifier\) "MR (identifier)") [0700028](https://mathscinet.ams.org/mathscinet-getitem?mr=0700028).
- Leyzorek, M.; Gray, R. S.; Johnson, A. A.; Ladew, W. C.; Meaker, S. R. Jr.; Petry, R. M.; Seitz, R. N. (1957). *Investigation of Model Techniques â First Annual Report â 6 June 1956 â 1 July 1957 â A Study of Model Techniques for Communication Systems*. Cleveland, Ohio: Case Institute of Technology.
- [Moore, E. F.](https://en.wikipedia.org/wiki/Edward_F._Moore "Edward F. Moore") (1959). "The shortest path through a maze". *Proceedings of an International Symposium on the Theory of Switching (Cambridge, Massachusetts, 2â5 April 1957)*. Cambridge: Harvard University Press. pp. 285â292\.
- Pettie, Seth; Ramachandran, Vijaya (2002). ["Computing shortest paths with comparisons and additions"](https://archive.org/details/proceedingsofthi2002acms/page/267). *Proceedings of the Thirteenth Annual ACM-SIAM Symposium on Discrete Algorithms*. pp. [267â276](https://archive.org/details/proceedingsofthi2002acms/page/267). [ISBN](https://en.wikipedia.org/wiki/ISBN_\(identifier\) "ISBN (identifier)")
[978-0-89871-513-2](https://en.wikipedia.org/wiki/Special:BookSources/978-0-89871-513-2 "Special:BookSources/978-0-89871-513-2")
.
- Pettie, Seth (26 January 2004). ["A new approach to all-pairs shortest paths on real-weighted graphs"](https://doi.org/10.1016%2Fs0304-3975%2803%2900402-x). *Theoretical Computer Science*. **312** (1): 47â74\. [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1016/s0304-3975(03)00402-x](https://doi.org/10.1016%2Fs0304-3975%2803%2900402-x).
- Pollack, Maurice; Wiebenson, Walter (MarchâApril 1960). "Solution of the Shortest-Route ProblemâA Review". *Oper. Res*. **8** (2): 224â230\. [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1287/opre.8.2.224](https://doi.org/10.1287%2Fopre.8.2.224).
Attributes Dijkstra's algorithm to Minty ("private communication") on p. 225.
- Schrijver, Alexander (2004). *Combinatorial Optimization â Polyhedra and Efficiency*. Algorithms and Combinatorics. Vol. 24. Springer. vol.A, sect.7.5b, p. 103. [ISBN](https://en.wikipedia.org/wiki/ISBN_\(identifier\) "ISBN (identifier)")
[978-3-540-20456-5](https://en.wikipedia.org/wiki/Special:BookSources/978-3-540-20456-5 "Special:BookSources/978-3-540-20456-5")
.
- Shimbel, Alfonso (1953). "Structural parameters of communication networks". *Bulletin of Mathematical Biophysics*. **15** (4): 501â507\. [Bibcode](https://en.wikipedia.org/wiki/Bibcode_\(identifier\) "Bibcode (identifier)"):[1953BMaB...15..501S](https://ui.adsabs.harvard.edu/abs/1953BMaB...15..501S). [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1007/BF02476438](https://doi.org/10.1007%2FBF02476438).
- Shimbel, A. (1955). "Structure in communication nets". *Proceedings of the Symposium on Information Networks*. New York, NY: Polytechnic Press of the Polytechnic Institute of Brooklyn. pp. 199â203\.
- Thorup, Mikkel (1999). ["Undirected single-source shortest paths with positive integer weights in linear time"](https://doi.org/10.1145%2F316542.316548). *Journal of the ACM*. **46** (3): 362â394\. [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1145/316542.316548](https://doi.org/10.1145%2F316542.316548). [S2CID](https://en.wikipedia.org/wiki/S2CID_\(identifier\) "S2CID (identifier)") [207654795](https://api.semanticscholar.org/CorpusID:207654795).
- Thorup, Mikkel (2004). ["Integer priority queues with decrease key in constant time and the single source shortest paths problem"](https://doi.org/10.1016%2Fj.jcss.2004.04.003). *Journal of Computer and System Sciences*. **69** (3): 330â353\. [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1016/j.jcss.2004.04.003](https://doi.org/10.1016%2Fj.jcss.2004.04.003).
- Whiting, P. D.; Hillier, J. A. (MarchâJune 1960). "A Method for Finding the Shortest Route through a Road Network". *Operational Research Quarterly*. **11** (1/2): 37â40\. [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1057/jors.1960.32](https://doi.org/10.1057%2Fjors.1960.32).
- [Williams, Ryan](https://en.wikipedia.org/wiki/Ryan_Williams_\(computer_scientist\) "Ryan Williams (computer scientist)") (2014). "Faster all-pairs shortest paths via circuit complexity". *Proceedings of the 46th Annual ACM [Symposium on Theory of Computing](https://en.wikipedia.org/wiki/Symposium_on_Theory_of_Computing "Symposium on Theory of Computing") (STOC '14)*. New York: ACM. pp. 664â673\. [arXiv](https://en.wikipedia.org/wiki/ArXiv_\(identifier\) "ArXiv (identifier)"):[1312\.6680](https://arxiv.org/abs/1312.6680). [doi](https://en.wikipedia.org/wiki/Doi_\(identifier\) "Doi (identifier)"):[10\.1145/2591796.2591811](https://doi.org/10.1145%2F2591796.2591811). [MR](https://en.wikipedia.org/wiki/MR_\(identifier\) "MR (identifier)") [3238994](https://mathscinet.ams.org/mathscinet-getitem?mr=3238994).
- AltıntaĆ, Gökhan (2020). [*Exact Solutions of Shortest-Path Problems Based on Mechanical Analogies: In Connection with Labyrinths*](https://books.google.com/books?id=oSvHzQEACAAJ). Amazon Digital Services LLC. [ISBN](https://en.wikipedia.org/wiki/ISBN_\(identifier\) "ISBN (identifier)")
[9798655831896](https://en.wikipedia.org/wiki/Special:BookSources/9798655831896 "Special:BookSources/9798655831896")
.
- Frigioni, D.; Marchetti-Spaccamela, A.; Nanni, U. (1998). "Fully dynamic output bounded single source shortest path problem". *Proc. 7th Annu. ACM-SIAM Symp. Discrete Algorithms*. Atlanta, GA. pp. 212â221\. [CiteSeerX](https://en.wikipedia.org/wiki/CiteSeerX_\(identifier\) "CiteSeerX (identifier)") [10\.1.1.32.9856](https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.32.9856).
- Dreyfus, S. E. (October 1967). [An Appraisal of Some Shortest Path Algorithms](http://apps.dtic.mil/dtic/tr/fulltext/u2/661265.pdf) (PDF) (Report). Project Rand. United States Air Force. RM-5433-PR. [Archived](https://web.archive.org/web/20151117014431/http://www.dtic.mil/dtic/tr/fulltext/u2/661265.pdf) (PDF) from the original on November 17, 2015.
DTIC AD-661265. |
| Shard | 152 (laksa) |
| Root Hash | 17790707453426894952 |
| Unparsed URL | org,wikipedia!en,/wiki/Shortest_path_problem s443 |