Vorlesung Modellierung. Wintersemester 2013/14. (Folien von Prof. B. König)

Größe: px
Ab Seite anzeigen:

Download "Vorlesung Modellierung. Wintersemester 2013/14. (Folien von Prof. B. König)"

Transkript

1 Vorlesung Modellierung Wintersemester 2013/14 (Folien von Prof. B. König) Prof. Norbert Fuhr Übungsleitung: Thomas Beckers

2 Das heutige Programm Organisatorisches Vorstellung Ablauf der Vorlesung und der Übungen Prüfung Literatur & Folien Einführung und Motivation: Was ist Modellierung? Inhalt der weiteren Vorlesung

3 Wer sind wir? Dozent: Prof. Dr.-Ing. Norbert Fuhr Raum LF Sprechstunde: nach Vereinbarung Übungsleitung: Dipl.-Inform. Thomas Beckers Raum LF

4 Wer sind wir? Studentische Hilfskräfte (Korrektur & Betreuung von Übungsgruppen): Sebastian Schweitzer Corinna Reichwein Daniel Wohland Janina Weiß

5 Wer sind wir? Web-Seite: Regelmäßig vorbeischauen!

6 Vorlesungstermine Vorlesungstermin: Mittwoch, 14:00-16:00 Uhr, im Raum LB 104

7 Aktives Lernen Was von einer Vorlesung hängenbleibt Am Ende der Stunde: 50% Nach einer Woche: 15% Am Ende des Semesters: Nicht messbar Sage es mir, und ich vergesse es. Zeige es mir, und ich erinnere mich. Lass es mich tun, und ich behalte es ein Leben lang

8 Hinweise zu den Übungen Besuchen Sie die Übungen und machen Sie die Hausaufgaben! Diesen Stoff kann man nur durch regelmäßiges Üben erlernen. Auswendiglernen hilft nicht besonders viel. Die Übungen beginnen in der zweiten Semesterwoche am Mittwoch, den 23. Oktober.

9 Termine der Übungsgruppen/Tutorien Übungsgruppen: Mo, 16:00-17:00 Uhr, Raum LE 120 (Gruppe 1) Mo, 17:00-18:00 Uhr, Raum LE 120 (Gruppe 2) Di, 10:00-11:00 Uhr, Raum LE 120 (Gruppe 3) Di, 11:00-12:00 Uhr, Raum LE 120 (Gruppe 4) Di, 12:00-13:00 Uhr, Raum LK 051 (Gruppe 5) Di, 13:00-14:00 Uhr, Raum LK 051 (Gruppe 6) Do, 10:00-11:00 Uhr, Raum LF 125 (Gruppe 7) Do, 11:00-12:00 Uhr, Raum LF 125 (Gruppe 8) Do, 14:00-15:00 Uhr, Raum LE 120 (Gruppe 9) Do, 15:00-16:00 Uhr, Raum LE 120 (Gruppe 10)

10 Hinweise zu den Übungen Anmeldung über Webseite zur Vorlesung (bis einschließlich ) Endgültige Gruppenaufteilung wird nach Ablauf der Anmeldefrist auf der Webseite bekanntgegeben.

11 Hinweise zu den Übungen Matrikelnummern Nummern auf Studentenausweis, z.b. DS ES Nur der grün markierte Teil ist die Matrikelnummer.

12 Hinweise zu den Übungen Das Übungsblatt wird jeweils am Montag ins Netz gestellt. Das erste Übungsblatt wird am 15. Oktober bereitgestellt. Die schriftlichen Aufgaben müssen bis spätestens Sonntag, 23:59 Uhr, abgegeben werden. Abgabe durch Formular auf Webseite zur Vorlesung (nur als PDF) Besprechung in der darauffolgenden Woche Bitte geben Sie auf Ihrer Lösung deutlich Ihren Namen, Ihre Matrikelnummer und Ihre Gruppennumer an. Sie dürfen in Einer- oder Zweier-Gruppen abgeben. Plagiate werden mit 0 Punkten bewertet.

13 Klausur Die Vorlesung wird durch eine Klausur am Ende des Semesters geprüft: Termin: Siehe Webseite Die Anmeldung erfolgt über das Prüfungsamt

14 Klausur Es gibt folgende Bonusregelung: 50% der Hausaufgabenpunkten 80% der Hausaufgaben bearbeitet (Aufgaben mit > 0 Punkten) Auswirkung: Verbesserung um eine Notenstufe; z.b. von 2,3 auf 2,0

15 Literatur Bernd Baumgarten: Petri-Netze. Grundlagen und Anwendungen, Spektrum, Das Buch ist vergriffen, ist aber in der Bibliothek verfügbar.

16 Literatur Wolfgang Reisig: Petri-Netze Eine Einführung, Springer, Ebenfalls vergriffen und in der Bibliothek verfügbar. Es gibt jedoch elektronisch eine neue Version unter:

17 Literatur L. Priese, H. Wimmel: Petri-Netze, Springer, Online verfügbar unter (Zugriff über Uni-Rechner)

18 Literatur Tadao Murata: Petri Nets: Properties, Analysis and Applications. Proc. of the IEEE, 77(4), Online verfügbar als PDF: montek/teaching/spring-04/murata-petrinets.pdf

19 Literatur G. Booch, J. Rumbaugh, I. Jacobson: The Unified Modeling Language User Guide, Addison Wesley, 2005.

20 Literatur M. Jeckle, C. Rupp, J. Hahn, B. Zengler, S. Queins: UML 2 glasklar, Hanser Fachbuch, 2007.

21 Literatur R. Miles, K. Hamilton: Learning UML 2.0, O Reilly, Online verfügbar unter (Zugriff über Uni-Rechner)

22 Literatur Christoph Kecher: UML Das umfassende Handbuch. Galileo Press, Buch ist in der Bibliothek verfügbar.

23 Literatur Perdita Stevens, Rob Pooley: UML - Softwareentwicklung mit Objekten und Komponenten. Pearson, Buch (vor allem das englische Original) ist in der Bibliothek verfügbar.

24 Literatur David Harel: Statecharts: a visual formalism for complex systems. Science of Computer Programming 8, pp North-Holland Online verfügbar als PDF: dharel/ SCANNED.PAPERS/Statecharts.pdf

25 Literatur Hinweise: Die Bücher sind als Ergänzung gedacht, sie präsentieren den Stoff oft aus einem anderen Blickwinkel. Sehen Sie sich die Bücher erst an, bevor Sie sie kaufen. Nicht jede/r kommt mit jedem Buch zurecht. Die Bibliothek (LK) ist ein guter Platz um nach Büchern zu stöbern (Informatik-Abteilung im 1. Stock, Lehrbuchsammlung im Keller) Wagen Sie sich auch an englische Literatur, englische Fachsprache ist zumeist gut verständlich

26 Folien Folien werden im Web als PDF bereitgestellt bei Bedarf aktualisiert /korrigiert

27 Einführung in die Modellierung Was ist Modellierung? Modell Ein Modell ist eine Repräsentation eines Systems von Objekten, Beziehungen und/oder Abläufen. Ein Modell vereinfacht und abstrahiert dabei im allgemeinen das repräsentierte System. System Der Begriff System wird hier sehr allgemein verwendet. Er kann entweder einen Teil der Realität oder ein noch nicht bestehendes Gebilde, das noch erstellt werden muss, bezeichnen.

28 Einführung in die Modellierung Was ist Modellierung? Modellierung Modellierung ist der Prozess, bei dem ein Modell eines Systems erstellt wird. Warum sollte man modellieren? Um ein System zu entwerfen, besser zu verstehen, zu visualisieren, zu simulieren,... Um etwas konkreter zu werden betrachten wir den Begriff der Modellierung in verschiedenen Disziplinen (Physik, Biologie, Klimaforschung,... )

29 Einführung in die Modellierung Modellierung in der Physik Atommodelle Atome bestehen aus Protonen, Neutronen und Elektronen. Wie diese Teilchen zusammenwirken, wird in verschiedenen Atommodellen beschrieben, die sich im Laufe der Zeit immer wieder geändert haben.

30 Einführung in die Modellierung Modellierung in der Biologie Zitronensäurezyklus Der Zitronensäurezyklus oder Citratzyklus modelliert den Abbau organischer Stoffe im Körper.

31 Einführung in die Modellierung Modellierung in der Klimaforschung Modell des Transports von Gasen in der Atmosphäre

32 Einführung in die Modellierung Arten von Modellen visuell vs. textuell Nicht alle Modelle sind visuell bzw. graphisch. Auch mit textuellen Beschreibunge und Formeln kann man modellieren (siehe beispielsweise mathematische Modelle). Dennoch werden häufig graphische Darstellungen benutzt, auch aus didaktischen Gründen und um sich besser über die Modelle verständigen zu können.

33 Einführung in die Modellierung Arten von Modellen qualitativ vs. quantitativ qualitative Modelle: Welche Objekte gibt es? Was passiert? Warum passiert es? In welcher Reihenfolge geschehen die Ereignisse? Was sind die kausalen Zusammenhänge? Welche Phänomene treten auf? quantitative Modelle: Wieviele Objekte gibt es? Wie lange dauert ein Vorgang? Wie wahrscheinlich ist ein bestimmtes Ereignis?

34 Einführung in die Modellierung Arten von Modellen black box vs. white box black box: nur das von außen beobachtbare Verhalten wird beschrieben white box: es wird auch beschrieben, wie das von außen beobachtbare Verhalten im Inneren des Systems erzeugt wird

35 Einführung in die Modellierung Arten von Modellen statisch vs. dynamisch ein statisches Modell beschreibt einen Zustand des Systems zu einem bestimmten Zeitpunkt ein dynamisches Modell beschreibt hingegen auch, wie das System sich entwickelt (ein oder mehrere mögliche Abläufe oder sogar das gesamte Systemverhalten)

36 Einführung in die Modellierung Arten von Modellen nicht-formell vs. semi-formal vs. formal Je nach Exaktheit der Modelle erhält man: formale Modelle, die vollkommen exakt in ihren Aussagen sind (vor allem mathematische Modelle) semi-formale Modelle, die teilweise exakt sind, jedoch nicht alles vollständig spezifieren nicht-formale Modelle, die als grobe Richtlinie dienen können, jedoch eher vage Aussagen machen

37 Einführung in die Modellierung Probleme mit nicht-formalen Modellen Natürliche Sprache ist nicht immer eindeutig. Beispiel: Ich sah den Mann auf dem Berg mit dem Fernrohr.

38 Einführung in die Modellierung Probleme mit nicht-formalen Modellen (((Ich sah den Mann) auf dem Berg) mit dem Fernrohr)

39 Einführung in die Modellierung Probleme mit nicht-formalen Modellen ((Ich sah (den Mann auf dem Berg)) mit dem Fernrohr)

40 Einführung in die Modellierung Probleme mit nicht-formalen Modellen ((Ich sah den Mann) (auf dem Berg mit dem Fernrohr))

41 Einführung in die Modellierung Probleme mit nicht-formalen Modellen (Ich sah ((den Mann auf dem Berg) mit dem Fernrohr))

42 Einführung in die Modellierung Probleme mit nicht-formalen Modellen (Ich sah (den Mann (auf dem Berg mit dem Fernrohr)))

43 Einführung in die Modellierung Probleme mit nicht-formalen Modellen (((Ich sah den Mann) auf dem Berg) mit dem Fernrohr) ((Ich sah (den Mann auf dem Berg)) mit dem Fernrohr) ((Ich sah den Mann) (auf dem Berg mit dem Fernrohr)) 5 mögliche Interpretationen! (Ich sah ((den Mann auf dem Berg) mit dem Fernrohr)) (Ich sah (den Mann (auf dem Berg mit dem Fernrohr)))

44 Einführung in die Modellierung Probleme mit nicht-formalen Modellen Auch graphische Darstellungen können uneindeutig sein:

45 Einführung in die Modellierung Modellierung in der Informatik In dieser Vorlesung geht es um Modellierungsmethoden in der Informatik. Diese werden zum Entwurf folgender Systeme eingesetzt: (Objekt-orientierte) Programme (Große) Software-Systeme Benutzeroberflächen Datenbanken Virtual Reality, Computer-Spiele...

46 Einführung in die Modellierung Wozu ist Modellierung gut? Wozu benötigt man Modelle? je komplexer ein System ist, desto wichtiger ist es, einen Plan zu erstellen, bevor man beginnt das System zu konstruieren dies führt zu: Vermeidung von Fehlern besserer Qualität niedrigeren Kosten besserer Dokumentation und Wiederverwendbarkeit

47 Einführung in die Modellierung Wozu ist Modellierung gut? Analogie: Bau eines Hauses Beim Bau einer Hundehütte kann man zumeist ohne große Planung vorgehen. Die Hütte kann von einer einzelnen Person erstellt werden und ein Hund hat zumeist keine großen Anforderungen.

48 Einführung in die Modellierung Wozu ist Modellierung gut? Analogie: Bau eines Hauses Beim Bau eines Einfamilienhauses ist Planung viel wichtiger. Die Familie ist anspruchsvoller als ein Hund, Bauvorschriften müssen eingehalten werden und vermutlich werden nicht alle Arbeiten von derselben Person durchgeführt.

49 Einführung in die Modellierung Wozu ist Modellierung gut? Analogie: Bau eines Hauses Beim Bau eines Hochhauses ist ohne Erstellung eines detaillierten Plans bzw. Modells nicht möglich. Das Risiko, Fehler zu machen ist sehr groß, und Fehler können extrem kostspielig werden.

50 Einführung in die Modellierung Wozu ist Modellierung gut? Modellierung ist in der Informatik weniger verbreitet als in den Ingenieurwissenschaften, aber ebenso wichtig. Schwierigkeiten beim Entwurf komplexer Systeme Menschen können sich komplexe Systeme normalerweise nicht in vollem Umfang vorstellen Bei mehreren Menschen/Entwicklern gibt es unterschiedliche Meinungen darüber, wie das System aussehen muss Modelle dienen zu Kommunikation! Es ist schwer ein System zu dokumentieren und zu warten, das nicht explizit modelliert ist. Feststellung (nach Glinz) Die Entwicklung von Klein-Software unterscheidet sich fundamental von der Entwicklung größerer Software.

51 Einführung in die Modellierung Probleme bei der Entwicklung großer Systeme Klein-Groß-Gegensätze in der Software-Entwicklung: klein Programme bis ungefähr 300 Zeilen Für den Eigengebrauch groß Längere Programme Für den Gebrauch durch Dritte Vage Zielsetzung genügt, das Produkt ist seine eigene Spezifikation Genaue Zielbestimmung, d.h. die Spezifikation von Anforderungen, erforderlich

52 Einführung in die Modellierung Probleme bei der Entwicklung großer Systeme klein Ein Schritt vom Problem zur Lösung genügt: Lösung wird direkt programmiert Validierung (Überprüfung/Testen) und nötige Korrekturen finden am Endprodukt statt groß Mehrere Schritte vom Problem zur Lösung erforderlich: Spezifikation, Konzept, Entwurf und Programmieren der Teile, Zusammensetzen, Inbetriebnahme Auf jeden Entwicklungsschritt muss ein Prüfschritt folgen, sonst kann Endergebnis unbrauchbar werden

53 Einführung in die Modellierung Probleme bei der Entwicklung großer Systeme klein Eine Person entwickelt: keine Kooperation und Kommunikation erforderlich Komplexität des Problems in der Regel klein, Strukturieren und Behalten der Übersicht nicht schwierig groß Mehrere Personen entwickeln gemeinsam: Koordination und Kommunikation notwendig Komplexität des Problems größer bis sehr groß, explizite Maßnahmen zur Strukturierung und Modularisierung erforderlich

54 Einführung in die Modellierung Probleme bei der Entwicklung großer Systeme klein Software besteht aus wenigen Komponenten In der Regel wird keine Dokumentation erstellt groß Software besteht aus vielen Komponenten, die spezielle Maßnahmen zur Komponentenverwaltung erfordern Dokumentation dringend erforderlich, damit Software wirtschaftlich betrieben und gepflegt werden kann

55 Einführung in die Modellierung Probleme bei der Entwicklung großer Systeme klein Keine Planung und Projektorganisation erforderlich groß Planung und Projektorganisation zwingend erforderlich für eine zielgerichtete, wirtschaftliche Entwicklung

56 Einführung in die Modellierung Probleme bei der Entwicklung großer Systeme Explosion der Anzahl der Kommunikationspfade bei Anstieg der Entwicklerzahl: Anzahl Personen: Anzahl Komm.pfade: Quantensprung: Kommunikation wird erforderlich Quantensprung: Zahl der Komm.pfade übersteigt Zahl der Personen

57 Einführung in die Modellierung Probleme bei der Entwicklung großer Systeme Die Problematik bei der Erstellung großer Programme sieht man auch an folgenden Zahlen (nach Boehm 1981): 40% der Zeit wird mit der Entwicklung verbracht (davon: 15% Spezifikation; 8% Codierung; 16% Test) 60% der Zeit wird für die Wartung aufgewendet (12% Anpassung; 36% Erweiterung und Verbesserung; 12% Fehlerbehebung)

58 Einführung in die Modellierung Wozu ist Modellierung gut? Aus diesen Fakten und Zahlen ergibt sich folgende Konsequenz: Vor allem bei der Erstellung großer Systeme ist es unbedingt erforderlich, zunächst das System zu modellieren, bevor es implementiert bzw. konstruiert wird. Meistens sind auch mehrere verschiedene Modelle erforderlich. Aus Gründen der Übersichtlichkeit und Didaktik werden wir uns in der Vorlesung jedoch hauptsächlich mit kleinen Modellen befassen.

59 Einführung in die Modellierung Beispiel: Wolf, Ziege, Kohlkopf Wir modellieren folgendes System, um eine möglich Lösung zu finden. Wolf-Ziege-Kohlkopf-Problem Ein Bauer will einen Fluss überqueren. Er hat einen Wolf, eine Ziege und einen Kohlkopf bei sich. Wenn sie alleingelassen werden, so frisst der Wolf die Ziege, und die Ziege den Kohlkopf. Zur Überquerung des Flusses steht ein Boot mit zwei Plätzen zur Verfügung. Nur der Bauer kann rudern und er kann das Boot entweder allein benutzen oder ein Tier oder den Kohlkopf mitnehmen.

60 Einführung in die Modellierung Beispiel: Wolf, Ziege, Kohlkopf Statisches Modell I: Beteiligte Akteure/Objekte

61 Einführung in die Modellierung Beispiel: Wolf, Ziege, Kohlkopf Statisches Modell II: Fress- und Eigentumsbeziehungen zwischen den Akteuren besitzt besitzt besitzt frisst frisst

62 Einführung in die Modellierung Beispiel: Wolf, Ziege, Kohlkopf Ausgangssituation: vor Überquerung des Flusses Boot

63 Einführung in die Modellierung Beispiel: Wolf, Ziege, Kohlkopf Zielsituation: nach Überquerung des Flusses Boot

64 Einführung in die Modellierung Beispiel: Wolf, Ziege, Kohlkopf Dynamisches Modell: Beispielablauf, erster Schritt Bauer und Wolf setzen gemeinsam über Boot

65 Einführung in die Modellierung Beispiel: Wolf, Ziege, Kohlkopf Dynamisches Modell: Beispielablauf, zweiter Schritt Ziege frisst Kohlkopf Boot

66 Einführung in die Modellierung Syntax und Semantik Man unterscheidet bei der Modellierung zwischen: Syntax: Symbole und Diagramme, die für die Darstellung des Modells genutzt werden dürfen Im Beispiel: Bild der Ziege, blaue Fläche, etc. Semantik: Bedeutung, die sich hinter den Symbolen verbirgt Im Beispiel: Die blaue Fläche symbolisiert den Fluss. Die Pfeile bedeuten: Fluss wird überquert Zu einer Syntax gibt es nicht immer eine dazugehörige Semantik (im Beispiel ist die Semantik sehr vage). Wünschenswert ist jedoch im allgemeinen, dass die Bedeutung aller Symbole möglichst präzise festgelegt wird. Einigung auf eine gemeinsame Sprache/Notation, auf gemeinsame visuelle Beschreibungen zur Vermeidung von Missverständnissen.

67 Einführung in die Modellierung Weitere Aspekte Weitere wichtige Gesichtspunkte sind: Analyse: Ist das Modell korrekt? Ist es in sich konsistent? Stimmt das Modell mit der späteren Implementierung überein? (Hier werden Verfahren zum Testen und zur Verifikation benötigt) Werkzeuge, Software-Tools: werden benötigt zum Zeichnen, zum Darstellen (Wechsel zwischen verschiedenen Darstellungen), zum Archivieren, zur Code-Generierung, zur Analyse,...

68 Einführung in die Modellierung Inhalt der Vorlesung Inhalt Mathematische Grundlagen Graphen für statische und dynamische Systembeschreibungen Petrinetze UML (Unified Modeling Language)

69 Einführung in die Modellierung Graphen Graphen bestehen aus Knoten und Kanten. Sie können eingesetzt werden für Statische Modellierung: Komponenten und Beziehungen zwischen den Komponenten Dynamische Modellierung: Zustände und Zustandsübergänge in Form eines Zustandsübergangsdiagramms 1 a 2 c b 3

70 Einführung in die Modellierung Petrinetze Modell für nebenläufige und verteilte Systeme, das die gemeinsame Nutzung von Ressourcen beschreibt. Schwerpunkt liegt auf der Modellierung des dynamischen Verhaltens. Etabliertes Modell, das vielfältig eingesetzt wird. Formale Semantik. Erfunden von Carl Adam Petri (1962). Stelle Marke Transition

71 Einführung in die Modellierung UML: Unified Modeling Language Standard-Modellierungssprache für Software Engineering. Basiert auf objekt-orientierten Konzepten. Sehr umfangreich, enthält viele verschiedene Typen von Modellen. Entwickelt von Grady Booch, James Rumbaugh, Ivar Jacobson (1997).

72 Einführung in die Modellierung Inhalt der Vorlesung Die vorgestellten Modellierungsmethoden sind nicht die einzigen Modellierungsmethoden in der Informatik. Hier: Fokus auf visuelle Modellierung mit Hilfe von Diagrammen Mögliche Alternative: algebraische Modellierungsmethoden, die sich stärker an der Mathematik orientieren

73 Einführung in die Modellierung Ein weiteres Beispiel: Einschreiben an der Universität Szenario: Eine Reorganisation der Universität, und insbesondere des Studiensekretariats, das für Einschreibungen zuständig ist, steht an. Hierzu soll der Ablauf des Einschreibens neuer Studierender modelliert werden...

74 Einführung in die Modellierung Ein weiteres Beispiel: Einschreiben an der Universität Darstellung des zeitlichen Ablaufs durch Symbolisieren der beteiligten Partner als Linien und der Kommunikation durch Pfeile (Ausschnitt). Universität Student/in Studiensekretariat Studieninformation anfordern Aufstellen Bonautomat zeitlicher Ablauf Studieninformation Anfordern Bon Ausgeben Bon Unterlagen schicken Besuch der Einführungsveranstaltung

75 Einführung in die Modellierung Ein weiteres Beispiel: Einschreiben an der Universität Solche Diagramme sind übrigens Bestandteil von UML. Sie werden Sequenzdiagramme (engl. sequence diagrams, auch message sequence charts) genannt.

76 Einführung in die Modellierung Notation: Mengen und Funktionen Menge Menge M von Elementen, wird beschrieben als Aufzählung M = {0, 2, 4, 6, 8,... } oder als Menge von Elementen mit einer bestimmten Eigenschaft M = {n n N 0 und n gerade}. Allgemeines Format: M = {x P(x)} (M ist Menge aller Elemente x, die die Eigenschaft P erfüllen.)

77 Einführung in die Modellierung Notation: Mengen und Funktionen Bemerkungen: Die Elemente einer Menge sind ungeordnet, d.h., ihre Ordnung spielt keine Rolle. Beispielsweise gilt: {1, 2, 3} = {1, 3, 2} = {2, 1, 3} = {2, 3, 1} = {3, 1, 2} = {3, 2, 1} Ein Element kann nicht mehrfach in einer Menge auftreten. Es ist entweder in der Menge, oder es ist nicht in der Menge. Beispielsweise gilt: {1, 2, 3} {1, 2, 3, 4} = {1, 2, 3, 4, 4}

78 Einführung in die Modellierung Notation: Mengen und Funktionen Element einer Menge Wir schreiben a M, falls ein Element a in der Menge M enthalten ist. Anzahl der Elemente einer Menge Für eine Menge M gibt M die Anzahl ihrer Elemente an. Teilmengenbeziehung Wir schreiben A B, falls jedes Element von A auch in B enthalten ist. Die Relation heißt auch Inklusion.

79 Einführung in die Modellierung Notation: Mengen und Funktionen Vereinigung Die Vereinigung zweier Mengen M 1, M 2 ist die Menge M, die die Elemente enthält, die in M 1 oder M 2 vorkommen. Man schreibt dafür M 1 M 2. M 1 M 2 = {a a M 1 oder a M 2 } Schnitt Der Schnitt zweier Mengen M 1, M 2 ist die Menge M, die die Elemente enthält, die sowohl in M 1 als auch in M 2 vorkommen. Man schreibt dafür M 1 M 2. M 1 M 2 = {a a M 1 und a M 2 }

80 Einführung in die Modellierung Notation: Mengen und Funktionen Kreuzprodukt Seien A, B zwei Menge. Die Menge A B is die Menge aller Paare (a, b), wobei das erste Element des Paars aus A, das zweite aus B kommt. A B = {(a, b) a A, b B} Beispiel: {1, 2} {3, 4, 5} = {(1, 3), (1, 4), (1, 5), (2, 3), (2, 4), (2, 5)} Es gilt: A B = A B (für endliche Menge A, B).

81 Einführung in die Modellierung Notation: Mengen und Funktionen Bemerkungen: Wir betrachten nicht nur Paare, sondern auch sogenannte Tupel, bestehend aus mehreren Elementen. Ein Tupel (a 1,..., a n ) bestehend aus n Elementen heißt auch n-tupel. In einem Tupel sind die Elemente geordnet! Beispielsweise gilt: (1, 2, 3) (1, 3, 2) N 0 N 0 N 0 Ein Element kann mehrfach in einem Tupel auftreten. Tupel unterschiedlicher Länge sind immer verschieden. Beispielsweise: (1, 2, 3, 4) (1, 2, 3, 4, 4) Merke: Runde Klammern (, ) und geschweifte Klammern {, } stehen für ganz verschiedene mathematische Objekte!

82 Einführung in die Modellierung Notation: Mengen und Funktionen Potenzmenge Sei M eine Menge. Die Menge P(M) ist die Menge aller Teilmengen von M. P(M) = {A A M} Beispiel: P({1, 2, 3}) = {, {1}, {2}, {3}, {1, 2}, {1, 3}, {2, 3}, {1, 2, 3}}. Es gilt: P(M) = 2 M (für eine endliche Menge M).

83 Einführung in die Modellierung Notation: Mengen und Funktionen Funktion f : A B a f (a) Die Funktion f bildet ein Element a A auf ein Element f (a) B ab. Dabei ist A der Definitionsbereich und B der Wertebereich. Beispiel (Quadratfunktion): f : Z N 0, f (n) = n 2..., 3 9, 2 4, 1 1, 0 0, 1 1, 2 4, 3 9,... Dabei ist N 0 die Menge der natürlichen Zahlen (mit der Null) und Z die Menge der ganzen Zahlen.

84 Einführung in die Modellierung Graphen Graphen sind netzartige Strukturen, bestehend aus Knoten und Kanten. Sie bilden die Grundlagen vieler diagrammatischer Modellierungstechniken. Gerichteter Graph Sei L eine Menge von Beschriftungen (oder Labels). Ein gerichteter (beschrifteter) Graph G = (V, E) besteht aus einer Knotenmenge V und einer Kantenmenge E V L V. Bemerkung: V steht für vertices und E für edges.

85 Einführung in die Modellierung Graphen Beispiel (Bauer, Wolf, Ziege, Kohlkopf): V = {B, W, Z, K} L = {besitzt, frisst} E = {(B, besitzt, W ), (B, besitzt, Z), (B, besitzt, K), (W, frisst, Z), (Z, frisst, K)} Graphische Darstellung: B besitzt besitzt besitzt frisst frisst W Z K

86 Einführung in die Modellierung Graphen Weitere Arten von Graphen: Ungerichtete Graphen Bei ungerichteten Graphen spielt die Richtung der Kanten keine Rolle. Formal sind Kanten zweielementige Teilmengen der Knotenmenge (statt Tupel). A a b c c B C D

87 Einführung in die Modellierung Graphen Graphen mit Knotenbeschriftung Auch Knoten können Beschriftungen tragen, wobei zwei verschiedene Knoten auch gleich beschriftet sein dürfen. Mensch B besitzt besitzt besitzt frisst frisst W Z K Tier Tier Gemüse

88 Einführung in die Modellierung Graphen Hypergraphen Bei Hypergraphen kann eine Kante (symbolisiert durch ein Quadrat oder Rechteck) mit einer beliebigen Anzahl von Knoten verbunden sein. Evtl. sind dabei die Knoten im Bezug auf die Kante geordnet (wie bei gerichteten Graphen). A a c B C b D

89 Einführung in die Modellierung Graphen Graphen können in vielfältiger Weise zur Modellierung eingesetzt werden. Wir betrachten zwei typische Fälle. Graphen zur statischen Modellierung Knoten sind Komponenten oder Objekte, die untereinander über Kanten verbunden sind bzw. in Beziehung stehen. Beispiel: Beziehungen zwischen Bauer, Wolf, Ziege, Kohlkopf

90 Einführung in die Modellierung Zustandsübergangsdiagramme Graphen zur dynamischen Modellierung Knoten sind Zustände und Kanten sind Zustandsübergänge. Klassischer Vertreter: Zustandsübergangsdiagramme (auch Transitionssysteme genannt) Zustandsübergangsdiagramm Ein Zustandsübergangsdiagramm besteht aus einem gerichteten Graphen (Z, U), wobei Z (= Zustände) die Knotenmenge des Graphen und U (= Übergänge) die Kantenmenge der Graphen ist, und außerdem aus einem Startzustand z 0 Z. Zustandsübergangsdiagramme werden graphisch wie gerichtete Graphen dargestellt. Der Startzustand (auch Anfangszustand genannt) wird dabei meist durch eine eingehende Pfeilspitze gekennzeichnet.

91 Einführung in die Modellierung Zustandsübergangsdiagramme Beispiel: Zustandsübergangsdiagramm für die Übergänge beim Wolf-Ziege-Kohlkopf-Problem. BWZK WZK B Misserfolg! Misserfolg! ZK BW WK BZ WZ BK Misserfolg! BWK Z K BWZ W BZK Misserfolg! BK WZ BZK W BWZ K BW ZK Misserfolg! Z BWK BZ WK Erfolg! BWZK B WZK Misserfolg!

92 Einführung in die Modellierung Zustandsübergangsdiagramm Bemerkungen: Der senkrechte Strich steht für den Fluss. Links und rechts davon befinden sich die Akteure/Objekte (B = Bauer, W = Wolf, Z = Ziege, K = Kohlkopf) Übergänge sind aus Gründen der Übersichtlichkeit nicht beschriftet. Sinnvolle Beschriftungen wären die ausgeführten Aktionen ( Bauer bringt Ziege über den Fluss, etc.) Eckige (rote) Zustände symbolisieren hier Misserfolg (z.b. Ziege frisst Kohlkopf ). Kanten, die aus solchen Zuständen herausführen, wurden weggelassen. Die doppelte (blaue) Ellipse symbolisiert hier Erfolg (erwünschter Zielzustand ist erreicht)

93 Einführung in die Modellierung Zustandsübergangsdiagramme Weitere Bemerkungen: Es gibt mehrere (sogar unendlich viele) Wege zum Zielzustand. Die zwei kürzesten enthalten jeweils sieben Übergänge. Zustandsübergangsdiagramme selbst relativ einfacher Systeme werden oft erstaunlich groß (sogenannte Zustandsexplosion). Wichtig: Zustandsübergangsdiagramme stellen im allgemeinen alle Zustände und alle Übergänge eines Systems dar.

94 Petrinetze Grundlagen und Erreichbarkeitsgraphen Motivation: Petrinetze Petrinetze sind ein Formalismus zur Modellierung von nebenläufigen Systemen mit folgenden Eigenschaften: Vorstellung von Systemübergängen, bei denen gemeinsame Ressourcen konsumiert und neu erzeugt werden können. Einfache Modellierung von räumlicher Verteilung der Ressourcen, Nebenläufigkeit, Parallelität und (Zugriffs-)Konflikten. Intuitive graphische Darstellung. Petrinetze werden in der Praxis vielfach benutzt. In UML sind sie abgewandelt als sogenannte Aktivitätsdiagramme (engl. activity diagrams) eingegangen. Eingeführt wurden Sie in der Doktorarbeit von Carl Adam Petri: Kommunikation mit Automaten, Bonn, 1962.

95 Petrinetze Grundlagen und Erreichbarkeitsgraphen Motivation: Petrinetze Parallelität versus Nebenläufigkeit: Parallelität Zwei Ereignisse finden parallel statt, wenn sie gleichzeitig ausgeführt werden. Nebenläufigkeit Zwei Ereignisse sind nebenläufig, wenn sie parallel ausgeführt werden können (jedoch nicht müssen), das heißt, wenn zwischen ihnen keine kausale Abhängigkeit besteht. Das bedeutet: Nebenläufigkeit ist der allgemeinere Begriff.

96 Petrinetze Grundlagen und Erreichbarkeitsgraphen Motivation: Petrinetze Anwendungen für Petrinetze: Modellierung von Büroabläufen (work flow, business processes) Modellierung und Analyse von Web Services Beschreibung von graphischen Benutzeroberflächen Prozessmodellierung bei Betriebssystemen Ablaufbeschreibungen in ingenieurwissenschaftlichen Anwendungen...

97 Petrinetze Grundlagen und Erreichbarkeitsgraphen Motivation: Petrinetze Beispiel für ein Petrinetz: Notation: Stellen (dargestellt als Kreise): Mögliche Plätze für Ressourcen Marken (dargestellt als kleine ausgefüllte Kreise): Ressourcen Transitionen (dargestellt durch Rechtecke): Systemübergänge

98 Petrinetze Grundlagen und Erreichbarkeitsgraphen Motivation: Petrinetze Darstellung einer Transition: Vorbedingung (Marken, die konsumiert werden) Nachbedingung (Marken, die erzeugt werden) Die Entfernung der Marken der Vorbedingung und Erzeugung der Marken der Nachbedingung nennt man Schalten bzw. Feuern der Transition.

99 Petrinetze Grundlagen und Erreichbarkeitsgraphen Motivation: Petrinetze

100 Petrinetze Grundlagen und Erreichbarkeitsgraphen Motivation: Petrinetze

101 Petrinetze Grundlagen und Erreichbarkeitsgraphen Motivation: Petrinetze

102 Petrinetze Grundlagen und Erreichbarkeitsgraphen Motivation: Petrinetze

103 Petrinetze Grundlagen und Erreichbarkeitsgraphen Motivation: Petrinetze

104 Petrinetze Grundlagen und Erreichbarkeitsgraphen Motivation: Petrinetze

105 Petrinetze Grundlagen und Erreichbarkeitsgraphen Motivation: Petrinetze

106 Petrinetze Grundlagen und Erreichbarkeitsgraphen Motivation: Petrinetze

107 Petrinetze Grundlagen und Erreichbarkeitsgraphen Motivation: Petrinetze

108 Petrinetze Grundlagen und Erreichbarkeitsgraphen Motivation: Petrinetze

109 Petrinetze Grundlagen und Erreichbarkeitsgraphen Motivation: Petrinetze

110 Petrinetze Grundlagen und Erreichbarkeitsgraphen Motivation: Petrinetze

111 Petrinetze Grundlagen und Erreichbarkeitsgraphen Motivation: Petrinetze

112 Petrinetze Grundlagen und Erreichbarkeitsgraphen Beispiel: Dining Philosophers Wir betrachten das Beispiel der Dining Philosophers (speisende Philosophen): Es sitzen drei Philosophen um einen runden Tisch, zwischen je zwei Philosophen liegt eine Gabel. Philosophen werden von Zeit zu Zeit hungrig und benötigen zum Essen beide benachbarte Gabeln. Jeder Philosoph nimmt zu einem beliebigen Zeitpunkt beide Gabeln nacheinander auf (die rechte zuerst), isst und legt anschließend beide Gabeln wieder zurück. P 1 F 1 P 2 F 3 F 2 P 3

113 Petrinetze Grundlagen und Erreichbarkeitsgraphen Beispiel: Dining Philosophers E 1 Modellierung als Petrinetz: In dem Netz ist ein Deadlock (Verklemmung) erreichbar, d.h., eine Markierung, bei der keine Transition mehr geschaltet werden kann. W 1 F 3 E 3 H 1 F 1 H 3 F 2 H 2 W 2 E 2 W 3

114 Petrinetze Grundlagen und Erreichbarkeitsgraphen Petrinetze: Definitionen Petrinetz (Definition) Ein Petrinetz ist ein Tupel N = (S, T, (), (), m 0 ), wobei S eine Menge von Stellen und T eine Menge von Transitionen ist. Außerdem gibt es für jede Transition t zwei Funktionen t : S N 0, t : S N 0, die angeben, wieviele Marken t aus einer Stelle entnimmt und in eine Stelle legt. m 0 : S N 0 ist die Anfangsmarkierung (oder initiale Markierung). Der Wert t(s) bzw. t (s) wird auch als Gewicht bezeichnet.

115 Petrinetze Grundlagen und Erreichbarkeitsgraphen Petrinetze: Definitionen Markierung Eine Markierung ist eine Abbildung m : S N 0, die festlegt, wieviele Marken in jeder Stelle liegen. Falls eine Reihenfolge s 1,..., s n der Stellen fixiert wurde, kann eine Markierung m auch durch ein Tupel (m(s 1 ),..., m(s n )) dargestellt werden.

116 Petrinetze Grundlagen und Erreichbarkeitsgraphen Petrinetze: Darstellung Eine andere Definition stellt die Verbindungen zwischen Stellen und Transitionen und die dazugehörigen Gewichte als Graph dar: F (S T ) (N 0 \{0}) (S T ) (Flussrelation), wobei nur Kanten der Form (s, n, t) (von Stelle zu Transition) und (t, n, s) (von Transition zu Stelle) mit s S, t T erlaubt sind. Zusammenhang zur eingeführten Notation: (s, n, t) F t(s) = n 0 (t, n, s) F t (s) = n 0 Manchmal werden auch unbeschriftete Kante eingeführt, denen dann mit Hilfe einer Funktion W ein Gewicht zugeordnet wird.

117 Petrinetze Grundlagen und Erreichbarkeitsgraphen Petrinetze: Darstellung Graphische Darstellung: Stellen werden als Kreise, Transitionen als Quadrate oder Rechtecke, Marken als kleine schwarze ausgefüllte Kreise dargestellt Kanten zwischen Stellen und Transitionen werden als Pfeile dargestellt. Das Gewicht als Kantenbeschriftung kann weggelassen werden, falls es den Wert eins hat. Die Kante wird ganz weggelassen, falls das Gewicht den Wert 0 hat.

118 Petrinetze Grundlagen und Erreichbarkeitsgraphen Petrinetze: Darstellung Wir betrachten den Zusammenhang zwischen der mathematischen Notation und der graphischen Darstellung genauer: s 1 s 2 S = {s 1, s 2, s 3 } T = {t 1, t 2, t 3 } t 1 (s 1 ) = 1 t 1 (s 2 ) = 1 t 1 (s 3 ) = 0 t 2 t 1 2 t 3 t 1 (s 1 ) = 0 t 1 (s 2 ) = 0 t 1 (s 3 ) = 2 oder: t 1 = (1, 1, 0) t 1 = (0, 0, 2)... s 3 Stellenordnung: s 1, s 2, s 3 m 0 (s 1 ) = 1 m 0 (s 2 ) = 2 m 0 (s 3 ) = 0 oder: m 0 = (1, 2, 0)

119 Petrinetze Grundlagen und Erreichbarkeitsgraphen Petrinetze: Darstellung t 2 Wir betrachten den Zusammenhang zwischen der mathematischen Notation und der graphischen Darstellung genauer: s 1 s 2 t 1 2 s 3 t 3 Stellenordnung: s 1, s 2, s 3 Alternative Darstellung (mit Flussrelation): S = {s 1, s 2, s 3 } T = {t 1, t 2, t 3 } F = {(s 1, 1, t 1 ), (s 2, 1, t 1 ), (t 1, 2, s 3 ), m 0 = (1, 2, 0) (s 3, 1, t 2 ), (t 2, 1, s 1 ), (s 3, 1, t 3 ), (t 3, 1, s 2 )}

120 Petrinetze Grundlagen und Erreichbarkeitsgraphen Petrinetze: Dynamik Operationen auf Markierungen: Seien m, m : S N 0 zwei Abbildungen von Stellen auf natürliche Zahlen. Ordnung Es gilt m m, falls für alle s S gilt: m(s) m (s). Addition Wir definieren m = m m, wobei m : S N 0 mit m (s) = m(s) + m (s) für alle s S. Subtraktion Wir definieren m = m m, wobei m : S N 0 mit m (s) = m(s) m (s) für alle s S. Dabei gilt n k = 0, falls n, k N 0, n < k (modifizierte Subtraktion).

121 Petrinetze Grundlagen und Erreichbarkeitsgraphen Petrinetze: Dynamik Weitere Definitionen: Aktivierung Eine Transition t ist unter einer Markierung m aktiviert, falls t m gilt. (D.h., falls genug Marken vorhanden sind, um die Transition zu schalten.) Schalten Sei m eine Markierung und t eine Transition, die für m aktiviert ist. Dann kann t schalten, was zu der Nachfolgemarkierung m = m t t führt. Symbolisch m[t m.

122 Petrinetze Grundlagen und Erreichbarkeitsgraphen Petrinetze: Dynamik Weitere Definitionen: Erreichbarkeit Eine Markierung m heißt erreichbar in einem Netz, falls es eine Folge von Transitionen t 1,..., t n gibt mit m 0 [t 1 m 1... m n 1 [t n m, wobei m 0 die Anfangsmarkierung ist. In diesem Fall schreibt man auch m 0 [t 1... t n m oder m 0 [ t m mit t = t 1... t n. Die Sequenz t heißt auch Schaltfolge. Auch die leere Schaltfolge t = ε is möglich. In diesem Fall ändert sich die Markierung nicht (m[ε m, für jede Markierung m).

123 Petrinetze Grundlagen und Erreichbarkeitsgraphen Petrinetze: Dynamik s 1 s 2 Die Markierung m 2 = (1, 1, 1) ist in zwei Schritten erreichbar: t 1 = (1, 1, 0) (1, 2, 0) = m 0 t 2 t 1 2 t 3 m 1 = m 0 t 1 t 1 = (1, 2, 0) (1, 1, 0) (0, 0, 2) = (0, 1, 2) t 2 = (0, 0, 1) (0, 1, 2) = m 1 s 3 m 2 = m 1 t 2 t 2 = (0, 1, 2) (0, 0, 1) (1, 0, 0) = (1, 1, 1) Es gilt also: m 0 [t 1 m 1 [t 2 m 2

124 Petrinetze Grundlagen und Erreichbarkeitsgraphen Petrinetze: Dynamik Zustandsübergangsdiagramm eines Petrinetzes Sei N = (S, T, (), (), m 0 ) ein Petrinetz. Dann besteht das zu N gehörende Zustandsübergangsdiagramm aus folgenden Komponenten: Menge der Beschriftungen L: Menge aller Transitionen Zustandsmenge Z: Menge aller erreichbaren Markierungen Übergangsmenge U: (m, t, m ) U m[t m. Startzustand z 0 : die Anfangsmarkierung m 0 Das Zustandsübergangsdiagramm eines Petrinetzes heißt auch Erreichbarkeitsgraph.

125 Petrinetze Grundlagen und Erreichbarkeitsgraphen Petrinetze: Dynamik Beispiel: Bestimme den Erreichbarkeitsgraph für das folgende Beispielnetz s 1 s 2 t 2 t 1 2 t 3 s 3

126 Petrinetze Grundlagen und Erreichbarkeitsgraphen Petrinetze: Dynamik Erreichbarkeitsgraph für das Beispielnetz: (1, 2, 0) t 2 t 3 t 1 (0, 1, 2) t 3 (0, 2, 1) t 3 (0, 3, 0) t 3 t 2 (1, 1, 1) t 2 (2, 1, 0) t 1 (0, 0, 3) t 3 t 1 t 3 (1, 0, 2) t 2 t2 (2, 0, 1) t2 (3, 0, 0)

127 Petrinetze Grundlagen und Erreichbarkeitsgraphen Petrinetze: Dynamik Frage: Wie kann ein beliebiges Zustandsübergangsdiagramm in ein Petrinetz umgewandelt werden, das als Erreichbarkeitsgraph wieder das ursprüngliche Zustandsübergangsdiagramm besitzt? Idee: Zustände werden zu Stellen Übergänge werden zu Transitionen die Stelle, die den Anfangszustand darstellt, ist als einzige zu Beginn markiert Aber: das entstandene Petrinetz enthält keinerlei Nebenläufigkeit bei der Umwandlung Petrinetz Zustandsübergangsdiagramm Petrinetz wird das zweite Petrinetz im allgemeinen viel größer als das erste

128 Petrinetze Grundlagen und Erreichbarkeitsgraphen Petrinetze: Dynamik Beispiel: Umwandlung eines Zustandsübergangsdiagramms in ein Petrinetz a a d e b d e b c c

129 Petrinetze Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen Petrinetze: Beschränktheit Sichere, beschränkte und unbeschränkte Netze Sei N ein Petrinetz. Das Netz N heißt beschränkt, wenn es eine Konstante c N 0 gibt, so dass für jede erreichbare Markierung m und jede Stelle s gilt, dass m(s) c. sicher (oder auch 1-sicher), wenn Für jede Transition t und für jede Stelle s gilt t(s) 1 und t (s) 1, d.h., alle Gewichte sind höchstens 1 und für jede erreichbare Markierung m und jede Stelle s gilt, dass m(s) 1. unbeschränkt, falls es für jede Konstante c N 0 eine erreichbare Markierung m und eine Stelle s gibt mit m(s) > c. Aufgabe: Finde ein Beispiel für ein unbeschränktes Netz.

130 Petrinetze Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen Petrinetz-Beispiel: Keksautomat Wir modellieren einen Keksautomaten mit folgenden Bestandteilen: extern: Einwurfschlitz, Entnahmefach intern: Keksspeicher, Kasse, Signalweiterleitung (der Einwurf einer Münze soll ein Signal erzeugen, das die Ausgabe eines Kekses triggert) Nach: Petrinetze Modellierungstechnik, Analysemethoden, Fallstudien von W. Reisig

131 Petrinetze Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen Petrinetz-Beispiel: Keksautomat Keksspeicher Münze einwerfen Schachtel entnehmen Einwurfschlitz Signal Entnahmefach Einwurf möglich kein Signal Kasse

132 Petrinetze Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen Petrinetz-Beispiel: Keksautomat Ist der Keksautomat so in Ordnung? Problem: Sobald der Keksspeicher leer ist, kann immer noch eine Münze eingeworfen werden, die dann nicht zurückgegeben wird. Es gibt verschiedene Lösungen für dieses Problem: Rückgabe der Münze, Keks-Zähler,...

133 Petrinetze Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen Petrinetze: Lebendigkeit und Verklemmungen Wir betrachten nun Begriffe wie Lebendigkeit und Deadlock (= Verklemmung). (Starke) Lebendigkeit Ein Petrinetz N heißt (stark) lebendig, wenn es für jede Transition t und für jede erreichbare Markierung m eine Markierung m gibt, die von m erreichbar ist und unter der t aktiviert ist. Für den Erreichbarkeitsgraph bedeutet dies: von jedem Knoten des Graphen aus ist ein Übergang erreichbar, der mit der Transition t beschriftet ist.

134 Petrinetze Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen Petrinetze: Lebendigkeit und Verklemmungen Schwache Lebendigkeit Ein Petrinetz N heißt schwach lebendig, wenn es für jede Transition t eine erreichbare Markierung m gibt, unter der t aktiviert ist. Für den Erreichbarkeitsgraph bedeutet dies: für jede Transition gibt es mindestens einen Übergang, der mit der Transition t beschriftet ist.

135 Petrinetze Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen Petrinetze: Lebendigkeit und Verklemmungen Verklemmung Ein Petrinetz N enthält ein Deadlock oder eine Verklemmung, wenn es eine erreichbare Markierung m gibt, unter der keine Transition aktiviert ist. Für den Erreichbarkeitsgraph bedeutet dies: es gibt einen Knoten, von dem aus es keinen Übergang gibt. Ein Netz, das keine Verklemmung enthält, heißt verklemmungsfrei.

136 Petrinetze Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen Petrinetze: Lebendigkeit und Verklemmungen Eigenschaften der (starken) Lebendigkeit Für Netze, deren Transitionsmenge nicht leer ist, gilt: jedes (stark) lebendige Netz ist sowohl verklemmungsfrei, als auch schwach lebendig.

137 Petrinetze Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen Petrinetze: Lebendigkeit und Verklemmungen Beispiele für Lebendigkeit und Verklemmungen: Ein Beispiel für ein (stark) lebendiges Netz...

138 Petrinetze Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen Petrinetze: Lebendigkeit und Verklemmungen Ein Beispiel für ein schwach lebendiges und verklemmungsfreies Netz, das jedoch nicht (stark) lebendig ist...

139 Petrinetze Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen Petrinetze: Lebendigkeit und Verklemmungen Ein Beispiel für ein verklemmungsfreies Netz, das jedoch nicht schwach lebendig ist...

140 Petrinetze Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen Petrinetze: Lebendigkeit und Verklemmungen Ein Beispiel für ein schwach lebendiges Netz, das jedoch eine Verklemmung enthält...

141 Petrinetze Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen Petrinetze: Lebendigkeit und Verklemmungen Ein Beispiel für ein Netz, das eine Verklemmung enthält und das auch nicht schwach lebendig ist...

142 Petrinetze Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen Petrinetze: Lebendigkeit und Verklemmungen Überblick über die verschiedenen Netzklassen (unter der Voraussetzung, dass jedes Netz mindestens eine Transition enthält): alle Petrinetze stark lebendige Netze verklemmungsfreie Netze schwach lebendige Netze

143 Petrinetze Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen Petrinetze: Überdeckbarkeitsgraph Beobachtung: Ein Petrinetz ist unbeschränkt genau dann, wenn sein Erreichbarkeitsgraph unendlich groß ist. Gibt es in diesem Fall trotzdem noch eine graphische Darstellung, die in gewisser Weise alle erreichbaren Markierungen repräsentiert? Überdeckbarkeitsgraph

144 Petrinetze Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen Petrinetze: Überdeckbarkeitsgraph Zugrundeliegende Ideen: Das Verhalten von Petrinetzen ist monoton, d.h., jede Schaltfolge ist auch dann noch möglich, wenn man zusätzliche Marken hinzufügt. Wenn im Erreichbarkeitsgraph zwei Markierungen m, m existieren, so dass gilt: m ist echt kleiner als m (in Zeichen m < m, d.h., m m und m m ) und es gibt einen Pfad von m zu m, dann kann man die Transitionsfolge von m zu m noch einmal schalten und erhält wiederum eine größere Markierung m.

145 Petrinetze Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen Petrinetze: Überdeckbarkeitsgraph Konstruktion des Überdeckbarkeitsgraphen Führe zunächst wie gewohnt die Konstruktion des Erreichbarkeitsgraphen aus. Sobald eine neue Markierung m hinzugefügt wird, wobei es eine Vorgängermarkierung m mit m < m gibt... m 0 m m... ersetze m durch eine (ω-)markierung ˆm mit folgenden Eigenschaften: ˆm(s) = m (s), falls m(s) = m (s), und ˆm(s) = ω, falls m(s) < m (s), wobei s S. Mache dann mit der Konstruktion weiter, solange bis keine Markierungen mehr hinzugefügt werden können.

146 Petrinetze Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen Petrinetze: Überdeckbarkeitsgraph Bemerkungen: Die neu erzeugten besonderen ω-markierungen ordnen einer Stelle unendlich viele Marken (repräsentiert durch ω). Dies nimmt das wiederholte Schalten der Transitionsfolge von m zu m vorweg, die in den ω-stellen beliebig viele Marken produzieren kann. Für ω-markierungen gilt beim Schalten von Transitionen: ω + k = ω und ω k = ω. Außerdem gilt ω als größer als jede natürliche Zahl. Der englische Name für Überdeckbarkeitgraphen ist coverability graphs.

147 Petrinetze Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen Petrinetze: Überdeckbarkeitsgraph Beispiel: s 1 t 3 (1, 0, 0) t 3 (0, 0, 0) t 1 s 2 t 1 (0, 1, 0) t 2 t 2 (1, 0, ω) t 3 (0, 0, ω) Reihenfolge der Stellen: s 1, s 2, s 3 s 3 t 1 (0, 1, ω) t 2

148 Petrinetze Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen Petrinetze: Überdeckbarkeitsgraph Eigenschaften des Überdeckbarkeitsgraphen (I) Die Konstruktion des Überdeckbarkeitsgraphen terminiert immer nach endlich vielen Schritten. ω-markierungen treten genau dann auf, wenn das Netz unbeschränkt ist. (D.h., der Überdeckbarkeitsgraph kann auch dazu verwendet werden, um zu überprüfen, ob ein Netz unbeschränkt ist.)

149 Petrinetze Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen Petrinetze: Überdeckbarkeitsgraph Eigenschaften des Überdeckbarkeitsgraphen (II) Sei N ein Netz und G der dazugehörige Überdeckbarkeitsgraph. Dann gilt: Für jede erreichbare Markierung m von N gibt es einen Knoten m in G, mit m m. Für jeden Knoten m in G und jedes i N 0 gibt es eine erreichbare Markierung m in N, so dass für alle Stellen s gilt: m(s) = m (s), falls m (s) ω m(s) i, falls m (s) = ω. Frage: Ist für eine ω-markierung m in G vielleicht sogar jede Markierung m von N mit m m erreichbar?

150 Petrinetze Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen Petrinetze: Überdeckbarkeitsgraph Nein! Gegenbeispiel: s 1 Reihenfolge der Stellen: s 1, s 2 t 1 2 s 2 (1, 0) t 1 (1, ω) t 1 Die Markierung (1, 1) ist kleiner als (1, ω), ist aber in dem Netz nicht erreichbar.

151 Petrinetze Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen Petrinetze: Kausalität, Nebenläufigkeit, Konflikt Wichtige Begriffe bei Petrinetzen sind Nebenläufigkeit, Konflikt und Kausalität. Wir beschäftigen uns damit etwas genauer. Kausalität In einem Petrinetz N ist die Transition t 1 notwendige Bedingung für das Schalten von t 2 genau dann, wenn für alle Schaltfolgen t gilt: falls m 0 [ tt 2 m für eine Markierung m, dann enthält t die Transition t 1.

152 Petrinetze Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen Petrinetze: Kausalität, Nebenläufigkeit, Konflikt Beispiel für Kausalität: t 1 t 2 t 3 t 4 t 1 ist eine notwendige Bedingung für t 4, aber t 2 ist keine notwendige Bedingung für t 4. Denn nicht jede Schaltfolge, die zu t 4 führt, enthält t 2 (z.b. t = t 1 t 3 ). Das gleiche gilt für t 3.

153 Petrinetze Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen Petrinetze: Kausalität, Nebenläufigkeit, Konflikt Eigenschaften der Kausalität Wenn t 1 eine notwendige Bedingung für t 2 ist, und t 2 eine notwendige Bedingung für t 3 ist, dann ist t 1 eine notwendige Bedingung für t 3. (Transitivität)

154 Petrinetze Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen Petrinetze: Kausalität, Nebenläufigkeit, Konflikt Nebenläufigkeit Eine Menge T = {t 1,..., t n } T von Transitionen heißt nebenläufig aktiviert unter der Markierung m, wenn t 1 t n m. D.h., die Markierung m enthält genug Marken, um alle Transitionen gleichzeitig zu feuern. Eigenschaften der Nebenläufigkeit Wenn die Transitions-Menge T unter der Markierung m nebenläufig ist, so ist auch jede Teilmenge von T unter m nebenläufig.

155 Petrinetze Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen Petrinetze: Kausalität, Nebenläufigkeit, Konflikt Beispiele für Nebenläufigkeit: t 1 t 2 t 3 t 4 Die Menge {t 2, t 3 } ist nebenläufig unter der Anfangsmarkierung.

156 Petrinetze Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen Petrinetze: Kausalität, Nebenläufigkeit, Konflikt Die Menge T = {t 1, t 2, t 3 } ist nebenläufig unter der t 1 t 2 t 3 Anfangsmarkierung.

157 Petrinetze Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen Petrinetze: Kausalität, Nebenläufigkeit, Konflikt t 1 t 2 t 3 Die Mengen {t 1, t 2 } {t 2, t 3 } und {t 1, t 3 } sind alle nebenläufig unter der Anfangsmarkierung. Dies gilt jedoch nicht für {t 1, t 2, t 3 }.

158 Petrinetze Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen Petrinetze: Kausalität, Nebenläufigkeit, Konflikt t 1 t 2 t 3 Die Mengen {t 1, t 3 } und {t 2, t 3 } sind alle nebenläufig unter der Anfangsmarkierung. Dies gilt jedoch nicht für die Mengen {t 1, t 2 } und {t 1, t 2, t 3 }. Dieses Beispiel zeigt auch, dass Nebenläufigkeit nicht transitiv ist: t 1 ist nebenläufig zu t 3, t 3 ist nebenläufig zu t 2, jedoch sind t 1 und t 2 nicht nebenläufig.

159 Petrinetze Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen Petrinetze: Kausalität, Nebenläufigkeit, Konflikt Nebenläufigkeit (Konsequenzen) Wenn eine Menge T von Transitionen nebenläufig ist, so ist jede beliebige Anordnung dieser Transitionen eine Schaltfolge ausgehend von m. Das heißt, für jede Sequenz t, in der jede Transitionen aus T genau einmal vorkommt, gibt es eine Markierung m mit m[ t m. Die Markierung m ist durch T eindeutig bestimmt.

160 Petrinetze Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen Petrinetze: Kausalität, Nebenläufigkeit, Konflikt Nebenläufige Transitionen führen daher in Erreichbarkeitsgraphen zu Strukturen, die die Form eines Quadrats (Diamond) oder (höherdimensionalen) Würfels haben. Beispiel für ein Quadrat: s 1 s 2 (1, 1) t 1 (0, 1) t 1 t 2 t 2 (1, 0) t 2 t 1 (0, 0)

161 Petrinetze Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen Petrinetze: Kausalität, Nebenläufigkeit, Konflikt Beispiel für einen Würfel: (1, 1, 1) t 1 (0, 1, 1) s 1 s 2 s 3 t 2 t 3 (1, 1, 0) t 1 t 2 t 3 (0, 1, 0) t 1 t 2 t 3 (1, 0, 1) t 1 t 2 (0, 0, 1) t 2 t 3 (1, 0, 0) t 3 t 1 (0, 0, 0)

162 Petrinetze Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen Petrinetze: Kausalität, Nebenläufigkeit, Konflikt Frage: Wenn jede Anordnung von Transitionen in T eine Schaltfolge darstellt, ist dann T automatisch nebenläufig (unter einer Markierung m)? Nein! Gegenbeispiel: t 1 t 2

163 Petrinetze Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen Petrinetze: Kausalität, Nebenläufigkeit, Konflikt Schlinge Ein Schlinge (oder Schleife) in einem Netz N besteht aus einer Transition t und einer Stelle s mit t(s) > 0 und t (s) > 0. n Graphisch: t s m Für schlingenfreie Netze gilt: Sei N ein schlingenfreies Netz, sei m eine Markierung und T eine Menge von Transitionen, so dass jede Anordnung der Transitionen in T von m aus schaltbar ist. Dann ist T nebenläufig.

164 Petrinetze Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen Petrinetze: Kausalität, Nebenläufigkeit, Konflikt Konflikt Zwei Transitionen t, t T stehen unter der Markierung m in Konflikt genau dann wenn: t und t sind beide unter m aktiviert und die Menge {t, t } ist unter m nicht nebenläufig. Anschaulich: nur eine der beiden Transitionen kann schalten. Das liegt immer daran, dass sie eine gemeinsame Stelle in den Vorbedingungen haben. D.h., es gibt eine Stelle s mit t(s) 1 und t (s) 1.

165 Petrinetze Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen Petrinetze: Kausalität, Nebenläufigkeit, Konflikt Beispiel für einen Konflikt: t 1 t 2 t 3 Unter der Anfangsmarkierung steht t 1 in Konflikt mit t 2. Außerdem steht t 2 in Konflikt mit t 3. Jedoch steht t 1 nicht in Konflikt mit t 3 (keine Transitivität der Konfliktrelation).

166 Petrinetze Eigenschaften von Petrinetzen, Überdeckbarkeitsgraphen Petrinetze: Kausalität, Nebenläufigkeit, Konflikt Bemerkung: auf bestimmten Arten von azyklischen Netzen (sogenannte Occurrence-Netze) kann man Begriffe wie Kausalität, Nebenläufigkeit und Konflikt noch klarer herausarbeiten. Zwei Transitionen sind in solchen Netzen immer entweder kausal abhängig, nebenläufig oder in Konflikt, unabhängig von der Markierung.

167 Petrinetze Inzidenzmatrizen und Invarianten Petrinetze: Invarianten Kurze Einführung in Matrizen und Vektorrechnung: Matrix Seien m, n N 0. Eine m n-matrix C (über den ganzen Zahlen Z) besteht aus m n Einträgen C i,j Z für i {1,..., m}, j {1,..., n} Sie wird folgendermaßen dargestellt: C 1,1... C 1,n C = C m,1... C m,n

168 Petrinetze Inzidenzmatrizen und Invarianten Petrinetze: Invarianten Bemerkungen: Eine m n-matrix besteht also aus m Zeilen der Länge n, oder anders ausgedrückt aus n Spalten der Länge m. Dabei heißt m Zeilendimension und n Spaltendimension der Matrix. Eine Matrix, für die m = n gilt, heißt quadratisch. Die Matrizen, die wir im Folgenden betrachten werden, sind nicht notwendigerweise quadratisch.

169 Petrinetze Inzidenzmatrizen und Invarianten Petrinetze: Invarianten Spaltenvektor Ein Spaltenvektor (oder Vektor) u der Dimension n ist eine n 1-Matrix, d.h., er hat folgendes Aussehen. u = u 1.. u n Wir betrachten im Folgenden immer Spaltenvektoren mit Einträgen aus Z.

170 Petrinetze Inzidenzmatrizen und Invarianten Petrinetze: Invarianten Bemerkungen: Gegeben sei eine Markierung m = (m(s 1 ),..., m(s n )). Dann entspricht dieser Markierung der Spaltenvektor m(s 1 ) m =. m(s n ) Spaltenvektoren kann man wie Markierungen addieren. Dabei werden die Komponenten paarweise addiert: u 1 v 1 u 1 + v =. v n u n + v n u n

171 Petrinetze Inzidenzmatrizen und Invarianten Petrinetze: Invarianten Matrizen können miteinander multipliziert werden. Wir betrachten zunächst die Multiplikation einer Matrix mit einem Spaltenvektor. Multiplikation einer Matrix mit einem Spaltenvektor Sei C eine m n-matrix und u ein Spaltenvektor der Dimension n. Dann ist C u folgender Spaltenvektor: C 1,1... C 1,n C u = C m,1... C m,n u 1.. u n = C 1,1 u C 1,n u n... C m,1 u C m,n u n Das heißt, in der i-ten Zeile des Spaltenvektors steht der Eintrag n j=1 C i,j u j.

172 Petrinetze Inzidenzmatrizen und Invarianten Petrinetze: Invarianten Zeilenvektor Ein Zeilenvektor u der Dimension n ist eine 1 n-matrix, d.h., er hat folgendes Aussehen. u = ( u 1... u n ) Wir betrachten im Folgenden immer Zeilenvektoren mit Einträgen aus Z.

173 Petrinetze Inzidenzmatrizen und Invarianten Petrinetze: Invarianten Zeilenvektoren und Tupel: Im folgenden werden wir Zeilenvektoren im wesentlichen mit n-tupeln gleichsetzen. Eine Markierung m = (m(s 1 ),..., m(s n )), d.h., ein Tupel aus N n 0 schreiben wir auch als folgenden Zeilenvektor: m = ( m(s 1 )... m(s n ) )

174 Petrinetze Inzidenzmatrizen und Invarianten Petrinetze: Invarianten Multiplikation einer Matrix mit einem Zeilenvektor Sei C eine m n-matrix und u ein Zeilenvektor der Dimension m. Dann ist u C folgender Zeilenvektor der Dimension n: u C = ( C 1,1... C 1,n ) u 1... u m..... C m,1... C m,n = ( ) u 1 C 1,1 + + u m C m,1... u 1 C 1,n + + u m C m,n Das heißt, in der j-ten Spalte des Zeilenvektors steht der Eintrag n i=1 u i C i,j.

175 Petrinetze Inzidenzmatrizen und Invarianten Petrinetze: Invarianten Merkregel: Die Multiplikation einer m n-matrix mit einer n 1-Matrix (Spaltenvektor der Dimension n) ergibt eine m 1-Matrix (Spaltenvektor der Dimension m). Die Multiplikation einer einer 1 m-matrix (Zeilenvektor der Dimension m) mit einer m n-matrix ergibt eine 1 n-matrix (Zeilenvektor der Dimension n).

176 Petrinetze Inzidenzmatrizen und Invarianten Petrinetze: Invarianten Wir betrachten nun die Inzidenzmatrix (oder einfach Matrix) eines Petrinetzes. Sei S = {s 1,..., s m } die Stellenmenge, T = {t 1,..., t n } die Transitionsmenge des Petrinetzes N. Die Inzidenzmatrix C von N ist eine m n-matrix mit Einträgen der Form: C i,j = t j (s i ) t j (s i ) Z Dabei handelt es sich um die herkömmliche Subtraktion (nicht die modifizierte) und das Ergebnis liegt in den ganzen Zahlen. Der Eintrag C i,j gibt an, wie sich die Anzahl der Marken in Stelle s i ändert, wenn die Transition t j geschaltet wird.

177 Petrinetze Inzidenzmatrizen und Invarianten Petrinetze: Invarianten Beispiel für eine Matrix: Berechnung der Matrix-Einträge: s 1 s 2 t 1 t 2 t 3 s 1 C 1,1 = 0 1 C 1,2 = 1 0 C 1,3 = 0 0 s 2 C 2,1 = 0 1 C 2,2 = 0 0 C 2,3 = 1 0 s 3 C 3,1 = 2 0 C 3,2 = 0 1 C 3,3 = 0 1 t 2 t 1 2 s 3 t 3 Resultierende Matrix: C =

178 Petrinetze Inzidenzmatrizen und Invarianten Petrinetze: Invarianten s 1 s 1 t 1 s 2 t 1 s 2 s 3 s 3 Die beiden Netze sind verschieden, haben aber dieselbe Inzidenzmatrix: 1 C = 0 1 Dieses Phänomen kann nicht auftreten, wenn wir nur schlingenfreie Netze betrachten.

179 Petrinetze Inzidenzmatrizen und Invarianten Petrinetze: Invarianten Angenommen, es gibt eine Schaltfolge, bei der die Transition t j u j -mal geschaltet wird (u j N 0 ). Wie kann man die dadurch verursachte Änderung der Markierung mit Hilfe der Inzidenzmatrix bestimmen? Man multipliziert die Spalte j, die für die Transition t j steht, mit u j. Damit erhält man den Effekt des u j -maligen Schaltens von t j für jede einzelne Stelle. Man addiert alle Werte der Zeile i, die für die Stelle s i steht, auf. Damit erhält man den Effekt des Schaltens aller Transitionen für eine einzelne Stelle. Multiplikation der Matrix mit einem Vektor!

180 Petrinetze Inzidenzmatrizen und Invarianten Petrinetze: Invarianten Sei u = der sogeannte Schaltvektor, der angibt, wie oft jede Transition geschalten werden soll. Schaltvektor für das Beispielnetz: t 1 und t 2 werden zweimal geschaltet, t 3 einmal (dieser Schaltvektor ist von der Anfangsmarkierung aus realisierbar, z.b. durch die Schaltfolge t 1 t 2 t 3 t 1 t 2 ). 2 u = 2 C u = 1 u 1.. u n 2 ( 1) ( 1) ( 1) + 1 ( 1) 0 = 1 1

181 Petrinetze Inzidenzmatrizen und Invarianten Petrinetze: Invarianten D.h., die Schaltfolge hat den Effekt, die Anzahl der Marken in Stelle s 1 gleichzulassen, in s 2 um eins zu verringern und in s 3 um eins zu erhöhen. Wenn wir diese Änderung zu dem Spaltenvektor addieren, der der Anfangsmarkierung entspricht, ergibt sich: m 0 + C u = =

182 Petrinetze Inzidenzmatrizen und Invarianten Petrinetze: Invarianten Markierungsgleichung Für jede erreichbare Markierung m gibt es einen Schaltvektor u mit m = m 0 + C u Das heißt, jede erreichbare Markierung kann in obiger Form dargestellt werden. Aber: nicht jede Markierung, die so dargestellt werden kann, ist auch erreichbar.

183 Petrinetze Inzidenzmatrizen und Invarianten Petrinetze: Invarianten s 1 t 1 s 2 s 3 1 C = (1) = Diese Markierung ist jedoch nicht erreichbar, da t 1 nicht aktiviert ist.

184 Petrinetze Inzidenzmatrizen und Invarianten Petrinetze: Invarianten s 1 s 2 t 1 t 2 s C = ( ) = Diese Markierung ist jedoch nicht erreichbar, da die Schaltfolgen t 1 t 2 und t 2 t 1 beide nicht möglich sind.

185 Petrinetze Inzidenzmatrizen und Invarianten Petrinetze: Invarianten Die Markierungsgleichung kann also nicht dazu genutzt werden, um zu zeigen, dass eine bestimmte Markierung erreichbar ist. Aber: man kann damit manchmal zeigen, dass eine Markierung nicht erreichbar ist. Beispiel: Ist in folgendem Netz die Markierung m = (2, 2, 0) erreichbar? t 2 s 1 s 2 t 1 2 t 3 Wir überprüfen, ob die Gleichung u 1 2 = u u 3 s 3 eine Lösung in den natürlichen Zahlen hat.

186 Petrinetze Inzidenzmatrizen und Invarianten Petrinetze: Invarianten Lösen eines Gleichungssystems Hier sieht man leicht durch Addition aller Gleichungen, dass das Gleichungssystem keine Lösung hat. 2 = 1 u 1 +u 2 2 = 2 u 1 +u 3 0 = 2u 1 u 2 u 3 4 = 3 Widerspruch! Das heißt, die Markierung m = (2, 2, 0) ist nicht erreichbar.

187 Petrinetze Inzidenzmatrizen und Invarianten Petrinetze: Invarianten Achtung: Als Lösungen des Gleichungssystem interessieren uns hier Lösungen in den in den natürlichen Zahlen. Daher ist das zum Lösen von Gleichungssystemen üblicherweise verwendete Gaußsche Eliminationsverfahren nur begrenzt einsetzbar. In manchen Fällen muss es noch durch andere Techniken (z.b. Lösungsverfahren für diophantische Gleichungen) erweitert werden. In unserem Fall werden wir die Beispiele jedoch immer so wählen, dass die entstehenden Gleichungssysteme einfach zu lösen sind.

188 Petrinetze Inzidenzmatrizen und Invarianten Petrinetze: Invarianten Aufgabe: Stelle die Markierungsgleichung für folgendes (unbeschränkte) Netz auf. s 1 t 1 2 t 2 s 2 s 3 Kann man mit Hilfe der Markierungsgleichung überprüfen, dass die Markierung (1, 20, 0) nicht erreichbar ist? Kann das gleiche Ergebnis auch mit dem Überdeckbarkeitsgraph erzielt werden?

189 Petrinetze Inzidenzmatrizen und Invarianten Petrinetze: Invarianten Wir kommen nun zu einer weiteren Verwendung von Inzidenzmatrizen: sogenannte T- und S-Invarianten. T-Invariante Gegeben sei ein Netz N und seine m n-inzidenzmatrix C. Ein Spaltenvektor u der Dimension n heißt T-Invariante, falls C u = 0 Dabei ist 0 ein Spaltenvektor, der nur Einträge der Form 0 hat. Bedeutung: eine T-Invariante beschreibt mögliche Schaltfolgen, die eine Markierung unverändert lassen. Im Erreichbarkeitsgraph ergibt sich dann ein Kreis.

190 Petrinetze Inzidenzmatrizen und Invarianten Petrinetze: Invarianten Bemerkung zu T-Invarianten: Wie bei der Markierungsgleichung müssen solche Schaltfolgen nicht notwendigerweise realisierbar sein. Wenn es einen Kreis im Erreichbarkeitsgraphen gibt, so entspricht dieser aber auf jeden Fall einer T-Invariante. Wie bei der Markierungsgleichung interessieren uns hier nur T -Invarianten mit Einträgen aus N 0.

191 Petrinetze Inzidenzmatrizen und Invarianten Petrinetze: Invarianten Aufgabe: Bestimme die T-Invarianten des folgenden Netzes: s 1 s 2 t 2 t 1 2 t 3 s 3 Welche Bedeutung haben die T-Invarianten für den Erreichbarkeitsgraph? Erreichbarkeitsgraph

192 Petrinetze Inzidenzmatrizen und Invarianten Petrinetze: Invarianten S-Invariante Gegeben sei ein Netz N und seine m n-inzidenzmatrix C. Ein Zeilenvektor v der Dimension m heißt S-Invariante, falls v C = ( )

193 Petrinetze Inzidenzmatrizen und Invarianten Petrinetze: Invarianten Bedeutung: sei m eine erreichbare Markierung. Dann gilt nach der Markierungsgleichung, dass es einen Schaltvektor u gibt mit: m = m 0 + C u Wenn man die Gleichung auf beiden Seiten von links mit v multipliziert, so erhält man: v m = v m 0 + v C u = v m = v m 0 Also gilt v m = v m 0 für jede S-Invariante v und für jede erreichbare Markierung m. Eine Markierung, die diese Gleichung nicht erfüllt, kann daher nicht erreichbar sein!

194 Petrinetze Inzidenzmatrizen und Invarianten Petrinetze: Invarianten Aufgabe: Bestimme die S-Invarianten des folgenden Netzes: s 1 s 2 t 2 t 1 2 t 3 s 3 Kann man mit Hilfe der S-Invarianten überprüfen, ob die Markierung (2, 2, 0) erreichbar ist?

195 Petrinetze Inzidenzmatrizen und Invarianten Petrinetze: Invarianten Löse die Gleichung ( ) v 1 v 2 v = ( ) Es ergibt sich folgendes Gleichungssystem: v 1 v 2 +2v 3 = 0 v 1 v 3 = 0 v 2 v 3 = 0 Durch Vereinfachung erhalten wir v 1 = v 2 = v 3, d.h., die Lösungen sind genau die Zeilenvektoren, bei denen alle Einträge gleich sind. Sie sind also alle von der Form v = ( v 1 v 1 v 1 ) = v1 (1 1 1 ) All diese Vektoren ergeben äquivalente S-Invarianten, wir betrachten daher nur die S-Invariante v = ( ).

196 Petrinetze Inzidenzmatrizen und Invarianten Petrinetze: Invarianten Für eine allgemeine Markierung m = (m 1, m 2, m 3 ) des Beispielnetzes gilt also: v m = m 1 + m 2 + m 3 = 3 = v m 0 Die Gleichung besagt, dass die Summe der Marken in den drei Stellen konstant bzw. invariant ist und immer drei beträgt. Im allgemeinen haben Invarianten die Form v 1 m v m m m = k, wobei v 1,..., v m, k Z Konstanten sind.

197 Petrinetze Inzidenzmatrizen und Invarianten Petrinetze: Invarianten Für die spezielle Markierung m = (2, 2, 0) ergibt sich: = 4 3 D.h., diese Markierung ist in dem Netz auf jeden Fall nicht erreichbar (ausgehend von der Anfangsmarkierung).

198 Petrinetze Inzidenzmatrizen und Invarianten Petrinetze: Invarianten Bemerkungen: Bei der Lösung des Gleichungssystems zur Berechnung von S-Invarianten sind prinzipiell auch Lösungen außerhalb der natürlichen Zahlen (negative Zahlen, Brüche, etc.) interessant. Da es sich jedoch um ein homogenes Gleichungssystem handelt (auf der rechten Seite steht der Nullvektor), kann man durch Multiplikation mit dem Hauptnenner (kleinstes gemeinsames Vielfaches der Nenner) zumindest immer eine Darstellung aller Lösungen als Vielfaches von ganzzahligen Vektoren erhalten. Es gibt im allgemeinen unendlich viele S-Invarianten: insbesondere sind alle Vielfache einer S-Invariante wieder S-Invariante. Diese Vielfachen liefern jedoch keine zusätzlichen Informationen über das Netz.

199 Petrinetze Inzidenzmatrizen und Invarianten Petrinetze: Invarianten Aufgabe: Bestimme die S-Invarianten des folgenden Netzes: s 1 2 t 1 3 s 2 Kann man mit Hilfe der S-Invarianten überprüfen, ob die Markierung (0, 5) erreichbar ist?

200 Petrinetze Inzidenzmatrizen und Invarianten Petrinetze: Invarianten Löse die Gleichung ( v 1 v 2 ) ( ) 2 = ( 0 ). 3 Es ergibt sich folgendes Gleichungssystem: 2v 1 +3v 2 = 0 Durch Vereinfachung erhalten wir v 1 = 3 2 v 2. D.h., die Lösungen sind von der Form v = v 2 ( ) Wenn man nur Lösungen in den ganzen Zahlen betrachten will, so multipliziert man mit dem Hauptnenner 2 und erhält: v = l (3 2 ), für l Z. Im Folgenden betrachten wir nur die S-Invariante, die man erhält, wenn man l = 1 setzt.

201 Petrinetze Inzidenzmatrizen und Invarianten Petrinetze: Invarianten Für eine erreichbare Markierung m = (m 1, m 2 ) des Beispielnetzes gilt also: v m = 3 m m 2 = 12 = v m 0 Für die spezielle Markierung m = (0, 5) erhalten wir: v m = = und damit ist diese Markierung nicht erreichbar.

202 Petrinetze Inzidenzmatrizen und Invarianten Petrinetze: Invarianten Aufgabe: Bestimme die S-Invarianten des folgenden Netzes: s 1 s 2 t 1 t 2 t 3 s 4 s 3 t 4 s 5 Kann man mit Hilfe der S-Invarianten überprüfen, ob die Markierung (0, 0, 1, 1, 1) erreichbar ist?

203 Petrinetze Inzidenzmatrizen und Invarianten Petrinetze: Invarianten Aufgabe: Mit Hilfe des folgenden Beispiels soll gezeigt werden, dass Invarianten auch für unbeschränkte Netze sehr nützlich sein können. Bestimmen Sie dazu die S-Invarianten des folgenden Netzes: s 1 2 t 1 s 2 s 3

204 Petrinetze Inzidenzmatrizen und Invarianten Petrinetze: Invarianten Aufgabe: Wir hatten mit Hilfe der Markierungsgleichung gezeigt, dass die Markierung (1, 20, 0) in folgendem Netz nicht erreichbar ist. s 1 t 1 2 t 2 s 2 s 3 Kann man das gleiche Ergebnis auch mit Hilfe von S-Invarianten erzielen?

205 Petrinetze Inzidenzmatrizen und Invarianten Petrinetze: Invarianten Bemerkungen: Für beschränkte Netze sind folgende Techniken zum Testen der Nicht-Erreichbarkeit geeignet. Sie werden der Reihe nach aufwändiger und exakter: 1 S-Invarianten 2 Markierungsgleichung 3 Erreichbarkeitsgraph (exakt, kann auch zur Überprüfung der Erreichbarkeit verwendet werden).

206 Petrinetze Inzidenzmatrizen und Invarianten Petrinetze: Invarianten Bemerkungen: Auch für unbeschränkte Netze ist die Markierungsgleichung aufwändiger und exakter als S-Invarianten. Der Überdeckbarkeitsgraph ist jedoch, im Gegensatz zum Erreichbarkeitsgraph, keine exakte Technik und erlaubt nur begrenzt Aussagen über die Erreichbarkeit von Markierungen.

207 Petrinetze Inzidenzmatrizen und Invarianten Petrinetze: Invarianten Für unbeschränkte Petrinetze haben wir also bisher nur approximative, unvollständige Methoden für das Erreichbarkeitsproblem. Es gilt jedoch: Entscheidbarkeit des Erreichbarkeitsproblems Es gibt ein Verfahren, das für ein gegebenes (unbeschränktes) Netz N und eine Markierung m entscheidet, ob m in N erreichbar ist. (Mayr, 1984)

208 Petrinetze Inzidenzmatrizen und Invarianten Petrinetze: Invarianten Dieses Verfahren ist jedoch extrem aufwändig und in der Praxis derzeit nicht einsetzbar. Die obige Aussage bedeutet jedoch auch, dass Petrinetze nicht zu den mächtigsten Berechnungsmodellen gehören. Es gibt nämlich Berechnungsmodelle, für die das Erreichbarkeitsproblem nicht entscheidbar ist. Anders ausgedrückt: Petrinetze sind nicht Turing-mächtig ( Vorlesung Berechenbarkeit und Komplexität ). Das liegt vor allem daran, dass Petrinetze keine Nulltests folgender Form erlauben: Die Transition t kann nur feuern, wenn in der Stelle s keine Marken liegen.

209 Petrinetze Inzidenzmatrizen und Invarianten Petrinetze: Fallstudien (Wechselseitiger Ausschluss) Wir betrachten nun noch einige größere Fallstudien... Zunächst behandeln wir das Konzept des wechselseitigen Ausschlusses (engl. mutual exclusion oder mutex). Wir betrachten zwei Akteure, die jeweils einen kritischen Bereich haben. Beide Akteure dürfen nicht gleichzeitig in ihren kritischen Bereich kommen, da sie sich dort gegenseitig behindern und unerwünschtes Verhalten auslösen würden (z.b. indem beide Akteure in dieselbe Datei schreiben). Es darf sich also immer höchstens ein Akteur im kritischen Bereich befinden.

210 Petrinetze Inzidenzmatrizen und Invarianten Petrinetze: Fallstudien (Wechselseitiger Ausschluss) Ursprüngliches System: k 1 kritischer Bereich k 2 NK 1 K 1 K 2 NK 2 nk 1 nk 2 Bedeutung der Stellen: K 1 (krit. Bereich Akteur 1), NK 1 (nicht-krit. Bereich Akteur 1), K 2 (krit. Bereich Akteur 2), NK 2 (nicht-krit. Bereich Akteur 2)

211 Petrinetze Inzidenzmatrizen und Invarianten Petrinetze: Fallstudien (Wechselseitiger Ausschluss) Erweitertes System mit Mechanismen zum wechselseitigen Ausschluss: k 1 k 2 NK 1 K 1 K 2 NK 2 S nk 1 nk 2 Bedeutung der Stellen: K 1 (krit. Bereich Akteur 1), NK 1 (nicht-krit. Bereich Akteur 1), K 2 (krit. Bereich Akteur 2), NK 2 (nicht-krit. Bereich Akteur 2), S (Hilfsstelle, sog. Semaphor)

212 Petrinetze Inzidenzmatrizen und Invarianten Petrinetze: Fallstudien (Wechselseitiger Ausschluss) Wir möchten zeigen, dass in den Stellen K 1, K 2 niemals gleichzeitig Marken liegen. Reihenfolge der Stellen: K 1, NK 1, K 2, NK 2, S Reihenfolge der Transitionen: k 1, nk 1, k 2, nk 2 Inzidenzmatrix: C =

213 Petrinetze Inzidenzmatrizen und Invarianten Petrinetze: Fallstudien (Wechselseitiger Ausschluss) Wir bestimmen die S-Invarianten, nach der Gleichung v C = ( ) Entstehendes Gleichungssystem: v 1 v 2 v 5 = 0 v 1 +v 2 +v 5 = 0 v 3 v 4 v 5 = 0 v 3 +v 4 +v 5 = 0

214 Petrinetze Inzidenzmatrizen und Invarianten Petrinetze: Fallstudien (Wechselseitiger Ausschluss) Vereinfacht ergibt sich: v 1 = v 2 + v 5 v 3 = v 4 + v 5 Das heißt, die Lösungen haben genau die Form: ( v2 +v 5 v 2 v 4 +v 5 v 4 v 5 ) = v 2 ( ) + v 4 ( ) + v 5 ( ) für v 2, v 4, v 5 Z. Die drei Vektoren bilden eine Basis des Lösungsraums.

215 Petrinetze Inzidenzmatrizen und Invarianten Petrinetze: Fallstudien (Wechselseitiger Ausschluss) Für uns ist vor allem der letzte Vektor interessant. Für jede erreichbare Markierung m = (m 1, m 2, m 3, m 4, m 5 ) muss gelten: m 1 + m 3 + m 5 = v m = v m 0 = 1 Angenommen, in der Stelle K 1 liegt mindestens eine Marke (m 1 1) und in der Stelle K 2 liegt mindestens eine Marke (m 3 1). Dann gilt: was ein Widerspruch ist. 2 m 1 + m 3 + m 5 = 1, Also liegt in den Stellen K 1, K 2 zusammen immer höchstens eine Marke.

216 Petrinetze Inzidenzmatrizen und Invarianten Petrinetze: Fallstudien (Speisende Philosophen) Wir kommen nochmal auf die speisenden Philosophen zurück: Diesmal sitzen nur zwei Philosophen an einem Tisch (damit das Beispiel nicht zu groß wird). Einer davon ist ein Linkshänder (und nimmt die linke Gabel zuerst), der andere ein Rechtshänder (und nimmt die rechte Gabel zuerst).

217 Petrinetze Inzidenzmatrizen und Invarianten Petrinetze: Fallstudien (Speisende Philosophen) Petrinetz: links- und rechtshändige Philosophen W 1 E 1 e 1 w 1 h 1 H 1 F 1 F 2 H 2 w 2 h 2 Reihenfolge der Stellen: F 1, F 2, H 1, H 2, W 1, W 2, E 1, E 2 Reihenfolge der Transitionen: w 1, e 1, h 1, w 2, e 2, h 2 e 2 W 2 E 2

218 Petrinetze Inzidenzmatrizen und Invarianten Petrinetze: Fallstudien (Speisende Philosophen) Zu zeigen: in diesem Netz gibt es keine Verklemmung, bei der beide Philosophen im Wartezustand sind. D.h., folgende Markierung soll nicht erreichbar sein: m = (0, 0, 0, 0, 1, 1, 0, 0) Dazu betrachten wir die Inzidenzmatrix des Netzes: C =

219 Petrinetze Inzidenzmatrizen und Invarianten Petrinetze: Fallstudien (Speisende Philosophen) Eine S-Invariante ist v = ( ) Und es gilt: v m 0 = 1 v m = 2 Daraus folgt v m 0 v m. Damit ist m nicht erreichbar und es kann daher kein Deadlock dieser Form geben.

220 Petrinetze Inzidenzmatrizen und Invarianten Fallstudie: Leser-Schreiber-Problem Beliebig viele Prozesse dürfen gleichzeitig lesen Wenn geschrieben wird, darf nur ein Schreiber und keine Leser im kritischen Abschnitt sein Die Schreiber verhungern, solange noch jemand lesen will

221 Petrinetze Inzidenzmatrizen und Invarianten Fallstudie: Leser-Schreiber-Problem(2) Bessere Lösung: Sobald jemand schreiben will, müssen alle Leser warten

222 Petrinetze Inzidenzmatrizen und Invarianten Petrinetze: Weitere Arten von Netzen Wir betrachten zuletzt noch zwei weitere Arten von Netzen: Netze mit Kapazitäten Attributierte Netze auch bekannt unter den Namen: Netze mit individuellen Marken, Prädikat-Transitions-Netze, engl. coloured Petri nets

223 Petrinetze Inzidenzmatrizen und Invarianten Petrinetze: Weitere Arten von Netzen Netze mit Kapazitäten Ein Petrinetz mit Kapazitäten besteht aus einem (herkömmlichen) Petrinetz N (mit Stellenmenge S) und einer Kapazitätsfunktion k : S N 0. Für die Anfangsmarkierung m 0 muss gelten: m 0 k. Intuition: die Stelle s darf höchstens k(s) Marken enthalten. Kapazitäten werden neben die Stellen geschrieben. Schalten von Transitionen bei Kapazitäten Eine Transition t kann unter einer Markierung m schalten, wenn gilt: 1 t m 2 und m t t k. D.h., eine Transition darf nur dann schalten, wenn dadurch die Kapazitäten nicht überschritten werden.

224 Petrinetze Inzidenzmatrizen und Invarianten Petrinetze: Weitere Arten von Netzen Beispielnetz mit Kapazitäten s 1 t 1 s 2 t t 2 Erreichbarkeitsgraph t 1 (1, 1) (2, 0) t 2 t 3 t 2 (1, 0) (0, 1) t 1 t 3 (0, 0) Insbesondere: unter der Anfangsmarkierung (1, 1) ist die Transition t 1 nicht schaltbar.

225 Petrinetze Inzidenzmatrizen und Invarianten Petrinetze: Weitere Arten von Netzen Umwandlung eines Netzes mit Kapazitäten in ein Netz ohne Kapazitäten 1 Füge zu jeder Stelle s eine sogenannte Komplementstelle s hinzu. In der Anfangsmarkierung enthält s genau k(s) m 0 (s) Marken. Idee: die Summe der Marken in der Stelle und der Komplementstelle ergibt immer die Kapazität. 2 Falls eine Transition in der Summe Marken aus einer Stelle herausnimmt (n = t (s) t(s) < 0) füge eine Kante von t nach s mit Gewicht n ein. 3 Falls eine Transition in der Summe Marken in eine Stelle hineinlegt (n = t (s) t(s) > 0) füge eine Kante von s nach t mit Gewicht n ein.

226 Petrinetze Inzidenzmatrizen und Invarianten Petrinetze: Weitere Arten von Netzen Mit dieser Konstruktion ist für jedes Paar s, s von Stellen sichergestellt, dass m(s) + m(s) = k(s) für jede erreichbare Markierung s; eine Transition t nur schaltbar ist, wenn die Kapazität der Stellen in der Nachbedingung noch nicht ausgeschöpft ist. Das wird dadurch überprüfen, dass die benötigte Kapazität über die Komplementstellen abgefragt wird.

227 Petrinetze Inzidenzmatrizen und Invarianten Petrinetze: Weitere Arten von Netzen Umgewandeltes Beispielnetz s 1 t 1 s 2 t 2 t 3 s 1 s 2 Reihenfolge der Stellen: s 1, s 1, s 2, s 2 Erreichbarkeitsgraph (1, 1, 1, 0) t 3 (1, 1, 0, 1) t 1 t 2 (2, 0, 0, 1) t 2 t 1 (0, 2, 1, 0) t 3 (0, 2, 0, 1)

228 Petrinetze Inzidenzmatrizen und Invarianten Fallstudie: Erzeuger-Verbraucher-Problem Ein Prozess erzeugt Objekte, der andere verbraucht diese Es steht nur eine begrenzte Anzahl Speicherplätze zur Verfügung

229 Petrinetze Inzidenzmatrizen und Invarianten Fallstudie: Erzeuger-Verbraucher-Problem (2) Ein Prozess erzeugt Objekte, der andere verbraucht diese Es steht nur eine begrenzte Anzahl Speicherplätze zur Verfügung Das Schreiben/Lesen der Objekte muss im kritischen Abschnitt erfolgen

230 Petrinetze Inzidenzmatrizen und Invarianten Fallstudie: Erzeuger-Verbraucher-Problem (3) Obige Lösung ignoriert, dass bei der Programmierung die Bedingungen (kritischer Abschnitt, freie Plätze/Objekte vorhanden) nacheinander überprüft werden müssen Variante 1: Erst kritischer Abschnitt Es kommt zum Deadlock, wenn die zweite Bedingung nicht erfüllt ist

231 Petrinetze Inzidenzmatrizen und Invarianten Fallstudie: Erzeuger-Verbraucher-Problem (4) Korrekte Lösung: Erst die Anzahl überprüfen, danach in den kritischen Abschnitt

232 Petrinetze Inzidenzmatrizen und Invarianten Petrinetze: Weitere Arten von Netzen Bei attributierten Netzen (oder coloured nets) haben die Marken Farben. Die Transitionen geben an, Marken welcher Farbe entnommen und erzeugt werden sollen. Beispielsweise entnimmt folgende Transition eine blaue und eine rote Marke und erzeugt zwei grüne Marken. 2

233 Petrinetze Inzidenzmatrizen und Invarianten Petrinetze: Weitere Arten von Netzen Farben können dabei auch Elemente eines bestimmten Datentyps sein (z.b. Zahlen). Die Transitionen werden dabei symbolisch annotiert und an den Transitionen können auch Bedingungen stehen. Beispielsweise hat folgendes Netz natürliche Zahlen als Farben. Die Transition entnimmt der ersten Stelle eine natürliche Zahl x und der zweiten Stelle eine Zahl y. In die Stelle der Nachbedingung wird dann die Zahl x + y gelegt. Die Transition darf nur schalten, wenn x > x y x > 3 x + y

234 Unified Modeling Language (UML) UML: Einführung UML = Unified Modeling Language Standard-Modellierungssprache für Software Engineering. Basiert auf objekt-orientierten Konzepten. Sehr umfangreich, enthält viele verschiedene Typen von Modellen. Entwickelt von Grady Booch, James Rumbaugh, Ivar Jacobson (1997).

235 Unified Modeling Language (UML) Klassen- und Objektdiagramme UML und Objekt-Orientierung Was bedeutet Objekt-Orientierung? Grundidee Die reale Welt besteht aus Objekten, die untereinander in Beziehungen stehen. Diese Sichtweise wird auch auf Modellierung und Softwareentwicklung übertragen. Etwas genauer... Daten (= Attribute) werden zusammen mit der Funktionalität (= Methoden) in Objekten organisiert bzw. gekapselt. Jedes Objekt ist in der Lage Nachrichten (= Methodenaufrufe) zu empfangen, Daten zu verarbeiten und Nachrichten zu senden. Diese Objekte können einmal erstellt in verschiedenen Kontexten wiederverwendet werden.

236 Unified Modeling Language (UML) Klassen- und Objektdiagramme UML und Objekt-Orientierung Geschichte der Objekt-Orientierung Entwicklung von objekt-orientierten Programmiersprachen: 60er Jahre: Simula (zur Beschreibung und Simulation von komplexen Mensch-Maschine-Interaktionen) 80er Jahre: C++ 90er Jahre: Java Verbreitung von objekt-orientierten Entwurfsmethoden: 70er Jahre: Entity-Relationship-Modell 90er Jahre: Vorläufer von UML: OOSE (Object-Oriented Software Engineering), OMT (Object Modeling Technique) Seit 1997: UML Seit 2005: UML 2.0

237 Unified Modeling Language (UML) Klassen- und Objektdiagramme UML und Objekt-Orientierung Vorteile der objekt-orientierten Programmierung und Modellierung Leichte Wiederverwendbarkeit dadurch, dass Daten und Funktionalität zusammen verwaltet werden und es Konzepte zur Modifikation von Code (Stichwort: Vererbung) gibt. Nähe zur realen Welt: viele Dinge der realen Welt können als Objekte modelliert werden. Verträglichkeit mit Nebenläufigkeit und Parallelität: Kontrollfluss kann nebenläufig in den Objekten ablaufen und die Objekte können durch Nachrichtenaustausch bzw. Methodenaufrufe untereinander kommunizieren.

238 Unified Modeling Language (UML) Klassen- und Objektdiagramme UML und Objekt-Orientierung Ein Beispiel für die Modellierung von Objekten der realen Welt: Fahrkartenautomat Daten: Fahrtziele, Zoneneinteilung, Fahrtkosten Funktionalität: Tasten drücken, Preise anzeigen, Münzen einwerfen, Fahrkarte auswerfen

Was ist Modellierung? Vorlesung Modellierung Wintersemester 2014/15. Einführung (Folien von Prof. B. König) Was ist Modellierung?

Was ist Modellierung? Vorlesung Modellierung Wintersemester 2014/15. Einführung (Folien von Prof. B. König) Was ist Modellierung? Was ist Modellierung? Vorlesung Modellierung Wintersemester 2014/15 Einführung (Folien von Prof. B. König) Prof. Norbert Fuhr Modell Ein Modell ist eine Repräsentation eines Systems von Objekten, Beziehungen

Mehr

Vorlesung Modellierung Modellierungsmethoden der Informatik. Wintersemester 2011/12

Vorlesung Modellierung Modellierungsmethoden der Informatik. Wintersemester 2011/12 Vorlesung Modellierung Modellierungsmethoden der Informatik Wintersemester 2011/12 Prof. Barbara König Übungsleitung: Dr. Sander Bruggink Barbara König Modellierung 1 Was ist Modellierung? Modell Ein Modell

Mehr

Vorlesung Modellierung Modellierungsmethoden der Informatik. Wintersemester 2011/12. Lernplattform Moodle. Wer sind wir?

Vorlesung Modellierung Modellierungsmethoden der Informatik. Wintersemester 2011/12. Lernplattform Moodle. Wer sind wir? Vorlesung Modellierung Modellierungsmethoden der Informatik Wintersemester 2011/12 Prof. Barbara König Übungsleitung: Dr. Sander Bruggink Das heutige Programm Organisatorisches Vorstellung Ablauf der Vorlesung

Mehr

Vorlesung Modellierung Modellierungsmethoden der Informatik. Wintersemester 2011/12. Lernplattform Moodle. Wer sind wir?

Vorlesung Modellierung Modellierungsmethoden der Informatik. Wintersemester 2011/12. Lernplattform Moodle. Wer sind wir? Vorlesung Modellierung Modellierungsmethoden der Informatik Wintersemester 2011/12 Prof. Barbara König Übungsleitung: Dr. Sander Bruggink Das heutige Programm Organisatorisches Vorstellung Ablauf der Vorlesung

Mehr

3.0 VU Formale Modellierung

3.0 VU Formale Modellierung 3.0 VU Formale Modellierung Gernot Salzer Arbeitsbereich Theoretische Informatik und Logik Institut für Computersprachen SS 2016 1 Inhalt 0. Überblick 1. Organisation 2. Was bedeutet Modellierung? 3. Aussagenlogik

Mehr

Was ist Modellierung? Vorlesung Modellierung Modellierungsmethoden der Informatik. Wintersemester 2011/12. Was ist Modellierung?

Was ist Modellierung? Vorlesung Modellierung Modellierungsmethoden der Informatik. Wintersemester 2011/12. Was ist Modellierung? Was ist Modellierung? Vorlesung Modellierung Modellierungsmethoden der Informatik Wintersemester 2011/12 Prof. Barbara König Übungsleitung: Dr. Sander Bruggink Modell Ein Modell ist eine Repräsentation

Mehr

Vorlesung Berechenbarkeit und Komplexität Wintersemester 2016/17. Wer sind wir? Willkommen zu

Vorlesung Berechenbarkeit und Komplexität Wintersemester 2016/17. Wer sind wir? Willkommen zu Vorlesung Berechenbarkeit und Komplexität Wintersemester 2016/17 Prof. Barbara König Übungsleitung: Sebastian Küpper Willkommen zu Berechenbarkeit und Komplexität (Bachelor Angewandte Informatik, Duisburg

Mehr

Vorlesung Modellierung nebenläufiger Systeme Sommersemester 2014 Universität Duisburg-Essen

Vorlesung Modellierung nebenläufiger Systeme Sommersemester 2014 Universität Duisburg-Essen Vorlesung Modellierung nebenläufiger Systeme Sommersemester 2014 Universität Duisburg-Essen Barbara König Übungsleitung: Sebastian Küpper Barbara König Vorlesung Modellierung nebenläufiger Systeme 1 Das

Mehr

Warum Modellierung? OE-Vorlesung 2016 Einführung in Petrinetze. Was ist ein Modell? Und warum Petrinetze? Petrinetze sind ein Modellierungswerkzeug.

Warum Modellierung? OE-Vorlesung 2016 Einführung in Petrinetze. Was ist ein Modell? Und warum Petrinetze? Petrinetze sind ein Modellierungswerkzeug. Warum Modellierung? OE-Vorlesung 016 Einführung in Petrinetze Dr. Lawrence Cabac cabac@informatik.uni-hamburg.de Folien: Dr. Frank Heitmann Fachbereich Informatik Universität Hamburg Petrinetze sind ein

Mehr

Vorlesung Automaten und Formale Sprachen alias Theoretische Informatik Sommersemester 2015

Vorlesung Automaten und Formale Sprachen alias Theoretische Informatik Sommersemester 2015 Vorlesung Automaten und Formale Sprachen alias Theoretische Informatik Sommersemester 2015 Prof. Barbara König Übungsleitung: Jan Stückrath Barbara König Automaten und Formale Sprachen 1 Das heutige Programm:

Mehr

Modellierungsmethoden der Informatik

Modellierungsmethoden der Informatik smethoden der Informatik Petrinetze (Teil III) 05.12.2007 Überblick Überblick Organisatorisches Wiederholung S/T-System: Grundbegriffe - Grundsituationen Nebenläufigkeit Invarianten B/E-Systeme Prädikat-Transitions-Netze

Mehr

SYNTHESE ELEMENTARER PETRINETZE

SYNTHESE ELEMENTARER PETRINETZE SYNTHESE ELEMENTARER PETRINETZE OBERSEMINARVORTRAG VON MARTIN CANDROWICZ 27. MAI 2016 GLIEDERUNG 1. PETRINETZE 2. TRANSITIONSSYSTEME 3. MOTIVATION 4. ALGORITHMUS ZUR SYNTHESE ELEMENTARER PETRINETZE 1.

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 11: Graphen Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009 1/42 Graphische Darstellung von Zusammenhängen schon an vielen Stellen

Mehr

Modellierungstechniken im Softwaredesign. Praxisprojekt [ai] Control WS 2011/2012 Lara Baschour und Anne Heiting

Modellierungstechniken im Softwaredesign. Praxisprojekt [ai] Control WS 2011/2012 Lara Baschour und Anne Heiting Modellierungstechniken im Softwaredesign Praxisprojekt [ai] Control WS 2011/2012 Lara Baschour und Anne Heiting Was ist Modellierung? Modell = Ein Modell ist eine Repräsentation eines Systems von Objekten,

Mehr

Motivation. Motivation

Motivation. Motivation Vorlesung Modellierung nebenläufiger Systeme Sommersemester 2012 Universität Duisburg-Essen Was sind nebenläufige Systeme? Ganz allgemein: Systeme, bei denen mehrere Komponenten/Prozesse nebenläufig arbeiten

Mehr

Unified Modeling Language (UML )

Unified Modeling Language (UML ) Unified Modeling Language (UML ) Seminar: Programmiersprachenkonzepte Inhalt Einleitung UML 2.0 Diagrammtypen 2 Einleitung Objektorientierte Modellierungssprache Definiert vollständige Semantik Dient der

Mehr

UML (Unified Modelling Language) von Christian Bartl

UML (Unified Modelling Language) von Christian Bartl UML (Unified Modelling Language) von Inhaltsverzeichnis Inhaltsverzeichnis... 2 1 UML Unified Modelling Language... 3 2 Diagrammtypen... 3 2.1 Aktivitätsdiagramm... 3 2.1.1 Notation... 4 2.1.2 Beispieldiagramm...

Mehr

Kapitel 4: Analyse von Petrinetzen

Kapitel 4: Analyse von Petrinetzen Kapitel 4: Analyse von Petrinetzen 1. Beispiele 2. Analyseansatz 3. Markierungsgraph 4. Beschränktheit 5. State Space Explosion: Beispiel 6. Komplementbildung 7. Zusammenhängend 8. Tot, lebendig, verklemmungsfrei

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 11: Graphen Thomas Worsch Karlsruher Institut für Technologie, Fakultät für Informatik Wintersemester 2010/2011 1/59 Graphische Darstellung von Zusammenhängen schon

Mehr

Petri-Netze / Eine Einführung

Petri-Netze / Eine Einführung Manuel Hertlein Seminar Systementwurf Lehrstuhl Theorie der Programmierung Carl Adam Petri am 12. Juli 1926 in Leipzig geboren Studium der Mathematik 1962 Promotion zum Doktor der Naturwissenschaft Titel

Mehr

c) {abcde, abcfg, bcade, bcafg} d) {ade, afg, bcde, bcfg} c) {abcabc} d) {abcbc, abc, a} c) {aa, ab, ba, bb} d) {{aa}, {ab}, {ba}, {bb}}

c) {abcde, abcfg, bcade, bcafg} d) {ade, afg, bcde, bcfg} c) {abcabc} d) {abcbc, abc, a} c) {aa, ab, ba, bb} d) {{aa}, {ab}, {ba}, {bb}} 2 Endliche Automaten Fragen 1. Was ergibt sich bei {a, bc} {de, fg}? a) {abc, defg} b) {abcde, abcfg} c) {abcde, abcfg, bcade, bcafg} d) {ade, afg, bcde, bcfg} 2. Was ergibt sich bei {abc, a} {bc, λ}?

Mehr

Diskrete Ereignissysteme. Spezielle Netzstrukturen- Übersicht. Beispiele zu speziellen Netzstrukturen. Petri-Netze und Zustandsautomaten

Diskrete Ereignissysteme. Spezielle Netzstrukturen- Übersicht. Beispiele zu speziellen Netzstrukturen. Petri-Netze und Zustandsautomaten Diskrete Ereignissysteme 4.4 Spezialisierungen von Petri Netzen Spezielle Netzstrukturen- Übersicht Ein S-T-Netz heisst Zustands-System gdw. gilt:. W(f) = für alle Kanten f F. 2. t = t = für alle Transitionen

Mehr

6.2 Petri-Netze. kommunizierenden Prozessen in der Realität oder in Rechnern Verhalten von Hardware-Komponenten Geschäftsabläufe Spielpläne

6.2 Petri-Netze. kommunizierenden Prozessen in der Realität oder in Rechnern Verhalten von Hardware-Komponenten Geschäftsabläufe Spielpläne 6.2 Petri-Netze WS 06/07 mod 621 Petri-Netz (auch Stellen-/Transitions-Netz): Formaler Kalkül zur Modellierung von Abläufen mit nebenläufigen Prozessen und kausalen Beziehungen Basiert auf bipartiten gerichteten

Mehr

Vorlesung Formale Aspekte der Software-Sicherheit und Kryptographie Sommersemester 2015 Universität Duisburg-Essen

Vorlesung Formale Aspekte der Software-Sicherheit und Kryptographie Sommersemester 2015 Universität Duisburg-Essen Vorlesung Formale Aspekte der Software-Sicherheit und Kryptographie Sommersemester 2015 Universität Duisburg-Essen Prof. Barbara König Übungsleitung: Sebastian Küpper Barbara König Form. Asp. der Software-Sicherheit

Mehr

Kapitel 2. Mathematische Grundlagen. Skript zur Vorlesung Einführung in die Programmierung

Kapitel 2. Mathematische Grundlagen. Skript zur Vorlesung Einführung in die Programmierung LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS DATABASE Kapitel 2 Mathematische Grundlagen Skript zur Vorlesung Einführung in die Programmierung im Wintersemester 2012/13 Ludwig-Maximilians-Universität

Mehr

Abschnitt 3: Mathematische Grundlagen

Abschnitt 3: Mathematische Grundlagen Abschnitt 3: Mathematische Grundlagen 3. Mathematische Grundlagen 3.1 3.2 Induktion und Rekursion 3.3 Boolsche Algebra Peer Kröger (LMU München) Einführung in die Programmierung WS 14/15 48 / 155 Überblick

Mehr

Diskrete Strukturen Kapitel 2: Grundlagen (Mengen)

Diskrete Strukturen Kapitel 2: Grundlagen (Mengen) WS 2016/17 Diskrete Strukturen Kapitel 2: Grundlagen (Mengen) Hans-Joachim Bungartz Lehrstuhl für wissenschaftliches Rechnen Fakultät für Informatik Technische Universität München http://www5.in.tum.de/wiki/index.php/diskrete_strukturen_-_winter_16

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Kapitel 15: Graphen Thomas Worsch KIT, Institut für Theoretische Informatik Wintersemester 2015/2016 GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik

Mehr

Einführung in die Informatik 2

Einführung in die Informatik 2 Einführung in die Informatik 2 Mathematische Grundbegriffe Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz E 202 Sven.Kosub@uni-konstanz.de Sprechstunde: Freitag, 12:30-14:00 Uhr,

Mehr

Analyse von Petri-Netzen

Analyse von Petri-Netzen Universität Stuttgart Institut für Technische Informatik Hauptseminar: Architektur und Entwurfsmethoden eingebetteter Systeme Analyse von Petri-Netzen Manuela Antonovic 8. Semester Betreuer: Dominik Lücke

Mehr

Modellierung von Geschäftsprozessen Teil 6 - Petri-Netze

Modellierung von Geschäftsprozessen Teil 6 - Petri-Netze FHTW Berlin FB4, Wirtschaftsmathematik Modellierung von Geschäftsprozessen Teil 6 - Petri-Netze Dr. Irina Stobbe, 2005-2008 Thema - Überblick Petri-Netze Petri-Netze Einführung Funktionsweise Definition

Mehr

WS 2009/10. Diskrete Strukturen

WS 2009/10. Diskrete Strukturen WS 2009/10 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws0910

Mehr

Verifizierende Testverfahren

Verifizierende Testverfahren Spezifikation Um einen Algorithmus zu schreiben, muss das zu lösende Problem genau beschrieben sein. Eine Spezifikation ist Verifizierende Testverfahren vollständig, wenn alle Anforderungen/alle relevanten

Mehr

Mathematik I für Studierende der Informatik und Wirtschaftsinformatik (Diskrete Mathematik) im Wintersemester 2017/2018

Mathematik I für Studierende der Informatik und Wirtschaftsinformatik (Diskrete Mathematik) im Wintersemester 2017/2018 Mathematik I für Studierende der Informatik und Wirtschaftsinformatik (Diskrete Mathematik) im Wintersemester 2017/2018 23. November 2017 1/40 Satz 4.27 (Multinomialsatz) Seien r, n N 0. Dann gilt für

Mehr

Modellbasierter Test mit der UML. Vortragender: Lars Westmeier Seminar: Spezifikationsbasierter Softwaretest

Modellbasierter Test mit der UML. Vortragender: Lars Westmeier Seminar: Spezifikationsbasierter Softwaretest Modellbasierter Test mit der UML Vortragender: Lars Westmeier Seminar: Spezifikationsbasierter Softwaretest Inhalt Einleitung und Motivation UML Testgenerierung Fazit Inhalt Einleitung und Motivation UML

Mehr

Interleaving-Semantik: Parallelausführung wird auf Hintereinanderausführung in beliebiger Reihenfolge zurückgeführt.

Interleaving-Semantik: Parallelausführung wird auf Hintereinanderausführung in beliebiger Reihenfolge zurückgeführt. Einführung Interleaving-Semantik: Parallelausführung wird auf Hintereinanderausführung in beliebiger Reihenfolge zurückgeführt. P 1 = (a.stop) (b.stop) und P 2 = (a.b.stop) + (b.a.stop) werden nicht unterschieden.

Mehr

Notationen zur Prozessmodellierung

Notationen zur Prozessmodellierung Notationen zur Prozessmodellierung August 2014 Inhalt (erweiterte) ereignisgesteuerte Prozesskette (eepk) 3 Wertschöpfungskettendiagramm (WKD) 5 Business Process Model and Notation (BPMN) 7 Unified Modeling

Mehr

Unified Modeling Language

Unified Modeling Language Unified Modeling Language Thomas Röfer Motivation Entwicklung Spracheinheiten Diagramme (Struktur-/Verhaltensdiagramme) Rückblick Textsuche Naive Suche abrakadabra Boyer-Moore abrakadabra a Knuth-Morris-Pratt

Mehr

Diskrete Strukturen Kapitel 1: Einleitung

Diskrete Strukturen Kapitel 1: Einleitung WS 2015/16 Diskrete Strukturen Kapitel 1: Einleitung Hans-Joachim Bungartz Lehrstuhl für wissenschaftliches Rechnen Fakultät für Informatik Technische Universität München http://www5.in.tum.de/wiki/index.php/diskrete_strukturen_-_winter_15

Mehr

Am Dienstag, den 16. Dezember, ist Eulenfest. 1/45

Am Dienstag, den 16. Dezember, ist Eulenfest. 1/45 Am Dienstag, den 16. Dezember, ist Eulenfest. 1/45 Grundbegriffe der Informatik Einheit 12: Erste Algorithmen in Graphen Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009

Mehr

NACHRICHTENTECHNISCHER SYSTEME

NACHRICHTENTECHNISCHER SYSTEME Einführung UML COMPUTERSIMULATION NACHRICHTENTECHNISCHER SYSTEME 11. Unified Modeling Language UML 220 Standardsprache d zur Visualisierung, i Spezifikation, Konstruktion und Dokumentation komplexer (Software-)

Mehr

HM I Tutorium 1. Lucas Kunz. 27. Oktober 2016

HM I Tutorium 1. Lucas Kunz. 27. Oktober 2016 HM I Tutorium 1 Lucas Kunz 27. Oktober 2016 Inhaltsverzeichnis 1 Theorie 2 1.1 Logische Verknüpfungen............................ 2 1.2 Quantoren.................................... 3 1.3 Mengen und ihre

Mehr

Die mathematische Seite

Die mathematische Seite Kellerautomaten In der ersten Vorlesung haben wir den endlichen Automaten kennengelernt. Mit diesem werden wir uns in der zweiten Vorlesung noch etwas eingängiger beschäftigen und bspw. Ansätze zur Konstruktion

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 14: Endliche Automaten Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009 1/38 Überblick Erstes Beispiel: ein Getränkeautomat Mealy-Automaten

Mehr

Diskrete Strukturen Kapitel 2: Grundlagen (Relationen)

Diskrete Strukturen Kapitel 2: Grundlagen (Relationen) WS 2016/17 Diskrete Strukturen Kapitel 2: Grundlagen (Relationen) Hans-Joachim Bungartz Lehrstuhl für wissenschaftliches Rechnen Fakultät für Informatik Technische Universität München http://www5.in.tum.de/wiki/index.php/diskrete_strukturen_-_winter_16

Mehr

Lineare Algebra I. - 1.Vorlesung - Prof. Dr. Daniel Roggenkamp & Falko Gauß. Monday 12 September 16

Lineare Algebra I. - 1.Vorlesung - Prof. Dr. Daniel Roggenkamp & Falko Gauß. Monday 12 September 16 Lineare Algebra I - 1.Vorlesung - Prof. Dr. Daniel Roggenkamp & Falko Gauß 1. Mengen und Abbildungen: Mengen gehören zu den Grundlegendsten Objekten in der Mathematik Kurze Einführung in die (naive) Mengelehre

Mehr

1. Einführung in Temporallogik CTL

1. Einführung in Temporallogik CTL 1. Einführung in Temporallogik CTL Temporallogik dient dazu, Aussagen über Abläufe über die Zeit auszudrücken und zu beweisen. Zeit wird in den hier zunächst behandelten Logiken als diskret angenommen

Mehr

Für unseren Gebrauch ist eine Menge bestimmt durch die in ihr enthaltenen Elemente. Ist M eine Menge, so ist ein beliebiges Objekt m wieder so ein

Für unseren Gebrauch ist eine Menge bestimmt durch die in ihr enthaltenen Elemente. Ist M eine Menge, so ist ein beliebiges Objekt m wieder so ein Mengen 1.2 9 1.2 Mengen 7 Der Begriff der Menge wurde am Ende des 19. Jahrhunderts von Georg Cantor wie folgt eingeführt. Definition (Cantor 1895) Eine Menge ist eine Zusammenfassung M von bestimmten,

Mehr

Vorlesung 2. Tilman Bauer. 6. September 2007

Vorlesung 2. Tilman Bauer. 6. September 2007 Vorlesung 2 Universität Münster 6. September 2007 Organisatorisches Meine Koordinaten: Sprechstunden: Di 13:30-14:30 Do 9:00-10:00 tbauer@uni-muenster.de Zimmer 504, Einsteinstr. 62 (Hochhaus) für alle

Mehr

Software Engineering Ergänzung zur Vorlesung

Software Engineering Ergänzung zur Vorlesung Ergänzung zur Vorlesung Prof. Dr. Markus Müller-Olm WS 2008 2009 2.6.1 Endliche und reguläre Sprachen Endliche und reguläre Sprache: fundamental in vielen Bereichen der Informatik: theorie Formale Sprachen

Mehr

Unified Modeling Language (UML)

Unified Modeling Language (UML) Kirsten Berkenkötter Was ist ein Modell? Warum Modellieren? Warum UML? Viele, viele Diagramme UML am Beispiel Was ist ein Modell? Ein Modell: ist eine abstrakte Repräsentation eines Systems, bzw. ist eine

Mehr

Tamagotchi-Spezifikation in UML

Tamagotchi-Spezifikation in UML Tamagotchi-Spezifikation in UML Christian Becker Steffen Glomb Michael Graf Gliederung Grundlagen Notation Werkzeug Modellierung Details der Spezifikation Erfahrungen Beurteilung von Notation und Werkzeug

Mehr

Petri-Netze / Eine Einführung (Teil 2)

Petri-Netze / Eine Einführung (Teil 2) Manuel Hertlein Seminar Systementwurf Lehrstuhl Theorie der Programmierung Wiederholung (1) Petri-Netz = bipartiter, gerichteter Graph Aufbau: Plätze (passive Komponenten) Transitionen (aktive Komponenten)

Mehr

Einführung in Petri-Netze. Modellierung von Abläufen und Prozessen (1) Abhängigkeitsgraphen: Motivation. Petri-Netze

Einführung in Petri-Netze. Modellierung von Abläufen und Prozessen (1) Abhängigkeitsgraphen: Motivation. Petri-Netze Einführung in Petri-Netze Modellierung von Abläufen und Prozessen () Motivation Abhängigkeitsgraphen: A B 6 C 5 D Petri-Netze Markierungen Invarianten Credits: L. Priese, H. Wimmel: Petri-Netze, Theoretische

Mehr

Die Unified Modeling Language UML

Die Unified Modeling Language UML Informatik II: Modellierung Prof. Dr. Martin Glinz Kapitel 4 Die Unified Modeling Language UML Universität Zürich Institut für Informatik Inhalt 4.1 Hintergrund 4.2 Grundkonzepte der UML 4.3 Die Rolle

Mehr

Computergestützte Modellierung und Verifikation

Computergestützte Modellierung und Verifikation Computergestützte Modellierung und Verifikation Vorlesung mit Übungen SS 2007 Prof. F. von Henke mit Dr. H. Pfeifer Inst. für Künstliche Intelligenz Organisatorisches Vorlesung: Mi 14 16 Raum 3211 Do 14

Mehr

Requirements Engineering I

Requirements Engineering I Martin Glinz Requirements Engineering I Kapitel 9 UML Unified Modeling Language Universität Zürich Institut für Informatik 2006, 2008 Martin Glinz. Alle Rechte vorbehalten. Speicherung und Wiedergabe sind

Mehr

Kapitel 2 - Die Definitionsphase

Kapitel 2 - Die Definitionsphase Kapitel 2 - Die Definitionsphase SWT I Sommersemester 2010 Walter F. Tichy, Andreas Höfer, Korbinian Molitorisz IPD Tichy, Fakultät für Informatik KIT die Kooperation von Forschungszentrum Karlsruhe GmbH

Mehr

Stochastik für die Informatik

Stochastik für die Informatik Stochastik für die Informatik Wintersemester 2012/13 Anton Wakolbinger 1 StofI-Webseite: http://ismi.math.unifrankfurt.de/wakolbinger/teaching/stofi1213/ 2 StofI-Webseite: http://ismi.math.unifrankfurt.de/wakolbinger/teaching/stofi1213/

Mehr

Bipartite Graphen. Beispiele

Bipartite Graphen. Beispiele Bipartite Graphen Ein Graph G = (V, E) heiÿt bipartit (oder paar), wenn die Knotenmenge in zwei disjunkte Teilmengen zerfällt (V = S T mit S T = ), sodass jede Kante einen Knoten aus S mit einem Knoten

Mehr

Mengen und Abbildungen

Mengen und Abbildungen 1 Mengen und bbildungen sind Hilfsmittel ( Sprache ) zur Formulierung von Sachverhalten; naive Vorstellung gemäß Georg Cantor (1845-1918) (Begründer der Mengenlehre). Definition 1.1 Eine Menge M ist eine

Mehr

Requirements Engineering I

Requirements Engineering I Martin Glinz Requirements Engineering I Kapitel 9 UML Unified Modeling Language Universität Zürich Institut für Informatik 2006, 2009 Martin Glinz. Alle Rechte vorbehalten. Speicherung und Wiedergabe für

Mehr

Grundlagen der Programmentwurfstechnik Fundamentals of Software Engineering 1

Grundlagen der Programmentwurfstechnik Fundamentals of Software Engineering 1 Vorlesung 6 Fundamentals of Software Engineering 1 Sommersemester 2016 Inhaltsverzeichnis 1. Einführung 2. Allgemeine Modellbildung 3. Strukturierte Analyse (SE) 5. Benutzersschnittstellen 6. Softwaretest

Mehr

Software-Engineering SS03. Zustandsautomat

Software-Engineering SS03. Zustandsautomat Zustandsautomat Definition: Ein endlicher Automat oder Zustandsautomat besteht aus einer endlichen Zahl von internen Konfigurationen - Zustände genannt. Der Zustand eines Systems beinhaltet implizit die

Mehr

Systemtheorie 1. Formale Systeme 1 # WS 2006/2007 Johannes Kepler Universität Linz, Österreich

Systemtheorie 1. Formale Systeme 1 # WS 2006/2007 Johannes Kepler Universität Linz, Österreich Einführung 1 Systemtheorie 1 Formale Systeme 1 #342234 http://fmv.jku.at/fs1 WS 2006/2007 Johannes Kepler Universität Linz, Österreich Univ. Prof. Dr. Armin Biere Institut für Formale Modelle und Verifikation

Mehr

Grundlagen der Programmentwurfstechnik Fundamentals of Software Engineering

Grundlagen der Programmentwurfstechnik Fundamentals of Software Engineering Vorlesung 6 Fundamentals of Software Engineering Inhaltsverzeichnis 1. Einführung 2. Allgemeine Modellbildung 3. Strukturierte Analyse (SE) 5. Benutzersschnittstellen 6. Softwaretest 2 1 Inhaltsverzeichnis

Mehr

Unified Modelling Language

Unified Modelling Language Unified Modelling Language SEP 72 Software-Entwicklung Software-Entwicklung ist Prozess von Anforderung über Modellierungen zu fertigen Programmen Anforderungen oft informell gegeben fertige Programme

Mehr

Unified Modeling Language 2

Unified Modeling Language 2 Unified Modeling Language 2 Marvin Frommhold 17.11.2008 Gliederung Einleitung Geschichte Strukturierung der Spezifikation Diagrammtypen Strukturdiagramme Verhaltensdiagramme CASE-Werkzeuge Quellen Was

Mehr

Software-Engineering

Software-Engineering SWE43 Slide 1 Software-Engineering Sebastian Iwanowski FH Wedel Kapitel 4: Systemanalyse Teil 3: Der Systemanalysestandard UML SWE43 Slide 2 UML: Was ist das? UML = Unified Modelling Language ist ein Standard,

Mehr

Kapitel 4: Analyse von Petrinetzen

Kapitel 4: Analyse von Petrinetzen Kapitel 4: Analyse von Petrinetzen 1. Beispiele 2. Analyseansatz 3. Markierungsgraph 4. Beschränktheit 5. State Space Explosion: Beispiel 6. Komplementbildung 7. Zusammenhängend 8. Tot, lebendig, verklemmungsfrei

Mehr

Wahrscheinlichkeitsrechnung

Wahrscheinlichkeitsrechnung Grundstudium Mathematik Wahrscheinlichkeitsrechnung Bearbeitet von Dominique Foata, Aime Fuchs 1. Auflage 1999. Taschenbuch. xv, 383 S. Paperback ISBN 978 3 7643 6169 3 Format (B x L): 17 x 24,4 cm Gewicht:

Mehr

Klausur zur Vorlesung Grundbegriffe der Informatik 5. März 2014

Klausur zur Vorlesung Grundbegriffe der Informatik 5. März 2014 Klausur zur Vorlesung Grundbegriffe der Informatik 5. März 2014 Klausurnummer Nachname: Vorname: Matr.-Nr.: Aufgabe 1 2 3 4 5 6 7 max. Punkte 6 8 4 7 5 6 8 tats. Punkte Gesamtpunktzahl: Note: Punkte Aufgabe

Mehr

Dipl.-Inform. Lars Ebrecht

Dipl.-Inform. Lars Ebrecht Konsistente Verknüpfung von Aktivitäts-, Sequenzund Zustandsdiagrammen Darstellungsunabhängige und formale Semantik zur Verhaltensbeschreibung von Echtzeit-Systemen Dipl.-Inform. Lars Ebrecht Mobilität

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Tafelübung 05 Unified Modeling Language, Codierregeln Clemens Lang T2/T4 25. Mai 2010 (bergfrei) 27. Mai 2010 (Vertretung) Tafelübung zu AuD 1/18 Was ist UML? Was ist UML?

Mehr

Informatik I Tutorium WS 07/08

Informatik I Tutorium WS 07/08 Informatik I Tutorium WS 07/08 Vorlesung: Prof. Dr. F. Bellosa Übungsleitung: Dipl.-Inform. A. Merkel Tutorium: 2 Tutor: Jens Kehne Tutorium 7: Dienstag,. Dezember 2007 Agenda des heutigen Tutoriums Übersicht

Mehr

Mengenlehre. Ist M eine Menge und x ein Element von M, so schreiben wir x M. Ist x kein Element von M, so schreiben wir x M.

Mengenlehre. Ist M eine Menge und x ein Element von M, so schreiben wir x M. Ist x kein Element von M, so schreiben wir x M. Mengenlehre Eine Menge ist eine Zusammenfassung bestimmter und unterschiedlicher Objekte. Für jedes Objekt lässt sich eindeutig sagen, ob es zu der Menge gehört. Die Objekte heißen Elemente der Menge.

Mehr

Informatik 12 Kapitel 2 - Kommunikation und Synchronisation von Prozessen

Informatik 12 Kapitel 2 - Kommunikation und Synchronisation von Prozessen Fachschaft Informatik Informatik 12 Kapitel 2 - Kommunikation und Synchronisation von Prozessen Michael Steinhuber König-Karlmann-Gymnasium Altötting 9. Februar 2017 Folie 1/40 Inhaltsverzeichnis I 1 Kommunikation

Mehr

Analysis III. Vorlesung 61

Analysis III. Vorlesung 61 Prof. Dr. H. Brenner Osnabrück WS 2014/2015 Analysis III Vorlesung 61 In diesem Kurs beschäftigen wir uns mit dem Flächeninhalt von ebenen Gebilden und den Volumina von räumlichen Gebilden. Für ein Rechteck

Mehr

Endliche Automaten. Endliche Automaten J. Blömer 1/23

Endliche Automaten. Endliche Automaten J. Blömer 1/23 Endliche Automaten Endliche Automaten sind ein Kalkül zur Spezifikation von realen oder abstrakten Maschinen regieren auf äußere Ereignisse (=Eingaben) ändern ihren inneren Zustand produzieren gegebenenfalls

Mehr

26.01.2009. Gliederung. Nebenläufigkeit und Fairness. 1. Nebenläufigkeit Lokalitätsprinzip. 2. Betrachtungsweisen von Nebenläufigkeit. 3.

26.01.2009. Gliederung. Nebenläufigkeit und Fairness. 1. Nebenläufigkeit Lokalitätsprinzip. 2. Betrachtungsweisen von Nebenläufigkeit. 3. Gliederung Lokalitätsprinzip Nebenläufigkeit und Fairness Seminar Model lchecking WS 08/09 Interleaving Halbordnung. Fairness Jan Engelsberg engelsbe@informatik.hu berlin.de Was ist Nebenläufigkeit? In

Mehr

INSPIRE - Modellierung

INSPIRE - Modellierung INSPIRE - Modellierung Inhalt Motivation Modellierung UML Diagramme INSPIRE-Schulung LKROS 2 Motivation Was ist ein Modell, und warum wollen wir modellieren? Warum brauchen wir eine Modellierungssprache

Mehr

Programmiermethodik Vorlesung und Praktikum SS 2001

Programmiermethodik Vorlesung und Praktikum SS 2001 Vorlesung und Praktikum SS 2001 Prof. Dr. W. Effelsberg, G. Kühne, Ch. Kuhmünch Universität Mannheim 1. Einführung 1-1 Inhalt 1. Einführung, Vorstellung der Programmieraufgabe 2. Der Software-Entwicklungszyklus

Mehr

Objektorientierte Programmierung. Kapitel 3: Syntaxdiagramme

Objektorientierte Programmierung. Kapitel 3: Syntaxdiagramme Stefan Brass: OOP (Java), 3. 1/31 Objektorientierte Programmierung Kapitel 3: Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2014/15 http://www.informatik.uni-halle.de/ brass/oop14/

Mehr

Grundbegriffe der Informatik Tutorium 33

Grundbegriffe der Informatik Tutorium 33 Tutorium 33 02.02.2017 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Gliederung 1 2 3 Ein ist ein Tupel A = (Z, z 0, X, f, Y, h)

Mehr

Universität Karlsruhe (TH)

Universität Karlsruhe (TH) Universität Karlsruhe (TH) Forschungsuniversität gegründet 1825 Kapitel 2 Die Definitionsphase Prof. Walter F. Tichy Wo sind wir gerade? Planung Lastenheft (funktionales Modell) Definition (Analyse) Pflichtenheft

Mehr

Tutoraufgabe 1 (Starke Zusammenhangskomponenten):

Tutoraufgabe 1 (Starke Zusammenhangskomponenten): für Informatik Prof. aa Dr. Ir. Joost-Pieter Katoen Allgemeine Hinweise: Datenstrukturen und Algorithmen SS1 Übungsblatt (Abgabe 4.0.01) Christian Dehnert, Friedrich Gretz, Benjamin Kaminski, Thomas Ströder

Mehr

Am Dienstag, den 16. Dezember, ist Eulenfest. 1/48

Am Dienstag, den 16. Dezember, ist Eulenfest. 1/48 Am Dienstag, den 16. Dezember, ist Eulenfest. 1/48 Grundbegriffe der Informatik Einheit 12: Erste Algorithmen in Graphen Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009

Mehr

Universität Augsburg, Institut für Informatik Sommersemester 2001 Prof. Dr. Martin Ester 08. Oktober Klausur II

Universität Augsburg, Institut für Informatik Sommersemester 2001 Prof. Dr. Martin Ester 08. Oktober Klausur II Universität Augsburg, Institut für Informatik Sommersemester 2001 Prof. Dr. Martin Ester 08. Oktober 2001 Stefan Holland Informatik II Hinweise: Klausur II Verwenden Sie für Ihre Lösungen ausschließlich

Mehr

Zentralübung zur Vorlesung Diskrete Strukturen (Prof. Mayr)

Zentralübung zur Vorlesung Diskrete Strukturen (Prof. Mayr) WS 2011/12 Zentralübung zur Vorlesung Diskrete Strukturen (Prof. Mayr) Dr. Werner Meixner Fakultät für Informatik TU München http://www14.in.tum.de/lehre/2011ws/ds/uebung/ 25. Januar 2012 ZÜ DS ZÜ XIII

Mehr

André Krischke Helge Röpcke. Graphen und Netzwerktheorie Grundlagen Methoden Anwendungen

André Krischke Helge Röpcke. Graphen und Netzwerktheorie Grundlagen Methoden Anwendungen André Krischke Helge Röpcke Graphen und Netzwerktheorie Grundlagen Methoden Anwendungen 8 Grundbegriffe der Graphentheorie für die Kante, die die beiden Knoten und verbindet. Der linke Graph in Bild. kann

Mehr

UML 2.0 als Architekturbeschreibungssprache? Seminar: Architekturbeschreibungssprachen Manuel Wickert

UML 2.0 als Architekturbeschreibungssprache? Seminar: Architekturbeschreibungssprachen Manuel Wickert UML 2.0 als Architekturbeschreibungssprache? Seminar: Architekturbeschreibungssprachen Manuel Wickert Motivation UML 2.0 nicht als ADL im Sinne von Taylor/Medvidovic entworfen. Warum UML als ADL? weit

Mehr

Systemtheorie 1. Einführung Systemtheorie 1 Formale Systeme 1 # WS 2006/2007 Armin Biere JKU Linz Revision: 1.4

Systemtheorie 1. Einführung Systemtheorie 1 Formale Systeme 1 # WS 2006/2007 Armin Biere JKU Linz Revision: 1.4 Einführung intro 1 Grobklassifizierung r Methoden in der Informatik intro 2 Systemtheorie 1 Systeme 1 #342234 http://fmv.jku.at/fs1 WS 2006/2007 Johannes Kepler Universität Linz, Österreich Univ. Prof.

Mehr

Dieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird.

Dieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird. Thomas Studer Relationale Datenbanken: Von den theoretischen Grundlagen zu Anwendungen mit PostgreSQL Springer, 2016 ISBN 978-3-662-46570-7 Dieser Foliensatz darf frei verwendet werden unter der Bedingung,

Mehr

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Fortgeschrittene Netzwerk- und Graph-Algorithmen Fortgeschrittene Netzwerk- und Graph-Algorithmen Dr. Hanjo Täubig Lehrstuhl für Eziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Wintersemester 2007/08

Mehr

Übungen Softwaretechnik I

Übungen Softwaretechnik I Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Übungen Softwaretechnik I Übung 5: Objektorientierte Analyse Einführung Objektorientierung in der

Mehr

Einführung Low-Level-Netze High-Level-Netze Referenzen. Petrinetze. Benjamin Daeumlich 30.10.2006

Einführung Low-Level-Netze High-Level-Netze Referenzen. Petrinetze. Benjamin Daeumlich 30.10.2006 30.10.2006 Gliederung 1 2 3 4 . Geschichte Was sind? Petrinetz-Typen Geschichte Geschichte Was sind? Petrinetz-Typen 1962 eingeführt von Carl Adam Petri zuerst nur aber: oft zu einfach für Spezifikationszwecke

Mehr

Zeichnen von Graphen

Zeichnen von Graphen von Graphen Fabio Valdés Programmierpraktikum WS 2016/17 Lehrgebiet Datenbanksysteme für neue Anwendungen FernUniversität in Hagen Programmierpraktikum Zeichnen von Graphen 08.10.2016 1 / 28 Gliederung

Mehr

Modellierung verteilter Systeme Grundlagen der Programm und Systementwicklung

Modellierung verteilter Systeme Grundlagen der Programm und Systementwicklung Modellierung verteilter Systeme Grundlagen der Programm und Systementwicklung Wintersemester 2009/10 Prof. Dr. Dr. h.c. Manfred Broy Unter Mitarbeit von Dr. K. Spies, Dr. M. Spichkova, L. Heinemann, P.

Mehr

Software-Engineering

Software-Engineering FH Wedel Prof. Dr. Sebastian Iwanowski SWE43 Folie 1 Software-Engineering Sebastian Iwanowski FH Wedel Kapitel 4: Systemanalyse Teil 3: Der Systemanalysestandard UML FH Wedel Prof. Dr. Sebastian Iwanowski

Mehr

Einführung in die Informatik I (autip)

Einführung in die Informatik I (autip) Einführung in die Informatik I (autip) Dr. Stefan Lewandowski Fakultät 5: Informatik, Elektrotechnik und Informationstechnik Abteilung Formale Konzepte Universität Stuttgart 24. Oktober 2007 Was Sie bis

Mehr