JavaScript promise rejection: Loading CSS chunk katex failed. (error: https://git.gaminggeneration.de/assets/css/katex.faca27c4.css). Open browser console to see more details. (62)
Files
.idea
Writerside
cfg
images
topics
02
04
Datenbanken
HCI
Informatik und Gesellschaft
Projektmanagement
Rechnernetze
Software Engineering
Theoretische Informatik
Hausaufgaben
Übungen
01Einleitung.md
02_GrundlagenFormaleSprachen.md
03_GrundlagenEndlicherAutomaten.md
06
StartPage.md
c.list
in.tree
v.list
writerside.cfg
.gitlab-ci.yml
README.md
zusammenfassungen/Writerside/topics/04/Theoretische Informatik/03_GrundlagenEndlicherAutomaten.md
David Schirrmeister 6f68625f4c update
2025-04-22 17:10:06 +02:00

4.8 KiB
Raw Blame History

Grundlagen endlicher Automaten

Definition

Deterministischer endlicher Automat (DEA)

  • 5-Tupel
    • A=(Σ,Q,q_s,Q_a, δ)
      • Σ: endliches Eingabealphabet
      • Q: endliche Menge von Zuständen
      • q_s ∈ Q: Startzustand
      • Q_a ⊆ Q: akzeptierte Zustände
      • δ: Q x Σ → Q: Übergangsfunktion

Graphdarstellung G_A

  • Graphknoten: Q
    • Startzustand: Knoten mit eingehender Kante ohne Quelle
    • akzeptierter Zustand: Knoten mit Doppelkreis
  • gelabelte Kanten: Zustandsübergänge
    • Kante von q nach q' mit Label a ↔ δ(q,a) = q'

Beispiel einfacher endlicher Automat

  • A=(Σ,Q,q_s,Q_a, δ)
    • Σ=\{0,1\}
    • Q=\{q_1,q_2,q_3\}
    • q_s=q_1
    • Q_a=\{q_3\}
    • δ:
      • Zustand δ(.,0) δ(.,1)
        q_1 q_1 q_2
        q_2 q_1 q_3
        q_3 q_3 q_3
  • Graphdarstellung
    • image_740.png

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,wx):= δ( δ^*(q,w),x) für w ∈ Σ^* und x ∈ Σ

↑ ~induktive Definition

Sei $A= ( Σ,Q, q_s, Q_a, δ) ein DEA.

(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

Unvollständige Automaten

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

(b) Ist während einer Berechnung der nächste Zustand nicht definiert → Eingabe verwerfen

Beispiel unvollständiger Automat:

image_741.png

Nichtdeterministischer endlicher Automat (NEA)

Nichtdeterminismus

  • Erlauben pro Zustand/Zeichen-Paar mehrere Folgezustände
    • die wiederum selbst wieder mehrere Folgezustände haben können
    • Eine Eingabe, mehrere Berechnungspfade
  • Eingabe wird akzeptiert, wenn
    • Berechnungspfad existiert, der in akzeptierendem Zustand endet

Definition NEA

  • 5-Tupel
    • A=(Σ,Q,q_s,Q_a, δ)
      • Σ: endliches Eingabealphabet
      • Q: endliche Menge von Zuständen
      • q_s ∈ Q: Startzustand
      • Q_a ⊆ Q: akzeptierte Zustände
      • δ: Q x Σ → P(Q): Übergangsfunktion
  • jede einzelne Berechnung wie beim DEA
    • starte in q_s
    • lies nächstes Zeichen
    • berechne Folgezustand mit δ
    • wechsle in Folgezustand
      • ist akzeptierend? → :)
      • sonst → verwerfe
      • 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_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

Potenzautomaten

image_745.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

Beweis: 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
    • ...