Fakultät ETIT, Institut für Automatisierungstechnik, Professur für Prozessleittechnik Grundlagen der Graphentheorie für formale Strukturmodelle VL CAE-PA SS 2013, 18.06.2013 Professur für Prozessleittechnik Übersicht • Strukturmodelle • Einführung Graphen - Allgemeine Definitionen • Optimierung – Einsatz für Graphen • Graphenmanipulation - Graphersetzungssysteme Urbas/Doherr/Graube © 2013 CAE@PA - Einführung Graphentheorie Folie 2 Fakultät ETIT, Institut für Automatisierungstechnik, Professur für Prozessleittechnik Strukturmodelle Wiederholung Vorlesung Grundlagen der Informationsmodellierung Modellierte Aspekte [Kastens 2008] • Struktur Zusammensetzung des Originals aus Bestandteilen • Eigenschaften von Teilen des Originals • Beziehungen zwischen Teilen des Originals • Verhalten des Originals bei Operationen Urbas/Doherr/Graube © 2013 CAE@PA - Einführung Graphentheorie Folie 4 Strukturmodelle • Struktur Zusammensetzung des Originals aus Bestandteilen Aufbau eines Systems aus seinen Elementen • Strukturmodelle Beschreibung und Darstellung von Strukturen Veranschaulichung, Illustrierung Daten- und rechentechnische Behandlung – formale Strukturmodelle Urbas/Doherr/Graube © 2013 CAE@PA - Einführung Graphentheorie Folie 5 Strukturmodelle – Vertreter • Hierarchische Strukturmodelle [http://www.recherchieren.org] Urbas/Doherr/Graube © 2013 CAE@PA - Einführung Graphentheorie Folie 6 Strukturmodelle – Vertreter • Teil von… Strukturmodelle UML - Kompositionsstrukturdiagramm [http://de.wikipedia.org] Urbas/Doherr/Graube © 2013 CAE@PA - Einführung Graphentheorie Folie 7 Strukturmodelle – Vertreter • Zuordnungsstrukturmodelle Edukt A Maschine 1 Produkt I Edukt B Produkt II Edukt C Maschine 2 Produkt III Edukt D Urbas/Doherr/Graube © 2013 CAE@PA - Einführung Graphentheorie Folie 8 Strukturmodelle – Vertreter Enterprise • phys. Modell der IEC 61512 Site Process Cell A Area Unit U1 Unit U2 Unit U3 Process Cell Equipment Modul E1 Equipment Modul E2 E3 E4 E5 Unit Control Modul C1 Control Modul C2 C3 C4 C5 C6 C7 Equipment Modul Control Modul Urbas/Doherr/Graube © 2013 CAE@PA - Einführung Graphentheorie Folie 9 Strukturmodelle – Vertreter • Daten hinter einem Rohrleitungs- und Instrumentenfließbild Urbas/Doherr/Graube © 2013 CAE@PA - Einführung Graphentheorie Folie 10 Strukturmodelle – Vertreter • Kommunikationsnetzwerke Urbas/Doherr/Graube © 2013 CAE@PA - Einführung Graphentheorie Folie 11 Strukturmodelle – Vertreter • Petrie-Netze Urbas/Doherr/Graube © 2013 CAE@PA - Einführung Graphentheorie Folie 12 Strukturmodelle – Vertreter • Daten hinter PLT-Funktionsplänen Urbas/Doherr/Graube © 2013 CAE@PA - Einführung Graphentheorie Folie 13 Strukturmodelle • Struktur Zusammensetzung des Originals aus Bestandteilen Aufbau eines Systems aus seinen Elementen • Strukturmodelle Beschreibung und Darstellung von Strukturen Veranschaulichung, Illustrierung daten- und rechentechnische Behandlung – formale Strukturmodelle • Strukturmodelle werden häufig als Graphen abstrahiert Urbas/Doherr/Graube © 2013 CAE@PA - Einführung Graphentheorie Folie 14 Fakultät ETIT, Institut für Automatisierungstechnik, Professur für Prozessleittechnik Einführung Graphen Allgemeine Definitionen Graphen Urbas/Doherr/Graube © 2013 CAE@PA - Einführung Graphentheorie Folie 16 Graphen „Die grossartige Schönheit eines Graphen besteht darin, dass er unklare, schwer durchschaubare Rätsel auf ein wunderbares Ding aus Linien und Knotenpunkten reduzieren kann.“ (D. Olivastro. Das chinesische Dreieck: die kniffligsten mathematischen Rätsel aus 10000 Jahren. Droemer Knauer, München, 1995, S.273) Urbas/Doherr/Graube © 2013 CAE@PA - Einführung Graphentheorie Folie 17 Graphen - Allgemeine Definitionen • Ein Graph G ist ein geordnetes Paar G=(V, E) V ist die Menge der Knoten - V = (v1,...,vn) Ecken bzw. Vertex (gleichartigen) Objekten E ist die Menge der Kanten - E = (e1, ..., em) Pfeile bzw. Edges Beziehung zwischen je zwei Objekten [nach Krumke, Noltemeier] Urbas/Doherr/Graube © 2013 CAE@PA - Einführung Graphentheorie Folie 18 Graphen - Allgemeine Definitionen a • Knotenmenge V = {a, b, c, d} c b d • Kantenmenge E = {(a,b), (a,c), (a,d), (a,b), (c,a), (b,b), (b,d), (d,c)} • Anzahl der Knoten n := |V| • Anzahl der Kanten m := |E| • Endlicher Graph Der Graph G heißt endlich, wenn sowohl die Knotenmenge V als auch die Kantenmenge E endlich sind [nach Krumke, Noltemeier] Urbas/Doherr/Graube © 2013 CAE@PA - Einführung Graphentheorie Folie 19 Graphen - Allgemeine Definitionen • Ein gerichteter Graph G ist ein Quadrupel G=(V, E, α, ω) α, ω sind Abbildungen der Kanten auf die Knoten α: E V und ω : E V α(e) ist die Anfangsknoten und ω(e) ist die Endknoten von e • Schlinge Eine Kante e ∈ E heißt Schlinge, wenn α(e) = ω(e) Ein Graph heißt schlingenfrei, wenn er keine Schlingen enthält. a c b d [nach Krumke, Noltemeier] Urbas/Doherr/Graube © 2013 CAE@PA - Einführung Graphentheorie Folie 20 Graphen - Allgemeine Definitionen a • Parallele Kanten b α(e) = α(e‘) d c ω(e) = ω(e‘) a • Inverse/Antiparallele Kanten α(e) = ω(e’) d c ω(e) = α(e’) a • Einfacher Graph Keine Schlingen und keine Parallelitäten c • Ungerichteter Graph Spezialform des gerichteten Graphs Jeweils inverse Kanten [nach Krumke, Noltemeier] Urbas/Doherr/Graube © 2013 b CAE@PA - Einführung Graphentheorie b d a c b d Folie 21 Graphen - Allgemeine Definitionen • Inzidenz Ein Knoten v und eine Kante e heißen inzident, wenn v entweder Anfangsoder Endknoten von e ist, also v ∈ {α(e), ω(e)} gilt Zwei Kanten e und e‘ heißen inzident, wenn es einen Knoten v gibt, der mit e und e‘ inzidiert. • Adjazenz Zwei Knoten v und v‘ heißen adjazent oder benachbart, wenn es eine Kante e ∈ E gibt, der zu v und v‘ inzident ist. a c b d [nach Krumke, Noltemeier] Urbas/Doherr/Graube © 2013 CAE@PA - Einführung Graphentheorie Folie 22 Graphen - Allgemeine Definitionen • Adjazenzmatrix – Graphenspeicherung nxn-Matrix A(G) – Nachbarschaftsbeziehungen A(G) = Endknoten zu Knoten Anfangsknoten zu Knoten a aij c b 0 2 1 1 A(G) = d 0 1 0 1 1 0 0 0 0 0 1 0 ungerichtete Graphen haben symmetrische Adjazenzmatrix [nach Krumke, Noltemeier] Urbas/Doherr/Graube © 2013 CAE@PA - Einführung Graphentheorie Folie 23 Graphen - Allgemeine Definitionen • Markierung Markierungsalphabet C Zuweisung einer Markierung zu jedem Knoten Abbildung m: V C Auch: Benennung, Typisierung • Distanz Entfernung/Bewertung D a Zuweisung einer Entfernung zu jeder Kante Abbildung m: E D Urbas/Doherr/Graube © 2013 9 b 2 7 c CAE@PA - Einführung Graphentheorie 4 d 1 Folie 24 Graphen - Allgemeine Definitionen • Definition - Isomorphie Zwei Graphen G = (V, E, α, ω) und G‘ = (V‘ , E‘ , α‘ , ω‘) heißen isomorph, wenn es zwei bijektive Abbildungen σ : V → V‘ τ : E → E‘ mit folgenden Eigenschaften gibt. Für jedes e ∈ E gilt: α‘(τ(e)) = σ(α(e)) ω'(τ(e)) = σ(ω(e)). • Schreibweise G≃G‘ [nach Krumke, Noltemeier] Urbas/Doherr/Graube © 2013 CAE@PA - Einführung Graphentheorie Folie 25 Fakultät ETIT, Institut für Automatisierungstechnik, Professur für Prozessleittechnik Optimierung – Einsatz für Graphen Kombinatorische Optimierung • spezielle Form der ganzzahligen Optimierungsprobleme • zulässiger Bereich der Zielfunktion nur eine endliche Menge von Punkten • Kern: Anordnung, Zuordnung und Verbindung dieser Punkte • Beispiele: • Auswahl- und Verteilungsprobleme (Rucksackproblem) • Zuordnungsprobleme (Stundenplan) • Reihenfolgeprobleme (Rundreise, Maschinenbelegung, Tourenplanung) • Gruppierungsprobleme [Benker 2003] Urbas/Doherr/Graube © 2013 CAE@PA - Einführung Graphentheorie Folie 27 Kombinatorische Optimierung • Lösung durch Enumeration aller Lösungen möglich, aber bereits bei kleinen Mengen sehr zeitaufwendig • Anzahl der Lösungen hängt meist exponentiell von der Anzahl der Grundmengenelemente ab z.B.: bei 40 Elemente 2n 240 = 1 099 511 627 776 1 msec pro Lösung mehr als 12 Tage) • „Das Ziel der kombinatorischen Optimierung besteht — kurz und vereinfachend gesagt — darin, Algorithmen zu entwerfen, die (erheblich) schneller als die Enumeration aller Lösungen sind.“ [Grötschel 2012, S. 38] • viele kombinatorische Optimierungsprobleme lassen sich mittels Graphen abstrahieren und modellieren Urbas/Doherr/Graube © 2013 CAE@PA - Einführung Graphentheorie Folie 28 Kombinatorische Optimierung Urbas/Doherr/Graube © 2013 CAE@PA - Einführung Graphentheorie Folie 29 Kombinatorische Optimierung • Fragenstellungen der Graphentheorie • Königsberger Brückenproblem (Euler 1736) • Abstraktion des Stadtplans in Graphen • Frage: Existiert ein geschlossener Weg über die sieben Brücken von Königsberg, bei dem jede Brücke nur einmal benutzt wird? Eulertour: Ein Graph besitzt eine Eulertour, wenn er zusammenhängend und eulersch ist. • „Ein ungerichteter Graph G heißt eulersch, falls jeder Knoten geraden Grad hat (δ(v)). Ein Digraph G heißt eulersch, falls |δ-(v)| = |δ+(v)| für v ∈ V(G)“. (Digraph – gerichtetet Graph) A Urbas/Doherr/Graube © 2013 B D C [Korte u. Vygen 2012] [Grötschel 2012] Folie 30 Kombinatorische Optimierung • Grundlegende Fragenstellungen der Graphentheorie • Hamiltonsche Wege und Kreise • „erweitertes Königsberger Brückenproblem“ • Ein Weg in einem Graph ist hamiltonisch, wenn jede Knoten v nur einmal durchlaufen wird. (Kreis analog) • „Das hamiltonische Graphen-Problem hat sich später zum Travelling-Salesman-Problem “entwickelt“.” [Grötschel 2012 , S. 39] [Grötschel 2012] Urbas/Doherr/Graube © 2013 CAE@PA - Einführung Graphentheorie Folie 31 Kombinatorische Optimierung • Detaillierte Fragenstellungen der Graphentheorie • • Ermittlung der kürzesten Wege • SPP (Single Pair Shortest Path Problem) • SSP (Single Source Shortest Path Problem) • APSP (All Pairs Shortest Path Problem) Länge (Gewicht) eines Weges ist die Summe aller Kantenlängen Urbas/Doherr/Graube © 2013 [Krumke u. Noltemeier 2012] Folie 32 Kombinatorische Optimierung • Detaillierte Fragenstellungen der Graphentheorie • Ermittlung der kürzesten Wege Algorithmus von Dijkstra – findet SSP und Aussage über Erreichbarkeit • ∞ 20 0 A B 20 10 D ∞ 20 20 0 A B 20 10 D 10 „Wellenfront – Strategie“ - Weiterverfolgung der Kante, die den nach [Domschke u. Drexl 1991, S.63] kürzesten Weg vermuten lässt 20 C 35 50 20 20 0 A 10 ∞ 20 0 10 E 55 D 10 20 40 C B 20 10 E 35 50 20 ∞ A B 20 10 D 10 20 C 35 50 20 20 0 A 10 ∞ 40 C E 50 D 10 20 20 0 10 B 20 10 E 35 50 20 ∞ A B 20 10 D 10 20 40 C 35 50 20 10 E 55 40 C 35 50 10 E 50 Folie 33 Kombinatorische Optimierung • Detaillierte Fragenstellungen der Graphentheorie • Traveling Salesman Problem – kürzester geschlossener Weg (Kreis), bei dem jeder Knoten nur einmal vorhanden ist • sehr intensiv bearbeitetes Problem mit vielen verschiedenen exakten und heuristischen Lösungsverfahren • Branch and Bound • Ameisenalgorithmen (Schwarmintelligenz) • genetische Algorithmen • künstliche neuronale Netze • Simulated Annealing Urbas/Doherr/Graube © 2013 CAE@PA - Einführung Graphentheorie [Dorigo u.a. 2006] Folie 34 Kombinatorische Optimierung • Detaillierte Fragenstellungen der Graphentheorie • weitere Problemstellungen • Standortprobleme – p-Center Problem • Färbung • Cliquen, Clustering • Matchingprobleme • … Urbas/Doherr/Graube © 2013 CAE@PA - Einführung Graphentheorie [Krumke u. Noltemeier 2012] Folie 35 Fakultät ETIT, Institut für Automatisierungstechnik, Professur für Prozessleittechnik Graphenmanipulation Graphmanipulationen Graphen müssen nicht statisch sein Wenn Systeme als Graph ausgedrückt werden ist es naheliegend Manipulationen an ihnen als Graph-Transformationen auszudrücken. Graphersetzungssysteme werden zur Manipulation verwendet Auch: Graph Grammars, Graph Transformation Rules Mögliche Graphmanipulationen Grapherzeugung Modelltransformationen Ändern von Zuständen Berechnungen Urbas/Doherr/Graube © 2013 CAE@PA - Einführung Graphentheorie Folie 37 Graphmanipulationen „Klassischer“ Einstieg – Pacman als Graph Urbas/Doherr/Graube © 2013 CAE@PA - Einführung Graphentheorie Folie 38 Graphmanipulationen „Klassischer“ Einstieg – Pacman als Graph CAE@PA - Einführung Graphentheorie Folie 39 Graphmanipulationen „Klassischer“ Einstieg – Pacman als Graph Regel MovePacman in Aktion Urbas/Doherr/Graube © 2013 CAE@PA - Einführung Graphentheorie Folie 40 Graphmanipulationen Übergang Verfahrensfließbild R&I-Fließbild PI Pumpe P029 A PI 1290 1289 Pumpe P029 Pumpe P029 B Urbas/Doherr/Graube © 2013 CAE@PA - Einführung Graphentheorie Folie 41 Graphmanipulationen L⇒R L R G G Regelbasierte Transformation Eine Regel beschreibt lokale Änderungen im Graphen Wenn die Regel angewendet wird, werden Vorkommen von L im Graphen G durch R ersetzt Urbas/Doherr/Graube © 2013 CAE@PA - Einführung Graphentheorie Folie 42 Graphmanipulationen Graphersetzungsregel 1.Wähle eine Graphersetzungsregel p:L R 2.Wähle eine Abbildung von L in G => f(L) 3.Ersetze dieses Vorkommen durch die Abbildung von R in G => g(R) Urbas/Doherr/Graube © 2013 CAE@PA - Einführung Graphentheorie Folie 43 Graphmanipulationen Graph Transformation Graph Transformation G H 1. 2. 3. 4. 5. Wähle Produktion p: L R Prüfe Bedingung für Produktionsregel Entferne von G den Teil von L der nicht in R vorkommt D Klebe R-L an D an E Zusätzliche Einbettungsverknüpfungen in E falls vorhanden H [Ehrig et.al. 2006] Urbas/Doherr/Graube © 2013 CAE@PA - Einführung Graphentheorie Folie 44 Graphmanipulationen Probleme bei Graph Transformationen Können nicht-deterministisch sein Mehrere Produktionsregeln anwendbar Mehrere Passungen einer Produktion Einschränkungen notwendig Kontrollflussregeln Prioritäten Verschiedene Ansätze SPO - Single Push-Out, DPO – Double Push-Out TGG - Triple Graph Grammar [Ehrig et.al. 2006] Urbas/Doherr/Graube © 2013 CAE@PA - Einführung Graphentheorie Folie 45 Graphmanipulationen Graph Transformationen - Ansätze SPO - Single Push-Out Löschen von Kanten und Knoten hat Vorrang vor Erhaltung DPO – Double Push-Out Klebegraph K als Untergraph von L und R Kontaktbedingung L darf nur durch Knoten und Kanten aus K mit dem Rest des Graphen verbunden sein Identifikationsbedingung Kein Knoten, der gelöscht wird (also aus L−K), darf Quell- oder Zielknoten einer Klebekante sein Urbas/Doherr/Graube © 2013 CAE@PA - Einführung Graphentheorie Folie 46 Graphmanipulationen Definition Graphersetzungsregel Eine Graphersetzungsregel für DPO hat die Form r = (L ⊇ K ⊆ R) wobei L, K und R Graphen über C sind. L heißt linke Seite, R rechte Seite und K der Klebegraph von r C Markierungsalphabet [Habel 2004] Urbas/Doherr/Graube © 2013 CAE@PA - Einführung Graphentheorie Folie 47 Graphmanipulationen Graph G Anwendungsbeispiel a Regel r = ( 1 2 3 ⊇ b 1 c 3 ⊆ 1 1 2 3 g1 a a b g2 a b c g3 b c b g4 c b c 3 ) [Graul 2005] Urbas/Doherr/Graube © 2013 CAE@PA - Einführung Graphentheorie Folie 48 Graphmanipulationen Diagrammdarstellung L Regel r = ( 1 2 L K 3 ⊇ ⊇ ↓g G R 1 3 K=L ∩ R ⊆ 1 ⊆ ↓ d=g∩h ⊇ D 3 ) R ↓h ⊆ H [Graul 2005] Urbas/Doherr/Graube © 2013 CAE@PA - Einführung Graphentheorie Folie 49 Graphmanipulationen Graph G Möglichkeit g1 a b L Regel r = ( 1 2 c K 3 ⊇ R 1 3 ⊆ 1 3 b G Urbas/Doherr/Graube © 2013 c ⊇ b c ⊆ D=G-g(L-K) ? b G a a b L-K: a Verletzt die Identifikationsbedingung a ) r 1 2 3 c R-K: H=D+h(R-K)[Graul 2005] CAE@PA - Einführung Graphentheorie Folie 50 Graphmanipulationen Graph G Möglichkeit g1 mit SPO a b c L Regel r = ( R 1 2 3 a b c G Urbas/Doherr/Graube © 2013 1 3 b ) r 1 2 3 G a a b c H CAE@PA - Einführung Graphentheorie [Graul 2005] Folie 51 Graphmanipulationen Graph G Möglichkeit g2 a L Regel r = ( 1 2 b c K 3 ⊇ 1 R 3 ⊆ 1 3 b G Urbas/Doherr/Graube © 2013 c ⊇ a ? c ⊆ D=G-g(L-K) a G a b c L-K: Verletzt die Kontaktbedingung a ) r 1 2 3 ? c b R-K: H=D+h(R-K)[Graul 2005] CAE@PA - Einführung Graphentheorie Folie 52 Graphmanipulationen Graph G Möglichkeit g3 a L Regel r = ( 1 a 2 b G Urbas/Doherr/Graube © 2013 b c K 3 c ⊇ ⊇ 1 a R 3 b ⊆ ⊆ D=G-g(L-K) 1 3 a b ) r 1 2 3 G b c b L-K: c R-K: b H=D+h(R-K)[Graul 2005] CAE@PA - Einführung Graphentheorie Folie 53 Graphmanipulationen Graph G Möglichkeit g4 a L Regel r = ( 1 2 b c K 3 ⊇ 1 R 3 ⊆ 1 3 b G Urbas/Doherr/Graube © 2013 c ⊇ a ? c ⊆ D=G-g(L-K) a G c b c L-K: Verletzt die Kontaktbedingung a ) r 1 2 3 ? c b R-K: H=D+h(R-K)[Graul 2005] CAE@PA - Einführung Graphentheorie Folie 54 Graphmanipulationen „Klassischer“ Einstieg – Pacman als Graph Urbas/Doherr/Graube © 2013 CAE@PA - Einführung Graphentheorie Folie 55 Graphen – Einsatz an der Professur Kommunikationsengineering Integriertes HMI Engineering Modulares Engineering Linked Data = RDF + HTTP + URI/IRI + Open-World-Assumption + SPARQL + Ontologien Folie 56 Literatur • • • • • • • • • Kastens, U., Kleine Büning, H. (2008). Modellierung: Grundlagen und formale Methoden. Hanser Fachbuchverlag. Retrieved from http://books.google.de/books?id=v-xywxpQNsoC Krumke, S.O., Noltemeier, H., 1998. Graphentheoretische Konzepte und Algorithmen, 2., aktualisierte Auflage. ed. Vieweg+ Teubner. Grötschel, Martin: Skriptum zur Vorlesung: ’Einführung in die Lineare und Kombinatorische Optimierung’. 2012 Benker, Hans: Mathematische Optimierung mit Computeralgebrasystemen - Einführung für Ingenieure, Naturwissenschaftler und Wirtschaftswissenschaftler. Springer, 2003 Korte, B., Vygen, J.: Kombinatorische Optimierung - Theorie und Algorithmen. Springer, 2012 Ehrig, H., Ehrig, K., Prange, U. , Taentzer , G., Fundamentals of Algebraic Graph Transformation, Springer, 2006 A. Habel. Graphersetzungssysteme. Carl v. Ossietzky Universität Oldenburg, 2004 (Vorlesungsskript). Graul, J., Graphtransformationen – Eine Einführung, 2005 IEC 61512 - Batch control Urbas/Doherr/Graube © 2013 CAE@PA - Einführung Graphentheorie Folie 57 Urbas/Doherr/Graube © 2013 CAE@PA - Einführung Graphentheorie Folie 58