slides/notes.txt
author Eugen Sawin <sawine@me73.com>
Wed, 27 Jul 2011 11:24:57 +0200
changeset 76 33e7afb3f402
parent 75 06075f73ff12
permissions -rw-r--r--
Final notes.
sawine@75
     1
Guten Morgen! Mein Name ist Eugen Sawin und ich werde den einführenden Vortrag halten zum Seminar Automatenkonstruktionen im Model Checking.
sawine@66
     2
sawine@75
     3
Meine Präsentation soll einen Überblick über die algorithmische Verifikation reaktiver Systeme basierend auf dem automaten-theoretischen Ansatz des Model Checkings geben.
sawine@67
     4
sawine@67
     5
==> 2
sawine@67
     6
sawine@75
     7
Modell M erfüllt PHI.
sawine@67
     8
Das ist der Kern unserer Bemühungen. 
sawine@67
     9
Doch was bedeutet das?
sawine@75
    10
Wir übersetzen das in die Problemstellung der Verifikation.
sawine@67
    11
sawine@67
    12
==> 3
sawine@67
    13
sawine@72
    14
Gegeben sei ein Programm und dessen Spezifikation, das Problem lautet:
sawine@68
    15
erfüllt jeder Pfad des Programms die Spezifikation?
sawine@67
    16
sawine@67
    17
Bevor wir an die Tat schreiten um das Problem zu lösen, 
sawine@67
    18
möchte ich eine andere Frage beantworten.
sawine@67
    19
sawine@67
    20
Wieso das Ganze? Was ist der praktische Nutzen der Verifikation?
sawine@67
    21
sawine@67
    22
==> 4
sawine@67
    23
sawine@67
    24
Hard- und Softwaresysteme haben alle Bereiche der Industrie und damit auch unseren Alltag durchdrungen.
sawine@67
    25
Sie bilden die Infrastruktur unserer Kommunikation, bieten Sicherheit und retten sogar Leben.
sawine@67
    26
Und sie werden immer komplexer.
sawine@67
    27
Die Industrie investiert viel Zeit und Geld in die Verifikation sicherheitskritischer Systeme und der Kernkomponenten anderer Systeme.
sawine@67
    28
Die automatisierte Verifikation hat bereits in der Chip-Verifikation ihre praktische Anwendbarkeit gezeigt und ist in der Softwareindustrie stark gefragt.
sawine@67
    29
sawine@75
    30
==> 4(2)
sawine@75
    31
sawine@76
    32
Hier sind einige promitente Vertreter der Industrie, die Verifikationsmethoden einsetzten.
sawine@75
    33
sawine@67
    34
Also fangen wir an.
sawine@67
    35
sawine@67
    36
==> 5
sawine@67
    37
sawine@67
    38
Wenn ich sage: "Es ist dunkel." ist es nicht eindeutig, was ich damit ausdrücken möchte.
sawine@67
    39
sawine@67
    40
Ich könnte damit meinen "Es ist immer dunkel.", doch das spricht gegen unsere Intuition.
sawine@68
    41
Wir denken als Erstes eher an "Es ist im Moment dunkel.", was auch stimmt, wenn ich damit mich damit auf die Folien beziehe (oder das Wetter draußen).
sawine@67
    42
sawine@67
    43
Wenn wir nach draußen schauen, können wir aus Erfahrung behaupten, dass es "notwendigerweise irgendwann dunkel wird."
sawine@67
    44
sawine@67
    45
Unsere Sprache erlaubt es uns auch kausale Zusammenhänge zu bilden, wie z.B. "Es ist dunkel, bis Jemand das Licht an macht."
sawine@67
    46
sawine@67
    47
Wir sehen, dass die natürliche Sprache nicht eindeutig ist und somit zur formalen Beschreibung ungeeignet.
sawine@67
    48
Wie können wir unsere Sprache zähmen, ohne die Ausdruckskraft zu verlieren.
sawine@67
    49
Nun, als Ersten machen wir das Licht wieder an!
sawine@67
    50
sawine@67
    51
==> 6
sawine@67
    52
sawine@67
    53
Nehmen wir den letzten Satz in einer allgemeineren Form als Beispiel.
sawine@67
    54
Dieser Satz sollte allgemeingültig sein. 
sawine@67
    55
Wie können wir die Aussage dieses Satzes formal festhalten?
sawine@67
    56
Wir bedienen uns der Aussagenlogik und erweitern diese um eine weitere Verknüpfung.
sawine@67
    57
sawine@67
    58
==> 6(2)
sawine@67
    59
sawine@67
    60
Dabei sind p0 und p1 Elementaraussagen, sog. Atome, die entsprechend für "Es is dunkel" und "Es gibt licht" stehen.
sawine@67
    61
Die neue Verknüpfung nennen wir trivialerweise "until" und notieren sie mit dem kalligraphischen U.
sawine@76
    62
Halten wir die Syntax formal fest.
sawine@67
    63
sawine@67
    64
==> 7
sawine@67
    65
sawine@67
    66
Wir definieren die Syntax der linearen temporalen Logik mit Hilfe dieser Produktionen in Backus-Naur-Form.
sawine@67
    67
Somit ist eine LTL-Formel entweder ein aussagenlogisches Atom, eine negierte Formel oder eine Disjunktion zweier Formeln. 
sawine@72
    68
Das kennen wir bereits aus der Aussagenlogik.
sawine@67
    69
Die Erweiterung sind das kalligraphische X, welches für "Next" steht und das "Until" aus dem Beispiel.
sawine@67
    70
Diese Syntaxdefinition bildet das Fundament für weitere abgeleitete Verknüpfungen.
sawine@67
    71
sawine@75
    72
==> 7(2)
sawine@75
    73
sawine@75
    74
Schauen wir diese kurz an.
sawine@75
    75
Eine klassische Ableitung für "Wahr" bietet sich durch p oder nicht p an.
sawine@75
    76
Andere Ableitungen folgen analog.
sawine@75
    77
Interessant sind hierbei wieder die modalen Verknüpfungen, Diamand und Box.
sawine@75
    78
Diamant steht für eine Eventualität und Box steht für eine Notwendigkeit.
sawine@75
    79
sawine@67
    80
==> 8
sawine@67
    81
sawine@67
    82
Wir interpretieren LTL-Formeln über unendliche Sequenzen von Aussagen. 
sawine@67
    83
Die Sequenz entspricht der zeitlichen Abfolge von Ereignissen in einem vorwärts gerichteteten diskreten Zeitverlauf.
sawine@67
    84
Diese Interpretation heißt die Kripke-Semantik.
sawine@67
    85
Das Kripke-Modell der LTL-Semantik besteht aus einer abzählbaren Menge von Zuständen, verknüpft duch die Erreichbarkeitsrelation und der Bewertungsfunktion V.
sawine@67
    86
Da wir nur lineare Abfolgen betrachten, fällt die Erreichbarkeitsrelation einfach aus.
sawine@67
    87
Von einem beliebigen Zustand ist jeweils nur dessen Nachfolger erreichbar.
sawine@67
    88
Die Bewertungsfunktion liefert uns die Menge aller gültigen Atome für einen bestimmten Zustand.
sawine@67
    89
Intuitiv sagt man, ein Atom p ist wahr zum Zeitpunkt i gdw. p in der Menge V(i) ist.
sawine@67
    90
sawine@67
    91
==> 9
sawine@67
    92
sawine@67
    93
Hier ist eine Veranschaulichung eines Beispielmodells.
sawine@67
    94
Man sieht die Zustände s0 bis si und den Zeitverlauf durch die Relation R.
sawine@67
    95
Für jeden Zustand ist die Rückgabe der Bewertungsfunktion als Menge positiver Atome abgebildet.
sawine@68
    96
Wie man sieht, bietet LTL keine gute Grundlage für Science Fiction, weder Zeitreisen noch Parallelwelten sind möglich. 
sawine@68
    97
Luminous Fennell wird in der nächsten Präsentation ein alternatives Modell anbieten, das in dieser Hinsicht etwas interessanter ist und algorithmisch effizienter.
sawine@67
    98
sawine@67
    99
==> 10
sawine@67
   100
sawine@67
   101
Die Erfüllbarkeit einer Formel zu einem Zeitpunkt i im Modell M ist folgendermaßen definiert:
sawine@67
   102
- ein Atom p ist erfüllbar gdw. und p in der Menge V(i) ist
sawine@67
   103
- eine negierte Formel PHI ist erfüllbar gdw. PHI nicht erfüllbar ist
sawine@67
   104
- eine Disjunktion von PHI und PSI ist erfüllbar gdw. PHI oder PSI erfüllbar ist
sawine@67
   105
- Next PHI ist erfüllbar gdw. PHI im darauffolgenden Zeitpunkt erfüllbar ist
sawine@67
   106
- PHI Until PSI ist erfüllbar gdw. es einen Zeitpunkt k gibt, ab dem PSI erfüllbar ist und für alle Zeitpunkte vor k PHI erfüllbar ist.
sawine@67
   107
sawine@67
   108
Mit Hilfe der linearen temporalen Logik lassen sich Programmeigenschaften und derren zeitliche Abhängigkeiten genau beschreiben.
sawine@67
   109
Als nächstes werden wir uns den Automaten widmen, die auf unendlichen Eingaben operieren.
sawine@67
   110
sawine@67
   111
==> 11
sawine@67
   112
sawine@67
   113
Wieso sind unsere Eingaben überhaupt unendlich?
sawine@67
   114
Im Gegensatz zu terminierenden Programmen sind reaktive Systeme fortlaufende Prozesse.
sawine@67
   115
Ein mal initiiert, verbleiben reaktive Systeme in einem aktiven Zustand und reagieren auf nebenläufige Eingaben.
sawine@67
   116
Theoretisch betrachtet, arbeiten solche Systeme somit auf unendlichen Eingabesequenzen.
sawine@67
   117
sawine@67
   118
==> 12
sawine@67
   119
sawine@68
   120
Hier ist ein Beispielautomat, der auf unendlichen Eingaben arbeitet.
sawine@68
   121
Sieht jemand auf Anhieb welche Sprache dieser Automat akzeptiert?
sawine@68
   122
w1 ist eine Eingabe, der Überstrich soll eine unendliche periodische Wiederholung der Sequenz darstellen.
sawine@68
   123
Bei dieser Eingabe werden die folgenden Zustände durchlaufen:
sawine@68
   124
- wir starten in q0, lesen zwei b, somit bleiben wir für beide Eingaben in q0
sawine@68
   125
- als nächstes lesen wir ein a, was uns in Zustand q1 versetzt
sawine@68
   126
- danach folgt ein weiteres a, wir bleiben also in q1
sawine@68
   127
- nun wiederholt sich die Sequenz, wir lesen zwei b, passieren dabei den akzeptierenden Zustand q2 und landen in q0, wo das Ganze von vorne beginnt
sawine@68
   128
 
sawine@68
   129
w2 bietet ein ähnliches Beispiel, jedoch pendeln wir diesmal zwischen q1 und q2 nach einer kurzen Phase.
sawine@67
   130
sawine@68
   131
Betrachtet man die grün hervorgehobenen Elemente, sieht man, dass der Zustand q2 gd. unendlich mal passiert wird, wenn die Sequenz ab unendlich mal in der Eingabe vorkommt.
sawine@67
   132
sawine@68
   133
==> 13
sawine@67
   134
sawine@68
   135
Nun wollen wir das Komplement des Automaten bilden.
sawine@68
   136
Naiverweise gehe ich dabei vor, wie beim endlichen Automaten und kehre einfach die Akzeptanzeigenschaften der Zustände um.
sawine@68
   137
Man sieht sofort, dass dies nicht der korrekte Komplementautomat ist, denn er akzeptiert immer noch Eingaben mit unendlichen Sequenzen von ab.
sawine@67
   138
sawine@68
   139
Abbildung (b) zeigt die korrekte Version. In Zustand q0 werden beliebige, endliche Sequenzen von as und bs gelesen. Akzeptiert wird ein Wort nur dann, wenn es ab einem bestimmten Zeitpunkt nur noch as oder bs enthält und das natürlich unendlich oft.
sawine@68
   140
Wir sehen, dass der Komplement-Automat im Gegensatz zu dem Automaten nicht deterministisch ist.
sawine@68
   141
Die Konstruktion dieser sog. Co-Büchi-Automaten wird Stephanie Embgen im Detail erörtern, deswegen werde ich auch nicht weiter darauf eingehen.
sawine@67
   142
sawine@68
   143
==> 14
sawine@67
   144
sawine@68
   145
Halten wir das Ganze formal fest.
sawine@68
   146
Wenn ich von Automaten spreche, meine ich im allgemeinen nicht-deterministische Büchi-Automaten.
sawine@75
   147
Diese bestehen aus: 
sawine@75
   148
- einem endlichen Alphabet, in unserem Beispiel war das die Menge {a,b}.
sawine@68
   149
- einer endlichen Menge von Zuständen
sawine@68
   150
- einer Menge von Startzuständen, in unserem Beispiel war das lediglich der Zustand q0
sawine@68
   151
- der Übergangsrelation Delta
sawine@68
   152
- und einer endlichen Menge an akzeptierenden Zuständen, im Beispiel war das der Zustand q2, bzw q1 und q2 bei dem Co-Automat
sawine@68
   153
sawine@68
   154
==> 15
sawine@68
   155
sawine@68
   156
Ein Pfad eines Automaten auf einem Wort w, ist wie wir schon gesehen haben die unendliche Sequenz der dabei durchlaufenen Zustände.
sawine@68
   157
Der erste Zustand muss ein Element der Startzustände sein.
sawine@68
   158
Um bestimmte Elemente der Sequenz zu referenzieren, betrachten wir die Sequenz als Funktion RHO, wobei RHO(i) uns den durchlaufenen Zustand zum Zeitpunkt i zurückgibt.
sawine@68
   159
sawine@68
   160
==> 16
sawine@68
   161
sawine@68
   162
Zur Definition der Akzeptanz bedienen wir uns der Funktion inf, die für einen gegebenen Pfad RHO die Menge an Zuständen zurückgibt, die unendlich mal in RHO durchlaufen werden.
sawine@68
   163
sawine@68
   164
Basierend darauf sagen wir:
sawine@68
   165
ein Pfad RHO eines Automaten A ist akzeptierend gdw. ein akzeptierender Zustand unendlich oft in RHO vorkommt.
sawine@68
   166
Und dann können wir sagen: ein Automat A akzeptiert ein Wort w gdw. es einen Pfad von A auf w gibt, der akzeptierend ist.
sawine@68
   167
sawine@68
   168
==> 17
sawine@68
   169
sawine@68
   170
Die akzeptierte Sprache eines Automaten ist einfach die Menge aller akzeptierten Eingaben.
sawine@68
   171
sawine@68
   172
==> 18
sawine@68
   173
sawine@68
   174
Es existiert eine verallgemeinerte Form des Büchi-Automaten, welche bei der Automatenkonstruktion Vorteile bietet.
sawine@68
   175
Der Unterschied liegt in der Akzeptanzbedingung.
sawine@68
   176
Der verallgemeinerte Büchi-Automat definiert diese über eine endliche Menge von Mengen von akzeptierenden Zuständen.
sawine@70
   177
Ein Pfad RHO eines solchen Automaten ist akzeptierend gdw. es einen Zustand aus jeder Menge Fi aus dieser Mengenfamilie gibt, der unendlich oft in RHO vorkommt.
sawine@68
   178
Wenn man sich die Definition anschaut, wird es offensichtlich, dass die akzeptierte Sprache eines verallgemeinerten Automaten equivalent ist zu der Schnittmenge der akzeptierten Sprachen von k Büchi-Automaten. 
sawine@68
   179
sawine@68
   180
==> 19
sawine@68
   181
sawine@72
   182
Wir kennen nun die Sprache zur Spezifikation von Systemeigenschaften und wir haben Automaten kennengelernt, die auf unendlichen Eingaben arbeiten. 
sawine@75
   183
Für die automaten-theoretische Methode müssen einen Automaten konstruieren anhand einer Systemspezifikation in der linearen temporalen Logik.
sawine@75
   184
In meiner Arbeit geschieht dies über den sog. Fischer-Ladner-Abschluss.
sawine@75
   185
In der Arbeit von Rob Gerth wird eine on-the-fly Konstruktion der Produktautomaten vorgestellt.
sawine@75
   186
Darauf wird Christian Schilling heute Nachmittag genauer eingehen.
sawine@75
   187
sawine@75
   188
==> 20
sawine@75
   189
sawine@76
   190
Die Konstruktion des Systemautomaten ist eindeutig einfacher.
sawine@76
   191
Sei das Programm in dieser Form gegeben, mit einer Menger von Zuständen, einer Startzustand, einer Übergangsrelation und der Bewertungsfunktion, welche für jeden Zustand die Menge an gültigen Atomen liefert.
sawine@76
   192
sawine@76
   193
Eine Berechnung des Programms ergibt einen Pfad, der aus der Sequenz der Mengen besteht, die die Bewertungsfunktionen für den jeweiligen Zustand zurückgibt.
sawine@76
   194
sawine@76
   195
Daraus konstruieren wir den Systemautomaten.
sawine@76
   196
Zu beachten ist, dass die Menge der akzeptierenden Zustände gleich der Menge der Zustände ist, somit ist jeder Pfad des Automaten akzeptierend.
sawine@76
   197
sawine@75
   198
==> 21
sawine@75
   199
sawine@76
   200
Daraus folgt direkt folgender Satz: die akzeptierte Sprache eines Systemautomaten ist gleich der Menge aller Pfade des Automaten.
sawine@76
   201
sawine@75
   202
==> 22
sawine@75
   203
sawine@72
   204
Erinnern wir uns and die Problembeschreibung vom Anfang.
sawine@75
   205
Übersetzt in die Automatentheorie bedeutet das:
sawine@75
   206
Ein System entspricht der Spezifikation, wenn die akzeptierte Sprache des Systemautomaten in der akzeptierten Sprache des Formelautomaten enthalten ist.
sawine@75
   207
Eine mengentheoretische Umformung gibt uns folgende Form:
sawine@75
   208
Ein System entspricht der Spezifikation, wenn der Schnitt der akzeptierten Sprache des Systemautomaten mit der akzeptierten Sprache des Automaten für die negierte Formel gleich der leeren Menge ist.
sawine@68
   209
sawine@76
   210
Die graphentheoretische Methode erlaubt uns nun die Produktautomaten als Graphen zu interpretieren und das Problem durch die Bildung der Zusammenhangskomponente zu lösen.
sawine@76
   211
Die effiziente on-the-fly Methode sucht stattdessen iterativ nach Zyklen.
sawine@68
   212
sawine@76
   213
Wir wissen wie man den Systemautomaten konstruiert und dessen akzeptierte Sprache bestimmt.
sawine@76
   214
Wir wissen wie man Spezifikationen mit Hilfe der linearen temporalen Logik beschreibt.
sawine@76
   215
In den folgenden Vorträgen werden wir u.a. erfahren, wie man den Formelautomaten bildet und effiziente Methoden kennenlernen, wie man die sog. Zustandsexplosion vermeidet.
sawine@68
   216
sawine@76
   217
==> 23
sawine@76
   218
sawine@76
   219
Zum Schluss habe eine kleine Auswahl an Arbeiten vorbereitet.
sawine@76
   220
Meine Arbeit basiert hauptsächlich auf Madhavan Mukund's Veröffentlichung, wobei ich einige Definitionen von Vardi's Paper bevorzugt habe.
sawine@76
   221
Wie bereits erwähnt beschreibt die Arbeit von Rob Gerth und den anderen die on-the-fly Methode.
sawine@76
   222
Das Handbook of Modal Logik kann ich allen empfehlen die sich mehr mit modalen Logiken beschäftigen wollen.
sawine@76
   223
sawine@76
   224
==> 24
sawine@76
   225
sawine@76
   226
Und alle, die eine sehr motivierende, kurze und pregnante Einführung in das präsentierte Thema lesen möchten kann ich nur Vardi's Automated Verification: Graphs, Logic and Automata empfehlen.
sawine@76
   227
sawine@76
   228
Ich hoffe mein Vortrag hat einen Überblick über die Thematik geboten und freue mich auf die weiteren Vorträge, die von mir hinterlassene Lücken füllen oder ganz andere Aspekte einbringen.
sawine@76
   229
sawine@76
   230
Vielen Dank!
sawine@76
   231
sawine@76
   232
sawine@76
   233