Dies ist meine persönliche Zusammenfassung und Mitschrift der FoSAP Vorlesung des Sommersemesters 2019. Ich beziehe mich hierbei auf die Folien der Vorlesung und Übung und
den Panikzettel zur Vorlesung.
DFA's
Ein deterministische endliche Automat A ist ein 5 Tupel mit A=(Q,Σ,δ,q0,F), dass sich wie folgt zusammensetzt:
- Q : Anzahl der Zustände des Automaten
- Σ : Eingabealphabet
- δ: Transitionsfunktion δ:Q×Σ→Q
- q0∈Q: Startzustand
- F⊆Q: Menge der Endzustände
Ein Lauf auf einem Automaten ist ein Tupel der Form (r0,a1,r1,a2,...,an,rn) mit δ(ri−1,ai)=ri und r0=q0. Der Lauf ist genau dann akzeptierend, wenn rn∈F.
Ein Automat erkennt eine Sprache L(A):={w∈Σ∗∣A akzeptiert w}. Allgemein ist eine Sprache L DFA-erkennbar, wenn es einen DFA gibt mit L=L(A).
Für alle Sprachen gilt:
- Assoziativ: (KL)M=K(LM)
- L{ϵ}={ϵ}L=L
- L∅=∅L=∅
- Distributiv: K(L∪M)=KL∪KM und (K∪L)M=KM∪LM
- L0={ϵ}
- Ln+1:=LnL für n∈N
- Kleene-Stern: L∗:=n∈N⋃Ln
- L∗L∗=L∗
- (L∗)∗=L∗
- ∅∗={ϵ}
Produktautomaten
Seien 2 DFA's A1,A2 mit dem selben Alphabet gegeben. Dann ist der Produktautomat:
A=(Q1×Q2,Σ,δ,(q01,q02),F).
Abschlusseigenschaften
- L DFA-erkennbar, dann ist auch Lˉ DFA-erkennbar(Tausche End- und nicht Endzustände)
- L1∩L2, L1∪L2
- LK (Hintereinanderausführung)
- L∗=n∈N∪Ln, L0={ϵ}, ∅∗={ϵ}
NFA's
Ein nicht-deterministischer endlicher Automat NFA A=(Q,Σ,Δ,q0,F). Der Unterschied zum DFA liegt in der:
- Transitionsrelation Δ⊆Q×Σ×Q
Die Erreichbarkeitsmenge eines Wortes auf dem Automaten A: E(A,w)={q∈Q∣q0→wq}
epsilon-NFAs
Ein ϵ-NFA A=(Q,Σ,Δ,q0,F)
- Transitionsrelation Δ:Q×(Σ∪{ϵ})×Q
Ein Lauf auf einem ϵ-NFA wird ohne ϵ angegeben
Potenzmengenkonstruktion
Zu jedem NFA A=(Q,Σ,δ,q0,F) kann man einen äquivalenten DFA A′=(Q′,Σ′,Δ′,q0′,F′) konstruieren mit L(A)=L(A′):
- Q′=Pot(Q)
- δ′(q′,a)={q∈Q′∣∃p∈q′:(p,a,q)∈Δ}
- q0′={q0}
- F′={q∈Q′∣F∩q=∅}
Da Q′=Pot(Q) ist ein Zustand eine Menge und wird auch mit Mengenklammern geschrieben.
epsilon-NFA zu NFA
L ist DFA-erkennbar ⇔ L ist ϵ-NFA-erkennbar ⇔ L ist FA-erkennbar
epsilon-NFA Komplement
Sei A ein ϵ-NFA. Finde L(Aˉ):
- Konstruiere zu äquivalenten NFA A'
- Konstruiere zu A' äquivalenten DFA A'' (Potenzmengenkonstruktion)
- Konstruiere DFA A′′′ mit L(A′′′)=L(Aˉ′′)=L(Aˉ)
Rekursion und Induktion
Rekursive Definition von Funktionen:
Rekursionsanfang: Definiere f(0)
Rekursionsschritt: Definiere f(n+1) aus f(n)
Rekursive Definition von Mengen:
Basisregel: x∈X
Rekursive Regel: Wenn x1,...,xk∈X, dann x′∈X (x′ in Abhängigkeit von x1,...,xk)
Induktive Beweise
Vollständige Induktion über eine rekursiv Definition D einer Menge X analog zur vollständigen Induktion über die natürlichen Zahlen:
Induktionsanfang: Für alle Basisregeln x∈X die Aussage beweisen
Induktionsscritt: Für alle rekursiven Regeln die Aussage mithilfe der Induktionsannahme beweisen.
Reguläre Sprachen
RAΣ ist die Menge der regulären Ausdrücke. Es gilt ∅∈RAΣ und ϵ∈RAΣ. L(r)⊆Σ∗ ist die Sprache zu dem regulären Ausdruck r∈RAΣ. Es gilt L(∅)=∅, L(ϵ)={ϵ} und L(a)={a}.
Jede reguläre Sprache ist FA-erkennbar
Algorithmen für Reguläre Sprachen
Automaten mit Ausgabe
Kontextfreie Sprachen