Philip Schill Erik Kurrat Simon Walther 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: Anfangszustand Anweisung (meist mehrere Arbeitsschritte). Oft auch als Wiederholung 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