Algorithmen Flashcards
Dijkstra
Tabelle mit allen Knoten
der Knoten mit dem kürzesten Weg ist immer der Arbeitsknoten, ausgehend vom Startknoten
gibt den kürzesten Weg vom Startknoten zu einem beliebigen Knoten an
Kruskal
- kürzeste Kante markieren
- nächstkürzeste Kante markieren
- Kreis? Kante doch nicht markieren!
Ende: alle Knoten sind zusammenhängend
Adjazenzmatrix
1=Verbindung von Knoten i nach j ist vorhanden
0=…ist nicht vorhanden
nxn-Matrix mit n Knoten
Inzidenzmatrix
-1=Knoten ist Endpunkt einer Kante
0=0
1=Knoten ist Startpunkt einer Kante
nxm Matrix mit n Knoten und m Kanten
Bellmann-Ford
Bewertungsmatrix:
- Kante ist vorhanden: Eintrag ist das Gewicht
- i=j: der Eintrag ist 0
- Kante existiert nicht: Eintrag ist unendlich
Treematrix: T^(k)(g)
- Kante ist vorhanden: Eintrag ist der Vorgängerknoten
- Kante ist nicht vorhanden: Eintrag ist -1
“Arbeitsmatrix (?)”: U^(k)(g)
- U^(1) ist die Bewertungsmatrix
- U^(k)=U^(k-1) Bellmann-multipiziert U^(1)
- T^(k) gibt als Pärchenmatrix dazu den Vorgängerknoten an
Bellmannmultiplikation
X(x)Y=C mit cij=min{xik + ykj}
oder: min{jeweiliger Spalteneintrag von U^(1) + jeweiliger Zeileneintrag von U^(k)
Abbruchkriterien Bellmann-Ford
- neg. Einträge auf Hauptdiagonalen (wahrscheinlich negativer Zyklus)
- Einträge der U-Matrix bleiben in der nächsten Iteration gleich? Optimum gefunden!
- maximal |V|-1 Durchläufe! Danach noch einen um auf neg. Zyklus zu testen; V ist Anzahl der Punkte eines Graphen