Endliche Automaten

Definition

Deterministische endliche Automaten DEA

A=⟨Q,Σ,δ,q0,F⟩ \mathcal{A}=\left\langle Q, \Sigma, \delta, q_{0}, F\right\rangle 

QQall possible states (finite)

∑\suminput alphabet (kein ε\varepsilon erlaubt)

δ:Q×Σ↦Q\delta: Q \times \Sigma \mapsto Qtransition function

Totale Funktion: Funktion, die fürjedenWert aus Definitonsmenge ein Abbild hat. Deshalb deterministisch.

q0∈Qq_{0} \in Qinitial state

F⊆QF \subseteq Qfinal states

Erweiterte Übergangsfunktion (auch für Leerwort)

δ∗:Q×Σ∗↦Q\delta^{*}: Q \times \Sigma^{*} \mapsto Q

∀q∈Q,s∈Σ,w∈Σ∗:δ∗(q,ε)=q,δ∗(q,sw)=δ∗(δ(q,s),w) \forall q \in Q, s \in \Sigma, w \in \Sigma^{*}: \quad \delta^{*}(q, \varepsilon)=q, \quad \delta^{*}(q, s w)=\delta^{*}(\delta(q, s), w) 

Akzeptierte / Generierte Sprache

Nur Wörter die von initial state zu einem final state führen.

L(A)={w∈Σ∗∣δ∗(q0,w)∈F} \mathcal{L}(\mathcal{A})=\left\{w \in \Sigma^{*} \mid \delta^{*}\left(q_{0}, w\right) \in F\right\} 

Falle / Fehlerzustand

Wird meistens nicht eingezeichnet aber existiert in Tabelle.

Alle Fehlverhalten → Falle, dann kein Weg heraus.

Beispiel:

Nichtdeterministische endliche Automaten NEA

A=⟨Q,Σ,δ,q0,F⟩ \mathcal{A}=\left\langle Q, \Sigma, \delta, q_{0}, F\right\rangle 

Alles gleich mit DEA nur ε\varepsilon erlaubt:

δ⊆Q×(Σ∪{ε})×Q \delta \subseteq Q \times(\Sigma \cup\{\varepsilon\}) \times Q  Übergangsrelation

δ:Q×(Σ∪{ε})↦2Q\delta: Q \times(\Sigma \cup\{\varepsilon\}) \mapsto 2^{Q} Übergangsfunktion (bildet auf Element aus Menge ab)

Erweiterte Übergangsfunktion (auch für Leerwort)

δ∗\delta^* ist die kleinste Menge mit den Eigenschaften

∀q∈Q:(q,ε,q)∈δ∗\forall q \in Q: (q, \varepsilon, q) \in \delta^{*}

∃(q1,w,q2)∈δ∗,(q2,s,q3)∈δ:(q1,ws,q3)∈δ∗ \exists\left(q_{1}, w, q_{2}\right) \in \delta^{*}, \left(q_{2}, s, q_{3}\right) \in \delta: \quad \left(q_{1}, w s, q_{3}\right) \in \delta^{*} (Transivität)

Akzeptierte / Generierte Sprache

Nur Wörter die von initial state zu einem final state führen.

L(A)={w∈Σ∗∣(q0,w,qf)∈δ∗ fu¨r ein qf∈F} \mathcal{L}(\mathcal{A})=\left\{w \in \Sigma^{*} \mid\left(q_{0}, w, q_{f}\right) \in \delta^{*} \text { für ein } q_{f} \in F\right\}  (Es kann mehrere Endzustände geben)

Beispiel:

Determinisierung (NEA →\rarr DEA)

Gegeben: NEA

A=⟨Q,Σ,δ,q0,F⟩ \mathcal{A}=\left\langle Q, \Sigma, \delta, q_{0}, F\right\rangle (A steht für Automat)

δ⊆Q×(Σ∪{ε})×Q\delta \subseteq Q \times(\Sigma \cup\{\varepsilon\}) \times Q

Gesucht: DEA

Aundefined=⟨Qundefined,Σ,δundefined,q0undefined,Fundefined⟩ \widehat{\mathcal{A}}=\left\langle\widehat{Q}, \Sigma, \widehat{\delta}, \widehat{q_{0}}, \widehat{F}\right\rangle 

δundefined:Qundefined×Σ↦Qundefined \widehat{\delta}: \widehat{Q} \times \Sigma \mapsto \widehat{Q} 

Unter der Bedingung dass A^\mathcal{\hat{A}} und A\mathcal{A} äquivalent sind (dieselbe Sprache akzeptieren = sich gleich verhalten) gilt: L(A)=L(Aundefined)\mathcal{L}(\mathcal{A})=\mathcal{L}(\widehat{\mathcal{A}})

Definition von DEAAundefined\mathcal{\widehat{A}}

Qundefined=2Q\widehat{Q}=2^{Q}(Potenzmenge vonQQ- Alle Teilmengen / Zustands-Wörter)

q0undefined={q0}\widehat{q_{0}}=\left\{q_{0}\right\}(Klammern stehen nicht für Menge)

Fundefined={{qundefined∈Qundefined∣qundefined∩F≠∅}∪{q0undefined} falls ε∈L(A){qundefined∈Qundefined∣qundefined∩F≠∅} sonst  \widehat{F}=\left\{\begin{array}{ll}\{\widehat{q} \in \widehat{Q} \mid \widehat{q} \cap F \neq \emptyset\} \cup\left\{\widehat{q_{0}}\right\} & \text { falls } \varepsilon \in \mathcal{L}(\mathcal{A}) \\\{\widehat{q} \in \widehat{Q} \mid \widehat{q} \cap F \neq \emptyset\} & \text { sonst }\end{array}\right. 

Unsere finalen Zustände sind alle Zustands-Wörter / Mengen die bei einem Durchschnitt mit dem Zustand FFnicht leer sind → Die den BuchstabenFFenthalten.

Falls Leerwörter erlaubt sind muss der Anfangszustand auch enthalten sein.

∀qundefined∈Q,s∈∑:\forall \widehat{q} \in Q, s\in \sum :

δundefined(qundefined,s)={q′∈Q∣∃q∈qundefined, sodass (q,s,q′)∈δ∗} \widehat{\delta}(\widehat{q}, s)=\left\{q^{\prime} \in Q \mid \exists q \in \widehat{q}, \text { sodass }\left(q, s, q^{\prime}\right) \in \delta^{*}\right\} 

bzw

δundefined(qundefined,s)=⋃q∈qundefined{q′∈Q∣(q,s,q′)∈δ∗}=⋃q∈qundefinedδ∗(q,s) \widehat{\delta}(\widehat{q}, s)=\bigcup_{q \in \widehat{q}}\left\{q^{\prime} \in Q \mid\left(q, s, q^{\prime}\right) \in \delta^{*}\right\}=\bigcup_{q \in \widehat{q}} \delta^{*}(q, s) 

Die Übergangsfunktion:

Q×s∈∑↦{…}Q \times s\in\sum \mapsto \{ \dots\} (Wort - keine Menge)

Bildet jeden Zustand mit Symbol auf einem Wort, dass alle Folgezustände enthält

Beispiel:

Endlicher Transducer

Automat beschrieben durch A=⟨Q,Σ,Γ,δ,I,F⟩\mathcal{A}=\langle Q, \Sigma, \Gamma, \delta, I, F\rangle

  • Eingabe undAusgabe
  • Menge an Anfangszuständen

Γ\Gammaoutput alphabet

δ⊆Q×(Σ∪{ε})×(Γ∪{ε})×Q \delta \subseteq Q \times(\Sigma \cup\{\varepsilon\}) \times(\Gamma \cup\{\varepsilon\}) \times Q  Übergangsrelation

I⊆QI \subseteq Qinitial states

Erweiterte Übergangsrelation (auch für Leerwort)

δ∗⊆Q×Σ∗×Γ∗×Q \delta^{*} \subseteq Q \times \Sigma^{*} \times \Gamma^{*} \times Q 

δ∗\delta^* ist die kleinste Menge bei der

∀q∈Q:(q,ε,ε,q)∈δ∗ \forall q \in Q: (q, \varepsilon, \varepsilon, q) \in \delta^{*} 

(q1,w,w′,q2)∈δ∗,(q2,s,s′,q3)∈δ⟹(q1,ws,w′s′,q3)∈δ∗ \left(q_{1}, w, w^{\prime}, q_{2}\right) \in \delta^{*},\left(q_{2}, s, s^{\prime}, q_{3}\right) \in \delta \quad \Longrightarrow \quad\left(q_{1}, w s, w^{\prime} s^{\prime}, q_{3}\right) \in \delta^{*} 

Übersetzungsrelation

Automat generiert nicht mehr Sprache sondern gibt uns eine Übersetzungsrelation (zu jedem Eingabewort, ein Ausgabewort)

[A]={(w,w′)∈Σ∗×Γ∗∣∀i∈I,f∈F:(i,w,w′,f)∈δ∗} [\mathcal{A}]=\left\{\left(w, w^{\prime}\right) \in \Sigma^{*} \times \Gamma^{*} \mid \forall i \in I, f \in F: \left (i, w, w^{\prime}, f\right) \in \delta^{*} \right\} 

[A]⊆Σ∗×Γ∗[\mathcal{A}] \subseteq \Sigma^{*} \times \Gamma^{*}

Beispiele:

Mealy-Automat

Art von Transducer, deterministisch

Ausgabe mit Eingabe verknüpft

Nur ein Anfangszustand I={q0}I=\left\{q_{0}\right\}

Alle Zustände sind Endzustände F=QF = Q

Keine ε\varepsilon Übergänge

Automat beschrieben durch A=⟨Q,Σ,Γ,δ,γ,q0⟩ \mathcal{A}=\left\langle Q, \Sigma, \Gamma, \delta, \gamma, q_{0}\right\rangle 

Γ\Gammaoutput alphabet

γ:Q×Σ↦Γ\gamma: Q \times \Sigma \mapsto \Gammaoutput function / Ausgabefunktion

Bildet Relations-Tupel → Zu jeder Eingabe und jedem Zustand eine Ausgabe(q,s,γ(q,s),δ(q,s))(q, s, \gamma(q, s), \delta(q, s))

Erweiterte Ausgabefunktion (auch für Leerwort)

γ∗:Q×Σ∗↦Γ∗\gamma^{*}: Q \times \Sigma^{*} \mapsto \Gamma^{*}

∀q∈Q,s∈Σ,w∈Σ∗:\forall q \in Q, s \in \Sigma, w \in \Sigma^{*}:

γ∗(q,ε)=ε\gamma^{*}(q, \varepsilon)=\varepsilon

γ∗(q,sw)=γ(q,s)⋅γ∗(δ(q,s),w) \gamma^{*}(\textcolor{pink}q, s w)=\gamma(q, s) \cdot \gamma^{*}(\textcolor{pink}{\delta(q, s)}, w) 

Übersetzungsfunktion

[A](w)=γ∗(q0,w)[\mathcal{A}](w)=\gamma^{*}\left(q_{0}, w\right)

[A]:Σ∗↦Γ∗[\mathcal{A}]: \Sigma^{*} \mapsto \Gamma^{*}

Beispiel:

Moore-Automat

Art von Transducer (technisch gesehen aber nicht), deterministisch

Ausgabe mit Zustand verknüpft

Nur ein Anfangszustand I={q0}I=\left\{q_{0}\right\}

Alle Zustände sind Endzustände F=QF = Q

Keine ε\varepsilon Übergänge

Automat beschrieben durch A=⟨Q,Σ,Γ,δ,γ,q0⟩ \mathcal{A}=\left\langle Q, \Sigma, \Gamma, \delta, \gamma, q_{0}\right\rangle 

 Г \text { Г }output alphabet

γ:Q↦Γ\gamma: Q \mapsto \Gammaoutput function(bei Mealy:γ:Q×Σ↦Γ\gamma: Q \times \Sigma \mapsto \Gamma)

Erweiterte Ausgabefunktion (auch für Leerwort)

γ∗:Q×Σ∗↦Γ∗\gamma^{*}: Q \times \Sigma^{*} \mapsto \Gamma^{*}

∀q∈Q,s∈Σ,w∈Σ∗:\forall q \in Q, s \in \Sigma, w \in \Sigma^{*}:

γ∗(q,ε)=ε\gamma^{*}(q, \varepsilon)=\varepsilon

γ∗(q,sw)=γ(q)⋅γ∗(δ(q,s),w) \gamma^{*}(q, s w)=\gamma(q) \cdot \gamma^{*}(\delta(q, s), w) 

γ∗(q,sw)=γ(q,s)⋅γ∗(δ(q,s),w) \gamma^{*}(q, s w)=\gamma(q, s) \cdot \gamma^{*}(\delta(q, s), w)  - bei Mealy

Übersetzungsfunktion (gleich wie Mealy)

[A](w)=γ∗(q0,w)[\mathcal{A}](w)=\gamma^{*}\left(q_{0}, w\right)

[A]:Σ∗↦Γ∗[\mathcal{A}]: \Sigma^{*} \mapsto \Gamma^{*}

Beispiel:

Büchi-Automaten

Deterministisch

Automat beschrieben durch A=⟨Q,Σ,δ,q0,F⟩ \mathcal{A}=\left\langle Q, \Sigma, \delta, q_{0}, F\right\rangle (alles gleich wie in DEAs definiert)

Akzeptanz von Wörtern

Wort s1s2s3⋯∈∑ωs_{1} s_{2} s_{3} \cdots \in \sum^\omega wird akzeptiert wenn es Zustände q0,q1,q2,q3,⋯∈Qq_{0}, q_{1}, q_{2}, q_{3}, \cdots \in Q gibt, sodass

Akzeptierte/Generierte Sprache

L(A)={w∈Σω∣w wird von A akzeptiert } \mathcal{L}(\mathcal{A})=\left\{w \in \Sigma^{\omega} \mid w \text { wird von } \mathcal{A} \text { akzeptiert }\right\} 

Beispiel:

Anwendung: in Programmen die liveliness property feststellen - Programm darf nicht absterben

Nicht-Deterministisch

Automat beschrieben durch A=⟨Q,Σ,δ,I,F⟩\mathcal{A}=\langle Q, \Sigma, \delta, I, F\rangle

I⊆QI \subseteq Q Anfangszustände

δ⊆Q×Σ×Q\delta \subseteq Q \times \Sigma \times Q Übergangsrelation

Akzeptanz von Wörtern

Wort s1s2s3⋯∈Σωs_{1} s_{2} s_{3} \cdots \in \Sigma^\omega wird akzeptiert wenn es Zustände q0,q1,q2,q3,⋯∈Qq_{0}, q_{1}, q_{2}, q_{3}, \cdots \in Q gibt, sodass

q0∈Q,q0∈Iq_{0} \in Q, \space q_0 \in I

∀i∈N:δ(qi−1,si)=qi\forall i \in \N: \delta\left(q_{i-1}, s_{i}\right)=q_{i}

lim⁡i→∞\lim_{i\to\infty} sodass irgendwann qi∈Fq_{i} \in F

Akzeptierte/Generierte Sprache

L(A)={w∈Σω∣w wird von A akzeptiert } \mathcal{L}(\mathcal{A})=\left\{w \in \Sigma^{\omega} \mid w \text { wird von } \mathcal{A} \text { akzeptiert }\right\} 

Beispiel:

Modellierung