DAG står for Directed Acyclic Graph (rettet asyklisk graf). Som navnet antyder har grafen rettede kanter og ingen sykler.
Alle trær er DAGer fordi de er rettede og har ingen sykler.
- Kan IKKE ha sykler i input.
- Må ha topologisk sortering.
Men:
- Kan ha negative kanter i input.
- Kan ha negative kanter i output.
Parametere:
G: Graf
w: Vekting
s: Startnode
DAG-SHORTEST-PATH(G,w,s)
1 Topologisk sortering av nodene i G
2 INITIALIZE-SINGLE-SOURCE(G,s)
3 for hver node u i G.V
4 for hver kant (u, v) i G.E
5 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
1: Topologisk sortering: Gir en lineær sortering av nodene i en DAG slik at for hver kant u,v kommer u før v.
2: Alle avstander = uendelig, alle innkanter = NIL og avstanden til startnoden = 0
Operasjon | Antall | Kjøretid |
---|---|---|
Topologisk sortering | 1 | |
Initialisering | 1 | |
RELAX | E |
Med bakgrunn i tabellen over gir dette oss:
Best case | Average case | Worst case | Minne |
---|---|---|---|
TODO | TODO | TODO | TODO |