Elementare Definitionen

Werbung
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Elementare Definitionen
• Ein Graph besteht anschaulich aus Knoten und Kanten,
die die Knoten verbinden.
• Kanten können
1. Gerichtet oder ungerichtet sein
2. Mehrfach oder einfach sein
3. Einen Knoten mit sich selbst verbinden oder nicht
(Schlaufen)
• Arten von Graphen
4. Einfache Graphen (ungerichtete Einfachkanten)
5. Digraphen (gerichtete Einfachkanten)
6. Multigraphen (ungerichtete Mehrfachkanten)
Graphen 1
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Anwendungen
• Flussdiagramme
• Versorgungsnetze
• Computernetzwerke
• Petri-Netze
• Entity-Relationship Diagramme
• elektrische Schaltpläne
• semantische Netze
• Automaten
• Syntaxbäume für Programmiersprachen
• Entscheidungsbäume
Graphen 2
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Formalisierung von Graphen
• Ein einfacher Graph G = ( V , E ) ohne Schlaufen kann
formalisiert werden als ein Paar aus einer endlichen
Menge V (vertex, Knoten) und einer Menge E (edge,
Kante) von Mengen von zwei Elementen aus V.
({A, B, C, D, E, F},
{{A, E}, {B, E}, {A, C}, {A, F}, {F, D}, {D, C}})
Alternative Formalisierung: Ein einfacher Graph (ohne
Schlaufen) ist ein Paar G = ( V , ! ) aus einer endlichen
Menge V und einer symmetrischen (und irreflexiven)
Relation ! 5 V % V.
({A, B, C, D, E, F},
{(A, E), (B, E), (A, C), (A, F), (F, D), (D, C),
(E, A), (E, B), (C, A), (F, A), (D, F), (C, D)})
Graphen 3
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Formalisierung von Digraphen
• Ein Digraph G = ( V , ! ) (ohne Schlaufen) ist ein Paar aus
einer endlichen Menge V und einer (irreflexiven) Relation
! 5 V % V.
({A, B, C, D, E, F},
{(A, E), (B, E), (C, A), (A, F), (F, D), (C, D)})
Graphen 4
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Formalisierung von Multigraphen
• Ein ungerichteter Multigraph ohne Schlaufen
G = ( V , E , , ) ist ein Tupel aus endlichen Mengen V und
E, mit V þ E = ^, und einer Funktion
, : E D { P 5 V | | P | = 2 }. Für eine Kante e gibt ,(e) die
Endpunkte an.
({A, B, C, D, E, F},
{a, b, c, d, e, f, g, h, i},
{(a, {F, A}), (b, {F, A}), (c, {F, A}),
(d, {A, B}), (e, {E, B}), (f, {E, D}),
(g, {E, D}), (h, {D, C}), (i, {D, C})})
• Ein gerichteter Multigraph mit Schlaufen
G = ( V , E , i , f ) ist ein Tupel aus endlichen Mengen E und
V, mit E þ V = ^, und Funktionen i , f : E D V. Für eine
Kante e gibt i(e) den Anfangs- und f(e) den Endpunkt.
({A, B, C, D, E, F},
{a, b, c, d, e, f, g, h, i},
{(a, A), (b, F), (c, F), (d, B), (e, B), (f, D),
(g, D), (h, C), (i, C)},
{(a, F), (b, A), (c, A), (d, A), (e, E), (f, E),
(g, E), (h, D), (i, C)})
Graphen 5
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Verbindungen in (Di-)Graphen
• In einem (Di-)Graph sei e eine Kante von x nach y. Dann
sind x und y inzident zu e, e ist inzident zu x und y, und x
und y sind adjazent.
• Ein Weg in einem (Di-)Graph ist ein n-Tupel
( x1 , x2 , … xn ), mit n > 1, von Knoten xi Œ V, bei dem alle
( xI , xi+1 ) Kanten sind. Die Länge des Wegs ist n-1, der
Anfangspunkt ist x1 und der Endpunkt ist xn.
• Ein Zyklus ist ein Weg, dessen Anfangs- und Endpunkt
gleich sind, der mindestens die Länge drei hat, und in dem
eine Kante höchstens einmal vorkommt.
• Ein Knoten y ist in einem (Di-)Graph von einem Knoten x
erreichbar, wenn es einen Weg mit Anfangspunkt x und
Endpunkt y gibt. Ein Punkt ist immer von sich selbst aus
erreichbar.
• Zwei Knoten x und y in einem (Di-)Graph sind
zusammenhängend, wenn x von y und y von x erreichbar
sind.
• Ein (Di-)Graph heisst zusammenhängend, wenn je zwei
seiner Knoten zusammenhängend sind.
Graphen 6
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Zusammenhang in (Di-)Graphen
• Die Relation G 5 V % V, für die x G y genau dann gilt,
wenn x und y zusammenhängend sind, heisst die
Zusammenhangsrelation eines (Di-)graphs.
• Die Zusammenhangsrelation ist eine Äquivalenzrelation.
• Eine Zusammenhangskomponente eines (Di-)Graphs ist
eine Äquivalenzklasse der Zusammenhangsrelation auf
dem (Di-)Graph.
• Ein vollständiger Graph ist ein Graph, bei dem je zwei
verschiedene Punkte durch eine Kante verbunden sind.
Graphen 7
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Teilgraphen
• Ein (Di-)Graph ( F , " ) heisst genau dann ein Teilgraph
eines (Di-)Graphs ( E , ! ), wenn F 5 E und " 5 !.
• Ein (Di-)Graph ( F , " ) heisst genau dann ein induzierter
Teilgraph eines (Di-)Graphs ( E , ! ), wenn F ein Teilgraph
von E ist und wenn es zwischen jedem Paar von Punkten
aus F genau dann eine Kante gibt wenn es auch in ( E , ! )
eine Kante gibt.
Graphen 8
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Beispielgraphen
Graphen 9
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Bäume und Wälder als Graphen
• Ein Baum ist ein zusammenhängender Graph ohne
Zyklen.
• Ein Wald ist ein Graph ohne Zyklen, dessen Zusammenhangskomponenten Bäume sind.
• Sei ( P , ! ) ein zusammenhängender Graph. Ein
spannender Baum ist ein Teilgraph von ( P , ! ), der ein
Baum ist und alle Knoten des Graphs enthält, also ein
Baum der Form ( P , " ) mit " 5 !.
Graphen 10
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Eigenschaften von Bäumen
• Ein Graph ist genau dann ein Baum, wenn
1. Er zusammenhängend ist.
2. Wenn er unzusammenhängend wird, sobald eine Kante
entfernt wird.
• Der Grad eines Knotens in einem (Di-)Graph ist die
Anzahl der Kanten, die inzident zu dem Knoten sind.
• Ein (Di-)Graph heisst planar, wenn er so in der Ebene
gezeichnet werden kann, dass die Schnittpunkte der
Kanten genau die Knoten des (Di-)Graphs sind.
• Sei T ein endlicher Baum mit mindestens einem Knoten.
Dann gilt:
1. T hat einen Knoten mehr als Kanten.
2. T hat mindestens einen Knoten mit Grad < 2.
3. T ist planar
Graphen 11
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Bipartite Graphen
• Ein bipartiter Graph ( A ~ B , E ) ist ein Graph, bei dem
die Menge der Knoten so in zwei nichtleere, disjunkte
Mengen A und B zerlegt werden kann, dass jede Kante
einen Knoten in A mit einem Knoten in B verbindet, d.h.,
kein Paar von Knoten aus A und kein Paar von Knoten aus
B ist adjazent.
Graphen 12
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Matching
• Ein Matching in einem bipartiten Graph ist eine Menge
von Kanten, die keine gemeinsamen Knoten haben.
• Ein Matching ist vollständig, wenn alle Knoten aus A in
einer Kante vorkommen.
• Ein Matching ist perfekt, wenn alle Knoten in einer Kante
vorkommen.
• In einem bipartiten Graph ( A ~ B , E ) gibt es genau dann
ein vollständiges Matching, wenn für jede Menge C 5 A es
mindestens | C | Knoten in B gibt, die adjazent zu Knoten
in C sind.
• In einem bipartiten Graph ( A ~ B , E ) gibt es genau dann
ein perfektes Matching, wenn es ein vollständiges
Matching gibt, und wenn | A | = | B |.
Graphen 13
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Attributierte Graphen
• Graph mit attributierten Kanten: Jeder Kante wird ein
Attribut zugeordnet
• Graph mit attributierten Knoten: Jedem Knoten wird ein
Attribut zugeordnet
• Anwendungen attributierter Graphen: Graphen mit
Kosten (Wegoptimierung, z.B. traveling salesman),
Färbung, neurale Netze
Graphen 14
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Isomorphie
• Strukturelle Unterschiede zwischen Graphen, nicht
Unterschiede in der Benennung interessieren uns.
Graphen, die sich nur in der Benennung unterscheiden,
nennt man isomorph.
• Zwei (Di-)Graphen G = (E, !) und H = (F, ") sind
isomorph, wenn es eine bijektive Funktion f : G D H gibt
mit
[ u, v Œ E : (u, v) Œ ! O (f(u), f(v)) Œ "
Graphen 15
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Spezielle Graphen
• Kn ist der vollständige Graph ohne Schlaufen mit n
Knoten, d.h., mit Kanten zwischen allen Knoten
K5
• Km, n ist der vollständige bipartite Graph mit einer Partition
der Menge der Knoten in eine Menge M mit m und eine
Menge N mit n Knoten. Jeder Knoten aus M ist zu allen
Knoten aus N adjazent.
K3,3
Graphen 16
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Theorem von Euler
• Eine Fläche eines Graphs ist eine der endlich grossen,
durch den Graph abgegrenzten Regionen der
Zeichnungsebene.
• Sei G ein endlicher, planarer Graph mit einer Menge V von
Knoten, einer Menge E von Kanten und einer Menge F von
Flächen. Sei | V | > 0. Dann gilt
|V|+|F|=|E|+1
Graphen 17
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Tests auf Planarität
• Planare Zeichnung
• 1. Eulerkriterium: Ist die dreifache Knotenzahl kleiner als
die Kantenzahl + 6, dann ist der Graph nicht planar.
• 2. Eulerkriterium: Ist die zweifache Knotenzahl kleiner als
die Kantenzahl + 4 und enthält der Graph keine Dreiecke,
dann ist der Graph nicht planar.
• 3. Eulerkriterium: Hat der Graph nur Knoten vom Grad 6
und grösser, dann ist der Graph nicht planar.
• Kuratowski Kriterium: Eine Graph ist genau dann planar,
wenn er weder K3,3 noch K5 noch einen Unterteilungsgraphen dieser zwei Graphen als Teilgraph enthält.
Unterteilungsgraph: Seien F und G zwei Graphen. F heisst
ein Unterteilungsgraph von G, wenn F aus G
ausschliesslich durch Hinzufügen von Knoten vom Grad 2
entsteht, die eine bereits bestehende Kanten zweiteilen.
Graphen 18
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Färbung von Graphen
• Sei C eine Menge (von Farben). Eine Färbung eines
Graphs G = ( V , E ) ist eine Zuweisung von Elementen aus
V zu den Elementen von C so, dass adjazenten Knoten
unterschiedliche Elemente von C zugewiesen werden.
• Die chromatische Zahl eines Graphs G = ( V , E ) ist die
kleinste Zahl von Farben, mit der er gefärbt werden kann.
• Die Färbung von Karten ist dasselbe Problem wie die
Färbung von Graphen.
• Scheduling kann ebenfalls als Färbungsproblem
formuliert werden.
Graphen 19
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Färbung von planaren Graphen
• Es ist relativ einfach zu zeigen, dass 5 Farben genügen, um
einen planaren Graph zu färben.
• Es gelang nicht, einen planaren Graph zu finden, der fünf
Farben brauchte.
• 1976 bewiesen Appel und Haken mit
Computerunterstützung, dass vier Farben genügen.
Graphen 20
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Das Fünf Farben Theorem (1)
• Behauptung: Jeder endliche, planare Graph G = ( V , E )
kann mit fünf (oder weniger) Farben gefärbt werden.
• Beweis: Induktion über die Anzahl der Knoten| V |.
Verankerung:
Für | V | 7 5 kann jeder Knoten mit einer
unterschiedlichen Farbe gefärbt werde. QED
Induktionsschritt:
Unter der Annahme, dass alle Graphen mit weniger
Knoten als G mit fünf Farben gefärbt werden können
(Induktionshypothese), müssen wir zeigen, dass auch G
mit fünf Farben gefärbt werden kann.
Man teile G in seine Zusammenhangskomponenten auf.
Wir unterscheiden zwischen Graphen mit mehr als einer
und mit genau einer Zusammenhangskomponente.
1. Falls es mehr als eine Zusammenhangskomponente gibt,
hat jede Zusammenhangskomponente weniger Knoten
als G. Gemäss Induktionshypothese können diese mit
fünf Farben gefärbt werden. Da es keine Kanten
zwischen den Zusammenhangskomponenten gibt,
haben wir damit bereits eine Färbung von G mit fünf
Farben.
Graphen 21
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Das Fünf Farben Theorem (2)
2. Es gibt genau eine Zusammenhangskomponente.
Es gilt das Theorem von Euler| V | + | F | = | E | + 1. (a)
Wir betrachten nun die Zahl N von Paaren ( e , f ), wobei e
eine Kante einer Fläche f ist.
Jede Kante kann höchstens zwei Flächen begrenzen. Somit
gilt N 7 2 * | E |.
Jede Fläche wird von mindestens 3 Kanten begrenzt. Somit
gilt N 8 3 * | F | und damit 3 * | F | 7 2 * | E |.
(b)
Für jedes n sei Vn die Anzahl Knoten mit Grad n. Wenn k
der maximale Grad eines Knotens von G ist, so ist
(c)
| V | = | V1 | + | V2 | + … + | Vk |.
Es gilt: In einem endlichen Graph ist die Summe der Grade
der Knoten zweimal die Zahl der Kanten:
(d)
2 * | E | = | V1 | + 2 * | V2 | + … + k * | Vk |.
Nun folgt
0 7 2 * | E | - 3 * | F | aus (b)
| E | 7 3 * (| E | - | F |)
| E | 7 3 * (| V | - 1)
2 * | E | 7 6 * (| V | - 1)
arithm.
aus (a)
arithm.
| V1 | + 2 * | V2 | + … + k * | Vk | 7 6 * (| V | - 1) aus (d)
Graphen 22
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Das Fünf Farben Theorem (3)
| V1 | + 2 * | V2 | + … + k * | Vk | 7
6 * | V1 | + 6 *| V2 | + … + 6 *| Vk | - 6
aus (c)
7 * | V7 | + … + k * | Vk | 7
5 * | V1 | + 4 *| V2 | + 3 *| V3 | + 2 * | V4 | + | V5 | +
arithm.
6 *| V7 | + … + 6 *| Vk | - 6
| V7 | + 2 * | V8 | … + (k – 6) * | Vk | + 6 7
5 * | V1 | + 4 *| V2 | + 3 *| V3 | + 2 * | V4 | + | V5 |
arithm.
6 7 5 * | V1 | + 4 *| V2 | + 3 *| V3 | + 2 * | V4 | + | V5 |
arithm.
| V1 | … | V5 | können somit nicht alle gleich 0 sein. Damit
muss es einen Knoten mit Grad 7 5 geben.
Sei P ein Knoten mit Grad 7 5. Sei G’ = ( V’ , E’ ) der
induzierte Teilgraph von G mit V’ = V \ { P }. G’ ist planar
und hat weniger Knoten als G. Somit kann dieser Graph
gemäss Induktionshypothese mit fünf Farben gefärbt
werden.
Man nehme ein solche Färbung. Damit sind die zu P
adjazenten Knoten gefärbt.
Falls diese Knoten mit weniger als fünf unterschiedlichen
Farben gefärbt sind, steht für P noch eine neue Farbe zur
Verfügung.
Graphen 23
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Das Fünf Farben Theorem (4)
Der schwierigere Fall: Die zu P adjazenten Knoten sind mit
fünf unterschiedlichen Farben gefärbt. Wir nennen sie
willkürlich rot, orange, grün, jade und blau, wenn wir die
die Nachbarn von P im Uhrzeigersinn mit Pr, Po, Pg, Pj und Pb
bezeichnen.
Wir definieren einen rot-grün Weg als einen Weg von Pr
nach Pg, der nur Knoten verwendet, die rot und grün gefärbt
sind. Wir definieren ebenso einen orange-jade Pfad.
Diese müssen sich kreuzen, so dass es nicht beide Pfade
geben kann. Nehmen wir an, dass es keinen rot-grünen Weg
gibt. Wir färben dann P grün. Schliesslich färben wir jeden
roten bzw. grünen Knoten, der nur über rote und grüne
Knoten von P aus erreichbar ist, mit grün bzw. rot. Damit
haben wir eine Färbung von G mit fünf Farben.
Graphen 24
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Färbung nichtplanarer Graphen
K5
K3,3
Graphen 25
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Charakteristische Funktion einer Relation
• Die charakteristische Funktion einer Relation R auf einer
Menge X ist eine Funktion von X % X auf { 0 , 1 }, mit dem
Wert 1, wenn das entsprechende Paar in der Relation ist, 0,
wenn nicht.
• Wenn n Elemente in der Menge X enthalten sind,
entspricht dies einer n % n Matrix A, deren ( r , s )-tes
Element 1 oder 0 ist, je nach dem, ob das Paar ( xr , xs ) in R
enthalten ist oder nicht.
• Beispiel: X = { a , b , c }, R = { ( a , a ) , ( b , a ) , ( c , b ) }
 1 0 0


A =  1 0 0
 0 1 0


Graphen 26
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Repräsentation von (Di-)Graphen als
Adjazenzmatrix
• Die Adjazenzmatrix eines (Di-)Graphs ist die
charakteristische Funktion der Kantenrelation.
0

0
1

0

0 1 0

0 0 1
0 0 1

1 1 0 
Graphen 27
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Repräsentation von Multigraphen als
Adjazenzmatrix
• Der Eintrag in die Adjazenzmatrix ist die Anzahl Kanten
zwischen den Knoten.
0

0
0

1

2 1 0

0 1 1
0 0 1

0 0 1 
Graphen 28
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Matrix mit Wegen der Länge n
• Sei G ein Graph und n U ¦. Der Graph Gn enthält eine
Kante von x nach y genau dann, wenn es einen Weg der
Länge n von x nach y gibt.
• Für n = 2 und G =
lautet die Adjazenzmatrix An von Gn
0

0
0

1

2 1 0  0
 
0 1 1  0
×

0
0 0 1
 
0 0 1   1
2 1 0  0
 
0 1 1 1
=

1
0 0 1
 
0 0 1   1
0 2 3

0 0 2
0 0 1

2 1 1 
Graphen 29
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Konsolidierung der Kanten
• Wenn uns nur interessiert, ob ein Weg existiert, und nicht
n
wie viele, lautet die Adjazenzmatrix A von Gn
0

1
1

1

0 1 1

0 0 1
0 0 1

1 1 1
Graphen 30
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Transitive und reflexiv transitive Hülle
eines Graphs
• Sei A die Adjazenzmatrix einer binären Relation R auf
einer Menge X mit n Elementen.
• Wir definieren + auf der Menge { 0 , 1 } wie folgt:
0+0=0
0+1=1
1+0=1
1+1=1
• Die Adjazenzmatrix der transitiven Hülle von R lautet
2
n
A+A +…+A
• Die Adjazenzmatrix der reflexiv transitiven Hülle von R
lautet
2
n-1
I+A+A +…+A
Graphen 31
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Algorithmus von Warshall
• Die Berechnung der transitiven Hülle kann effizienter
gemacht werden, z.B. mit dem Algorithmus von Warshall.
• Sei Am eine n %n Matrix, deren ( r , s )-tes Element am( r , s )
1 oder 0 ist, je nach dem ob es einen Weg von r nach s gibt
nur über Knoten aus { 1 , 2 , … m }. An ist die Matrix der
transitiven Hülle.
• Wir berechnen nacheinander A0, A1, …, An.
1. A0 = A, Hauptdiagonale von A0 auf 1 setzen
2. Die Elemente von Am mit m > 0 werden wie folgt
berechnet:
am(r,s) = am-1(r,s) + am-1(r,m) * am-1 (m,s)
Graphen 32
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Minimale Distanzen in gewichteten
Graphen
• Verallgemeinerung der Berechnung der Erreichbarkeit
und des Zusammenhangs durch Attributierung der
Kanten mit einem Zahl.
• Zur Vereinfachung geht man von vollständigen Graphen
aus, wobei Kanten, die nicht zum ursprünglichen Graph
gehören, das Gewicht T bekommen.
∞ 1 3 3 


 2 ∞ 2 ∞
 4 ∞ ∞ 2


∞ 3 ∞ ∞


Graphen 33
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Gewichte der minimalen Wege einer
bestimmten Länge
• Sei A die Matrix der Gewichte der Kanten eines Digraphs.
Die Matrix der Gewichte der Kanten des Digraphs Gn ist
n
A , wobei das Minimum anstatt +, sowie + anstatt *
verwendet wird:
n
a (r,s) = min(a(r,1) + a(1,s), a(r,2) + a(2,s), …, a(r,n) + a(n,r))
∞ 1 3 3   3 6

 
 2 ∞ 2 ∞  6 3
 4 ∞ ∞ 2  = ∞ 5

 
 ∞ 3 ∞ ∞  5 ∞

 
2
5

5 4
7 7

5 ∞ 
3
∞ 1 3 3  7 4 6

 
 2 ∞ 2 ∞ 5 7 5
 4 ∞ ∞ 2  =  7 10 7

 
∞ 3 ∞ ∞ 9 6 8

 
3
5

7
9

7 
Graphen 34
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Gewichte der minimalen Wege beliebiger
Länge
• Um die Gewichte der minimalen Wege beliebiger Länge
zwischen zwei Knoten zu bestimmen, nehmen wir das
Minimum der Wege aller Längen von 1 bis n-1,
2
n-1
min( J , A , A , … , A ) mit
 0 ∞ ∞ ∞


 ∞ 0 ∞ ∞
J =
∞ ∞ 0 ∞


∞ ∞ ∞ 0 


• Für das Beispiel ergibt dies
0

2
4

5

1 3 3

0 2 4
5 0 2

3 5 0 
Graphen 35
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Algorithmus von Floyd
• Berechnung der minimalen Wege zwischen allen Knoten
• Wie der Algorithmus von Warshall für die Berechnung
der transitiven Hülle. Wir berechnen nacheinander
A0, A1, …, An.
1. A0 = A, Hauptdiagonale von A0 auf 1 setzen
2. Die Elemente von Am mit m > 0 werden wie folgt
berechnet:
am(r,s) = min(am-1(r,s), am-1(r,m) + am-1 (m,s))
• Laufzeitverhalten O(n )
3
Graphen 36
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Algorithmus von Dijkstra
• Berechnung der minimalen Wege von einem Startknoten
zu allen anderen Knoten
• Ein „greedy“Algorithmus mit Laufzeitverhalten O(n2)
• Bei jedem Schritt haben wir eine Menge S von Knoten, für
die der minimale Weg bekannt ist und zu der wir einen
weiteren Knoten hinzufügen. Nach n Schritten enthält S
alle Knoten. Die Länge der Wege wird in einem Array d
der Länge n gespeichert.
1. Man nummeriere die Knoten des Graphs von 1 bis n,
wobei der Startknoten die Nummer 1 bekommt. Man
initialisiere S = { 1 }, d1 = 0, und di = a1,i für i ≠ 1.
2. Falls | S | < n, füge man den Knoten i aus {1, 2,…n} \ S
hinzu, für den di minimal ist. Falls es mehr als einen
solchen Knoten gibt, wähle man willkürlich einen aus.
Für alle Knoten j, die nicht in S sind, setze man
dj = min( dj, di + ai,j )
Falls | S | = n, fertig.
• Der Algorithmus kann so erweitert werden, dass nicht nur
die Länge des minimalen Wegs, sondern auch der Weg
selbst berechnet wird. Die minimalen Wege bilden
zusammen einen Spannbaum des Graphs.
Graphen 37
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Algorithmus von Prim
• Berechnung eines minimalen Spannbaums eines Graphs
• Ein „greedy“Algorithmus mit Laufzeitverhalten O(n )
2
• Bei jedem Schritt haben wir eine Menge S von Knoten und
einen minimalen Spannbaum T auf S, und fügen einen
Knoten zu S und eine Kante zu T. Nach n Schritten enthält
S alle Knoten und T einen minimalen Spannbaum.
1. Man nummeriere die Knoten des Graphs von 1 bis n.
Man initialisiere S = { 1 } und T = {} .
2. Falls | S | < n, suche Knoten i aus S und j aus
{1, 2,…n} \ S mit minimalem ai,j. Falls es mehr als ein
solches Paar gibt, wähle man willkürlich eines aus. Man
füge j zu S und die Kante ( i , j ) zu T.
Falls | S | = n, fertig.
Graphen 38
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Übersicht Matrixoperationen
• Sei A eine n % n Matrix, die zu einem Graph gehört
Berechnung
Elemente von A
Operation A→ A’
Anzahl Wege
der Länge 2
Anzahl Kanten
x'ij = xi1*x1j + xi2*x2j +…+ xin*xnj
Existenz eines 1 wenn mind. Eine x'ij = max(xi1*x1j, xi2*x2j, …, xin*xnj)
Kante, 0 wenn
Wegs der
keine Kante
Länge 2
Minimaler
Weg der
Länge 2
Kosten jeder
Kante, ∞ wenn
keine Kante
x'ij = min(xi1+x1j, xi2+x2j, …, xin+xnj)
Graphen 39
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Eulersche Graphen
• Ein Eulerscher Weg ist eine Weg, in dem jede
Verbindungskante des Graphen genau einmal auftaucht.
• Ein Eulerscher Graph ist ein Graph, in dem es einen
geschlossenen Eulerschen Weg gibt, d.h., Anfangs- und
Endpunkt sind gleich.
• Theoreme:
1. Ein Graph ist genau dann ein Eulerscher Graph, wenn er
zusammenhängend ist und jeder Eckpunkt einen
geradzahligen Grad hat.
2. Ein Graph enthält genau dann einen offenen Eulerschen
Weg, wenn er zusammenhängend ist und höchstens
zwei Eckpunkte mit ungeradzahligem Grad besitzt.
3. In jedem Graphen ist die Anzahl der Eckpunkte mit
ungeradzahligem Grad gerade.
Graphen 40
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Hamiltonsche Graphen
• Ein Hamiltonscher Weg ist ein Weg, in dem jeder
Eckpunkt des Graphen genau einmal auftaucht.
• Ein Hamiltonscher Graph ist ein Graph, in dem es einen
geschlossenen Hamiltonschen Weg gibt.
• Theoreme:
1. Ist in einem Graph mit mindestens drei Eckpunkten der
Grad jedes Eckpunkts grösser gleich der halben Anzahl
von Eckpunkten, dann ist der Graph Hamiltonsch.
2. Ist in einem Graph mit mindestens drei Eckpunkten für
jedes Paar nicht adjazenter Eckpunkte die Summe der
Grade grösser oder gleich der Anzahl seiner Eckpunkte,
dann ist der Graph Hamiltonsch.
Graphen 41
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Beziehung zwischen Eulerschen und
Hamiltonschen Graphen
Graphen 42
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Das Traveling Salesman Problem
• Ein Handelsreisender soll von seinem Wohnort alle Städte
auf einer Landkarte je einmal besuchen, und zwar so, dass
die Anzahl zurückgelegter Kilometer minimal ist.
• Dies entspricht der Suche nach einem minimalen
Hamiltonschen Zyklus.
• Diese Problem ist NP-vollständig, d.h., obwohl es nicht
bewiesen ist, dass es nicht in polynomialer Zeit berechnet
werden kann, sind alle bekannten Algorithmen von
exponentieller Komplexität.
• Sogar die Suche nach irgendeinem Hamiltonschen Zyklus
ist ein NP-vollständiges Problem.
• Bei beiden Problemen müssen im schlimmsten Fall alle
Wege durch den Graph aufgezählt und getestet werden.
Graphen 43
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Petri Netze
• Petri-Netze sind eine Technik zur Darstellung paralleler
und verteilter Prozesse.
• Eine Aktion bedeutet, dass das System in einen neuen
Zustand übergeführt wird. Eine Aktion wird durch eine
Transition modelliert und als dicken Strich gezeichnet.
• Aktionen können nur eintreten, wenn gewisse
Bedingungen erfüllt sind. Eine Bedingung wird durch
eine Stelle modelliert und als Kreis gezeichnet.
• Gültige Bedingungen werden durch Markierung der
Stellen modelliert. Markierungen werden als fette Punkte
dargestellt. Stellen können mehrere Marken tragen.
Graphen 44
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Struktur der Petri Netze
• Ein Petri Netz ist ein Quadrupel (S, T, !SNT, !TNS) aus
3. Einer nichtleeren, endlichen Menge S von Stellen
4. Einer nichtleeren, endlichen Menge T von Transitionen
5. Einer Relation !SNT 5 S % T von den Stellen auf die
Transitionen
6. Einer Relation !TNS 5 T % S von den Transitionen auf die
Stellen
mit S þ T = ^.
Ein Petri Netz ist ein bipartiter Digraph mit einer
Bipartition, deren zwei Mengen Stellen und Transitionen
heissen, und einer Attributierung der Stellen.
Graphen 45
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Bezeichnungen in Petri Netzen
• Eingangsstellen der Transition t
2t = { s Œ S | (s , t) Œ !SNT }
• Ausgangstellen der Transition t
t2 = { s Œ S | (t , s) Œ !TNS }
• Eingangstransitionen der Stelle s
2s = { t Œ T | (t , s) Œ !TNS }
• Ausgangstransitionen der Stelle s
s2 = { t Œ T | (s , t) Œ !SNT }
Graphen 46
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Statik der Petri Netze
• Eine Funktion M : S D¦0 von den Stellen in die
natürlichen Zahlen heisst eine Markierung eines Petri
Netzes. M gibt zu jeder Stelle die Anzahl Marken an, die
auf der Stelle liegen.
• Eine Stelle s Œ S heisst markiert unter der Markierung M,
wenn s mit mindestens einer Marke belegt ist: M(s) > 0.
• Eine Transition t Œ T heisst aktiviert durch die
Markierung M, wenn jede Eingangsstelle von t markiert
ist.
Graphen 47
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Dynamik der Petri Netze
• Ein Petri Netz trage eine Markierung. Wenn es eine
Transition gibt, die durch die Markierung aktiviert ist,
dann kann das Petri Netz schalten.
• Sind mehrere Transitionen durch eine Markierung
aktiviert, gibt es zwei Möglichkeiten:
1. Sind die Mengen der Eingangs- und Ausgangsstellen
der Transitionen paarweise disjunkt, dann sind die
Transitionen unabhängig und können alle schalten.
2. Sonst wählt das Petri Netz nichtdeterministisch eine
unabhängige Menge von Transitionen und schaltet sie.
• Schalten:
Sei M eine Markierung und U 5 T eine unabhängige
Menge durch M aktivierter Transitionen, bezüglich
welcher das Netz schaltet. Dann ergibt sich die neue
Markierung M’ durch:
M'(s) = M(s) – 1 O s Œ 2t, s Í t2
M'(s) = M(s) + 1 O s Œ t2, s Í 2t
M'(s) = M(s) sonst.
Graphen 48
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Beispiel eines Petri Netzes
Graphen 49
Herunterladen