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