Elementare Definitionen Anwendungen Formalisierung von

Werbung
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
Elementare Definitionen
Anwendungen
∑ Ein Graph besteht anschaulich aus Knoten und Kanten,
die die Knoten verbinden.
∑ Computernetzwerke
∑ Petri-Netze
∑ Entity-Relationship Diagramme
∑ elektrische Schaltpläne
∑ Automaten
∑ Kanten können
∑ Syntaxbäume für Programmiersprachen
1. Gerichtet oder ungerichtet sein
∑ Entscheidungsbäume
2. Mehrfach oder einfach sein
∑ Strassen- und Verkehrsnetze
3. Einen Knoten mit sich selbst verbinden oder nicht
(Schlaufen)
∑ Arten von Graphen (jeweils mit oder ohne Schlaufen)
1. Einfache Graphen (ungerichtete Einfachkanten)
2. Digraphen (gerichtete Einfachkanten)
3. Multigraphen (ungerichtete Mehrfachkanten)
4. Dimultigraphen (gerichtete Mehrfachkanten)
Graphen 1
Graphen 2
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
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.
G = ({A, B, C, D, E, F},
{(A, E), (B, E), (C, A), (A, F), (F, D), (C, D)})
G = ({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.
G = ({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
Formale Grundlagen der Informatik
Formalisierung von Multigraphen
Verbindungen in (Di-)Graphen
∑ Ein ungerichteter Multigraph ohne Schlaufen
G = ( V , E , α ) ist ein Tupel aus den endlichen Mengen V
(Knoten) und E (Kanten) mit V ∩ E = ∅ und einer
Funktion α : E → { P ⊆ V | | P | = 2 }, die für jede Kante
e die Endpunkte α(e) angibt.
∑ 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.
G = ({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 den endlichen Mengen
E und V mit E ∩ V = ∅ und den Funktionen i , f : E → V.
Für eine Kante e gibt i(e) den Anfangs- und f(e) den
Endpunkt an.
G = ({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 )∈ Vn 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
Formale Grundlagen der Informatik
Zusammenhang in (Di-)Graphen
Grad und Planariät
∑ 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.
∑ Der Grad eines Knotens in einem (Di-)Graph ist die Anzahl
der Kanten, die inzident zu diesem Knoten sind.
∑ Die Zusammenhangsrelation ist eine Äquivalenzrelation.
∑ Eine Zusammenhangskomponente eines (Di-)Graphs ist
eine Äquivalenzklasse der Zusammenhangsrelation auf
dem (Di-)Graph.
Graphen 7
∑ 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.
Graphen 8
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
Teilgraphen
Bäume und Wälder als Graphen
∑ Ein (Di-)Graph ( F , ∆ ) heisst genau dann ein Teilgraph
eines (Di-)Graphs ( E , Γ ), wenn F ⊆ E und ∆ ⊆ Γ.
∑ Ein Baum ist ein zusammenhängender einfacher Graph
ohne Zyklen.
∑ 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.
In welcher Beziehung steht diese Definition zur Definition
eines Baums als Relation?
∑ 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
Formale Grundlagen der Informatik
Eigenschaften von Bäumen
Bipartite Graphen
∑ Ein Graph ist genau dann ein Baum, wenn
Ein bipartiter Graph ( A ∪ B , E ) ist ein Graph, bei dem die
Menge der Knoten so in zwei nicht leere, 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. er unzusammenhängend wird, sobald eine Kante
entfernt wird, d.h. jede Kante eines Baumes ist eine
sogenannte kritische Kante.
∑ 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
Formale Grundlagen der Informatik
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,
Schneeräumen in Zürich), Färbung, Petri Netze, neuronale
Netze
∑ In einem bipartiten Graph ( A ∪ B , E ) gibt es genau dann
ein vollständiges Matching, wenn es für jede Menge
C ⊆ A 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
Graphen 14
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
Isomorphie
Spezielle Graphen 1
∑ 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 : E → F gibt
mit
∀ u, v ∈ E : (u, v) ∈ Γ ⇔ (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.
K 3,3
Graphen 15
Graphen 16
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
Spezielle Graphen 2
Theorem von Euler
∑ Ein Nullgraph ist ein Graph, der keine Kanten enthält. Der
Nullgraph mit n Knoten wird mit Nn bezeichnet.
∑ Eine Fläche eines Graphs ist eine endlich grosse, durch den
Graph abgegrenzte Region der Zeichenebene.
∑ Sei G ein endlicher, planarer, zusammenhängender Graph
mit einer Menge V von Knoten, einer Menge E von Kanten
und einer Menge F von Flächen. Sei | V | > 0. Dann gilt
∑ Ein Zyklusgraph ist ein Graph, der nur einen einzigen
Zyklus enthält. Der Zyklusgraph mit n Knoten wird mit Cn
bezeichnet.
|V|+|F|=|E|+1
∑ Ein Weggraph ist ein Graph, der nur aus einem einzelnen
Weg besteht. Der Weggraph mit n Knoten heisst Pn.
Graphen 17
Graphen 18
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
Tests auf Planarität
Färbung von Graphen
∑ Planare Zeichnung
∑ 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.
∑ Eulersche Kriterien
Ein Graph ist nicht planar, wenn die dreifache Knotenzahl
kleiner ist als die Kantenzahl plus 6.
Ein Graph ist nicht planar, wenn die doppelte Knotenzahl
kleiner ist als die Kantenzahl plus 4 und der Graph keine
Dreiecke enthält.
Ein Graph ist nicht planar, wenn der Graph nur Knoten
vom Grad ≥ 6 enthält.
∑ 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 äquivalent zur Färbung von
Graphen.
∑ Scheduling kann ebenfalls als Färbungsproblem formuliert
werden.
∑ Kuratowski Kriterium
Ein 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 19
Graphen 20
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
Färbung von planaren Graphen
Charakteristische Funktion einer Relation
∑ Es ist relativ einfach zu zeigen, dass 5 Farben genügen, um
einen planaren Graph zu färben.
∑ 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.
∑ 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.
∑ 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 21
Graphen 22
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
Repräsentation von einfachen 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 23
2 1 0ˆ
˜
0 1 1˜
0 0 1˜
˜
0 0 1 ˜¯
Graphen 24
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
Matrix mit Wegen der Länge n
Konsolidierung der Kanten
∑ Sei G ein Graph und n ∈ . 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
wie viele, lautet die Adjazenzmatrix An von Gn
∑ Für n = 2 und G =
Ê0
Á
Á1
Á1
Á
Á1
Ë
0 1 1ˆ
˜
0 0 1˜
0 0 1˜
˜
1 1 1˜¯
lautet die Adjazenzmatrix An 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 25
Graphen 26
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
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.
∑ Die Berechnung der reflexiv 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
reflexiv transitiven Hülle.
∑ Wir definieren + auf der Menge { 0 , 1 } wie folgt:
0+0=0
0+1=1
1+0=1
1+1=1
∑ Wir berechnen nacheinander A0, A1, …, An.
∑ Die Adjazenzmatrix der transitiven Hülle von R lautet
A + A2 + … + An
∑ Die Adjazenzmatrix der reflexiv transitiven Hülle von R
lautet
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)
I + A + A2 + … + An-1
Graphen 27
Graphen 28
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
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
einer Zahl , die "Gewicht" genannt wird und z.B. die Länge
der Kante angibt.
Sei A die Matrix der Gewichte der Kanten eines Digraphs.
Die Matrix der Gewichte der Kanten des Digraphs Gn ist An,
wobei das Minimum anstatt +, sowie + anstatt * verwendet
wird:
∑ Zur Vereinfachung geht man von vollständigen Graphen
aus, wobei Kanten, die nicht zum ursprünglichen Graphen
gehören, das Gewicht ∞ bekommen. Wenn Knoten durch
mehr als eine Kante verbunden sind, wählt man die Kante
mit dem kleinsten Gewicht aus.
Ê• 1 3 3 ˆ
Á
˜
Á 2 • 2 •˜
Á4 • • 2˜
Á
˜
Á• 3 • •˜
Ë
¯
an(r,s) = min(an-1(r,1) + a(1,s), a n-1 (r,2) + a(2,s), …, a n-1 (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 29
Graphen 30
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
Gewichte der minimalen Wege beliebiger
Länge
Algorithmus von Floyd
∑ 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,
min( J , A , A2 , … , An-1 ) mit
∑ 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 0 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(n3)
∑ Für das Beispiel ergibt dies
Ê0
Á
Á2
Á4
Á
Á
Ë5
1 3 3ˆ
˜
0 2 4˜
5 0 2˜
˜
3 5 0 ˜¯
Graphen 31
Graphen 32
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
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 )
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 )
∑ Ein „greedy“ Algorithmus mit Laufzeitverhalten O(n2)
∑ 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 33
Graphen 34
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
Eulersche Graphen
Hamiltonsche Graphen
∑ Ein Eulerscher Weg ist ein Weg, in dem jede Verbindungskante des Graphen genau einmal auftaucht.
∑ Ein Hamiltonscher Weg ist ein Weg, in dem jeder Knoten
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.
∑ Ein Hamiltonscher Graph ist ein Graph, in dem es einen
geschlossenen Hamiltonschen Weg gibt.
∑ Theoreme:
1. Ein Graph ist genau dann ein Eulerscher Graph, wenn er
zusammenhängend ist und jeder Knoten einen geradzahligen Grad hat.
∑ Theorem:
Ist in einem Graph mit mindestens drei Knoten der Grad
jedes Knotens grösser gleich der halben Anzahl von
Knoten, dann ist der Graph Hamiltonsch.
2. Ein Graph enthält genau dann einen offenen Eulerschen
Weg, wenn er zusammenhängend ist und höchstens
zwei Knoten mit ungeradzahligem Grad besitzt.
(Zum Beweis dieser beiden Theoreme kann man folgendes
Theorem verwenden: In jedem Graphen ist die Anzahl der
Knoten mit ungeradzahligem Grad gerade.)
Graphen 35
Graphen 36
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
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 graphische 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.
∑ Bei beiden Problemen müssen im schlimmsten Fall alle
Wege durch den Graph aufgezählt und getestet werden.
∑ Eine Aktion bedeutet, dass ein System in einen neuen
Zustand übergeführt wird. Eine Aktion wird durch eine
Transition modelliert und als dicker Strich (oder Rechteck)
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 Token (=
fette Punkte) dargestellt. Stellen können mehrere Marken
tragen.
Graphen 37
Graphen 38
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
Struktur der Petri Netze
Bezeichnungen in Petri Netzen
Ein Petri Netz ist ein Tripel (S, T, Γ) bestehend aus
Eingangsstellen der Transition t
1. einer nichtleeren, endlichen Menge S von Stellen (auch
Plätze genannt).
2. einer nichtleeren, endlichen Menge T von Transitionen
mit S ∩ T = ∅.
•t = { s ∈ S | (s , t) ∈ Γ}
Ausgangstellen der Transition t
t• = { s ∈ S | (t , s) ∈ Γ}
3. einer Relation Γ ⊆ (S × T) ∪ (T × S ) von den Stellen auf
die Transitionen und den Transitionen auf die Stellen.
Γ heisst Flussrelation.
Eingangstransitionen der Stelle s
Ein Petri Netz ist ein bipartiter Digraph. Die beiden
Mengen der Bipartition sind die Stellen und Transitionen.
Ausgangstransitionen der Stelle s
Graphen 39
•s = { t ∈ T | (t , s) ∈ Γ }
s• = { t ∈ T | (s , t) ∈ Γ}
Graphen 40
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
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 (auch feuern genannt).
∑ Eine Stelle s ∈ S heisst markiert unter der Markierung M,
wenn s mit mindestens einer Marke belegt ist, d.h. 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 s eine aktivierte Transition.
Schaltet s, ergibt sich eine neue Markierung M':
M'(s) = M(s) – 1 ⇔ s ∈ •t, s ∉ t•
M'(s) = M(s) + 1 ⇔ s ∈ t•, s ∉ •t
M'(s) = M(s) sonst.
Graphen 41
Formale Grundlagen der Informatik
Beispiel eines Petri Netzes
∑ Dieses Petri Netz beschreibt nichtdeterministisches Verhalten: Zuerst schaltet die am weitesten links stehende
Transition und die zweite Stelle von links wird markiert;
dann sind sowohl die obere wie die untere Transition
aktiviert, von denen aber nur eine schalten kann. Eine
dieser beiden Transitionen wird beliebig ausgewählt.
Graphen 43
Graphen 42
Herunterladen