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.

q0Qq_{0} \in Qinitial state

FQF \subseteq Qfinal states

Erweiterte Übergangsfunktion (auch für Leerwort)

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

qQ,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

qQ:(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 qfF} \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={{qundefinedQundefinedqundefinedF}{q0undefined} falls εL(A){qundefinedQundefinedqundefinedF} 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.

qundefinedQ,s:\forall \widehat{q} \in Q, s\in \sum :

δundefined(qundefined,s)={qQqqundefined, 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)=qqundefined{qQ(q,s,q)δ}=qqundefinedδ(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

IQI \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

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

(q1,w,w,q2)δ,(q2,s,s,q3)δ(q1,ws,ws,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)Σ×ΓiI,fF:(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^{*}

qQ,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^{*}

qQ,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

IQI \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

q0Q,q0Iq_{0} \in Q, \space q_0 \in I

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

limi\lim_{i\to\infty} sodass irgendwann qiFq_{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