Graphen Definitionen

Werbung
Graphen
Graphen werden häufig als Modell für das Lösen eines Problems aus der Praxis verwendet, wie wir im
Kapitel 1 gesehen haben.
Der Schweizer Mathematiker Euler hat als erster Graphen verwendet, um das Königsberger
Brückenproblem zu lösen. Gesucht war ein geschlossener Weg (d.h. Startpunkt=Endpunkt), der
genau einmal über jede Königsberger Brücke führt (vergl. Abb. 7.1 p. 138).
Euler hat das Problem abstrahiert und dabei die Graphentheorie erfunden.
Abbildung 7.2 p. 138 ist ein abstraktes Modell der Abbildung 7.1
Ein Graph G =(V,E) besteht aus einer Menge V von Knoten (englisch vertexes) und einer Menge E
von Kanten (englisch edges), welche einige der Knoten verbinden.
Bsp. Abbildung 7.3, p. 139 ist ein Graph mit 5 Knoten und 6 Kanten.
Im Gegensatz zu einem Digraph sind die Kanten bei einem Graphen nicht gerichtet.
Ein Graph, in dem es einen Weg gibt, der am selben Knoten beginnt und endet, und der jede Kante
genau einmal durchläuft, heisst Eulerscher Graph.
Knoten dürfen dabei mehrmals durchlaufen werden.
Versuchen Sie im Graphen in Abb. 7.2 einen Eulerschen Weg zu finden.
Da der Start- und Schlussknoten identisch sind, so müssen für einen Eulerschen Weg bei jedem
Knoten eine gerade Anzahl Kanten zusammenlaufen. Bei nur einer Kante komme ich nicht mehr
weg, bei 3 Kanten komme ich das zweite Mal nicht mehr weg.
Euler konnte auch die Umkehrung beweisen. Und somit gilt:
Ein Graph besitzt genau dann einen Eulerschen Weg, wenn der Grad jedes Knoten (d.h. die Anzahl
der im Knoten zusammenlaufenden Kanten) gerade ist.
Ernest Peter
Propädeutikum Mathematik Informatik/Wirtschaftsinformatik, Block 11
-1-
Definitionen
Ein schlichter Graph ist ein Graph ohne Schlingen (kein Knoten ist durch eine
Kante mit sich selber verbunden) und ohne Mehrfachkanten (kein Knotenpaar
ist durch zwei Kanten verbunden)
In einem schlichten Graphen heissen zwei Knoten benachbart (oder adjazent),
wenn sie durch eine Kante verbunden sind
Die Menge E der Kanten bestehend aus je 2 benachbarten Knoten bildet eine
Relation auf der Menge der Knoten V.
Zeigen Sie, dass diese Relation für einen schlichten Graphen symmetrisch aber
nicht reflexiv ist.
Die logische Matrix zur Kantenrelation heisst Adjazenzmatrix.
Lesen Sie das Beispiel 7.1 p. 139
Ein Teilgraph eines Graphen G = (V, E) ist ein Graph, welcher aus einem Teil der
Knoten von G und einem Teil der Kanten von G besteht.
D.h. G‘ = (V‘,E‘) ist Teilgraph von G = (V,E) falls V‘⊆V und E‘⊆E
Lesen Sie das Beispiel 7.2 p. 140
Ernest Peter
Propädeutikum Mathematik Informatik/Wirtschaftsinformatik, Block 11
-2-
1
Definitionen 2
Ein Weg der Länge k in einem Graphen ist eine Folge von k verschiedenen Knoten,
zwei aufeinander folgende jeweils durch eine Kante verbunden.
Ein Zyklus oder Kreis ist ein Weg mit Anfangsknoten gleich Endknoten, ohne dass
ein anderer Knoten mehrmals durchlaufen wird.
Lesen Sie das Beispiel 7.3 p. 141
Ein Graph, der keine Zyklen enthält, heisst azyklischer Graph.
Ein Graph ist zusammenhängend, wenn jedes Paar von Knoten durch einen Weg
verbunden ist.
Jeder nicht-zusammenhängende Graph kann in zusammenhängende Teilgraphen
zerlegt werden.
Der Zusammenhangsalgorithmus p. 141 unten berechnet die Anzahl
zusammenhängende Teilgraphen (die Konnektivitätszahl des Graphen)
Lesen Sie den Algorithmus
Lesen Sie das Beispiel 7.4 p. 142
Lösen Sie die Aufgaben 7.1-7.2 p. 153
Ernest Peter
Propädeutikum Mathematik Informatik/Wirtschaftsinformatik, Block 11
-3-
7.2 Hamiltonsche Graphen
Ein Hamiltonscher Zyklus eines Graphen ist ein geschlossener Weg, welcher genau
einmal durch jeden Knoten führt.
Was ist der Unterschied zum Eulerschen Weg?
Ein Graph der einen Hamiltonscher Zyklus besitzt heisst Hamiltonscher Graph.
Hamiltonsche Zyklen spielen z.B. bei der Planung von Strassen- oder
Telekommunikationsnetzen eine Rolle.
Ein Graph heisst vollständig, wenn jeder Knoten mit jedem andern durch eine Kante
direkt verbunden ist (benachbart ist).
Vollständige Graphen sind immer hamiltonsch. Ich kann die Knoten in jeder
beliebigen Reihenfolge durchlaufen, da jeder mit jedem verbunden ist.
Finden Sie zum vollständigen Graphen in Abb. 7.8 p. 143 einen Hamiltonschen
Zyklus
Lesen Sie die Beispiele 7.5 p. 144
Lösen Sie die Aufgaben 7.3-7.7 p. 153-55
Ernest Peter
Propädeutikum Mathematik Informatik/Wirtschaftsinformatik, Block 11
-4-
2
Das Problem des Handlungsreisenden
Viele praktische Anwendungen das Hamiltonschen Zyklus lassen sich auf das
klassischen Problem des Handlungsreisenden zurückführen:
Ein Handlungsreisender muss eine Anzahl Städte besuchen. Gesucht ist ein Weg
der genau einmal durch jede Stadt führt und die kleinsten Reisekosten aufweist,
wenn die Reisekosten zwischen je 2 Städten bekannt sind.
Es ist kein effizienter Algorithmus bekannt. Ein ineffizienter Algorithmus mit Ordnung
O(2n) bestünde im Ausprobieren aller möglichen Wege.
Der Algorithmus des nächsten Nachbars liefert einen guten, wenn auch in der Regel
nicht optimalen Weg.
Lesen Sie den Algorithmus auf Seite 145 unten
Lesen Sie das Beispiel 7.6 p. 146
Lösen Sie die Aufgaben 7.8 p. 155
Ernest Peter
Propädeutikum Mathematik Informatik/Wirtschaftsinformatik, Block 11
-5-
7.3 Bäume
Eine wichtige Klasse von Graphen sind Bäume.
Ein Baum ist ein zusammenhängender, nicht-zyklischer Graph.
D.h. jeder Knoten ist mit jedem andern über einen Weg verbunden und der
Graph enthält keine Zyklen.
Es gibt verschiedene Möglichkeiten um zu beweisen, dass ein Graph G mit n
Knoten und m Kanten ein Baum ist. Jede der folgenden Bedingungen genügt,
dass ein Graph ein Baum ist:
1. zwischen zwei beliebigen Knoten gibt es genau einen Weg
2. G ist zusammenhängend und die Anzahl Kanten m ist gleich die Anzahl Knoten
n minus 1: m = n-1
3. G ist zusammenhängend und das Entfernen einer einzigen beliebigen Kante
macht ihn unzusammenhängend
4. G ist azyklisch und das Hinzufügen einer einzigen beliebigen Kante macht ihn
zyklisch
Lesen Sie das Beispiel 7.7 p. 147 wo die Methode 2 bewiesen ist
Lösen Sie die Aufgaben 7.9-10 p. 156
Ernest Peter
Propädeutikum Mathematik Informatik/Wirtschaftsinformatik, Block 11
-6-
3
Spannbaum
Jeder zusammenhängende Graph enthält Bäume als Teilgraphen
Ein Teilgraph eines Graphen G, welcher ein Baum ist und alle Knoten von G enthält,
heisst Spannbaum – d.h. er „spannt“ den Graphen auf.
Lesen Sie im Abschnitt p. 148 oben, wie ein Spannbaum konstruiert wird
Lesen Sie das Beispiel 7.8 p. 148
Die bekannteste Anwendungen der Konstruktion eines Spannbaumes ist das
Problem der minimalen Verbindungen.
Dabei soll ein Schienennetz gebaut werden, das eine vorgegebene Gruppe von
Städten miteinander verbindet, so dass die Baukosten minimal sind.
Ein Spannbaum dessen Summe der Kantengewichte minimal ist heisst minimaler
Spannbaum (MST: minimal spanning tree).
Beim Problem der minimalen Verbindungen ist also ein minimaler Spannbaum
gesucht.
Lesen Sie den Algorithmus zur Konstruktion eines minimalen Spannbaums p. 149
Lesen Sie das Beispiel 7.9 p. 149-50
Lösen Sie die Aufgaben 7.11-13 p. 156-57
Ernest Peter
Propädeutikum Mathematik Informatik/Wirtschaftsinformatik, Block 11
-7-
Wurzelbaum, Teilbaum
Bäume eigenen sich für die Darstellung hierarchischer Informationen wie ein
Organigramm oder ein Stammbaum.
Lesen Sie die Abbildung 7.15 p. 150 unten
Solche Bäume bezeichnet man als Wurzelbäume, d.h. sie besitzen einen
herausragenden Knoten, der als Wurzel des Baumes bezeichnet wird, z.B, der
Chef oder der Stammvater.
Die Wurzel wird normalerweise zuoberst gezeichnet und die Knoten je nach
Hierarchie darunter.
Knoten die unmittelbar unter einem Knoten liegen und mit diesem direkt verbunden
sind heissen dessen Kinder.
Die Kinder der Wurzel sind selber wieder Wurzeln von Teilbäumen (vergl. Abb.
7.17).
Die untersten Knoten, welche keine Kinder besitzen, heissen Blätter.
In der Informatik sind binäre Wurzelbäume besonders wichtig. Bei diesen hat jeder
Knoten höchstens zwei Kinder.
Lesen Sie das Beispiel 7.10 p. 152
Lösen Sie die Aufgaben 7.14 p. 157
Ernest Peter
Propädeutikum Mathematik Informatik/Wirtschaftsinformatik, Block 11
-8-
4
7.5 Anwendung: Binärer Suchbaum
Binäre Wurzelbäume sind besonders gut geeignet für die geordnete Ablage von
sortierbaren Daten, z.B. von alphabetisch geordneten Wörtern.
Abbildung 7.26 p. 160 ist ein Beispiel für die Ablage der Wörter eines Satzes in
einem binären Wurzelbaum.
Dabei verlangen wir, dass jeder Dateneintrag im linken Teilbaum eines Knotens v in
der alphabetischen Ordnung vor dem in v abgelegten Wort stehen soll.
Beispiel: HEUTE und EINE steht in der alphabetischen Sortierung vor MEIN.
Ein nach dieser Regel aufgebauter Baum heisst binärer Suchbaum.
Das Anwendungsbeispiel besteht aus den nach Namen organisierten Datensätzen
der Studenten einer Universität, für welche die folgenden Operationen
untersucht werden:
• Suche eines Namen im binären Suchbaum
• Einfügen/Ablegen eines Namen im binären Suchbaum
• Drucken der sortierte Liste der Namen eines binären Suchbaums
Ernest Peter
Propädeutikum Mathematik Informatik/Wirtschaftsinformatik, Block 11
-9-
Suche im Binärbaum
Der Algorithmus Suche bestimmt, ob ein eingegebener Begriff ein Knoten in einem
gegebenen Binärbaum ist, indem er den Suchbegriff zuerst mit der Wurzel des
Baums vergleicht und dann je nachdem, ob der Suchbegriff vor oder nach der
Wurzel kommt im linken oder rechten Teilbaum weitersucht.
Es ist ein rekursiver Algorithmus. D.h. die Suche in einem linken oder rechten
Teilbaum ist identisch mit dem Suchalgorithmus im ganzen Baum.
Lesen Sie den Suchalgorithmus auf Seite 161
Lesen Sie die Aufgabe 1 Seite 162
Ernest Peter
Propädeutikum Mathematik Informatik/Wirtschaftsinformatik, Block 11
-10-
5
Einfügen im Binärbaum
Der Algorithmus Einfügen fügt einen eingegebener Begriff als neuen Knoten in
einen Binärbaum ein, indem er den Binärbaum hinunter geht und den Begriff als
Blatt am richtigen Ort gemäss den Regeln einfügt.
Lesen Sie den Suchalgorithmus auf Seite 162
Lesen Sie die Aufgabe 2 Seite 163
Legen Sie den Satz aus Abbildung 7.26 in einen Binärbaum ab
Ernest Peter
Propädeutikum Mathematik Informatik/Wirtschaftsinformatik, Block 11
-11-
Ordnen im Binärbaum
Der Algorithmus Orden druckt alle Einträge in einem Binärbaum in der ihrer
Ordnung entsprechenden Reihenfolge aus. Auch er ist rekursiv, indem er zuerst
den linken Teilbaum ordnet, dann die Wurzel druckt und schliesslich den
rechten Teilbaum ordnet.
Lesen Sie den Ordungsalgorithmus auf Seite 164
Lesen Sie die Aufgabe 3 Seite 165
Ernest Peter
Propädeutikum Mathematik Informatik/Wirtschaftsinformatik, Block 11
-12-
6
Aufgaben bis zur Prüfung
Lesen Sie das Skript nochmals durch.
Lösen Sie die darin angegebenen Übungen aus dem Buch fertig.
Lesen Sie Haggarty Kap. 7
Markieren Sie im Taschenbuch der Mathematik die behandelten Formeln mit
Leuchtstift: p. 361-68
Lösen Sie die prüfungsähnlichen Aufgaben
Bei Problemen Mail an [email protected] oder [email protected]
Ernest Peter
Propädeutikum Mathematik Informatik/Wirtschaftsinformatik, Block 11
-13-
Ziele
•
•
•
•
•
•
•
•
•
•
Die Studierenden kennen die Definition eines Graphen als Menge von Knoten
und Kanten, eines Eulerschen Graphen, einen schlichten Graphen, einen
Teilgraph und den Grad eines Knoten
Sie können die Adjazenzmatrix einen Graphen aufstellen
Sie kennen die Begriffe Weg, Zyklus, azyklischer, zusammenhängender Graph.
Sie kennen die Definition eines Hamilton‘schen Graphen und eines
vollständigen Graphen.
Sie können den Algorithmus des nächsten Nachbars anwenden für die
Bestimmung eines suboptimalen Hamilton‘schen Graphen mit minimalen
Gesamtgewicht
Sie kennen den Begriff des Baumes mit seinen verschiedenen hinreichenden
Bedingungen, dass ein Baum ein Spannbaum ist
Sie können den Algorithmus für die Bestimmung eines minimalen Spannbaums
anwenden
Sie kennen die Begriffe Wurzelbaum, Kinder, Blätter, binärer Wurzelbaum
Sie kennen das Handschlaglemma
Sie kennen die Anwendung der Graphentheorie bei binären Suchbäumen
Ernest Peter
Propädeutikum Mathematik Informatik/Wirtschaftsinformatik, Block 11
-14-
7
Ernest Peter
Propädeutikum Mathematik Informatik/Wirtschaftsinformatik, Block 11
-15-
8
Herunterladen