Beispiel - Index of

Werbung
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
Herunterladen