Minimal Spanning Tree Übersicht: • Publikumsaufgabe • Anwendungen • Begriffsklärung • Algorithmus Philip Schill Erik Kurrat Simon Walther Auftrag: • Alle Punkte müssen zusammenhängen (auch über andere Punkte) • Möglichst kurze Gesamtverbindung Minimal Spanning Tree Anwendung • • • • Computernetzwerk Stromnetz Straßenbau (von Ort zu Ort) Wassernetz • Allgemein: Veranschaulichung von Systemen Optimierung bzw. Minimierung Anwendung Computernetzwerk • Verbindung von mehreren Computern • Möglichst wenig Kabel • Alle Computer müssen enthalten sein Beispiel Computernetzwerk Anwendung Stromnetz • Verbindung von mehreren Strommasten • Möglichst wenig Stromkabel • Alle Masten müssen enthalten sein Beispiel Stromnetz Anwendung Straßenbau • Verbindung von mehreren Orten • Kurze Strecken • Alle Orte müssen eingegliedert werden Beispiel Straßenbau Problem: Ist die Anwendung eines MST immer sinnvoll? Algorithmen • • • • Was ist ein Algorithmus? Was ist ein Graph? Eigenschaften eines Graphen Minimal Spanning Tree – Gesucht! – Der Algorithmus von Kruskal • • • • Anfangszustand Arbeitsanweisung Abbruchbedingung Beispiel Was ist ein Algorithmus? • • Definition: „Ein Algorithmus ist eine systematische Anweisung um eine (ja/nein)Fragestellung definitiv zu beantworten.“ Aufbau eines Algorithmus: 1. Anfangszustand 2. Anweisung (meist mehrere Arbeitsschritte). Oft auch als Wiederholung 3. Abbruchbedingung • • Ja! → Folgerung Nein! → Folgerung Was ist ein Graph? • Ein Graph G besteht aus einer Menge von Knoten V (Vertices) und einer Menge Kanten E (Edges). • Eine Kante verbindet zwei Knoten miteinander Eigenschaften eines Graphen • • • • • Zusammenhängend/nicht zusammenhängend Bewertet/unbewertet Gerichtet/ungerichtet Mit/ohne Doppelkanten Mit/ohne Schleifen Eigenschaften eines Graphen Nicht zusammenhängend: Es gibt im Graph Knoten (hier A und B), die nicht durch einen Pfad (Reihe von Kanten) verbunden sind Eigenschaften eines Graphen Bewertet: Die einzelnen Kanten bekommen ein Gewicht (d.h. eine Bewertung) Oft: große Zahl = schlecht, kleine Zahl = gut. Eigenschaften eines Graphen Gerichtet: „Einbahnstraße: Durchfahrt nur in eine Richtung möglich.“ Eigenschaften eines Graphen mit Doppelkanten: Zwei benachbarte Knoten werden durch zwei Kanten verbunden. Eigenschaften eines Graphen mit Schlingen: Ein Knoten wird durch eine Kante mit sich selbst verbunden. Eigenschaften eines Graphen Schlicht: Der Graph ist zusammenhängend, vollständig, unbewertet, ungerichtet, ohne Doppelkanten und schlingenfrei. Minimal Spanning Tree Gesucht! Ein Graph mit folgenden Eigenschaften wird gesucht: • Enthält alle Knoten • Zusammenhängend • Möglichst kurze Gesamtverbindung aller Punkte • Keine Schleifen Der Algorithmus von Kruskal Anfangszustand • Finde die kleinste Kante und markiere sie! (Wenn es mehrere gibt, nehme eine davon!) Der Algorithmus von Kruskal Arbeitsanweisung • • • Finde die kleinste unmarkierte Kante, welche mit den markierten Kanten keinen Kreis bildet! Markiere sie! Wieder hole diese Schritte bis zur Abbruchbedingung! Der Algorithmus von Kruskal Abbruchbedingung • Stoppe, sobald jeder Knoten markiert ist: – – Die markierten Kanten sind zusammenhängend => Dies ist der Minimal Spanning Tree!!! Die markierten Kanten sind nicht zusammenhängend => Es gibt keinen Minimal Spanning Tree!!! Der Algorithmus von Kruskal Beispiel Der Algorithmus von Kruskal Beispiel Der Algorithmus von Kruskal Beispiel Der Algorithmus von Kruskal Beispiel Der Algorithmus von Kruskal Beispiel Der Algorithmus von Kruskal Beispiel Der Algorithmus von Kruskal Beispiel Der Algorithmus von Kruskal Beispiel Der Algorithmus von Kruskal Beispiel Der Algorithmus von Kruskal Beispiel Der Algorithmus von Kruskal Beispiel Der Algorithmus von Kruskal Beispiel Wir bedanken uns: • • • • • Lessing-Gymnasium Bunsen-Gymnasium Herr Winckler Frau Döbbeling Herr Schmuck • Publikum fürs Zuhören • Hector-Seminar Quellen • Algorithmen: http://www.people.vcu.edu/~gasmerom/MAT131/mst.html http://www.cs.man.ac.uk/~graham/cs2022/greedy/index.html • Animationen: http://students.ceid.upatras.gr/~papagel/project/kruskal.htm