Eine Form, mit der sich einfacher rechnen lässt:
`a(0,y) = y + 1`
`a(x,0) = a(x-1,1)`
`a(x,y) = a(x-1,a(x,y-1))`
`A = (Q, Sigma, delta, I, F)`
`Q` | Menge der Zustände |
`Sigma` | Eingabealphabet |
`delta` | Zustandsübergänge |
`I` | Anfangszustände |
`F` | Endzustände |
A = (Menge der Zustände, Eingabealphabet, Übergänge, Anfangszustände, Endzustände)
Stufe | Sprachen | Automaten | Regeln | Abgl. |
---|---|---|---|---|
Typ-3 | regulär | (deterministischer) endlicher Automat | `A -> aB` (rechtsregulär) oder `A->Ab` (linksregulär) `A->a` `A,B in N`, `a in Sigma` |
CKSV |
Typ-2 | kontextfrei | nichtdeterministischer Kellerautomat | `A -> gamma` `A in NN`, `gamma in V^"*"` |
KV |
Typ-1 | kontextsensitiv | linear platzbeschränkte nichtdeterministische Turing-Maschine | `alpha A beta -> alpha gamma beta` `A in N`, `alpha, beta, gamma in V^"*"`, `gamma != epsilon` |
CKSV |
Typ-0 | rekursiv aufzählbar (alle) | Turing-Maschine | `alpha -> beta` `alpha, beta in V^"*"`, `alpha != epsilon` |
KSV |
`G = (V, Sigma, P, S)`
`V` | Menge der Variablen (endlich) |
`Sigma` | endliche Menge, sog. terminales Alphabet (die Operatoren), wobei `V sub Sigma = 0` |
`P` | Produktionen/Regeln |
`S` | Startvariable |
G=(Menge der Variablen, terminales Alphabet, Produktionen/Regeln, Startvariable)
Beim Erstellen darauf achten, ob `epsilon`, also die leere Menge, mit zur Menge gehört.
Es werden für alle "Doppel-Belegungen" neue Zustände eingeführt. Im Beispiel ist das `{p,q}`.
`delta` | `0` | `1` |
---|---|---|
`p` | `p,q` | `p` |
`q` | `p` | `p` |
`{p,q}` | `{p,q}` | `p` |
Sprachen werden aus Grammatiken abgeleitet. Sei `G = (V, Sigma, P, S)` und `u,v in (V uu Sigma)*`:
`alpha → beta in P` und `u = gamma alpha delta` und `v = gamma beta delta`.
Wir schreiben `U => V`
`L(G)= { u in Sigma^"*" | S -> u }`
Die grafische Darstellung eines Automaten.