# Übungsblatt 2 > Wenzel Schwan (1125033), Paul Kneidl (1125219), David Schirrmeister (1125746), Michelle Klein (1126422) ## Übung 1 Betrachten Sie den Automaten A aus Abbildung 1: ![image_766.png](image_766.png) ### (a) Wie lautet die formale Tupeldarstellung des Automaten? - $A=(Σ,Q,q_s,Q_a, δ)$ - $Σ = \{x,y\}$ - $Q = \{a,b,c,d\}$ - $q_s = \{a\}$ - $Q_a = \{d\}$ - $δ:$ - | Zustand | δ(.,x) | δ(.,y) | |---------|--------|--------| | a | b | | | b | c | b | | c | d | b | | d | | b | ### (b) Beschreiben Sie wie der Automat die Eingabe $xyyxyx$ verarbeitet. 1. Start in Zustand $a$ - x → $δ(a,x)=b$ 2. Zustand $b$ - y → $ δ(b,y)=b$ 3. Zustand $b$ - y → $ δ(b,y)=b$ 4. Zustand $b$ - x → $ δ(b,x)=c$ 5. Zustand $c$ - y → $ δ(c,y)=b$ 6. Zustand $b$ - x → $ δ(b,x)=c$ → Endzustand: $c$, da der akzeptierende Zustand $d$ ist, wird die Eingabe nicht akzeptiert. ### (c) Nennen Sie zwei verschiedene kürzeste Wörter, die von A akzeptiert werden und die jeweils jeden Übergang (Kante) aus Abbildung 1 mindestens einmal benutzen. $w_1 ∈ Σ^* := xyxxyxyxx$ $w_2 ∈ Σ^* := xxyxxyyxx$ ### (d) Beschreiben Sie die von A akzeptierte Sprache sowohl informal (in Worten) als auch formal (als Teilmenge von $\{x,y\}^*$). #### Informal: Die von A akzeptierte Sprache muss mit x beginnen und mit xx aufhören. Dazwischen dürfen beliebig viele x und y in beliebiger Reihenfolge sein. #### Formal: $L_A:= \{w \space | \space w = x*a*xx, a ∈ \{x,y\}^*\}$ ### (e) Automat $A$ ist unvollständig (die Übergangsfunktion ist partiell). Geben Sie einen vollständigen Automaten $A′$ mit $L(A′) = L(A)$ in Graphdarstellung an. ```plantuml @startuml scale 0.5 left to right direction skinparam dpi 150 skinparam state { BackgroundColor #96cf95 BorderColor black FontName Helvetica RoundCorner 30 Shadowing false LineThickness 0 } state a state d##[bold] [*] --> a a --> b : x a --> e : y b --> b : y b --> c : x c --> b : y c --> d : x d --> d : x d --> b : y e --> e : x,y @enduml ``` ## Übung 2 Betrachten Sie die Sprache $ L = \{s ∈ Σ^* \space | \space s \space hat \space das\space Präfix\space 42\space und \space endet \space nicht \space auf \space 23 \}$ über dem Alphabet $ Σ=\{0,1,...,9\}$. ### (a) Beschreiben Sie einen vollständigen endlichen Automaten in Graphdarstellung der die Sprache L akzeptiert. > Annahme, dass das Wort `423` von L nicht akzeptiert wird, da `42` der Präfix ist und das Wort gleichzeitig auf `23` endet. ```plantuml @startuml scale 0.5 left to right direction skinparam dpi 150 skinparam state { BackgroundColor #96cf95 BorderColor black FontName Helvetica RoundCorner 30 Shadowing false LineThickness 0 } state c##[bold] state d##[bold] [*] --> a a -up-> f : {0,...,9}\{4} a --> b : {4} b -up-> f : {0,...,9}\{2} f --> f : {0,...,9} b --> d: {2} c --> c : {0,...,9}\{2} c --> d : {2} d --> c : {0,...,9}\{2,3} d --> d : {2} d --> e : {3} e --> c : {0,...,9}\{2} e --> d : {2} @enduml ``` ### (b) Beschreiben Sie einen vollständigen endlichen Automaten in Graphdarstellung der genau die nicht-leeren Zeichenketten über dem Alphabet $Σ$ akzeptiert, die keine Wörter der Sprache L sind. ```plantuml @startuml scale 0.5 left to right direction skinparam dpi 150 skinparam state { BackgroundColor #96cf95 BorderColor black FontName Helvetica RoundCorner 30 Shadowing false LineThickness 0 } state f##[bold] state b##[bold] state e##[bold] [*] --> a a -up-> f : {0,...,9}\{4} a --> b : {4} b -up-> f : {0,...,9}\{2} f --> f : {0,...,9} b --> d: {2} c --> c : {0,...,9}\{2} c --> d : {2} d --> c : {0,...,9}\{2,3} d --> d : {2} d --> e : {3} e --> c : {0,...,9}\{2} e --> d : {2} @enduml ``` ## Übung 3 Beschreiben Sie für jede der nachfolgend definierten Sprachen jeweils einen endlichen deterministischen Automaten, der die Sprache akzeptiert. Geben Sie die Automaten dabei sowohl in der formalen Tupel- als auch in der Graphdarstellung an. Begründen1 Sie jeweils die Korrektheit Ihrer Konstruktion. ### (a) Die Sprache $L1$ aller geraden natürlichen Zahlen in Dezimaldarstellung ohne führende Null (d.h. $\{0, 2, 8, 42 \} ⊆ L1$, aber $\{02, 23 \} ∩ L1 = ∅$). #### Tupeldarstellung (a) - $A=(Σ,Q,q_s,Q_a, δ)$ - $Σ = \{0,...,9\}$ - $Q = \{a,b,c,d,e\}$ - $q_s = \{a\}$ - $Q_a = \{b,d\}$ - $δ:$ | Zustand | δ(.,0) | δ(.,1) | δ(.,2) | δ(.,3) | δ(.,4) | δ(.,5) | δ(.,6) | δ(.,7) | δ(.,8) | δ(.,9) | |---------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------| | a | b | e | d | e | d | e | d | e | d | e | | **b** | c | c | c | c | c | c | c | c | c | c | | c | c | c | c | c | c | c | c | c | c | c | | **d** | d | e | d | e | d | e | d | e | d | e | | e | d | e | d | e | d | e | d | e | d | e | #### Graphdarstellung (a) ```plantuml @startuml scale 0.5 left to right direction skinparam dpi 150 skinparam state { BackgroundColor #96cf95 BorderColor black FontName Helvetica RoundCorner 30 Shadowing false LineThickness 0 } state b##[bold] state d##[bold] [*] --> a a --> b : {0} b -up-> c : {0,...,9} b --> c : {0,...,9} a --> d : {2,4,6,8} a --> e : {1,3,5,7,9} d --> e : {1,3,5,7,9} d --> d : {0,2,4,6,8} e --> d : {0,2,4,6,8} e --> e : {1,3,5,7,9} @enduml ``` #### Begründung (a) - Startzustand a: nur 0 wird in b geschickt (direkt akzeptierend) - Andere Ziffern (2, 4, 6, 8) leiten in d, auch akzeptierend, aber nur wenn keine führenden Nullen davor kamen - Zustand e „hält“ ungerade Endziffern (nicht akzeptierend) - Folgeziffern verhalten sich konsistent ### (b) Die Sprache $L2 = \{ w ∈ \{ 0, 7 \}^* \space|\space w\space enthält\space 007\space genau\space einmal\space als\space Teilwort \}$. #### Tupeldarstellung (b) - $A=(Σ,Q,q_s,Q_a, δ)$ - $Σ = \{0,7\}$ - $Q = \{a,b,c,d,e,f,g\}$ - $q_s = \{a\}$ - $Q_a = \{d,e,f\}$ - $δ:$ - | Zustand | δ(.,0) | δ(.,7) | |---------|--------|--------| | a | b | a | | b | c | a | | c | d | c | | **d** | e | d | | **e** | f | d | | **f** | g | f | | g | g | g | #### Graphdarstellung (b) ```plantuml @startuml scale 0.5 skinparam dpi 150 skinparam state { BackgroundColor #96cf95 BorderColor black FontName Helvetica RoundCorner 30 Shadowing false LineThickness 0 } state d##[bold] state e##[bold] state f##[bold] [*] -right-> a a -right-> b : {0} b -right-> c : {0} c --> d : {7} d -right-> e : {0} e -right-> f : {0} f --> g : {7} b --> a : {7} a --> a : {7} c --> c : {0} d --> d : {7} e --> d : {7} f --> f : {0} g --> g : {0,7} @enduml ``` #### Begründung (b) - Einmaliges Vorkommen von 007 wird erkannt und in d akzeptiert - Zweites Vorkommen leitet in g, das nicht akzeptierend ist - Rücksprünge für unpassende Sequenzen sind korrekt konstruiert ### (c) Die Sprache $L3 = \{ w ∈ \{ a, b \}^* \space| \space \#_a(w) ≡ \#_b(w) mod 3 \}$. #### Tupeldarstellung (c) - $A=(Σ,Q,q_s,Q_a, δ)$ - $Σ=\{a,b\}$ - $Q=\{q0,q1,q2\}$ - $q_s=\{q0\}$ - $Q_a=\{q0\}$ - $ δ:$ - $δ(q,a)=(q+1) \space mod \space 3,δ(q,b)=(q−1) \space mod \space 3$ - | Zustand | δ(.,a) | δ(.,b) | |---------|--------|--------| | q0 | q1 | q2 | | q1 | q2 | q0 | | q2 | q0 | q1 | #### Graphdarstellung (c) ```plantuml @startuml scale 0.5 left to right direction skinparam dpi 150 skinparam state { BackgroundColor #96cf95 BorderColor black FontName Helvetica RoundCorner 30 Shadowing false LineThickness 0 } state q0##[bold] [*] -right-> q0 q0 -right-> q1 : a q0 --> q2 : b q1 -right-> q2: a q1 --> q0 : b q2 --> q0 : a q2 --> q1 : b @enduml ``` #### Begründung (c) - q0 wird genau dann erreicht, wenn $\#_a ≡ \#_b mod 3$ - Übergänge sind konsistent ## Übung 4 Betrachten Sie die Sprache $L = \{ w ∈ \{ 0, 1 \}^* \space|\space \#_1(w) = 3 \}$. Beschreiben Sie einen Automaten in der Graphdarstellung, der die Sprache $L$ akzeptiert, und beweisen Sie die Korrektheit Ihrer Konstruktion. ```plantuml @startuml scale 0.5 left to right direction skinparam dpi 150 skinparam state { BackgroundColor #96cf95 BorderColor black FontName Helvetica RoundCorner 30 Shadowing false LineThickness 0 } state q3##[bold] [*] --> q0 q0 --> q1 : 1 q0 --> q0 : 0 q1 --> q2 : 1 q1 --> q1 : 0 q2 --> q3 : 1 q2 --> q2 : 0 q3 --> q3 : 0 q3 --> q4 : 1 q4 --> q4 : 0,1 @enduml ```