diff --git a/Writerside/images/image_743.png b/Writerside/images/image_743.png new file mode 100644 index 0000000..0fd4ab6 Binary files /dev/null and b/Writerside/images/image_743.png differ diff --git a/Writerside/images/image_744.png b/Writerside/images/image_744.png new file mode 100644 index 0000000..f3cfa2d Binary files /dev/null and b/Writerside/images/image_744.png differ diff --git a/Writerside/images/image_745.png b/Writerside/images/image_745.png new file mode 100644 index 0000000..6d5cc0e Binary files /dev/null and b/Writerside/images/image_745.png differ diff --git a/Writerside/images/image_746.png b/Writerside/images/image_746.png new file mode 100644 index 0000000..db701f0 Binary files /dev/null and b/Writerside/images/image_746.png differ diff --git a/Writerside/images/image_747.png b/Writerside/images/image_747.png new file mode 100644 index 0000000..49f5e71 Binary files /dev/null and b/Writerside/images/image_747.png differ diff --git a/Writerside/images/image_748.png b/Writerside/images/image_748.png new file mode 100644 index 0000000..7adc8ea Binary files /dev/null and b/Writerside/images/image_748.png differ diff --git a/Writerside/images/image_749.png b/Writerside/images/image_749.png new file mode 100644 index 0000000..656c9c6 Binary files /dev/null and b/Writerside/images/image_749.png differ diff --git a/Writerside/topics/04/Theoretische Informatik/03_GrundlagenEndlicherAutomaten.md b/Writerside/topics/04/Theoretische Informatik/03_GrundlagenEndlicherAutomaten.md index 5b9f140..c14aa7b 100644 --- a/Writerside/topics/04/Theoretische Informatik/03_GrundlagenEndlicherAutomaten.md +++ b/Writerside/topics/04/Theoretische Informatik/03_GrundlagenEndlicherAutomaten.md @@ -34,20 +34,24 @@ ### Sprache eines Automaten > Sei $A=( Σ,Q,q_s,Q_a, δ)$ ein DEA. Die fortgesetzte Übergangsfunktion $ δ^*: Q x Σ^* →Q$ ist definiert durch > -> $ δ^*(q, ∈):=q$ und +> $ δ^*(q, ε):=q$ und > > $ δ^*(q,wx):= δ( δ^*(q,w),x)$ für $w ∈ Σ^* und x ∈ Σ$ ↑ ~_induktive Definition_ -> Sei $A= ( Σ,Q, q_s, Q_A, δ) ein DEA. +> Sei $A= ( Σ,Q, q_s, Q_a, δ) ein DEA. > -> (a) Wir sagen $A$ akzeptiert $w ∈ Σ^*$, wenn $ δ^*(q_s,w) ∈ Q_A$ +> (a) Wir sagen $A$ akzeptiert $w ∈ Σ^*$, wenn $ δ^*(q_s,w) ∈ Q_a$ > > (b) Die von $A$ akzeptierte Sprache ist $L(A) := \{w ∈ Σ^* \space| \space A\space akzeptiert \space w\}$ +### Übung: +#### (a) $L_1 = \{a^nb^mc^k \space | \space n,m,k ≥ 1\}$ +![image_749.png](image_749.png) + ### Unvollständige Automaten -> Ein unvollständiger deterministischer Automat $A=( Σ, Q,Q_s, Q_A, δ)$ ist wie ein normaler DEA +> Ein unvollständiger deterministischer Automat $A=( Σ, Q,Q_s, Q_a, δ)$ ist wie ein normaler DEA > mit folgenden Änderungen: > > (a) Die Übergangsfunktion $ δ$ darf partiell sein @@ -83,6 +87,70 @@ - wechsle in Folgezustand - ist akzeptierend? → `:)` - sonst → verwerfe -- -#### Beispiel NEA + - > Goldene Regel: Akzeptiere Eingabe, wenn akzeptierende Berechnung existiert + +### Sprache eines NEA +> Sei $N=( Σ,Q,q_s,Q_a, δ)$ ein NEA. Die fortgesetzte Übergangsfunktion $ δ^*: Qx Σ^*→P(Q)$ ist definiert durch: +> +> $ δ^*(q, ε) := \{q\}$ und +> +> $ δ^*(q,wx) := ∪ δ(q', x)$ für $w ∈ Σ^*$ und $x ∈ Σ$ +> +> _$q' ∈ δ^*(q,w)$_ + +### Beispiel NEA ![image_742.png](image_742.png) + +![image_743.png](image_743.png) + +## NEA vs DEA +- NEA scheinbar viel mächtiger als DEAs + - sehr viele Berechnungspfade (statt nur einem pro Wort) +- Alternativer Blick auf das Parsen eines NEAs + - für jede Stelle der Eingabe + - in welchen Zuständen könnte der NEA sein? + - akzeptiere, wenn finaler Metazustand Zustand aus $Q_a$ enthält + - ![image_744.png](image_744.png) + + +## Potenzautomaten +![image_745.png](image_745.png) + +![image_746.png](image_746.png) + +### Konstruktion und Sprache eines Potenzautomaten +#### Konstruktion: Funktionstabelle für δ +- 1. Spalte: bisher entdeckte Metazustände +- restliche Spalten: Folge-Metazustand für jedes Zeichen $x ∈ Σ$ +- solange unvollständige Zeile existiert: ausfüllen + - initial: nur $\{s\}$ sicher erreichbar → eine unvollständige Zeile + - je neu entdecktem Metazustand: lege neue Zeile an + +> Der Potenzautomat $A_N$ eines NEA $N$ ist ein deterministischer endlicher Automat mit $L(A_N) = L(N)$ +> +> ![image_747.png](image_747.png) +> +> Beweis: ![image_748.png](image_748.png) + +## Mächtigkeit & Grenzen endlicher Automaten +- parsen einfacher Strukturen + - E-Mail + - XML-Tags + - Datumsformate + - ... +- können sich Dinge merken +- NEAs betrachten viele Berechnungswege "gleichzeitig" + - sind aber letztlich nur _Syntactic Sugar_ + - _nur dafür da, dass es besser lesbar ist_ + +- können sich nur so viel merken, wie sie Zustände haben + - geht: das 17. Zeichen von w ist 0 + - geht nicht: das |w|/2. Zeichen von w ist 0 +- können keine komplexen Strukturen erkennen + - Palindrome + - _LAGERREGAL_ + - arithmetische Ausdrücke + - $42*(x+y)-z$ + - Hierarchien + - Verschachtelungen + - ...