Endlicher Automat (EA) ea Revision: 1.8 1 siehe auch Formale Grundlagen 3 Motivation: Automaten für die Modellierung, Spezifikation und Verifikation verwenden! Definition Ein Endlicher Automat A = ( S , I , Σ , T , F ) besteht aus • Menge von Zuständen S (normalerweise endlich) • Menge von Initialzuständen I ⊆ S • Eingabe-Alphabet Σ (normalerweise endlich) • Übergangsrelation T ⊆ S × Σ × S → s ′ gdw. ( s , a , s ′ ) ∈ T gdw. T ( s , a , s ′ ) “gilt” schreibe s a • Menge von Finalzuständen F ⊆ S Systemtheorie 1 – Formale Systeme 1 #342234 – WS 2006/2007 – Armin Biere – JKU Linz
Sprache eines EA ea Revision: 1.8 2 Definition Ein EA A akzeptiert ein Wort w ∈ Σ ∗ gdw. es s i und a i gibt mit a n − 1 a 1 a 2 a 3 a n → s 1 → s 2 → ... → s n − 1 → s n , s 0 wobei n ≥ 0 , s 0 ∈ I , s n ∈ F und w = a 1 ··· a n ( n = 0 ⇒ w = ε ). Definition Die Sprache L ( A ) von A ist die Menge der Wörter die er akzeptiert. • Benutze Automaten oder reguläre Sprachen zur Beschreibung von Ereignisströmen! • “Konformität” der Ereignisströme der Implementierung zu denen der Spezifikation! • Konformität kann präzisiert werden als Teilmengenbeziehung der Sprachen Systemtheorie 1 – Formale Systeme 1 #342234 – WS 2006/2007 – Armin Biere – JKU Linz
Produkt-Automat ea Revision: 1.8 3 Definition Der Produkt Automat A = A 1 × A 2 von zwei EA A 1 und A 2 mit gemeinsamen Eingabealphabet Σ 1 = Σ 2 hat folgende Komponenten: S = S 1 × S 2 I = I 1 × I 2 Σ = Σ 1 = Σ 2 F = F 1 × F 2 T (( s 1 , s 2 ) , a , ( s ′ 1 , s ′ T 1 ( s 1 , a , s ′ 1 ) und T 2 ( s 2 , a , s ′ gdw. 2 )) 2 ) Satz Seien A , A 1 , und A 2 wie oben, dann L ( A ) = L ( A 1 ) ∩ L ( A 2 ) Beispiel: Konstruktion eines Automaten Wörter mit Prefix ab und Suffix ba akzeptiert. a · b · 1 ∗ ∩ 1 ∗ · b · a , (als regulärer Ausdruck: wobei 1 für alle Buchstaben steht) Systemtheorie 1 – Formale Systeme 1 #342234 – WS 2006/2007 – Armin Biere – JKU Linz
Vollständigkeit und Determinismus ea Revision: 1.8 4 Definition Zu s ∈ S , a ∈ Σ bezeichne s a → die Menge der Nachfolger von s definiert als s a → = { s ′ ∈ S | T ( s , a , s ′ ) } Definition Ein EA ist vollständig gdw. | I | > 0 und | s a → | > 0 für alle s ∈ S und a ∈ Σ . Definition ... deterministisch gdw. | I | ≤ 1 und | s a → | ≤ 1 für alle s ∈ S und a ∈ Σ . Fakt ... deterministisch und vollständig gdw. | I | = 1 und | s a → | = 1 für alle s ∈ S , a ∈ Σ . Systemtheorie 1 – Formale Systeme 1 #342234 – WS 2006/2007 – Armin Biere – JKU Linz
Teilmengenkonstruktion ea Revision: 1.8 5 Definition Der Power-Automat A = P ( A 1 ) eines EA A 1 hat folgende Komponenten ( P = Potenzmenge) S = P ( S 1 ) I = { I 1 } F = { F ′ ⊆ S | F ′ ∩ F 1 � = / Σ = Σ 1 0 } S ′′ = { s ′′ | ∃ s ′ ∈ S ′ mit T ( s ′ , a , s ′′ ) } T ( S ′ , a , S ′′ ) gdw. Satz A , A 1 wie oben, dann L ( A ) = L ( A 1 ) und A ist deterministisch und vollständig. Beispiel: Spam-Filter basierend auf der White-List “abb”, “abba”, und “abacus”! (Regulärer Ausdruck: “abb” | “abba” | “abacus”) Systemtheorie 1 – Formale Systeme 1 #342234 – WS 2006/2007 – Armin Biere – JKU Linz
Komplement eines Automaten ea Revision: 1.8 6 Definition Der Komplementär-Automat A = K ( A 1 ) eines endlichen Automaten A 1 hat dieselben Komponenten wie A 1 , bis auf F = S \ F 1 . Satz Der Komplementär-Automat A = K ( A 1 ) eines deterministischen und vollständigen Automaten A 1 akzeptiert die komplementäre Sprache L ( A ) = L ( A 1 ) = Σ ∗ \ L ( A 1 ) . Beispiel: Spam-Filter basierend auf der Black-List “abb”, “abba”, und “abacus”! (Regulärer Ausdruck: “abb” | “abba” | “abacus” ) Systemtheorie 1 – Formale Systeme 1 #342234 – WS 2006/2007 – Armin Biere – JKU Linz
Konformität von Ereigniströmen ea Revision: 1.8 7 • Modellierung und Spezifikation mit Automaten: – Ereigniströme einer Implementierung modelliert durch EA A 1 – Partielle Spezifikation der Ereigniströme als EA A 2 • Konformitäts-Test: – L ( A 1 ) ⊆ L ( A 2 ) – gdw. L ( A 1 ) ∩ L ( A 2 ) = / 0 – gdw. A 1 × K ( P ( A 2 )) keinen erreichbaren Finalzustand hat ( s | c ) 2 � ∗ � Spezifikation S = ( cs | sc | ss ) ∗ , Implementierung I = • Beispiel: Systemtheorie 1 – Formale Systeme 1 #342234 – WS 2006/2007 – Armin Biere – JKU Linz
Weitere Beispiele zur Konformität ea Revision: 1.8 8 • Temporale Eigenschaften: ( 1 steht für ein beliebiges Zeichen) ( 1 · 1 · a ) ∗ – jeden dritten Schritt gilt a : ( a · a · a ) ∗ – genau jeden dritten Schritt gilt a : ( r ) ∗ · a – einem a (acknowledge) muss ein r (request) vorangehen: ( 1 ∗ · a ) ∗ · ( r ) ∗ · a – jedem a muss ein r vorangehen: • Verfeinerung: (am Beispiel Scheduling dreier Prozesse a , b und c ) ( abc | acb | bac | bca | cab | cba ) ∗ – abstrakter Round-Robin Scheduler: ( abc | acb | cab ) ∗ – Round-Robin Scheduler mit Vorrang a vor b : ( acb | cab ) ∗ – Round-Robin Scheduler mit Vorrang a vor b und c vor b : ( cab ) ∗ – deterministischer Round-Robin Scheduler der Implementierung: Systemtheorie 1 – Formale Systeme 1 #342234 – WS 2006/2007 – Armin Biere – JKU Linz
Konformität bei Aussagenlogischen Spezifikationen ea Revision: 1.8 9 • ähnliche Vorgehensweise: – geg. aussagenlogische Formel f über den booleschen Variablen V = { x 1 ,..., x n } – Expansion E ( f ) ⊆ 2 n ist die Menge der erfüllenden Belegungen von f gdw. ( a 1 ,..., a n ) ∈ E ( f ) f [ x 1 �→ a 1 ,..., x n �→ a n ] = 1 – z.B. gdw. f erfüllbar (engl. satisfiable) E ( f ) � = / 0 • Modellierung und Spezifikation: – f 1 charakterisiert die für die Implementierung möglichen Konfigurationen – f 2 beschreibt eine partielle Spezifikation der gültigen Konfigurationen • Konformitäts-Test: gdw. gdw. f 1 ⇒ f 2 E ( f 1 ) ⊆ E ( f 2 ) E ( f 1 ) ∩ E ( f 2 ) = / 0 (oder in der Praxis: ... gdw. f 1 ∧¬ f 2 unerfüllbar) Systemtheorie 1 – Formale Systeme 1 #342234 – WS 2006/2007 – Armin Biere – JKU Linz
Vom C-Programm zum EA durch Abstraktion ea Revision: 1.8 10 entry while (...) { lock (); ... lock() exit while (...) { if (...) { lock (); ... } else { unlock (); ... lock (); unlock() } ... } lock() unlock() ... lock() unlock(); } ( l · ( l | u · l ) ∗ · u ) ∗ Systemtheorie 1 – Formale Systeme 1 #342234 – WS 2006/2007 – Armin Biere – JKU Linz
Probleme bei Abstraktion ea Revision: 1.8 11 assert (i < n); lock (); do { ... i++; if (i >= n) unlock (); ... } while (i < n); 1 ∗ · l · u ∗ l · ( ε | u ) ∗ verletzt partielle Spezifikation (“ ... ” führt weder zu einem lock noch unlock und lässt i und n unberührt) Systemtheorie 1 – Formale Systeme 1 #342234 – WS 2006/2007 – Armin Biere – JKU Linz
Predicate Abstraction ea Revision: 1.8 12 verfeinerte Abstraktion zu EA durch Einführung einer Prädikats-Variable: b == ( i < n ) assert (i < n); assert (b); lock (); lock (); do { do { ... ... if (b) b = *; i++; abstrahiert zu if (i >= n) if (!b) unlock (); unlock (); ... ... } while (i < n); } while (b); l · ε ∗ · u 1 ∗ · l · u ∗ erfüllt partielle Spezifikation (“ ... ” führt weder zu einem lock noch unlock und lässt i und n unberührt) Systemtheorie 1 – Formale Systeme 1 #342234 – WS 2006/2007 – Armin Biere – JKU Linz
Recommend
More recommend