
Dijkstra's algorithm
Dijkstra's algorithm (/ˈdaɪkstrəz/ DYKE-strəz) is an algorithm for finding the shortest paths between nodes in a graph, which may represent, for example, road networks. It was conceived by computer scientist Edsger W. Dijkstra in 1956 and published three years later. The algorithm exists in many variants. Dijkstra's original algorithm found the shortest path between two given nodes, but a more common variant fixes a single node as the "source" node and finds shortest paths from the source to all other nodes in the graph, producing a shortest-path tree.
- Ability105616246
- Abstraction100002137
- Act100030358
- Activity100407535
- Algorithm105847438
- Cognition100023271
- Creativity105624700
- Event100029378
- Invention105633385
- Procedure101023820
- PsychologicalFeature100023100
- Rule105846932
- Thing
- WikicatAlgorithms
- WikicatDutchInventions
- WikicatGraphAlgorithms
- WikicatRoutingAlgorithms
- WikicatSearchAlgorithms
- YagoPermanentlyLocatedEntity
- Caption
- enDijkstra's algorithm to find the shortest path between a and b. It picks the unvisited vertex with the lowest distance, calculates the distance through it to each unvisited neighbor, and updates the neighbor's distance if smaller. Mark visited when done with neighbors.
- Class
- Dynamic programming
- Greedy algorithm
- Search algorithm
- Comment
- enDijkstra's algorithm (/ˈdaɪkstrəz/ DYKE-strəz) is an algorithm for finding the shortest paths between nodes in a graph, which may represent, for example, road networks. It was conceived by computer scientist Edsger W. Dijkstra in 1956 and published three years later. The algorithm exists in many variants. Dijkstra's original algorithm found the shortest path between two given nodes, but a more common variant fixes a single node as the "source" node and finds shortest paths from the source to all other nodes in the graph, producing a shortest-path tree.
- Data
- enUsually used with Priority queue/Heap for optimization
- Graph (data structure)
- Depiction
- DifferentFrom
- Dykstra's projection algorithm
- Has abstract
- enDijkstra's algorithm (/ˈdaɪkstrəz/ DYKE-strəz) is an algorithm for finding the shortest paths between nodes in a graph, which may represent, for example, road networks. It was conceived by computer scientist Edsger W. Dijkstra in 1956 and published three years later. The algorithm exists in many variants. Dijkstra's original algorithm found the shortest path between two given nodes, but a more common variant fixes a single node as the "source" node and finds shortest paths from the source to all other nodes in the graph, producing a shortest-path tree. For a given source node in the graph, the algorithm finds the shortest path between that node and every other. It can also be used for finding the shortest paths from a single node to a single destination node by stopping the algorithm once the shortest path to the destination node has been determined. For example, if the nodes of the graph represent cities and edge path costs represent driving distances between pairs of cities connected by a direct road (for simplicity, ignore red lights, stop signs, toll roads and other obstructions), Dijkstra's algorithm can be used to find the shortest route between one city and all other cities. A widely used application of shortest path algorithms is network routing protocols, most notably IS-IS (Intermediate System to Intermediate System) and OSPF (Open Shortest Path First). It is also employed as a subroutine in other algorithms such as Johnson's. The Dijkstra algorithm uses labels that are positive integers or real numbers, which are totally ordered. It can be generalized to use any labels that are partially ordered, provided the subsequent labels (a subsequent label is produced when traversing an edge) are monotonically non-decreasing. This generalization is called the generic Dijkstra shortest-path algorithm. Dijkstra's algorithm uses a data structure for storing and querying partial solutions sorted by distance from the start. While the original algorithm uses a min-priority queue and runs in time (where is the number of nodes and is the number of edges), it can also be implemented in using an array. The idea of this algorithm is also given in . propose using a Fibonacci heap min-priority queue to optimize the running time complexity to . This is asymptotically the fastest known single-source shortest-path algorithm for arbitrary directed graphs with unbounded non-negative weights. However, specialized cases (such as bounded/integer weights, directed acyclic graphs etc.) can indeed be improved further as detailed in Specialized variants. Additionally, if preprocessing is allowed algorithms such as contraction hierarchies can be up to seven orders of magnitude faster. In some fields, artificial intelligence in particular, Dijkstra's algorithm or a variant of it is known as uniform cost search and formulated as an instance of the more general idea of best-first search.
- Is primary topic of
- Dijkstra's algorithm
- Label
- enDijkstra's algorithm
- Link from a Wikipage to an external page
- purl.umn.edu/107247
- dl.acm.org/doi/10.1145/363269.363610
- dspace.mit.edu/bitstream/1721.1/47994/1/fasteralgorithms00sloa.pdf%7Chdl=1721.1/47994%7Chdl-access=free
- blog.cleancoder.com/uncle-bob/2016/10/26/DijkstrasAlg.html
- www.diku.dk/~mthorup/PAPERS/sssp.ps.gz
- Link from a Wikipage to another Wikipage
- A* algorithm
- A* search algorithm
- Adjacency list
- Adjacency matrix
- Admissible heuristic
- Algorithm
- Amsterdam
- Artificial intelligence
- A-star algorithm
- Asymptotic computational complexity
- Bellman equation
- Bellman–Ford algorithm
- Best, worst and average case
- Best-first search
- Bidirectional search
- Big-O notation
- Binary heap
- Breadth-first search
- Brodal queue
- Bucket queue
- Category:1959 in computing
- Category:Articles with example pseudocode
- Category:Combinatorial optimization
- Category:Dutch inventions
- Category:Edsger W. Dijkstra
- Category:Graph algorithms
- Category:Graph distance
- Category:Routing algorithms
- Category:Search algorithms
- Centrum Wiskunde & Informatica
- Charles Babbage Institute
- Communications of the ACM
- Computer scientist
- Consistent heuristic
- Contraction hierarchy
- Depth-first search
- Dijkstra's algorithm
- Directed graph
- Dual linear program
- Dynamic programming
- Edsger W. Dijkstra
- Euclidean shortest path
- Fast marching method
- Fibonacci heap
- File:DijkstraDemo.gif
- File:Dijkstras progress animation.gif
- Floyd–Warshall algorithm
- Graph (abstract data type)
- Graph (data structure)
- Graph labeling
- Graph theory
- Greedy algorithm
- Groningen
- Heap (data structure)
- IEEE
- Information Processing Letters
- Intersection (road)
- IS-IS
- Johnson's algorithm
- Least-cost path
- Linear programming
- Link-state routing protocol
- Longest path problem
- McGraw–Hill
- Minimum spanning tree
- Min-priority queue
- MIT Press
- Monotonic function
- Negative cycle
- Neighbourhood (graph theory)
- Open Shortest Path First
- OSPF
- Pairing heap
- Parallel all-pairs shortest path algorithm
- Partially ordered set
- Prim's algorithm
- Priority queue
- Probability distribution
- Pseudocode
- Radix heap
- Reduced cost
- Richard Bellman
- Road network
- Robert C. Prim
- Robert Cecil Martin
- Rotterdam
- Routing protocol
- Search algorithm
- Self-balancing binary search tree
- Set (abstract data type)
- Shortest path problem
- Shortest-path tree
- Sparse graph
- Subroutine
- Theoretical computer science
- Time complexity
- Total order
- Transit Node Routing
- Transportation Science
- Triviality (mathematics)
- Van Emde Boas tree
- Vertex (graph theory)
- Vojtěch Jarník
- SameAs
- 4zzsS
- Algorisme de Dijkstra
- Algorithm Dijkstra
- Algorithme de Dijkstra
- Algoritma Dijkstra
- Algoritm de Dijkstra
- Algoritmo de Dijkstra
- Algoritmo de Dijkstra
- Algoritmo di Dijkstra
- Algoritmul lui Dijkstra
- Algorytm Dijkstry
- Deikstras algoritms
- Dijkstra's algorithm
- Dijkstra's algorithm
- Dijkstra's algorithm
- Dijkstra-Algorithmus
- Dijkstra algoritm
- Dijkstra-algoritmus
- Dijkstran algoritmi
- Dijkstraren algoritmo
- Dijkstras algoritm
- Dijkstras algoritme
- Dijkstras algoritme
- Dijkstrin algoritam
- Dijkstrin algoritam
- Dijkstrin algoritam
- Dijkstros algoritmas
- Dijkstrov algoritem
- Dijkstrov algoritmus
- Dijkstrův algoritmus
- Kortstepad-algoritme
- m.0cf7t
- Q8548
- Thuật toán Dijkstra
- Αλγόριθμος του Ντάικστρα
- Алгоритм Дейкстри
- Алгоритм Дейкстры
- Алгоритъм на Дейкстра
- Дајкстрин алгоритам
- Дајкстрин алогиртам
- Дижикстрагийн алгоритм
- Դեքստրայի ալգորիթմ
- אלגוריתם דייקסטרה
- الگوریتم دایکسترا
- خوارزمية ديكسترا
- डिजक्स्ट्रा का अल्गोरिद्म
- ขั้นตอนวิธีของไดก์สตรา
- ダイクストラ法
- 戴克斯特拉算法
- 데이크스트라 알고리즘
- Subject
- Category:1959 in computing
- Category:Articles with example pseudocode
- Category:Combinatorial optimization
- Category:Dutch inventions
- Category:Edsger W. Dijkstra
- Category:Graph algorithms
- Category:Graph distance
- Category:Routing algorithms
- Category:Search algorithms
- Thumbnail
- WasDerivedFrom
- Dijkstra's algorithm?oldid=1119394247&ns=0
- WikiPageLength
- 48956
- Wikipage page ID
- 45809
- Wikipage revision ID
- 1119394247
- WikiPageUsesTemplate
- Template:=
- Template:Cite book
- Template:Cite conference
- Template:Cite journal
- Template:Commons category
- Template:Distinguish
- Template:Edsger Dijkstra
- Template:Frac
- Template:Graph search algorithm
- Template:Harv
- Template:Harvnb
- Template:Hatnote
- Template:Infobox algorithm
- Template:IPAc-en
- Template:Math
- Template:Mono
- Template:Mvar
- Template:Optimization algorithms
- Template:Quote
- Template:R
- Template:Reflist
- Template:Respell
- Template:Rp
- Template:Short description
- Template:Slink
- Template:Use dmy dates