29.01.2014 Aufrufe

1. Teil: Formale Sprachen und Automatentheorie - Faculty of ...

1. Teil: Formale Sprachen und Automatentheorie - Faculty of ...

1. Teil: Formale Sprachen und Automatentheorie - Faculty of ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

wobei<br />

δ(〈q 1 ,q 2 〉,a) = { def<br />

〈p 1 ,p 2 〉 : p 1 ∈ δ 1 (q 1 ,a), p 2 ∈ δ 2 (q 2 ,a) } .<br />

Für den Nachweis der Korrektheit ist zu zeigen, dass<br />

L(M 1 ⊗ M 2 )=L(M 1 ) ∩ L(M 2 ).<br />

Diese Aussage folgt aus der Beobachtung, dass die akzeptierenden Läufe im Produktautomaten<br />

M 1 ⊗ M 2 die Form<br />

〈q 0,1 ,q 0,2 〉〈q 1,1 ,q 1,2 〉 ...〈q n,1 ,q n,2 〉<br />

haben, wobei q 0,1 q 1,1 ...q n,1 ein akzeptierender Lauf in M 1 <strong>und</strong> q 0,2 q 1,2 ...q n,2 ein akzeptierender<br />

Lauf in M 2 sind. Daher wird jedes Wort in L(M 1 ⊗ M 2 ) auch von M 1 <strong>und</strong> M 2 akzeptiert.<br />

Liegen umgekehrt akzeptierende Läufe q 0,1 q 1,1 ...q n,1 <strong>und</strong> q 0,2 q 1,2 ...q n,2 für ein Wort<br />

w in M 1 bzw. M 2 vor, so können diese zu einem akzeptierenden Lauf 〈q 0,1 ,q 0,2 〉〈q 1,1 ,q 1,2 〉 ...<br />

〈q n,1 ,q n,2 〉 im Produktautomaten zusammengesetzt werden. Also ist der Schnitt von L(M 1 )<br />

<strong>und</strong> L(M 2 ) in der akzeptierten Sprache von M 1 ⊗ M 2 enthalten.<br />

Wird die Produktkonstruktion für zwei DFA M 1 , M 2 durchgeführt, dann entsteht ein DFA,<br />

dessen Übergangsfunktion durch die Formel<br />

{<br />

δ(〈q 1 ,q 2 〉,a) =<br />

def 〈δ1 (q 1 ,a),δ 2 (q 2 ,a)〉 : falls δ 1 (q 1 ,a) ≠ ⊥ <strong>und</strong> δ 2 (q 2 ,a) ≠ ⊥<br />

⊥ : sonst.<br />

gegeben ist. Der Produktautomat von DFA ist also wieder ein DFA.<br />

Beispiel 2.20 (Durchschnitt, Produkt-DFA). Als Beispiel betrachten wir die zwei DFA M 1<br />

<strong>und</strong> M 2 links in Abbildung 14, welche die <strong>Sprachen</strong><br />

L(M 1 ) = { 1 n 00 m : m,n 0 }<br />

L(M 2 ) = { 0x 1 0x 2 0...0x k 0 : k 0,x 1 ,...,x k ∈ {0,1} }<br />

akzeptieren. Der Produkt-DFA besteht aus vier Zuständen. Diese sind Paare bestehend aus je<br />

einem Zustand von M 1 <strong>und</strong> M 2 . Der Anfangszustand ist 〈q 0 ,p 0 〉. Der Endzustand ist 〈q 1 ,p 1 〉.<br />

Man überzeugt sich leicht davon, dass die akzeptierte Sprache des Produkt-DFA genau aus den<br />

Wörtern 0 2k+1 , k ∈ IN, besteht. Tatsächlich setzt sich die Durchschnittssprache L(M 1 )∩L(M 2 )<br />

aus genau denjenigen Wörtern w zusammen, die zugleich die Gestalt 1 n 00 m <strong>und</strong> 0x 1 0...0x k 0,<br />

x i ∈ {0,1}, haben. Also n = 0, x 1 = ...= x k = 0 <strong>und</strong> m = 2k, <strong>und</strong> somit 1 n 00 m = 0 2k+1 .<br />

Komplement. Für den Komplementoperator gehen wir von einem DFA M =(Q,Σ,δ,q 0 ,F)<br />

mit einer totalen Übergangsfunktion aus. Einen DFA M für die Komplementsprache L(M) =<br />

Σ ∗ \L(M) erhält man durch Komplementierung der Endzustandsmenge von M:<br />

M<br />

= def<br />

(Q,Σ,δ,q 0 ,Q \ F)<br />

Da M total ist, besitzt jedes Wort w = a 1 a 2 ...a n ∈ Σ ∗ einen “vollständigen” Lauf q 0 q 1 ...q n<br />

in M. Dies ist zugleich der Lauf für w in M. Da die Endzustandsmengen in M <strong>und</strong> M komplementär<br />

sind, ist q 0 q 1 ...q n genau dann in M akzeptierend, wenn q 0 q 1 ...q n in M verwerfend<br />

ist:<br />

36

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!