Datenstrukturen und Algorithmen -
Datenstrukturen und Algorithmen -
Datenstrukturen und Algorithmen -
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Minimale Spannbäume<br />
Minimale Spannbäume<br />
Minimale Spannbäume<br />
Minimale Spannbäume<br />
Minimaler Spannbaum – Beispiel<br />
Minimaler Spannbaum – Beispiel<br />
A<br />
6<br />
C<br />
5<br />
4<br />
F<br />
9<br />
G<br />
A<br />
6<br />
C<br />
5<br />
4<br />
F<br />
9<br />
G<br />
14<br />
10<br />
2<br />
14<br />
10<br />
2<br />
B<br />
3<br />
8<br />
E<br />
15<br />
H<br />
B<br />
3<br />
8<br />
E<br />
15<br />
H<br />
D<br />
D<br />
Was ist ein minimale Spannbaum?<br />
Das ist ein minimale Spannbaum (mit Gesamtgewicht 46).<br />
In diesem Fall ist es auch der einzige.<br />
Joost-Pieter Katoen <strong>Datenstrukturen</strong> <strong>und</strong> <strong>Algorithmen</strong> 9/21<br />
Joost-Pieter Katoen <strong>Datenstrukturen</strong> <strong>und</strong> <strong>Algorithmen</strong> 10/21<br />
Minimale Spannbäume<br />
Minimale Spannbäume<br />
Minimale Spannbäume<br />
Minimale Spannbäume<br />
Tiefen- oder Breitensuche?<br />
A<br />
B<br />
14<br />
6<br />
10<br />
3<br />
C<br />
5<br />
D<br />
8<br />
4<br />
2<br />
F<br />
E<br />
9<br />
15<br />
Tiefensuchbaum (von A gestartet)<br />
Gesamtgewicht: 55<br />
G<br />
H<br />
A<br />
B<br />
14<br />
6<br />
10<br />
3<br />
C<br />
5<br />
D<br />
8<br />
4<br />
2<br />
F<br />
E<br />
9<br />
15<br />
Breitensuchbaum (von A gestartet)<br />
Gesamtgewicht: 67<br />
Der Tiefensuchbaum <strong>und</strong> der Breitensuchbaum sind zwar Spannbäume,<br />
aber nicht notwendigerweise MSTs.<br />
G<br />
H<br />
Der Algorithmus von Prim – Übersicht<br />
Wir ordnen die Knoten in drei Kategorien (BLACK, GRAY, WHITE) ein:<br />
Baum-knoten: Knoten, die Teil vom bis jetzt konstruierten Baum sind.<br />
Rand-knoten: Nicht im Baum, jedoch adjazent zu Knoten im Baum.<br />
Ungesehene Knoten: Alle anderen Knoten.<br />
Gr<strong>und</strong>konzept:<br />
◮ Fange mit einen Baum aus nur einem Knoten an, indem ein beliebiger<br />
Knoten des Graphens ausgewählt wird.<br />
◮ Finde die günstigste Kante (d. h. mit minimalem Gewicht), die den<br />
bisherigen Baum verlässt.<br />
◮ Füge den über diese Kante erreichten (Rand-)Knoten dem Baum<br />
hinzu, zusammen mit der Kante.<br />
◮ Fahre fort, bis keine weiteren Randknoten mehr vorhanden sind.<br />
Ist das korrekt? Und wenn, was ist die Komplexität?<br />
Joost-Pieter Katoen <strong>Datenstrukturen</strong> <strong>und</strong> <strong>Algorithmen</strong> 11/21<br />
Joost-Pieter Katoen <strong>Datenstrukturen</strong> <strong>und</strong> <strong>Algorithmen</strong> 12/21