update
This commit is contained in:
@ -0,0 +1,45 @@
|
||||
# Grenzen & Größen endlicher Automaten
|
||||
## Nerode-Index einer Sprache
|
||||
- Sei $L=\{w ∈ \{x,y,z\}^*\}\space | \space \#_z(w) ∈ \{2,3\}\}$
|
||||
- betrachte die Wörter aus $\{x, y, z\}^*$
|
||||
- Gruppiere sie hinsichtlich des "Grad der Zugehörigkeit" zu $L$
|
||||
- 
|
||||
- Beobachtung:
|
||||
- zwei Worte $u ∈ L$ und $v \not\in L$ sind sicherlich nicht sehr ähnlich
|
||||
- zwei Worte $u,v ∈ L$ _können_ ähnlich sein
|
||||
- ähnlich: $zz$ und $yzxxzy$
|
||||
- nicht ähnlich: $zz$ und $zzz$
|
||||
- zwei Worte $u,v \not\in L$ _können_ ähnlich sein
|
||||
- ähnlich: $ ε$ und $xxy$
|
||||
- nicht ähnlich: $ ε$ und $yzxxxy$
|
||||
|
||||
- **$u,v ∈ Σ^*$ sind ähnlich bezüglich $L$, wenn:**
|
||||
- durch anhängigen des gleichen, beliebigen Wortes
|
||||
- in beiden Fällen ein Wort aus $L$ entsteht
|
||||
- in beiden Fällen ein Wort aus $Σ \backslash L$ entsteht
|
||||
|
||||
### Rechtsäquivalenz
|
||||
- gegebene Sprache $L$ über Alphabet Σ
|
||||
- $u,v ∈ Σ^*$ heißen rechtsäquivalent bezüglich L, wenn
|
||||
- $∀s ∈ Σ^*: u*s ∈ L ↔ v*s ∈ L$
|
||||
- wir schreiben auch: $(u,v) ∈ R_L$ oder $u \space R_L \space v$
|
||||
|
||||
### Nerode-Klassen und -Index
|
||||
- gegebene Sprache $L$ über Alphabet Σ und Wort $u ∈ Σ^*$
|
||||
- **Nerode-Klasse $N(u)$**: Menge der zu $u$ rechtsäquivalenten Wörter:
|
||||
- $N(u) := \{v ∈ Σ^* \space | \space (u,v) ∈ R_L\}$
|
||||
- **Nerode-Index** von L: Anzahl Nerode-Klassen
|
||||
|
||||
### Beispiel
|
||||
- ist $v ∈ N(u)$ so gilt $N(v)=N(u)$
|
||||
- beliebiges $u ∈ N$ heißt _Repräsentant_ der Nerode-Klasse $N$
|
||||
|
||||
- Wie lauten die Nerode-Klassen von der Sprache $L_1 = \{w ∈ \{x,y,z\}^* \space | \space \#_Z(w) ∈ \{2,3\}\}$?
|
||||
- 
|
||||
- Wie viele Nerode-Klassen hat $L_2=\{0^n*1^n \space | \space n ∈ N_0\}$
|
||||
- ∞
|
||||
- bspw. $N_i=N(0^i)$ für $i ∈ N_0$
|
||||
## Eigenschaften von Nerode-Klassen
|
||||
## Der Satz von Myhill-Nerode
|
||||
## Reaping the Fruits!
|
||||
## Minimierungsalgorithmus
|
@ -0,0 +1,376 @@
|
||||
# Übungsblatt 2
|
||||
> Wenzel Schwan (1125033), Paul Kneidl (1125219), David Schirrmeister (1125746), Michelle Klein (1126422)
|
||||
|
||||
## Übung 1
|
||||
Betrachten Sie den Automaten A aus Abbildung 1:
|
||||

|
||||
|
||||
### (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 #FFFACD
|
||||
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 #FFFACD
|
||||
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 #FFFACD
|
||||
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 #FFFACD
|
||||
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 #FFFACD
|
||||
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 #FFFACD
|
||||
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 #FFFACD
|
||||
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
|
||||
```
|
Reference in New Issue
Block a user