Vorlesung 1

Werbung
Algorithmische Graphentheorie
Vorlesung 1: Einführung in die Graphentheorie
Babeş-Bolyai Universität, Department für Informatik, Cluj-Napoca
[email protected]
17. März 2017
1/74
G RAPHENTHEORIE
Vorbemerkungen
Die Vorlesung wird folienbasiert gehalten;
Die Folien enthalten nur die wichtigsten Aspekte
(Definitionen, Sätze, knappe Beispiele, wichtige
Bemerkungen);
Alles was sonst eine Vorlesung ausmacht (Erläuterungen,
ausführliche Beispiele, Beweise von Sätzen ,
Anwendungen, Querverweise auf andere Gebiete der
Informatik, etc.) gibt es nur in der Vorlesung selbst.
Sprechstunden:
nach Vereinbarung
2/74
Ü BUNGEN
Autonomes Lösen der Aufgaben
ohne vorherige Wiederholung seitens des Dozenten
ohne Musterlösung an der Tafel (kommt dann später als extra
Datei).
Notwendig dafür ist, dass
man während der Vorlesung mitschreibt
man sich für die nächste Übungsstunde zu Hause
vorbereitet
Mitschrift und Folien mitgebracht werden
Initiative ergriffen wird.
3/74
V ORTEILE
aktives Erlernen der Inhalte ist effektiver
Zusammenhänge aus dem Vorlesungsstoff werden selbst
entdeckt und ausgearbeitet
Man erlernt strukturiert und unabhängig zu denken
team work wird erlernt
Erklären wird geübt und erlernt
Trainieren für die Prüfung ;-)
You have finished your study of . . . Your personal
strengths include pro-activity and team work, you are
communicative and willing to cooperate. (typical job
advertisement)
4/74
L ITERATUR
Slides benutzen Lehrmaterial aus folgenden Lehrbücher:
V. Turau - Algorithmische Graphentheorie
R. Sedgewick - Algorithms
V.K. Balakrishnan - Graph Theory
R. Sedgewick - Algorithms in C++
5/74
E INF ÜHRUNG
6/74
E INF ÜHRUNG
Brückenproblem
6/74
E IN LUSTIGES B EISPIEL
7/74
N OCH EIN B EISPIEL
8/74
U ND JETZT ALS G RAPH DARGESTELLT
9/74
E INLEITUNG
In vielen praktischen und theoretischen Anwendungen
treten Situationen auf, die durch ein System von Objekten
und Beziehungen zwischen diesen Objekten
charakterisiert werden können.
Die Graphentheorie stellt zur Beschreibung von solchen
Systemen ein Modell zur Verfügung: den Graphen.
Die problemunabhängige Beschreibung mittels eines
Graphen läßt die Gemeinsamkeit von Problemen aus den
verschiedensten Anwendungsgebieten erkennen.
10/74
E INLEITUNG
Die Graphentheorie ermöglicht somit die Lösung vieler
Aufgaben, welche aus dem Blickwinkel der Anwendung
keine Gemeinsamkeiten haben.
Die algorithmische Graphentheorie stellt zu diesem Zweck
Verfahren zur Verfügung, die problemunabhängig
formuliert werden können.
Ferner erlauben Graphen eine anschauliche Darstellung,
welche die Lösung von Problemen häufig erleichtert.
11/74
B EISPIEL : V ERLETZLICHKEIT DER
K OMMUNIKATIONSNETZE
Ein Kommunikationsnetz ist ein durch
Datenübertragungswege realisierter Verband mehrerer
Rechner.
Es unterstützt den Informationsaustausch zwischen
Benutzern an verschiedenen Orten.
12/74
V ERLETZLICHKEIT DER K OMMUNIKATIONSNETZE
Verletzlichkeit
Die Verletzlichkeit eines Kommunikationsnetzes ist durch die
Anzahl von Leitungen oder Rechnern gekennzeichnet, die
ausfallen müssen, damit die Verbindung zwischen zwei
beliebigen Benutzern nicht mehr möglich ist.
Häufig ist eine Verbindung zwischen zwei Benutzern über
mehrere Wege möglich. Somit ist beim Ausfall einer Leitung
oder einer Station die Verbindung nicht notwendigerweise
unterbrochen.
13/74
V ERLETZLICHKEIT DER K OMMUNIKATIONSNETZE
Welche Netzwerke sind verletzlicher?
Ein Netzwerk, bei dem schon der Ausfall einer einzigen
Leitung oder Station gewisse Verbindungen unmöglich macht
ist verletzlicher, als ein solches, wo dies nur beim Ausfall von
mehreren Leitungen oder Stationen möglich ist.
Die minimale Anzahl von Leitungen und Stationen, deren
Ausfall die Funktion des Netzwerkes beeinträchtigt, hängt
sehr stark von der Beschaffenheit des Netzwerkes ab.
Netzwerke lassen sich graphisch durch Knoten und
Verbindungslinien zwischen den Knoten darstellen: Die
Knoten entsprechen den Stationen, die Verbindungslinien
den Datenübertragungswegen.
14/74
N ETZWERKTOPOLOGIEN
15/74
N ETZWERKTOPOLOGIE
Vermaschte Struktur
Beim Ausfall einer Station ist die Kommunikation zwischen
den restlichen Stationen weiter möglich. Sogar der Ausfall von
bis zu sechs Datenübertragungswegen muss noch nicht zur
Unterbrechung führen. Um die Kommunikation mit einem
Benutzer zu unterbrechen, müssen mindestens vier
Datenübertragungswege ausfallen.
Sternstruktur
Nach dem Ausfall der zentralen Station ist keine
Kommunikation mehr möglich. Hingegen führt in diesem Fall
der Ausfall einer Leitung nur zur Abkopplung eines Benutzers.
16/74
W EITERE THEORETISCHE B EGRIFFE
Schnitt
Eine Menge von Datenübertragungswegen in einem
Kommunikationsnetzwerk heißt Schnitt, falls ihr Ausfall die
Kommunikation zwischen irgendwelchen Stationen
unterbricht. Ein Schnitt mit der Eigenschaft, daß keine echte
Teilmenge ebenfalls ein Schnitt ist, nennt man minimaler
Schnitt.
Kohäsion
Die Anzahl der Verbindungslinien in dem minimalen Schnitt
mit den wenigsten Verbindungslinien nennt man
Verbindungszusammenhang oder auch die Kohäsion des
Netzwerkes. Sie charakterisiert die Verletzlichkeit eines
Netzwerkes. Die Kohäsion von Bus- und Sternstruktur ist
gleich 1, die der Ringstruktur gleich 2, und die vermaschte
Struktur hat die Kohäsion 4.
17/74
N ETZWERKTOPOLOGIE
Knotenzusammenhang
Er gibt die minimale Anzahl von Stationen an, deren Ausfall
die Kommunikation der restlichen Stationen untereinander
unterbrechen würde.
Bei der Bus- und Sternstruktur ist diese Zahl gleich 1 und bei
der Ringstruktur gleich 2. Fällt bei der vermaschten Struktur
eine Station aus, so bilden die verbleibenden Stationen immer
noch eine vermaschte Struktur. Somit ist bei dieser Struktur
beim Ausfall von beliebig vielen Stationen die Kommunikation
der restlichen Stationen gesichert.
18/74
W EGPLANUNG F ÜR R OBOTER
Planung von kollisionsfreien Wegen für Roboter in ihrem
Einsatzgebiet.
Wie findet man die kürzesten Wege, auf denen der Roboter
mit keinem Hindernis in Kontakt kommt?
Zum Auffinden dieser Wege muß eine Beschreibung der
Geometrie des Roboters und des Einsatzgebietes vorliegen.
Ohne Einschränkungen der Freiheitsgrade des Roboters
und der Komplexität des Einsatzgebietes ist dieses
Problem praktisch nicht lösbar.
19/74
B EISPIEL
20/74
W IE FINDET MAN EINE L ÖSUNG ?
Modellieren!
21/74
W IE FINDET MAN EINE L ÖSUNG ?
Modellieren!
Schränke die Bewegungen auf eine Ebene
Reduziere Roboter auf einen Punkt
Problem wird zur: Für eine Menge von Polygonen in der
Ebene, einen Startpunkt s und einen Zielpunkt z ist der
kürzeste Weg von s nach z gesucht, welcher die Polygone
nicht schneidet
21/74
L ÖSUNG
1
2
3
4
Geradensegmente von s oder z zu einer konvexen Ecke
eines Hindernisses, welche keine anderen Hindernisse
schneiden
Kanten von Hindernissen zwischen konvexen Ecken
Geradensegmente zwischen konvexen Ecken von
Hindernissen, welche keine anderen Hindernisse
schneiden
das Geradensegment von s nach z, sofern kein Hindernis
davon geschnitten wird.
22/74
L ÖSUNG
Für jede Wahl von s und z ist der kürzeste Weg eine
Kombination von Geradensegmenten der oben beschriebenen
vier Typen. Der letzteTyp kommt nur dann vor,wenn die
direkte Verbindung von s und z kein Hindernis schneidet; in
diesem Fall ist dies auch der kürzeste Weg.
23/74
K ÜRZESTER W EG
24/74
W IRTSCHAFT: O PTIMALE U MR ÜSTZEITEN F ÜR
F ERTIGUNGSZELLEN
Die Maschinen einer Fertigungszelle in einer
Produktionsanlage müssen für unterschiedliche
Produktionsaufträge verschieden ausgerüstet und
eingestellt werden.
Während dieser Umrüstzeit kann die Fertigungszelle nicht
produktiv genutzt werden. Aus diesem Grund wird eine
möglichst geringe Umrüstzeit angestrebt.
Liegen mehrere Produktionsaufträge vor, deren
Reihenfolge beliebig ist, und sind die entsprechenden
Umrüstzeiten bekannt, so kann nach einer Reihenfolge der
Aufträge gesucht werden, deren Gesamtumrüstzeit
minimal ist.
25/74
W IRTSCHAFT: O PTIMALE U MR ÜSTZEITEN F ÜR
F ERTIGUNGSZELLEN
Gegeben sind n Produktionsaufträge P1 , . . . , Pn .
Die Umrüstzeit der Fertigungszelle nach
Produktionsablauf Pi für den Produktionsablauf Pj wird
mit Tij bezeichnet.
Im allgemeinen ist Tij 6= Tji , d.h. die Umrüstzeiten sind
nicht symmetrisch.
Eine optimale Reihenfolge hat nun die Eigenschaft, dass
unter allen Reihenfolgen Pi1 , . . . , Pin die Summe
n−1
X
Tij ij+1
j=1
minimal ist.
Diese Summe stellt nämlich die Gesamtumrüstzeit dar.
26/74
W IRTSCHAFT: O PTIMALE U MR ÜSTZEITEN F ÜR
F ERTIGUNGSZELLEN
Das Problem läßt sich auch graphisch interpretieren: Jeder
Produktionsablauf wird durch einen Punkt in der Ebene
und jeder mögliche Umrüstvorgang durch einen Pfeil vom
Anfangs- zum Zielzustand dargestellt.
Die Pfeile werden mit den entsprechenden Umrüstzeiten
markiert.
27/74
W IRTSCHAFT: O PTIMALE U MR ÜSTZEITEN F ÜR
F ERTIGUNGSZELLEN
28/74
W IRTSCHAFT: O PTIMALE U MR ÜSTZEITEN F ÜR
F ERTIGUNGSZELLEN
Eine Reihenfolge der Umrüstvorgänge entspricht einer
Folge von Pfeilen in den vorgegebenen Richtungen.
Hierbei kommt man an jedem Punkt genau einmal vorbei.
Die Gesamtumrüstzeit entspricht der Summe der
Markierungen dieser Pfeile; umgekehrt entspricht jeder
Weg mit der Eigenschaft, dass er an jedem Punkt genau
einmal vorbeikommt, einer möglichen Reihenfolge.
Alle Wege müssen bei Punkt 1 beginnen.
29/74
W IRTSCHAFT: O PTIMALE U MR ÜSTZEITEN F ÜR
F ERTIGUNGSZELLEN
Für n Produktionsaufträge gibt es somit n + 1 Punkte.
Es gibt dann insgesamt n! verschiedene Wege.
Eine Möglichkeit, den optimalen Weg zu finden, besteht
darin, die Gesamtumrüstzeiten für alle n! Wege zu
berechnen und dann den Weg mit der minimalen Zeit zu
bestimmen.
Im Beispiel: 6 verschiedene Wege; Weg 1 − 4 − 3 − 2 der
günstigste
n = 10: 3628800 Wege
n = 15: 1.3 × 1012 Wege;
Eine Sekunde für 1 Million Wege → mehr als 15 Tage ⇒
suche andere Möglichkeiten
30/74
O BJEKTORIENTIERTE P ROGRAMMIERSPRACHEN
In traditionellen Programmiersprachen sind Daten und
Prozeduren separate Konzepte.
Der Programmierer ist dafür verantwortlich, beim Aufruf
einer Prozedur diese mit aktuellen Parametern vom
vereinbarten Typ zu versorgen.
In objektorientierten Programmiersprachen steht das
Konzept der Objekte im Mittelpunkt.
Objekte haben einen internen Zustand, welcher nur durch
entsprechende Methoden verändert werden kann.
Methoden entsprechen Prozeduren in traditionellen
Programmiersprachen, und das Konzept einer Klasse ist
die Verallgemeinerung des Typkonzeptes.
Jedes Objekt ist Instanz einer Klasse; diese definiert die
Struktur und die Methoden zum Verändern des Zustandes
ihrer Instanzen.
31/74
O BJEKTORIENTIERTE P ROGRAMMIERSPRACHEN
Ein Hauptziel der objektorientierten Programmierung ist
es, eine gute Strukturierung und eine hohe
Wiederverwendbarkeit von Software zu erzielen.
Dazu werden Klassen in Hierarchien angeordnet; man
spricht dann von Ober- und Unterklassen.
Jede Methode einer Klasse ist auch auf die Instanzen aller
Unterklassen anwendbar.
Man sagt, eine Klasse vererbt ihre Methoden rekursiv an
ihre Unterklassen.
Der Programmierer hat aber auch die Möglichkeit, die
Implementierung einer geerbten Methode zu
überschreiben. Die Methode behält dabei ihren Namen; es
wird nur die Implementierung geändert.
32/74
O BJEKTORIENTIERTE P ROGRAMMIERSPRACHEN
1
Enthält ein Programm den Aufruf einer Methode für ein
Objekt, so kann in vielen Fällen während der
übersetzungszeit nicht entschieden werden, zu wel- cher
Klasse dieses Objekt gehört.
2
Somit kann auch erst zur Laufzeit des Programms die
korrekte Implementierung einer Methode ausgewählt
werden (late binding).
3
Der Grund hierfür liegt hauptsächlich darin, dass der Wert
einer Variablen der Klasse C auch Instanz einer
Unterklasse von C sein kann.
33/74
O BJEKTORIENTIERTE P ROGRAMMIERSPRACHEN
Die Auswahl der Implementierungeiner Methode zur Laufzeit
nennt man Dispatching.
Bestimmung der Klasse, zu der das Objekt gehört.
Falls diese Klasse eine Implementierung für diese Methode
zurVerfügung stellt, wird diese ausgeführt.
Andernfalls werden in aufsteigender Reihenfolge die
Oberklassen durchsucht und wie oben verfahren.
Wird keine Implementierung gefunden, so liegt ein Fehler
vor.
34/74
O BJEKTORIENTIERTE P ROGRAMMIERSPRACHEN
Im folgenden wird nur der Fall betrachtet, dass jede Klasse
maximal eine Oberklasse hat (single inheritance).
Hat eine Klasse mehrere Oberklassen (multiple
inheritance), so muss die Reihenfolge, in der in Schritt 3)
die Oberklassen durchsucht werden, festgelegt werden.
35/74
O BJEKTORIENTIERTE P ROGRAMMIERSPRACHEN
Abbildung 1: Klassenhierarchie bestehend aus sieben Klassen
A, B, . . . , G. Die Unterklassenrelation ist durch einen Pfeil von einer
Klasse zu ihrer Oberklasse gekennzeichnet. Ferner ist angegeben,
welche Klassen welche Methoden implementieren. Beispielsweise
kann die Methode m1 auf jedes Objekt angewendet werden, aber es
gibt vier verschiedene Implementierungen von m1 .
36/74
D ISPATCHTABELLEN
Abbildung 2: Welche Objekte verwenden welche Implementierung
von m1 ? Die Adresse einer Methode m, welche durch die Klasse K
implementiert wird, wird durch m | K dargestellt. Wird z.B. die
Methode m1 für eine Instanz der Klasse G aufgerufen, so ergibt sich
direkt, dass m1 | E die zugehörige Implementierung ist.
37/74
D ISPATCHTABELLEN
Ein Programm einer objektorientierten Sprache besteht im
wesentlichen aus Methodenaufrufen.
Untersuchungen haben gezeigt, dass in manchen
objektorientierten Sprachen bis zu 20% der Laufzeit für
Dispatching verwendet wird.
Aus diesem Grund besteht ein hohes Interesse an
schnellen Dispatchverfahren.
Die effizienteste Möglichkeit, Dispatching durchzuführen,
besteht darin, zur ubersetzungszeit eine globale
Dispatchtabelle zu erzeugen.
38/74
D ISPATCHTABELLEN
Diese Tabelle enthält für jede Klasse eine Spalte und für
jede Methode eine Zeile.
Ist m der Name einer Methode und C eine Klasse, so
enthält der entsprechende Eintrag der Dispatchtabelle die
Adresse der Implementierung der Methode m, welche für
Instanzen der Klasse C aufgerufen wird.
Ist eine Methode auf die Instanzen einer Klasse nicht
anwendbar, so bleibt der entsprechende Eintrag in der
Dispatchtabelle leer.
Diese Organisation garantiert, dass die Implementierung
einer Methode in konstanter Zeit gefunden wird; es ist
dabei genau ein Zugriff auf die Dispatchtabelle notwendig.
39/74
D ISPATCHTABELLEN
Abbildung 3: Dispatchtabelle für das obige Beispiel
40/74
D ISPATCHTABELLEN
Der große Nachteil einer solchen Dispatchtabelle ist der
Platzverbrauch.
Für die komplette Klassenhierarchie eines Smalltalk
Systems mit 766 Klassen und 4500 verschiedenen
Methoden ergibt sich ein Platzverbrauch von über 13
MBytes.
Hierbei benötigt eine Adresse 4 Bytes. Aus diesem Grund
sind Dispatchtabellen in dieser Form praktisch nicht
verwendbar.
41/74
D ISPATCHTABELLEN
Wie reduziert man den Speicheraufwand?
Man verwendet, für zwei Methoden, welche sich nicht
beeinflussen, eine einzige Zeile
Zwei Methoden beeinflussen sich nicht, wenn es kein
Objekt gibt, auf welches beide Methoden anwendbar sind.
Im obigen Beispiel beeinflussen sich die Methoden m3 und
m5 nicht; somit können beide Methoden in der
Dispatchtabelle eine gemeinsame Zeile verwenden.
Um eine optimale Kompression zu finden, wird zunächst
untersucht, welche Methoden sich nicht beeinflussen.
Dazu wird ein sogenannter Konfliktgraph gebildet.
In diesem werden Methoden, welche sich beeinflussen,
durch eine Kante verbunden.
42/74
K ONFLIKTGRAPH
Reduktion des Speicheraufwands um 90 Prozent!
43/74
WWW ALS GERICHTETER G RAPH
Page Rank Algorithmus von Lawrence Page and Sergey
Brin
LC(W) Anzahl der Verweise (Links), welche von Seite W
ausgehen
P(W) Menge der Webseiten, welche einen Verweis auf Seite
W enthalten
Page Rank:
X PR(D)
, d ∈ [0, 1]
PR(W) = (1 − d) + d ·
LC(D)
D∈PL(W)
44/74
S OZIALE N ETZWERKE
Folksonomies
Cliques
Kontexte
Begriffe als maximale Cliques
45/74
G RAPH - INFORMELL
46/74
V ERSCHIEDENE R EPR ÄSENTATIONEN
47/74
F ORMALE D EFINITION EINES G RAPHES
48/74
B EISPIEL
49/74
G RAPHISCHE D ARSTELLUNG
Graph drawing problem
planare Graphen
Euklidische Graphen
u.v.m.
50/74
F RAGESTELLUNGEN 1
Ein Graph ist bestimmt durch die Kanten, Knoten +
Zuordnung Kanten - Endknoten
Kann man die Kanten eines Graphen so durchlaufen, dass
man jeden Knoten (oder jede Kante) genau einmal
besucht?
Wie viele Kanten muss man mindestens durchlaufen, um
von einem Knoten zu einem anderen zu gelangen?
Wie viele Knoten muss man mindestens besetzen, damit
alle anderen Knoten die Graphen in der Nachbarschaft
eines besetzten Knotens liegen?
Gibt es zwischen je zwei Knoten einen Weg?
51/74
F RAGESTELLUNGEN 2
Wie viele Kanten kann man aus dem Graphen auswählen,
sodass keine zwei ausgewählten Kanten einen
gemeinsamen Endknoten besitzen?
Wie viele verschiedene Graphen mit einer gegebenen
Knoten- und Kantenanzahl gibt es? Wie viele davon sind
strukturell gleich?
Wie viele Knoten und Kanten kann man aus einem
Graphen entfernen, ohne dass dieser den Zusammenhang
(oder andere wichtige Eigenschaften) verliert?
Kann man einen gegebenen Graphen so in die Ebene
zeichen, dass sich keine zwei Kanten überkreuzen?
52/74
S PEZIELLE G RAPHEN
Definition
Ein Graph G = (V, E, γ) heißt endlich (finite) gdw. die Knotenmenge
V und die Kantenmenge E endlich sind.
V(G), E(G)
Schlinge: e ∈ E.γ(e) = {v}
Parallele Kanten: e, f ∈ E.γ(e) = γ(f ).
Definition
Ein Graph, der weder Schlingen noch parallele Kanten besitzt, heißt
schlichter Graph.
53/74
S CHLICHTE G RAPHEN - B EISPIEL
54/74
S CHLICHTE G RAPHEN - F ORMALE D EFINITION
55/74
H AUS VOM N IKOLAUS ALS SCHLICHTER G RAPH
56/74
D IAGRAMME
57/74
K NOTENGRADE
58/74
B EISPIEL
59/74
H ANDSCHLAGLEMMA
60/74
H ANDSCHLAGLEMMA 2
61/74
G RAD
62/74
S CHUBFACHPRINZIP
63/74
B EISPIEL
Herr Müller hat in seiner Sockenkiste weiße, schwarze und
grüne Socken.
Wenn er vier Socken aus der Kiste nimmt, hat er mindestens
zwei Socken mit der gleichen Farbe.
n = 4 Elemente verteilt auf m = 3 Mengen.
64/74
S CHUBFACHPRINZIP
Unter je fünf Punkten, die in einem Quadrat der
√ Seitenlänge 2
liegen, gibt es stets zwei, die einen Abstand ≤ 2 haben.
65/74
B EWEIS VOM S ATZ 1.3.
66/74
B EWEIS VOM S ATZ 1.3.
67/74
V OLLST ÄNDIGE G RAPHEN
68/74
B EISPIEL
Die vollständigen Graphen K4 und K5 :
69/74
I SOMORPHIE
70/74
I SOMORPHIE (2)
71/74
I SOMORPHIE (3)
Die Abbildung
72/74
I SOMORPHIE (4)
Definition
Wenn G1 = G2 in der Definition der Isomorphie, dann ist φ ein
Automorphismus.
Ein Automorphismus für einen Graphen G ist eine
strukturerhaltende Abbildung von G auf sich selbst.
Beispiel
Für den linken Graphen ist
{a → c, b → b, c → a, d → e, e → d}
ein Automorphismus.
73/74
I SOMORPHIE (5)
Zwei ja, eins nein... Welcher und wie? :P
74/74
Herunterladen