zusammenfassungen/Writerside/topics/04/ti_hausaufgabe2.md
David Schirrmeister 1e74934263 update
2025-04-28 19:43:03 +02:00

377 lines
9.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Ü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 #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,...,9\}$
- $Q = \{a,b,c,d,e,f,g\}$
- $q_s = \{a\}$
- $Q_a = \{d\}$
- $δ:$
| Zustand | δ(.,0) | δ(.,1) | δ(.,2) | δ(.,3) | δ(.,4) | δ(.,5) | δ(.,6) | δ(.,7) | δ(.,8) | δ(.,9) |
|---------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|
| a | b | a | a | a | a | a | a | a | a | a |
| b | c | a | a | a | a | a | a | a | a | a |
| c | a | a | a | a | a | a | a | d | a | a |
| **d** | d | d | d | d | d | d | d | e | d | d |
| e | d | d | d | d | d | d | d | f | d | d |
| f | d | d | d | d | d | d | d | g | d | d |
| g | g | g | g | g | g | g | g | 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]
[*] -right-> a
a -right-> b : {0}
b -right-> c : {0}
c -right-> d : {7}
d -right-> e : {0}
e -right-> f : {0}
f -right-> 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)=(q1) \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
```