Elementare Definitionen Anwendungen Formalisierung von

Werbung
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Elementare Definitionen
Anwendungen
• Ein Graph besteht anschaulich aus Knoten und Kanten,
die die Knoten verbinden.
• Flussdiagramme
• Versorgungsnetze
• Computernetzwerke
• Petri-Netze
• Entity-Relationship Diagramme
• elektrische Schaltpläne
• Kanten können
• semantische Netze
1. Gerichtet oder ungerichtet sein
• Automaten
2. Mehrfach oder einfach sein
3. Einen Knoten mit sich selbst verbinden oder nicht
(Schlaufen)
• Syntaxbäume für Programmiersprachen
• Entscheidungsbäume
• Arten von Graphen
4. Einfache Graphen (ungerichtete Einfachkanten)
5. Digraphen (gerichtete Einfachkanten)
6. Multigraphen (ungerichtete Mehrfachkanten)
Graphen 1
Graphen 2
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Formalisierung von Graphen
Formalisierung von Digraphen
• 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.
• Ein Digraph G = ( V , ) (ohne Schlaufen) ist ein Paar aus
einer endlichen Menge V und einer (irreflexiven) Relation
V V.
({A, B, C, D, E, F},
{(A, E), (B, E), (C, A), (A, F), (F, D), (C, D)})
({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 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
Graphen 4
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Formalisierung von Multigraphen
Verbindungen in (Di-)Graphen
• Ein ungerichteter Multigraph ohne Schlaufen
G = ( V , E , ) ist ein Tupel aus endlichen Mengen V und
E, mit V b E = A, und einer Funktion
: E ' { P V | | P | = 2 }. Für eine Kante e gibt (e)
die Endpunkte an.
• 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.
({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 b V = A, und Funktionen i , f : E ' 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)})
• 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 5
Graphen 6
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Zusammenhang in (Di-)Graphen
Teilgraphen
• Die Relation * V V, für die x * y genau dann gilt,
wenn x und y zusammenhängend sind, heisst die
Zusammenhangsrelation eines (Di-)graphs.
• Ein (Di-)Graph ( F , ) heisst genau dann ein Teilgraph
eines (Di-)Graphs ( E , ), wenn F E und .
• Die Zusammenhangsrelation ist eine Äquivalenzrelation.
• Eine Zusammenhangskomponente eines (Di-)Graphs ist
eine Äquivalenzklasse der Zusammenhangsrelation auf
dem (Di-)Graph.
• 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.
• Ein vollständiger Graph ist ein Graph, bei dem je zwei
verschiedene Punkte durch eine Kante verbunden sind.
Graphen 7
Graphen 8
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Beispielgraphen
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 .
Graphen 9
Graphen 10
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Eigenschaften von Bäumen
Bipartite Graphen
• Ein Graph ist genau dann ein Baum, wenn
• Ein bipartiter Graph ( A 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.
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
Graphen 12
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Matching
Attributierte Graphen
• Ein Matching in einem bipartiten Graph ist eine Menge
von Kanten, die keine gemeinsamen Knoten haben.
• Graph mit attributierten Kanten: Jeder Kante wird ein
Attribut zugeordnet
• Ein Matching ist vollständig, wenn alle Knoten aus A in
einer Kante vorkommen.
• Graph mit attributierten Knoten: Jedem Knoten wird ein
Attribut zugeordnet
• Ein Matching ist perfekt, wenn alle Knoten in einer Kante
vorkommen.
• Anwendungen attributierter Graphen: Graphen mit
Kosten (Wegoptimierung, z.B. traveling salesman),
Färbung, neurale Netze
• In einem bipartiten Graph ( A a B , E ) gibt es genau dann
ein vollständiges Matching, wenn für jede Menge C A
es mindestens | C | Knoten in B gibt, die adjazent zu
Knoten in C sind.
• In einem bipartiten Graph ( A a B , E ) gibt es genau dann
ein perfektes Matching, wenn es ein vollständiges
Matching gibt, und wenn | A | = | B |.
Graphen 13
Graphen 14
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Isomorphie
Spezielle Graphen
• Strukturelle Unterschiede zwischen Graphen, nicht
Unterschiede in der Benennung interessieren uns.
Graphen, die sich nur in der Benennung unterscheiden,
nennt man isomorph.
• Kn ist der vollständige Graph ohne Schlaufen mit n
Knoten, d.h., mit Kanten zwischen allen Knoten
• Zwei (Di-)Graphen G = (E, ) und H = (F, ) sind
isomorph, wenn es eine bijektive Funktion f : G ' H gibt
mit
> u, v ‰ E : (u, v) ‰ 2 (f(u), f(v)) ‰ 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 15
Graphen 16
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Theorem von Euler
Tests auf Planarität
• Eine Fläche eines Graphs ist eine der endlich grossen,
durch den Graph abgegrenzten Regionen der
Zeichnungsebene.
• Planare Zeichnung
• 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
• 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 17
Graphen 18
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Färbung von Graphen
Färbung von planaren 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.
• Es ist relativ einfach zu zeigen, dass 5 Farben genügen, um
einen planaren Graph zu färben.
• 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.
• 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.
• Scheduling kann ebenfalls als Färbungsproblem
formuliert werden.
Graphen 19
Graphen 20
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Das Fünf Farben Theorem (1)
Das Fünf Farben Theorem (2)
• Behauptung: Jeder endliche, planare Graph G = ( V , E )
kann mit fünf (oder weniger) Farben gefärbt werden.
2. Es gibt genau eine Zusammenhangskomponente.
• Beweis: Induktion über die Anzahl der Knoten| V |.
Verankerung:
Für | V | 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.
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 2 * | E |.
Jede Fläche wird von mindestens 3 Kanten begrenzt. Somit
(b)
gilt N 3 * | F | und damit 3 * | F | 2 * | E |.
Für jedes n sei Vn die Anzahl Knoten mit Grad n. Wenn k
der maximale Grad eines Knotens von G ist, so ist
| V | = | V1 | + | V2 | + … + | Vk |.
(c)
Es gilt: In einem endlichen Graph ist die Summe der
Grade der Knoten zweimal die Zahl der Kanten:
2 * | E | = | V1 | + 2 * | V2 | + … + k * | Vk |.
Nun folgt
02*|E|-3*|F|
| E | 3 * (| E | - | F |)
| E | 3 * (| V | - 1)
2 * | E | 6 * (| V | - 1)
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Das Fünf Farben Theorem (3)
Das Fünf Farben Theorem (4)
7 * | V7 | + … + k * | V k | 5 * | V1 | + 4 *| V2 | + 3 *| V3 | + 2 * | V4 | + | V5 | +
6 *| V7 | + … + 6 *| Vk | - 6
arithm.
arithm.
aus (a)
arithm.
aus
Graphen 22
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
aus (c)
aus (b)
| V1 | + 2 * | V2 | + … + k * | Vk | 6 * (| V | - 1)
(d)
Graphen 21
| V1 | + 2 * | V2 | + … + k * | Vk | 6 * | V1 | + 6 *| V2 | + … + 6 *| Vk | - 6
(d)
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.
| V7 | + 2 * | V8 | … + (k – 6) * | Vk | + 6 5 * | V1 | + 4 *| V2 | + 3 *| V3 | + 2 * | V4 | + | V5 |
arithm.
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.
6 5 * | V1 | + 4 *| V2 | + 3 *| V3 | + 2 * | V4 | + | V5 |
arithm.
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.
| V1 | … | V5 | können somit nicht alle gleich 0 sein. Damit
muss es einen Knoten mit Grad 5 geben.
Sei P ein Knoten mit Grad 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
Graphen 24
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Färbung nichtplanarer Graphen
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.
K5
• Beispiel: X = { a , b , c }, R = { ( a , a ) , ( b , a ) , ( c , b ) }
 1 0 0


A =  1 0 0
 0 1 0


K3,3
Graphen 25
Graphen 26
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Repräsentation von (Di-)Graphen als
Adjazenzmatrix
Repräsentation von Multigraphen als
Adjazenzmatrix
• Die Adjazenzmatrix eines (Di-)Graphs ist die
charakteristische Funktion der Kantenrelation.
• Der Eintrag in die Adjazenzmatrix ist die Anzahl Kanten
zwischen den Knoten.
0

0
1

0

0 1 0

0 0 1
0 0 1

1 1 0 
0

0
0

1

Graphen 27
2 1 0

0 1 1
0 0 1

0 0 1 
Graphen 28
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Matrix mit Wegen der Länge n
Konsolidierung der Kanten
• Sei G ein Graph und n 8 £. 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.
• Wenn uns nur interessiert, ob ein Weg existiert, und nicht
n
wie viele, lautet die Adjazenzmatrix A von Gn
• Für n = 2 und G =
0

1
1

1

0 1 1

0 0 1
0 0 1

1 1 1
n
lautet die Adjazenzmatrix A von Gn
0

0
0

1

2 1 0  0
 
0 1 1  0
×
0 0 1  0
 
0 0 1   1
2 1 0  0
 
0 1 1 1
=
0 0 1 1
 
0 0 1   1
0 2 3

0 0 2
0 0 1

2 1 1 
Graphen 29
Graphen 30
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Transitive und reflexiv transitive Hülle
eines Graphs
Algorithmus von Warshall
• 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
2
• 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
• Die Adjazenzmatrix der transitiven Hülle von R lautet
A+A +…+A
• Die Berechnung der transitiven Hülle kann effizienter
gemacht werden, z.B. mit dem Algorithmus von Warshall.
n
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)
• Die Adjazenzmatrix der reflexiv transitiven Hülle von R
lautet
2
I+A+A +…+A
n-1
Graphen 31
Graphen 32
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Minimale Distanzen in gewichteten
Graphen
Gewichte der minimalen Wege einer
bestimmten Länge
• Verallgemeinerung der Berechnung der Erreichbarkeit
und des Zusammenhangs durch Attributierung der
Kanten mit einem Zahl.
• 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:
• Zur Vereinfachung geht man von vollständigen Graphen
aus, wobei Kanten, die nicht zum ursprünglichen Graph
gehören, das Gewicht 7 bekommen.
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
∞ 1 3 3 


 2 ∞ 2 ∞
 4 ∞ ∞ 2


∞ 3 ∞ ∞


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 33
Graphen 34
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Gewichte der minimalen Wege beliebiger
Länge
Algorithmus von Floyd
• Berechnung der minimalen Wege zwischen allen Knoten
• 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
• 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:
 0 ∞ ∞ ∞


 ∞ 0 ∞ ∞
J =
∞ ∞ 0 ∞


∞ ∞ ∞ 0 


am(r,s) = min(am-1(r,s), am-1(r,m) + am-1 (m,s))
• Laufzeitverhalten O(n )
3
• Für das Beispiel ergibt dies
0

2
4

5

1 3 3

0 2 4
5 0 2

3 5 0 
Graphen 35
Graphen 36
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Algorithmus von Dijkstra
Algorithmus von Prim
• Berechnung der minimalen Wege von einem Startknoten
zu allen anderen Knoten
• Berechnung eines minimalen Spannbaums eines Graphs
• Ein „greedy“Algorithmus mit Laufzeitverhalten O(n )
• Ein „greedy“Algorithmus mit Laufzeitverhalten O(n )
2
2
• 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 )
• 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.
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
Graphen 38
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Übersicht Matrixoperationen
Eulersche Graphen
• Sei A eine n n Matrix, die zu einem Graph gehört
• Ein Eulerscher Weg ist eine Weg, in dem jede
Verbindungskante des Graphen genau einmal auftaucht.
Berechnung
Elemente von A
Operation A→ A'
Anzahl Wege
der Länge 2
Anzahl Kanten
x'ij = xi1*x1j + xi2*x2j +…+ xin*xnj
• Theoreme:
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
• Ein Eulerscher Graph ist ein Graph, in dem es einen
geschlossenen Eulerschen Weg gibt, d.h., Anfangs- und
Endpunkt sind gleich.
Kosten jeder
Kante, ∞ wenn
keine Kante
x'ij = min(xi1+x1j, xi2+x2j, …, xin+xnj)
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 39
Graphen 40
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Hamiltonsche Graphen
Beziehung zwischen Eulerschen und
Hamiltonschen 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
Graphen 42
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Das Traveling Salesman Problem
Petri Netze
• 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.
• Petri-Netze sind eine Technik zur Darstellung paralleler
und verteilter Prozesse.
• 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.
• 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.
• Bei beiden Problemen müssen im schlimmsten Fall alle
Wege durch den Graph aufgezählt und getestet werden.
Graphen 43
Graphen 44
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Struktur der Petri Netze
Bezeichnungen in Petri Netzen
• Ein Petri Netz ist ein Quadrupel (S, T, SNT, TNS) aus
• Eingangsstellen der Transition t
t = { s ‰ S | (s , t) ‰ SNT }
3. Einer nichtleeren, endlichen Menge S von Stellen
4. Einer nichtleeren, endlichen Menge T von Transitionen
5. Einer Relation SNT S T von den Stellen auf die
Transitionen
6. Einer Relation TNS T S von den Transitionen auf die
Stellen
mit S b T = A.
• Ausgangstellen der Transition t
t = { s ‰ S | (t , s) ‰ TNS }
• Eingangstransitionen der Stelle s
s = { t ‰ T | (t , s) ‰ TNS }
• Ausgangstransitionen der Stelle s
Ein Petri Netz ist ein bipartiter Digraph mit einer
Bipartition, deren zwei Mengen Stellen und Transitionen
heissen, und einer Attributierung der Stellen.
s = { t ‰ T | (s , t) ‰ SNT }
Graphen 45
Graphen 46
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Statik der Petri Netze
Dynamik der Petri Netze
• Eine Funktion M : S '£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.
• Ein Petri Netz trage eine Markierung. Wenn es eine
Transition gibt, die durch die Markierung aktiviert ist,
dann kann das Petri Netz schalten.
• 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.
• 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 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 2 s ‰ t, s Ê t
M'(s) = M(s) + 1 2 s ‰ t, s Ê t
M'(s) = M(s) sonst.
Graphen 47
Graphen 48
Formale Grundlagen der Informatik (Fuchs/Kraan SS 99)
Beispiel eines Petri Netzes
Graphen 49
Herunterladen