summaries-se-ost

Automaten und Sprachen

1.VORWORT

Diese Zusammenfassung basiert auf dem Buch “Automaten und Sprachen” [1] , geschrieben von Prof. Dr. Andreas Müller.

2.PRÄDIKATE

Prädikate sind Aussagen über mathematische Objekte, die wahr oder falsch sein können. “Funktionen” mit booleschen Rückgabewerten: . Siehe DMI .

2.1.NORMALFORMEN

Normalformen (allgemein, kanonische Formen) helfen, das Vergleichsproblem zu lösen (ob zwei Aussagen dieselben sind).

2.2.NEGATION

Nicht für alle = Es gibt einen Fall, für den nicht

3.MENGEN
3.1.KONSTRUKTION

Grundmenge , Prädikat . Konstruierte Menge

3.2.OPERATIONEN
Term Definition
Vereinigung
Schnittmenge
Komplement
Differenz
3.3.TUPEL

-Tupel:

4.BEWEISE

Eine Folge von logischen Schlüssen, die zeigen, dass die Aussage aus den gegebenen Voraussetzungen folgt.

Beweistechnik Anwendungsfall
Konstruktiver Beweis Liefert explizite “Lösung” / Algorithmus
Widerspruchsbeweis Geeignet für Unmöglichkeitsaussagen. Z.B.
Vollständige Induktion Für Aussagen, die für alle gelten.
5.SPRACHEN
Term Definition
Alphabet Eine nichtleere endliche menge heisst Alphabet. Die Elemente von heissen Zeichen.
Wort Eine Zeichenkette der Länge ist ein -Tupel in . Ein Element von heisst Wort der Länge . Wörter haben immer endliche Länge.
Leeres Wort Die Zeichenkette der Länge heisst das leere Wort.
Menge aller Wörter

Leeres Wort ist immer drin

Abgekürzte Schreibweisen von Wörtern

Sprache Teilmenge
5.1.WORTLÄNGE
Term Definition
Länge des Wortes , ist Länge des Wortes
Anzahl Zeichen Sei . Dann ist die Anzahl Zeichen im Wort
5.2.DETERMINISTISCHE ENDLICHE AUTOMATEN (DEA)
Definition Tabellenform Zustandsdiagramm von

  • Zustände:
  • Alphabet:
  • Übergangsfunktion:
  • Startzustand:
  • Akzeptierzustände:

Wichtig: Ein Pfeil für jedes Zeichen in jedem Zustand für validen DEA

5.3.WÖRTER EINER REGULÄREN SPRACHE
5.3.1.Übergangsfunktionen für Wörter

Übergänge ausghend von für Zeichen nacheinander anwenden.

5.3.2.Wort akzeptieren

Der DEA akzeptiert das Wort , wenn er von Startzustand in einen Akzeptierzustand überführt.

5.3.3.Akzeptierte Sprache, reguläre Sprache

Gegeben ein DEA . Die von akzeptierte Sprache ist

Die Sprache heisst regulär, wenn es einen DEA gibt mit

5.4.MYHILL-NERODE AUTOMAT

Für ein Wort setze Insbesondere

Gegeben: reguläre Sprache über . Rekonstruiere mit:

Gleicher Zustand gleiches

5.5.MINIMALAUTOMAT

Ziel: Nicht unterscheidbare Zustände zusammenlegen

Vorgehen:

  1. Akzeptierzustand Nichtakzeptierzustand
  2. Iteration: alle unterscheidbaren Paare suchen
  3. Verbleibende Paare sind ununterscheidbar zusammenlegen
5.6.PUMPING LEMMA
Ist eine reguläre Sprache, dann gibt es , die pumping length so, dass jedes Wort mit in drei Teile zerlegt werden kann mit:

Oder: genügend lange Wörter () einer regulären Sprache () können alle in einem Anfangsstück der Länge N () aufgepumpt werden ().

Was zeichnet reguläre Sprachen aus?

  • Reguläre Ausdrücke
  • Lange Wörter: * kommt im regulären Ausdruck vor
  • Blöcke mit * können beliebig oft wiederholt werden
  • Wörter können “aufgepumpt” werden
5.6.1.Beweis

Behauptung: Die Sprache ist nicht regulär.

Beweis (Widerspruch):

  1. Annahme: ist regulär
  2. Gemäss Pumping Lemma gibt es die Pumping Length

    • Es darf keine Annahme über die konkrete Grösse von gemacht werden!
  3. Wähle ein Wort mit

    • Die Definition muss verwenden!
  4. Aufteilung des Wortes gemäss Pumping Lemma

  5. Auswirkung des Pumpens

    • für mindestens ein (mit Begründung!)
  6. Widerspruch und Schlussfolgerung, dass die Annahme nicht zutreffen kann
5.7.NICHTDETERMINISTISCHE ENDLICHE AUTOMATEN (NEA)
Definition Akzeptieren

  • Endliche Menge von Zuständen:
  • Alphabet:
  • Übergangsfunktion:
  • Startzustand:
  • Akzeptierzustände:

Ein NEA akzeptiert das Wort , wenn es eine Wahl von Übergängen gibt, derart, dass das Wort den Automaten in einen Akzeptierzustand überführt.

Faustregeln

  • Nur genau diejenigen Pfeile einzeichnen, die man zum Akzeptieren braucht.
  • Erlaube Alternativen
5.7.1.Umgang mit mehrdeutigen Übergängen

a-Übergang von aus nicht eindeutig

Welchen Übergang soll man nehmen?

  • Beide Möglichkeiten probieren und akzeptieren, falls eine der Möglichkeiten auf einen Akzeptierzustand führt.
  • Zufallsgenerator (probabilistischer endlicher automat, PEA)
5.7.2.Thompson-NEA
  • Zustand = Menge der möglichen Zustände
  • Akzeptieren = Ob NEA im
    Zustand sein könnte
5.7.2.1.Transformation NEA DEA

Gegeben eines NEA. Übergangsfunktion für Mengen

Satz Implementation

Ein NEA kann in einen DEA umgewandelt werden mit

  • wie oben definiert

Thompson-NEA:

  • Zustand realisiert durch Markierung der Zustände in
  • realisiert durch Verschieben von Markierungen
  • Akzeptieren: mindestens ein Akzeptierzustand markiert
5.7.3.
Term Definition
-Übergang

Kann ohne Verarbeitung eines Zeichens genommen werden.

NEA mit -Übergängen

Einen kann man immer in einen NEA umwandeln. Beweis:

  1. Menge der von aus mit -Übergängen erreichbaren Zustände
  2. ersetzen durch

5.8.MENGENOPERATIONEN

Lassen reguläre Sprachen regulär sein.

Produktautomat:

Schnittmenge

Vereinigungsmenge

Differenzmenge

Symmetrische Differenz

Operationen verändern nur Endzustände:

Term Definition
Schnittmenge
Vereinigung
Differenz
5.9.REGULÄRE OPERATIONEN

WICHTIG: -Übergänge immer hinzufügen

5.9.1.Alternative

5.9.2.Verkettung

5.9.3.*-Operation

die Klasse der regulären Sprachen ist abgeschlossen unter regulären Operationen

5.10.REGULÄRE AUSDRÜCKE

Formeln, die Zeichenketten beschreiben.

  1. Buchstaben stehen für sich selbst, mit Ausnahme der Metazeichen (escape character)
  2. Verkettung: Zeichen und Formeln hintereinanderschreiben
  3. = ein beliebiges Zeichen,
  4. : Alternative, = a oder A
  5. : Wiederholung, beliebige viele
  6. : Gruppierung
  7. Zeichenklassen: , = alles ausser a, b, oder c

Erweiterungen / Dialekte

  1. : zwischen un Wiederholungen
  2. : mindestens eines,
  3. : optional,
  4. Symbole für Zeichenklassen: Ziffern, whitespace, ,
5.10.1.Verallgemeinerter NEA (VNEA)
Term Definition
Regulärer Ausdruck Zeichenkette zur Beschreibung einer regulären Sprache
Reguläre Operationen

Verallgemeinerter NEA , dessen Übergänge mit regulären Ausdrücken beschriftet sind
Primitive reguläre Ausdrücke

Reguläre Ausdrücke für Wörter mit Länge

zu jedem regulären Ausdruck gibt es einen DEA

5.10.1.1.VNEA umwandeln in Regex

Keine Übergänge nach und nur ein Akzeptierzustand

Reduktion

Regulärer Ausdruck

Nach Entfernen aller Zwischenzustände bleibt ein regulärer Ausdruch von

jede reguläre Sprache lässt sich mit einem regulären Ausdruck beschreiben

Interessantes projekt (DEA Lexer DSL): Ragel

5.10.2.Teststrategie
Messung Folgerung

Für

  • Regulären Ausdruck erzeugen
  • Laufzeit für Akzeptieren von durch messen
  • Laufzeit : NEA-Implementation
  • Laufzeit : DEA-Implementation
5.11.KONTEXTFREIE SPRACHEN
Term Definition
CFL Context Free Language
CFG Context Free Grammar
PDA Pushdown Automata
5.11.1.Kontextfreie Grammatik und Sprache

Kontextfreie Grammatik:

  • : Variablen
  • : Terminalsymbole (Alphabet)
  • : Regeln der Form mit
  • : Startvariable

Ableitung und erzeugte Sprache

  • Regel erzeugt aus das Wort
  • aus ableiten: oder
  • von erzeugte kontextfreie Sprache

Parse Tree

mit der Grammatik

Es ist nicht garantiert, dass es für die Ableitung eines Wortes nur einen einzigen Syntaxbaum gibt. Man sagt, die Grammatik ist nicht eindeutig, wenn sie mehrere Syntaxbäume für die gleichen Wörter erlaubt.

5.11.2.Reguläre Operationen

Die Klasse der kontextfreien Sprachen ist abgeschlossen unter regulären Operationen.

Reguläre Sprachen sind kontextfrei.

5.11.2.1.Grammatik für reguläre Operationen

Seien und kontextfreie Sprachen mit Grammatiken . Wir nehmen an, dass die Variablen- und Regelmengen disjunkt sind, also . Zudem sei eine Variable, die nicht in enthalten ist. Dann gilt:

Alternative ist kontextfrei mit der Grammatik

Verkettung ist kontextfrei mit der Grammatik

*-Operation ist kontextfrei mit der Grammatik

5.11.3.Kontextfrei
5.11.3.1.Regeln ohne Kontext

Es spielt keine Rolle, in welchem Kontext das Zeichen vorkommt, die Regel kann immer angewendet werden

5.11.3.2.Regeln mit Kontext

Je nach Kontext kann eine Regel nicht unbedingt angewendet werden

5.11.4.Chomsky-Normalform (CNF)

Eine CFG ist in Chomsky-Normalform, wenn auf der rechten Seite nicht vorkommt und jede Regel von der Form oder ist, zusätzlich ist die Regel erlaubt.

5.11.4.1.Umwandlung
  1. Neue Startvariable (wenn nötig)
  2. -Regeln: kann weggelassen werden
  3. Unit-Rules: aus kann man wie aus auch machen
  4. Verkettungen: ersetzen durch und falls ein Terminalsymbol ist: .
5.11.4.2.Folgerungen
  1. Ableitung eines Wortes ist immer in Regelanwendungen möglich. Beweis:

    • Regeln der Form um aus ein Wort aus Variablen zu erzeugen
    • Regeln der Form um das Wort zu erzeugen
    • insgesamt Regelanwendungen
  2. Deterministischer Parse-Algorithmus mit Laufzeit
6.PARSING
6.1.COCKE-YOUNGER-KASAMI ALGORITHMUS (CYK)

Gegeben

  1. Grammatik G =
  2. Variable
  3. Wort

Frage

Ist ableitbar? Formell geschrieben:

  • Spezialfall (Epsilonregel, )
  • Spezialfall (Terminalsymbolregel)
  • Fall

6.1.1.Ableitungsdreieck

Ideen

  • Parse Tree aus und
  • Variablen in Tabelle füllen

Prinzip

  • Einem Teilwort entspricht ein Feld der Tabelle (rot hinterlegt)
  • Das Feld wird mit den Variablen gefüllt, aus denen das Teilwort abgeleitet werden kann.

Beispiel

Parsen des Wortes ()[()]()[()]

Definitionen

Die Felder und heissen korrespondierende Felder im Ableitungsdreieck des Feldes .

6.2.BACKUS-NAUR-FORM (BNF)

Spezifikation der Regeln in maschinen-lesbarer Form:

  • Variablen: <variablen-name><variablen-name>
  • Einzelne Zeichen: AA
  • Zeichenketten: 'BEISPIEL''BEISPIEL'
  • Regeln: <variablen-name> ::= Ausdruck<variablen-name> ::= Ausdruck
  • Ausdrücke sind Folgen von Variablen, einzelnen Zeichen oder Zeichenketten, getrennt durch ||
6.3.EXTENDED BACKUS-NAUR-FORM (EBNF)
Definition Achtung!
  • Literale in Anführungszeichen oder Apostroph
  • == statt ::=::=
  • Variablen ohne << und >>, dürfen Leerzeichen enthalten
  • Komma für Verkettung ,,
  • Regel-Endzeichen ;;
  • Kommentare (* ... *)(* ... *)
  • Optionale Wiederholung {...}{...}
  • Option [...][...]
  • Gruppierung (...)(...)
  • Ausnahme: --
  • Keine Operatorpriorisierung
  • Zweideutig!
  • Keine eindeutige Evaluation!
6.4.RECHTSREKURSION

Expression-Term-Factor-Grammatik verwendet Links-Rekursion korrekte Auswertung von links nach rechts. Parsetree wertet aber Ausdrücke von rechts nach links aus! Alternative Expression-Term-Factor definition mit Rechtsrekursion statt Linksrekursion:

7.STACK

Unendlich grosser Speicher

  • Immer nur das oberste Element sichtbar
  • Beliebig tief
7.1.STACKAUTOMAT / PUSHDOWN AUTOMATON (PDA)

Kann Sprachen akzeptieren, die nicht regulär sind, ist aber nicht deterministisch. Beachte: möglich

Definition

Stackautomat

  1. : Zustände
  2. : Eingabe-Alphabet
  3. : Stack-Alphabet
  4. :
  5. : Startzustand
  6. : Akzeptierzustände

Übergänge

vom Input

vom Stack entfernen (Bedingung)

auf den Stack

7.1.1.Ableitung aus CNF

Ist eine kontextfreie Sprache, dann gibt es einen Stackautomaten , der akzeptiert, .

Grundgerüst

Regel Regel Regel
7.1.2.PDA CFG

Variablen

Wörter beschreiben Pfade durch den Automaten: Variable Wörter, die von nach führen mit leerem Stack

Regeln

Regeln beschreiben, wie sich Wege zerlegen lassen: Wege von nach können verstanden werden als Wege von nach und von dort nach

7.1.2.1.Stackautomat standardisieren
  1. Nur ein Akzeptierzustand: Neuen Akzeptierzustand und Übergänge von allen vorherigen Endzuständen zu erstellen.

  2. Stack leeren: Mit einem Element erweitern, sodass garantiert werden kann, dass der Stack am schluss leer ist.

  3. Jeder Übergang legt entweder ein Zeichen auf den Stack oder entfernt eines

7.1.2.1.1.Grammatik ablesen

Ausgangspunkt: standardisierter PDA mit Startzustand und .

  1. Startvariable:
  2. Regeln:

8.NICHT KONTEXTFREIE SPRACHEN
8.1.PUMPING LEMMA

Pumping Lemma für CFL

Ist eine CFL, dann gibt es eine Zahl , die Pumping Length, derart, dass jedes Wort mit zerlegt werden kann in fünf Teile derart, dass

Mit dem Pumping Lemma kann man beweisen, dass eine Sprache nicht kontextfrei ist.

8.1.0.1.Herleitung

Grammatik in CNF

Wiederverwendete Variable

gross genug Variablen werden im Parse Tree wiederverwendet Die “unterste” wiederverwendete Variable erzeugt zwei Wörter:

Pumpen

anstelle des “untersten” verwenden

9.UNENDLICH
Term Definition
Endlich Eine Menge heisst endlich, wenn jede Injektion auch eine Bijektion ist
Abzählbar unendlich Eine Menge heisst abzählbar unendlich, wenn es eine Bijektion gibt, also . Bsp: , Menge aller DEAs/NEAs/PDAs/CFGs
Überabzählbar unendlich Eine Menge heisst überabzählbar unendlich, wenn sie nicht abzählbar unendlich ist. Bsp: , Menge aller Sprachen
Gleich mächtig Mengen und heissen gleich mächtig, , wenn es eine Bijektion gibt
Unendlich Eine Menge heisst unendlich, wenn sie gleich mächtig wie eine Teilmenge ist

abzählbar unendlich, :

  1. abzählbar unendlich
  2. abzählbar unendlich
  3. Abzählbar unendlich:
  4. überabzählbar unendlich
  5. überabzählbar unendlich
10.TURING-MASCHINE (TM)

Merhere Stacks (Speicherzellen) = RAM (Band).

Jeder DEA oder NEA kann damit emuliert werden.

  1. Der Speicher ist unbegrenzt
  2. In jeder Zelle genau ein Zeichen
  3. Es ist immer nur eine Speicherzelle einsehbar
  4. Der Inhalt der aktuellen Zelle kann beliebig verändert werden
  5. Bewegung immer nur eine Zelle nach links oder rechts
  6. Kein weiterer Speicher (nur die Zustände eines endlichen Automaten und das eine Zeichen)
Term Definition
Record Speichereinheit fester grösse
Bandalphabet Alphabet , welches aus Speicherzellen (Stacks) besteht
Schreib-/Lesekopf Aktuelle Schreib-/Leseposition
Definition Zustandsdiagramm

(deterministische) Turing-Maschine

  • : Zustände
  • : Alphabet
  • : Bandalphabet,
  • :
  • : Startzustand
  • : Akzeptierzustand
  • : Ablehnzustand,
Übergänge
  • Übergang möglich, wenn unter dem Schreib- / Lese-Kopf
  • Aktuelles Feld auf dem Band wird mit überschrieben
  • Kopfbewegung: links, rechts
10.1.ARBEITSWEISE

Programmablauf

  • Input-Wort auf Band
  • Schreib- / Lesekopf positioniert auf 1. Zeichen
  • Maschine starten, Einzelschritte ausführen
  • Maschine hält in oder : Wort akzeptiert / Verworfen

Laufzeit:

Vorher Nachher
10.2.PROTOKOLLIERUNG

Der Gang der Berechnung mit einer TM kann dokumentiert werden, indem der Bandinhalt nach jedem einzelnen Verarbeitungsschritt protokolliert wird.

Links Rechts

10.3.VARIANTEN
10.3.1.Nichtdeterministische TM

Übergangsfunktion

Bei jedem Übergang maximal verschiedene Möglichkeiten:
Mehrere mögliche Berechnungswege

Wort akzeptieren

wenn es einen Berechnungsweg gibt, der zu führt. (auch wenn es Wege gibt, die auf führen!)

Simulationsidee

Alle Berechnungswege durchführen, maximal

Simulation auf Standard-TM

Verwende 3 Bänder:

  1. Arbeitsband
  2. Kopie von w
  3. Liste aller Folgen von Wahlmöglichkeiten

Simulation

  1. Kopiere w von Band 2 auf Band 1
  2. Führe TM aus auf Band 1 mit Wahlmöglichkeiten von Band 3
  3. Inkrementiere zur nächsten Folge von Wahlmöglichkeiten auf Band 3

Laufzeit:

Simulierbar in

10.3.2.Verschiedene Bandalphabete

Jedes andere Alphabet als kann binär codiert werden.

Simulierbar in Zeit

10.3.3.Mehrspurmaschine

Simulierbar in Zeit

10.3.4.Mehrbandmaschine

Um eine Mehrbandmaschine mit Bändern auf einer einfacheren Maschine zu simulieren, kann die unabhängige Bewegung der Schreib-/Leseköpfe mithilfe eines -spurigen Bandes (Daten + Zeiger für Schreib-/Lesekopf) nachgebildet werden.

Simulierbar in Zeit

10.3.4.1.Harvard- und von Neumann-Architektur

Die AVR-Mikrokontroller-Familie von Atmel verwendet intern drei unabhängige Datenpfade:

  • Flash-Speicher, der den Programmcode enthält
  • Statisches RAM, welches zur Laufzeit veränderliche Daten speichert
  • Peripheriegeräte.

Die von Neumann-Architektur vereinheitlicht Daten- und Programmspeicher.

10.3.5.Einseitig unendliches Band

Beidseitig unendliches Band kann durch ein Alphabet doppelter Wortbreite realisiert werden, somit äquivalent.

10.4.TURING-ERKENNBARE SPRACHEN

Eine TM erkennt das Wort , wenn die Maschine auf dem Input im Zustand anhält.

Sind und Turing-erkennbare Sprachen, dann sind auch der Durchschnitt und die Vereinigungsmenge Turing-erkennbar.

Es gibt überabzählbare viele Sprachen , die nicht Turing-erkennbar sind.

10.4.1.Aufzähler

ist rekursiv aufzählbar wenn es einen Aufzähler gibt, der alle Wörter aufzählen kann. ist dann auch Turing-erkennbar.

10.4.2.Entscheider und entscheidbare Sprachen
11.ENTSCHEIDBARKEIT
BIBLIOGRAPHY
  • [1] A. Müller, “Reguläre Sprachen,” in Automaten und Sprachen: Theoretische Informatik für die Praxis: Mathematik, Anwendung, Intuition, Berlin, Heidelberg: Springer Berlin Heidelberg, 2024. doi: 10.1007/978-3-662-70146-1_1 .