Graphentheorie (Teschl/Teschl 15-17) Ein Graph besteht aus Knoten, die durch Kanten miteinander verbunden sind. graphen.pdf, Seite 1 Anwendungen I Netzwerke (Verkehr, Daten,...) I Datenstrukturen I Suchbäume I Bildverarbeitung I Rechnerarchitektur I MarkowKetten (Übergangswahrscheinlichkeiten) graphen.pdf, Seite 2 Denition Graph G = (V , E ) besteht aus einer Menge V (oder Ecken, englisch vertices) und einer Menge E Ein von Knoten von Kanten (englisch edges). Dabei ist eine Kante ein Paar Bei einem ungerichteten e von Knoten a, b ∈ V . Graphen spielt die Reihenfolge keine Rolle, man schreibt e = {a , b } oder kurz e = ab (= ba). Bei einem gerichteten Graphen ist e eine Kante von a nach b und man schreibt e = (a, b) oder kurz e = ab (= 6 ba). Die Knoten- und die Kantenmenge können endlich oder abzählbar sein, wir werden uns auf den endlichen Fall beschränken. graphen.pdf, Seite 3 Geometrische Darstellung Die Kanten werden als Verbindungslinien zwischen den Knoten dargestellt. Beispiel: Geometrische Darstellung und Mengenschreibweise des ungerichteten Graphen G = (V , E ) mit V = {1, 2, 3, 4, 5} und n o E = {1, 2}, {1, 4}, {2, 3}, {2, 4}, {2, 5}, {3, 5}, {4, 5}, {5, 5} = {12, 14, 23, 24, 25, 35, 45, 55} graphen.pdf, Seite 4 Gerichtete Graphen Hier werden die Kanten als Pfeile dargestellt. Beispiel: Geometrische Darstellung und Mengenschreibweise des gerichteten Graphen G = (V , E ) V = {1, 2, 3, 4} und n o E = (1, 2), (2, 3), (2, 4), (3, 3), (3, 4), (4, 1), (4, 3) mit = {12, 23, 24, 33, 34, 41, 43} graphen.pdf, Seite 5 Bezeichnungen für ungerichtete Graphen: I Zwei Knoten heiÿen adjazent oder benachbart, wenn sie durch eine Kante verbunden sind. I Zwei Kanten heiÿen inzident, wenn sie einen gemeinsamen Knoten haben. I Ein Knoten und eine Kante heiÿen inzident, wenn sie sich berühren. I Der Grad oder die Ordnung eines Knoten ist die Zahl der mit ihm inzidenten Kanten. Bei gerichteten Graphen können die Begrie geeignet modiziert werden. Dabei wird oft zwischen eingehenden und ausgehenden Kanten bei einem Knoten unterschieden. graphen.pdf, Seite 6 Beispiel: Knotengrade (Ordnungen) in ungerichtetem Graphen graphen.pdf, Seite 7 Teilgraphen Teilgraph von G = (V , E ) V ⊂ V und E 0 ⊂ E . Ein 0 Teilgraph G 0 = (V 0 , E 0 ) von ist ein Graph G = (V , E ) G 0 = (V 0 , E 0 ) mit rot markiert graphen.pdf, Seite 8 Isomorphe Graphen Ĝ = (V̂ , Ê ) sind isomorph, wenn f : V → V̂ gibt, sodass den Kanten e = vw ∈ E die Kanten ê = f (v )f (w ) ∈ Ê entsprechen. Die Abblidung f wird als Isomorphismus bezeichnet. Die Graphen G = (V , E ) und es eine bijektive Abbildung Interpretation Ein Isomorphismus f beschreibt lediglich eine Umbenennung der Knoten, ohne dass die Struktur des Graphen verändert wird. Beispiel Die ungerichteten Graphen G = (V , E ) und V = {1, 2, 3, 4} und E = {12, 13, 23, 24} V̂ = {a, b, c , d } und Ê = {ab, ac , ad , cd } (Betrachte f (1) = c , f (2) = a, f (3) = d Ĝ = (V̂ , Ê ) mit sowie sind isomorph. und f (4) = b) graphen.pdf, Seite 9 Isomorphe Graphen Nicht isomorphe Graphen graphen.pdf, Seite 10 Isomorphie und Knotenordnung Isomorphe Graphen haben die gleiche Anzahl von Knoten und Kanten, die Ordnung von der Ordnung von v f (v ) muss für jeden Knoten gleich sein. Damit gilt: Haben zwei Graphen eine unterschiedliche Anzahl von Knoten oder eine unterschiedliche Anzahl von Kanten oder sind die Knotengrade verschieden, so können sie nicht isomorph sein. Im Beispiel auf der letzten Seite unten haben beide Graphen jeweils 4 Knoten und 4 Kanten. Jedoch der linke Graph G = (V , E ) Knoten mit Ordung 1 und 3, während im rechten Graphen Ĝ = (V̂ , Ê ) alle Knoten die Ordnung 2 haben. Daher sind die beiden Graphen nicht isomorph. graphen.pdf, Seite 11 Nachweis der Isomorphie Um zu begründen, dass zwei Graphen nicht isomorph sind, können die Überlegungen auf der letzten Seite benutzt werden. Der Nachweis, dass zwei Graphen isomorph sind, kann dadurch erfolgen, dass ein Isomorphismus f explizit angegeben wird. Im vielen Fällen ist es jedoch nicht ohne weiteres feststellbar, ob zwei gegebene Graphen isomorph sind. Zwei Graphen mit gleichen Knoten- und Kantenzahl und den gleichen Knotengraden sind noch nicht automatisch isomorph. graphen.pdf, Seite 12 Speichern von Graphen im Computer ist auf unterschiedliche Weise möglich. Gebräuchliche Darstellunsformen sind: I Adjazenzmatrix: Matrix (Tabelle), deren Zeilen und Spalten den Knoten entsprechen mit Einträgen 0 oder 1, je nachdem ob eine Kante zwischen den betreenden Knoten existiert. Eine ungerichtete Kante ab führt zu zwei Einträgen in der Adjazenzmatrix: jeweils eine 1 in Zeile a/Spalte b und in Zeile b/Spalte a. Eine Kante in einem gerichteten Graphen entspricht einer Eins in der Adjazenzmatrix. I Adjazenzliste: a werden die Knoten b Kante ab gibt. Auch hier Zu jedem Knoten aufgelistet, für die es eine kommen ungerichtete Kanten zweimal und gerichtete Kanten einmal vor. I Inzidenzmatrix: Stellt eine tabellarische Zuordnung zwischen inzidenten Paaren von Knoten und Kanten her. graphen.pdf, Seite 13 Beispiel 1 Der gerichtete Graph V = {1, 2, 3, 4} und G = (V , E ) mit E = {12, 23, 24, 34, 41, 43} ist darstellbar durch die 0 0 0 1 Matrix: A= 1 0 0 0 0 1 0 1 0 1 1 0 : 2 : L= 3 : 4 : 1 und die Liste: 2 3, 4 4 1, 3 Jeder Kante entspricht eine 1 in der Matrix sowie ein Listeneintrag. graphen.pdf, Seite 14 Beispiel 2 Der ungerichtete Graph V = {1, 2, 3, 4} und G = (V , E ) mit E = {12, 14, 23, 24, 34} ist darstellbar durch die 0 1 0 1 Matrix: A= 1 0 1 1 0 1 0 1 1 1 1 0 : 2 : L= 3 : 4 : 1 und die Liste: 2, 4 1, 3, 4 2, 4 1, 2, 3 Hier führt jede Kante zu zwei Einsen in der Matrix und zwei Listeneinträgen. graphen.pdf, Seite 15 Bezeichnungen Ein Graph heiÿt I I einfach, wenn es zu je zwei Knoten a und b maximal eine Kante e = ab gibt, multipel oder Multigraph, wenn er nicht einfach ist, d. h. es zwei Knoten gibt, die durch mehr als eine Kante miteinander verbunden sind, I schlicht, wenn einfach ist und keine Schlingen e = aa hat. I Ein schlichter (gerichteter oder ungerichteter) Graph vollständig, wenn es zu je zwei Knoten a, b ∈ V eine Kante ab ∈ E gibt. Eine Clique ist ein vollständiger Teilgraph, d. h. innerhalb heiÿt I einer Clique sind alle Knoten miteinander verbunden. graphen.pdf, Seite 16 vollständige Graphen graphen.pdf, Seite 17 Planare Graphen Ein Graph heiÿt planar (eben, plättbar), wenn er eine geometrische Darstellung in der Ebene besitzt, bei der sich keine Kanten kreuzen. Anwendungen: Aufbau von Computerchips, Verkehrsnetzen... graphen.pdf, Seite 18 Eulerscher Polyedersatz Für die geometrische Darstellung eines zusammenhängenden planaren Graphen gilt Knotenzahl + Flächenzahl = Kantenzahl + 2 Als Flächen werden alle von Kanten umschlossenen Flächen sowie die äuÿere Fläche gezählt. 5 (Knoten) + 4 (Flächen) = 7 (Kanten) + 2 graphen.pdf, Seite 19 Beweisidee des Eulerschen Polyedersatzes Für einen Graphen, der aus einem Knoten und keiner Kante besteht, ist die Knotenzahl k = 1 und die Kantenzahl e = 0. Die Ebene wird nicht in Teilächen unterteilt, so dass die Flächenzahl f = 1 ist. Somit gilt k + f = 1 + 1 = e + 2 = 0 + 2. Davon ausgehend kann jeder Graph durch wiederholtes Anwenden der beiden folgenden Teilschritte konstruiert werden: I I Hinzufügen eines neuen Knotens und einer Kante, die den neuen Knoten mit einem schon vorhandenen Knoten verbindet. Dadurch erhöht sich k und e jeweils um 1. f bleibt unverändert, da durch diesen Schritt keine Fläche unterteilt wird. Hinzufügen einer neuen Kante zwischen zwei schon vorhandenen Knoten. Dadurch erhöht sich e um 1, k bleibt gleich. Durch diesen Schritt wird eine Fläche unterteilt, so dass sich f um 1 erhöht. In beiden Fällen erhöht sich k + f und e + 2 jeweils um 1, so dass die Gleichheit erhalten bleibt. graphen.pdf, Seite 20 Satz von Kuratowski Ein Graph ist genau dann planar, wenn er keinen G̃ Teilgraphen der folgenden Form enthält: Die Struktur des linken Graphen G̃ entspricht einem vollständigen Graphen mit 5 Knonten, die des rechten einem bipartiten Graphen mit 2 mal 3 Knoten. graphen.pdf, Seite 21 Wege Ein Weg (oder Kantenzug) von a nach b ist eine Folge aneinandergereihter Kanten a1 b1 , a2 b2 , ..., a b n mit n a1 = a, b = b n und a +1 = b i i für i = 1, ..., n − 1, d. h. der Endpunkt jeder Kante ist Anfangspunkt der nächsten. Kurzschreibweise: Bei einem a1 , a2 , a3 , ..., a , b Pfad n oder geschlossenen Weg (Zyklus) b = a1 . dem Anfangspunkt, d. h. Ein n a1 a2 a3 ...a b n n ist der Endpunkt gleich n ist ein Weg, bei dem kein Knoten mehrfach durchlaufen wird. Ein Kreis ist ein geschlossener Pfad. graphen.pdf, Seite 22 abcdefg = a, b , c , d , e , f , g = ab, bc , cd , de , ef , fg mit Anfangspunkt a und Endpunkt g : Pfad von a nach g Pfad Bemerkungen I Die Begrie Weg, Pfad und Kreis sind in der Literatur nicht ganz einheitlich deniert. a und b kann ein Pfad von a nach Tiefensuche (Depth-First Search) oder I Zu gegebenen Knoten b z. B. mittels der der Breitensuche (Breadth First Search) gefunden werden. graphen.pdf, Seite 23 Zusammenhang Ein zusammenhängender Graph ist ein Graph, der sich nicht in kleinere Teile zerlegen lässt: zusammenhängend, wenn es zu je zwei Knoten a und b einen Weg von a nach b gibt. Ein gerichteter Graph heiÿt stark zusammenhängend, wenn es zu je zwei Knoten a und b einen Weg von a nach b gibt. Ein gerichteter Graph G = (V , E ) heiÿt zusammenhängend, wenn der ungerichtete Graph I Ein ungerichteter Graph heiÿt I I zusammenhängend ist, welcher entsteht, wenn die Kanten e∈E als ungerichtete Kanten interpretiert werden. nfach zusammenhängend für n ≥ 1, mindestens n Kanten entfernen muss, damit I Ein Graph heiÿt wenn man der verbleibende Restgraph nicht mehr zusammenhängend ist. graphen.pdf, Seite 24 Verschiedene Formen des Zusammenhangs graphen.pdf, Seite 25 Test auf Zusammenhang mit der Breitensuche I Knoten werden in drei Gruppen eingeteilt (markiert): neu, alt und unmarkiert. I Start mit einem neuen Knoten, Rest unmarkiert, I In jedem Schritt: Markiere alle bislang unmarkierten Knoten, die einem neuen Knoten benachbart sind, als neu, Markiere alle vorher neuen Knoten als alt I Graph zusammenhängend ⇔ Am Ende sind alle Knoten markiert. graphen.pdf, Seite 26 Beispiel Breitensuche neu: Startknoten graphen.pdf, Seite 27 Beispiel Breitensuche neu: Nachbarn des Startknoten graphen.pdf, Seite 28 Beispiel Breitensuche neu: Nachbarn der Nachbarn graphen.pdf, Seite 29 Beispiel Breitensuche neu: Entfernung 3 graphen.pdf, Seite 30 Beispiel Breitensuche neu: Entfernung 4 graphen.pdf, Seite 31 Beispiel Breitensuche neu: Entfernung 5 graphen.pdf, Seite 32 Beispiel Breitensuche neu: Entfernung 6 graphen.pdf, Seite 33 Beispiel Breitensuche neu: Entfernung 7 graphen.pdf, Seite 34 Beispiel Breitensuche alle Knoten alt ⇒ Graph zusammenhängend graphen.pdf, Seite 35 Zusammenhangskomponenten G ist eine Vereinigung von zusammenhängenden den Zusammenhangskomponeten von G . Jeder Graph Graphen, Beispiel: Zusammenhangskomponenten eines nicht zusammenhängenden Graphen Die Bestimmung der Zusammenhangskomponenten ist möglich mittels einer Union-Find-Datenstruktur (Markierung) der Knoten. oder durch Labeling graphen.pdf, Seite 36 EulerZüge Ein EulerZug ist ein Weg in einem zusammenhängenden Graphen, der jede Kante genau einmal durchläuft. Ist dabei der Startknoten gleich dem Endknoten, so spricht man von einem einem oenen geschlossenen EulerZug, andernfalls von EulerZug. Satz I In einem ungerichteten zusammenhängenden Graphen existiert genau dann ein geschlossener EulerZug, wenn der Grad aller Knoten gerade ist. I Es gibt genau dann einen nicht geschlossenen EulerZug, wenn zwei Knoten einen ungeraden Grad haben und der Grad der übrigen Knoten gerade ist. graphen.pdf, Seite 37 Königsberger Brückenproblem Gibt es einen Weg, bei dem jede der 7 Brücken genau einmal überquert wird? graphen.pdf, Seite 38 Graph des Königsberger Brückenproblems Alle 4 Knoten haben ungeraden Gard ⇒ Es gibt keinen EulerZug. graphen.pdf, Seite 39 Konstruktion von EulerZügen mit Algorithmus von Fleury (1) Start in Knoten mit ungeradem Grad (falls vorhanden) sonst Start in beliebigem Knoten (2) (a) Gehe entlang einer vom aktuellen Knoten a ausgehenden Kante ab (∗) und wähle b als neuen aktuellen Knoten, (b) Entferne diese Kante aus dem Graphen, (c) Entferne auch den Knoten a, falls dieser nun isoliert ist, (∗) Die Kante ist so zu wählen, dass der Graph nach Schritt (2) zusammenhängend bleibt. Ist dies nicht möglich, so existiert kein EulerZug. (3) Wiederhole Schritt (2) so oft wie möglich. graphen.pdf, Seite 40 Beispiel Algorithmus von Fleury Bemerkung: Im 5. Schritt (untere Reihe links) wäre es nicht zulässig gewesen, zum Knoten unten rechts zu gehen, da dann der Restgraph nicht mehr zusammenhängend wäre. graphen.pdf, Seite 41 Ein HamiltonKreis ist ein geschlossener Weg, den jeden Knoten genau einmal durchläuft. Es gibt weder allgemeine Kriterien für die Existenz noch allgemein gut funktionierende Algorithmen zur Konstruktion von HamiltonKreisen. Faustregel: Je mehr Kanten ein Graph hat, desto gröÿer ist die Chance, einen HamiltonKreis zu nden. graphen.pdf, Seite 42 Bäume Ein Baum ist ein zusammenhängender Graph, in dem es keinen Kreis gibt. Eigenschaften I Ein Baum mit n n − 1 Kanten, mit n Knoten und n − 1 Knoten hat genau I Jeder zusammenhängende Graph Kanten ist ein Baum, I Zwischen je zwei Knoten gibt es genau einen Pfad, I Entfernt man eine Kante, ist der Restgraph nicht mehr zusammenhängend, I Fügt man eine Kante hinzu, entsteht ein Kreis, I Ein Baum ist planar und unterteilt die Ebene nicht in Teilächen. graphen.pdf, Seite 43 Beispiele Anwendungen I Struktur von Datenbanken (-> Suchbäume) I Minimale aufspannende Bäume, Steinerbäume graphen.pdf, Seite 44 Bemerkung Wählt man in einem (ungerichteten) Baum einen (beliebigen) Knoten als Wurzel, so kann man jeder Kante auf eindeutige Weise ein Richtung zuordnen, die von der Wurzel weg führt. Dann gibt es zu jedem Knoten der Wurzel nach v. (v1 , v2 ) ∈ R ⇔ Es v Die Relation einen gerichteten Weg von R auf der Knotenmenge gibt einen gerichteten Weg von deniert eine partielle Ordnung auf v1 V nach v2 V. graphen.pdf, Seite 45 Gewichtete Graphen sind Graphen, bei denen jeder Kante eine (reelle) Zahl (Gewicht) zugeordnet ist. Formal: Ein gewichteter Graph Knotenmenge g : E → R. V, G = (V , E , g ) besteht aus der E und einer Abbildung der Kantenmenge Mögliche Interpretation der Gewichte I Entfernung, I Kapazität (z. B. bei Datenleitung), I Übergangswahrscheinlichkeit. Darstellung im Computer In der Adjazenzmatrix kann für jede Kante statt 1 das Gewicht der Kante abgespeichert werden. graphen.pdf, Seite 46 Graphische Darstellung eines gewichteten Graphen Bei einer graphischen Darstellung werden die Gewichte in der Regel neben die Kanten geschrieben. graphen.pdf, Seite 47 Denition: Gerüst Sei G = (V , E ) ein zusammenhängender ungerichteter Graph. aufspannender Baum (oder ein Gerüst) G̃ = (V , Ẽ ) mit Ẽ ⊂ E , der ein Baum ist. Ein ist ein Teilgraph Beispiel Verschiedene Gerüste eines Graphen graphen.pdf, Seite 48 Minimale Gerüste Ist G ein gewichteter Graph, so ist G̃ ein minimales Gerüst, Ẽ den kleinstmöglichen wenn die Summe aller Gewichte aus Wert unter allen aufspannenden Bäumen annimmt. Beispiel Minimales Gerüst graphen.pdf, Seite 49 Der Algorithmus von Kruskal zur Bestimmung eines minimalen Gerüstes durchläuft alle Kanten in aufsteigender Reihenfolge nach ihrem Gewicht und fügt dabei diejenigen Kanten dem minimalen Gerüst hinzu, durch die kein Kreis entsteht. Vorgehen: Gegeben sei ein ungerichteter gewichteter Graph mit Gewichten g : E → R. G = (V , E ) I Orde die Kanten in aufsteigender Reihenfolge nach ihrem Gewicht, d. h. für alle i. E = {e1 , ..., e }, n I Starte mit dem Graph I Setze sonst Dann ist G0 = (V , E0 ) E = E −1 ∪ {e }, E = E −1 . i i i i i G̃ = (V , E ) n so dass g (e ) ≤ g (e +1 ) mit i i E0 = ∅, falls dadurch kein Kreis entsteht, minimales Gerüst. graphen.pdf, Seite 50 Beispiel Algorithmus von Kruskal G0 = (V , ∅), erste betrachtete Kante e1 , wird hinzugefügt graphen.pdf, Seite 51 Beispiel Algorithmus von Kruskal G1 = (V , E1 ), nächste Kante e2 , wird hinzugefügt graphen.pdf, Seite 52 Beispiel Algorithmus von Kruskal G2 = (V , E2 ), nächste Kante e3 , wird hinzugefügt graphen.pdf, Seite 53 Beispiel Algorithmus von Kruskal G3 = (V , E3 ), nächste Kante e4 , wird hinzugefügt graphen.pdf, Seite 54 Beispiel Algorithmus von Kruskal G4 = (V , E4 ), nächste Kante e5 , wird hinzugefügt graphen.pdf, Seite 55 Beispiel Algorithmus von Kruskal G5 = (V , E5 ), nächste Kante e6 , wird hinzugefügt graphen.pdf, Seite 56 Beispiel Algorithmus von Kruskal G6 = (V , E6 ), nächste Kante e7 , wird nicht hinzugefügt, da sonst ein Kreis entsteht graphen.pdf, Seite 57 Beispiel Algorithmus von Kruskal G7 = (V , E7 ), nächste Kante e8 , wird hinzugefügt graphen.pdf, Seite 58 Beispiel Algorithmus von Kruskal G8 = (V , E8 ), nächste Kante e9 , wird hinzugefügt graphen.pdf, Seite 59 Beispiel Algorithmus von Kruskal G9 = (V , E9 ), nächste Kante e10 , wird hinzugefügt graphen.pdf, Seite 60 Beispiel Algorithmus von Kruskal G10 = (V , E10 ), nächste Kante e11 , wird nicht hinzugefügt, da sonst ein Kreis entsteht graphen.pdf, Seite 61 Beispiel Algorithmus von Kruskal G11 = (V , E11 ), nächste Kante e12 , wird hinzugefügt graphen.pdf, Seite 62 Beispiel Algorithmus von Kruskal G12 = (V , E12 ), nächste Kante e13 , wird nicht hinzugefügt, da sonst ein Kreis entsteht graphen.pdf, Seite 63 Beispiel Algorithmus von Kruskal G13 = (V , E13 ), nächste Kante e14 , wird nicht hinzugefügt, da sonst ein Kreis entsteht graphen.pdf, Seite 64 Beispiel Algorithmus von Kruskal G14 = (V , E14 ), nächste Kante e15 , wird nicht hinzugefügt, da sonst ein Kreis entsteht graphen.pdf, Seite 65 Beispiel Algorithmus von Kruskal G15 = (V , E15 ), nächste Kante e16 , wird hinzugefügt graphen.pdf, Seite 66 Beispiel Algorithmus von Kruskal G16 = (V , E16 ), nächste Kante e17 , wird nicht hinzugefügt, da sonst ein Kreis entsteht graphen.pdf, Seite 67 Beispiel Algorithmus von Kruskal: Ende G19 = (V , E19 ) Alle Kanten sind abgearbeitet und alle Knoten verbunden graphen.pdf, Seite 68 Kanten mit gleichem Gewicht Haben mehrere Kanten das gleiche Gewicht, so ist die Sortierung der Kanten nicht eindeutig. Kanten mit gleichem Gewicht können in beliebiger Reihenfolge abgearbeitet werden. Das Ergebnis des Algorithmus hängt dann im Allgemeinen von dieser Reihenfolge ab und ist somit nicht eindeutig. In jedem Fall liefert der Algorithmus von Kruskal aber ein minimales Gerüst. Ende des Algorithmus Der Algorithmus kann beendet werden, sobald ausgewählt sind, wobei n n−1 Kanten die Zahl der Knoten ist. Im Beispiel ist dies bei der Kantenmenge E16 der Fall. Dann sind alle Knoten durch Wege verbunden. Bei der Abarbeitung der verbleibenden Kanten (im Beispiel alle Kanten mit Gewicht > 26) würden dem Spannbaum keine neuen Kanten mehr hinzugefügt werden. graphen.pdf, Seite 69 Bemerkungen I Um feststellen zu können, wann durch hinzufügen einer neuen Kante ein geschlossener Weg entstehen würde, werden die Knoten in der Praxis markiert. Dabei bekommen alle Knoten, die zur selben Zusammenhangskomponente des schon bestimmten Teilgraphen gehören, die selbe Markierung. Dies kann z. B. mit einer UnionFindDatenstruktur geschehen. I Der Algorithmus von Kruskal benötigt Operationen, wobei m = #E O (m · log m) die Anzahl der Kanten ist. Dabei ist der gröÿte Aufwand durch das Sortieren der Kanten gegeben. I Der Algorithmus von Kruskal ist ein sogenannter Greedy-Algorithmus. I Einen alternativen Ansatz zur Bestimmung eines minimalen Spannbaums liefert der Algorithmus von Prim. graphen.pdf, Seite 70