Dijkstra: Difference between revisions
Jump to navigation
Jump to search
m (→Requirements: Matheumgebungen eingefügt) |
|||
Line 14: | Line 14: | ||
== Requirements == | == Requirements == | ||
* directed Graph | * directed Graph <math>G=(V,E)</math> | ||
* weight function | * weight function <math>w\colon E\to\mathbb R</math> | ||
* | * <math>\forall(u,v)\in E\colon w(u,v)\geq 0</math> | ||
* source | * source <math>s\in V</math> | ||
* Datastruct | * Datastruct <math>S</math> | ||
* Datastruct | * Datastruct <math>Q</math> | ||
== Pseudocode == | == Pseudocode == |
Revision as of 12:09, 13 October 2014
Dijstra's algorithm is a graph algortihm solving the single-source shortest-paths problem.
Requirements
- directed Graph [math]\displaystyle{ G=(V,E) }[/math]
- weight function [math]\displaystyle{ w\colon E\to\mathbb R }[/math]
- [math]\displaystyle{ \forall(u,v)\in E\colon w(u,v)\geq 0 }[/math]
- source [math]\displaystyle{ s\in V }[/math]
- Datastruct [math]\displaystyle{ S }[/math]
- Datastruct [math]\displaystyle{ Q }[/math]
Pseudocode
DIJKSTRA(G,w,s)
DIJKSTRA(G,w,s)
1 INITIALIZE-SINGLE-SOURCE(G,s)
2 S = ∅
3 Q = G.V
4 while Q ≠ ∅
5 u = EXTRACT-MIN(Q)
6 S = S ∪ {u}
7 for each vertex v ∈ G.Adj[u]
8 RELAX(u,v,w)
RELAX(u,v,w)
RELAX(u,v,w)
1 if v.d > u.d + w(u,v)
2 v.d = u.d + w(u,v)
3 v.π = u
INITIALIZE-SINGLE-SOURCE(G,s)
INITIALIZE-SINGLE-SOURCE(G,s)
1 for each vertex v ∈ G.V
2 v.d = ∞
3 v.π = NIL
4 s.d = 0