Sie sind auf Seite 1von 10

Schnellbersichten:

SprachTyp

Automat

Grammatik

Beispiel

Endl.
Mengen
L3 = REG

{a,ab,abb}

+ -

DFA=NFA

{a}*{b}*

+ +

DCF

DPDA

Typ3=
rechtslin.
-

{an bn|n >= 0}

- +

+ +

+
+

+ +
+ -

L2 = CF
L1= CS

PDA(Keller)
NLBA

Typ2=
Kontextfrei
Typ1=

{wcwrev|w{a,b}*}
{wwrev|w{a,b}*}
{an bn

cn

|n >= 0}

monoton G.

REC

LE

L0=RE

DTM=NTM

Typ0

H, (G*\LD)

Abzhlbare
Menge

LD,

Chomsky-Hierachie(Je Hher der Typ, desto beschrnkter):


Typ 0:
Jede Sprache ist erstmal Typ 0 (Ohne Einschrnkungen)
L= {an|n>= 1} S-> a |aS
Typ1 Grammatik:
Kontextsensitive Sprachen
U->V, wobei |U| <= |V|
(Hier drfte links auch auch nur ein Terminal stehen) (Die
Ableitung muss also gleich oder grer werden!)
Typ2 Grammatik:
Kontextfreie Grammatik
A->a A->S A->aSaaS A->
Hier darf rechts beliebieges aus Terminal und Variable
stehen. Links nur eine Variable.
Typ3 Grammatik:
Regulre Grammatik
X -> a oder X->aY oder X -> Aus Variable wird ein
Terminal oder aus Variable wird ein Terminal gefolgt von
einer Variable. Nur X->Nichtterminale geht nicht!
Alphabete :
Knnen alle mglichen Buchstaben beinhalten. = {a,b,c}
Alphabete haben eine endliche Lnge
+= Ohne
= Mit (Menge aller Endlichen Worte aus )
= Leeres Wort mit Lnge 0, gilt aber als Wort. (Anders als )

Ist selbst nie in einem Alphabet enthalten.


Beispiel: |abc| = 3 |abc |= 3
Worte w:
Jede endliche mgliche Kombination aus Wrtern ber
= {a,b,c} w = aaa, abc, a, b, c
w0=
Konkatenation von Buchstaben als Wort:
a1 a2 a3 a4 = a1 * a2 * a3 * a4 = w o r t = w*o*r*t = w
Sprachen L:
L ist eine Menge von Wrtern ber dem Alphabet
L= { w|fr das gilt} L={w | w = aw , w } (a egal)
L={w | w = a2b2w , w } (aabb egal)
L = L * L * L L
L = L+ {}
Ln= Ln-1 *L
L0= {}
1
L = {ab} bei w = {w|ab} L2= {abab}
L2= {abab, aab, aba, aa} bei w = {w|ab, a}
L(G) setzt sich aus der Grammatik G zusammen
L(G) = {w ||w|a = 2* |w|b}

+ +

+ +

Grammatik G:
G = ( ,
V,

S,

P)

Alphabet, Variable, Startsymbol, Produktionsregel

-Grammatiken erzeugen Wrter und Sprachen


-Genau so mchtig wie Regulre Sprachen /DFA/NFA
P = {S ->0}
P = {S->0S}
L(G) = {0}
L(G) = {00}
P = {S->0| 0S}
L(G) = {0, 00, 000, , 00}
P = {S->0| 0T}
T->S|1}
(1. Buchstabe immer 0, danach 0, Ende mit 1)
Aus Grammatik ChomskyTyp ableiten Beispiel1:
= {a,b,c}
L = {an|n>=1}
S-> a|aS
Es ist mindestens Typ0! Typ1, da Wort nicht krzer abgeleitet
wird. Typ2, links nur eine Variable, rechts beliebig! Typ3, da
auch einer Variable ein Termin oder ein Terminal gefolgt von
Variable ableitbar. Also ist die Grammatik regulr, also Typ3.
Aus Sprache eine Grammatik erzeugen und ChomskyTyp
ableiten Beispiel2:
= {a,b,c}
L = {awa | w }
Produktionsregel erstellen:
S-> aB (S muss immer und a ist hier gesetzt)
(nach a kommt w, welches eine Variable ist)
B-> aB|bB|cB|a (B kann alles aus w werden)
(Am ende noch das feste a)
Es ist mindestens Typ0! Typ1, da Wort nicht krzer abgeleitet
wird. Typ2, links nur eine Variable, rechts beliebig! Typ3, da
auch einer Variable ein Termin oder ein Terminal gefolgt von
Variable ableitbar. Also ist die Grammatik reglr, also Typ3.
Ein DFA:
DFA:
A = (Z,
,
,
z0,
Zend)
Zustandsmenge, Eingabealphabet, Deltaberfhrungsfunktion, Startzustand, Endzustandsmenge

-Ist ein deterministischer endlicher Automat


-Akzeptiert alle Regulren Sprachen Typ3 (Wie NFA)
-Automaten prfen Worte und Sprachen
-Die (z0,w) bestimmt den Nachfolgezustand :ZX->Z
-Akzeptiert wenn w bis zu Ende gelesen und im Endzustand
-Erweiterte berfhrungsfunktion Beispiel:

Eingabe: aab
(q0, aab) =
=
=
=
=
=

((q0,aa),b)
(((q0, a),a),b)
(((q0, a),a),b)
(q1,a),b)
(q0b)
q2

(q0, aab) = (q0, ab) = (q0, b) = q1

Aus einer Sprache einen DFA bauen: (IMMER BEWEISEN!)


= {a,b} L={w |w beginnt mit 1}
-Fr jedes Zeichen eine Kante erstellen

= {a,b}

L={w |Anzahl von a ist kleiner gleich 2}

= {a,b} L={w |w hat hchstens ein doppel a} aaa=2x aa

= {a,b} L={w |w hat mind. ein a }

= {a,b} L={w |w enthlt kein bb als Teilwort }

L= L =

= {a,b,c} L={w |w =a(bc)man, mit m,n>0 }


w=abcbcaaa
w=abca
w=abcaa
Der Automat A({q0,q1,q2,q3,q4},{a,b,c},q0,s.o.,q4) akzeptiert
L(A)=L also die Sprache.
L={w {a,b}||w|a gerade und |w|b ungerade}
w= abaa
w=aab
w=b

Erfolgsrechnung eines Wortes anhand Konfiguration DFA:


Eingabe: abba
(z0,abba)|--(z1,bba)
|--(z1,ba)|--(z1,a)|--(z2, )
Wort am Ende und
Automat in Endzustand,
daher Erfolgsrechnung!
DFA Vollstndig und Initial zusammenhngend:
-vollstndig, wenn jede Eingabe gelesen werden kann
-intialzusammenhngend, wenn jeder Zustand erreichbar
-Jeder DFA hat O.B.d.A diese Eigenschaft, wg. Schnell gebaut.

Automat initial zusammenhngend zu machen:


-Jeden unerreichbaren Zustand streichen.
Automat vollstndig zu machen:
-Dort wo er blockiert einen Mllzustand einfgen mit Schleife
auf sich selbst. Keine Kante fhrt heraus, er schleift.
Mengeninklusionsbeweis L(A)M und ML(A) :
-Jede Menge einer Sprache in beide Richtung beweisen
- M L(A) (Jedes Wort aus M wird akzeptiert)
Sei wM, dann kann w nach Konstruktion (A ist vollstndig)
zu Ende gelesen werden. Nach Konstruktion der Zustnde
und der Zustandsbergnge enden wir dann in q2(da w eine
gerade anzahl von a und eine ungerade Anzahl von b enthlt)
und akzeptieren. Also ist auch WL(A). ERFOLGSRECHNUNG!
-L(A) M (Jedes Wort das A akzeptiert ist in M)
Sei wL(A). Da w akzeptiert wird, muss A in q2 enden. Dies
ist aber nach Konstruktion gleichbedeutend damit, dass w
gerade viele as und ungerade viele bs enthlt. Damit gilt
auch wM.
Minimalautomat vDFA erstellen:
Gegeben:
1. Schritt:
Tabelle erstellen
q0
q1
q2
q3
q4

*
*
*
*

*
*

q0

q1

q2

q3

2. Schritt:
berall in der Table wo ein Endzustand mit einem nicht
Endzustand sich kreuzt kommt ein Sternchen hinein. *
3. Schritt: Tabelle durchgehen mit a (Spalte, Zeile!)
-Betrachte q0 q3: q0mit a->q1 und q3mita->q4
Paar q1,q4 schon*markiert? Ja,dh q0,q3 markieren. *
-Betrachte q1 q3: q1mit a->q4 und q3 mita->q4
Paar q4,q4 bereits * markiert? Nein, auerhalb Tabelle.
-Betrachte q2 q3: q2mit a->q3 und q3 mita->q4
Paar q3,q4 bereits * markiert? Ja,dh q2,q3 markieren. *
-Betrachte q0 q2: q0mit a->q1 und q2 mita->q3
Paar q1,q3 bereits * markiert? Nein, leer.
-Betrachte q1 q2: q1mit a->q4 und q2 mita->q3
Paar q4,q3 bereits * markiert? Hier ja, weil Aufg. fehlerhaft. *
-Betrachte q0 q1: q0mit a->q1 und q1 mita->q4
Paar q1,q4 bereits * markiert? Ja,dh q0,q1 markieren. *
4. Schritt: Tabelle durchgehen mit b (Spalte, Zeile!)
-Betrachte q0 q2: q0mit b->q2 und q2 mitb->q2
Paar q2,q2 bereits * markiert? Nein, auerhalb Tabelle.
-Betrachte q1 q2: q1mit b->q2 und q2 mitb->q2
Paar q2,q2 bereits * markiert? Nein, auerhalb Tabelle.
-Betrachte q1 q3: q1mit b->q2 und q3 mitb->q0
Paar q2,q0 bereits * markiert? Nein, auerhalb Tabelle.
5. Schritt: Bei mehr Buchstaben oder Vernderung in der
Tabelle so oft wiederholen, bis nichts mehr geschieht.
6. Schritt: Minimalautomat bauen:
-Alle nicht markierten Zustnde verschmelzen!
-Kanten als altem Automaten bertragen

Produktautomat aus 2x DFA konstruieren:


-Verfahren dazu ist in P-effizient
-Man hat zwei gegebene Automaten und mchten den
Schnitt der beiden Sprachen akzeptieren. Also beide
Automaten gleichzeitig laufen lassen fr eine Eingabe.
1.Schritt: Neuer Startzustand ist Paar aus alten
Startzustnden

2.Schritt: So viele Zustnde ergnzen wie beide Automaten


multipliziert haben
3. Schritt: Kanten ergnzen
(A mit a -> B und 1 mit a-> 2 = A1 mit a-> B2)
4.Schritt: Endzustnde setzten immer wenn ein Endzustand
eines alten Automaten dabei war. (B und 2,3 = B2 und B3)

Potenzautomaten(DFA) aus NFA erzeugen:


NFA
Potenzautomat(DFA)

1. Schritt: Tabelle erstellen:


-Zuerst Startzustand eintragen
Zustand
a
b
(Hier S1S2 wg. Epsilonkante)
S1S2
S1S2S3
-Alle Kanten aus diesen
S1S2S3
S1S2S3 S2S3
Zustnden gehen mit dem
S2S3
S1S2
S2S3
Buchstaben.
-Wenn keine neuen Zustnde mehr entstehen -> fertig.
2.Schritt: Automat aus Tabelle bauen
-Alle Zustnde aufmalen und Kanten aus Tabelle gehen
-Startzustand des NFA ist Startzustand DFA
-Alle Zustnde die im NFA Enzustand waren und Teilmenge
im Zustand des DFA sind sind auch Endzustand
-Automat vollstndig machen, so dass aus jedem Zustand
jedes Eingabesymbol gelesen wird. (Mllzustand)
-Jeder NFA kann zu einem quivalenten DFA gebaut werden!
Aus einer Sprache einen NFA konstruieren:
= {a,b} L={w |vorletztes Symbol von w ist a}

Abschlusseigenschaften von DFA:


-Vereinigung L1 L2 = {w*| wL1 oder wL2}
-Schnitt L1 L2 = {w*| wL1 und wL2}
-Konkatenation L1 * L2 = {w1w2| w1L1 und w2L2}
-Kleenestern L = {}L{w1wn}wL}
-Komplement L = {w*| w L }
Komplement eines DFA erzeugen:
-Alle Endzustnde und nicht-Endzustnde tauschen!
Schnitt zweier Sprachen/DFAs erzeugen:
-L1L1 = (L1 L2) Also L1 und L2 komplemt
vereinigen und davon das Komplement nehmen!

NFA:
-Nicht deterministischer endlicher Automat
-Akzeptiert sobald es eine Mglichkeit gibt, den er gehen
kann, so dass er in einem akzeptierenden Zustand beim
Wortende ist. -Mehrere Startzustnde mglich!
-Gleich mchtig wie DFA
-Bei kommt hier eine Menge heraus! :ZX ->2z
Grammatik zu NFA konstruieren:
S->aA|bB|cD|
A->bB|cA|a
B->cA|b
-Terminale sind Endzustnde.S->aA = S Kante a zu Zustand A.
-Nur-Terminale fhren zu neuen Endzustand X.
-S-> = Startzustand ist auch Endzustand

Erweiterte berfhrungsfunktion eines NFA:


({z0},011) = ({z0}11)
= ({z0,z1},1)
= ({z0,z1},) (,)= {z0,z1}
erhlt nun eine Zeichenfolge anstatt ein Zeichen.
Konfuguration und Erfolgsrechnung obigen NFAs:
(z0,011)|--(z0,11)|--(z1,1) blockiert
(z0,011)|--(z0,11)|--(z0,1)|--(z0,) akzeptiert nicht
(z0,011)|--(z0,11)|--(z0,1)|--(z1,) Erfolgsrechnung!

-NFA (GFA):
-Kann nicht mehr als ein DFA/NFA, aber stottern mit
-NFA zu einem NFA umbauen:
NFA

Regulre Ausdrcke:
Konkatenieren R1*R2 , wenn R1 und R2 bereits Regexp
ODER (R1|R2)
Kleene Stern (R1) Beliebig oft
Plus (R1)+ = R1*(R1) Mindestens einmal bis n oft.
Rekursiver Aufbau (a + bc) besteht wiederum aus Regexp.
Daher Gesamtausdruck auch Regexp.

(ab) b(a|b) = Alle Worte die am Anfang beliebig oft a


gefolgt von b enthalten. Daraufhin beliebig viele b, daraufhin
folgt definitiv ein a oder ein b. w= ababbba w=a w=bbb

-NFA

Regulre Ausdrcke:

Pumping Lemma Regulre Sprache:


-Zeigen, dass eine Sprache nicht regulr ist, da jede regulre
sich aufpumpen lassen msste.
L = {ambn|m<n} Zeigen Sie nicht regulr.
Zu Zeigen: Sei L= {ambn|m<n} regulr.
Sei k die Zahl aus dem Pumping Lemma. Betrachte nun das
Wort akbk+1 L.
Fr Zerlegung z = uvw mit
1) |uv| <=k und 2)|v| >=1 folgt v= aj, 1<= j<=k.
Dann ist aber fr uv2w = ak-ja2jbk+1 = ak+ja2jbk+1 L.
Folglich ist L nicht regulr.

Regulre Ausdrcke zu NFA:


(a + bc):
a=

Regulre Sprachen Typ3:

1. Kommt man vom Startzustand in einen Endzustand nur


durch ? Falls ja, ist der neue Startzustand auch

Endzustand.
2. Alle Zustandsanzahlen und nicht Epsilonkanten
bleiben gleich
3. Schauen was anstatt eingesetzt werden muss um
Funktionen zu wahren. Alle Mglichkeiten ber
betrachten und ersetzen.

a =
-Neuer Zustand hinzufgen
-Vom neuen Zustand -Kante auf alten Startzustand
-Neuer Zustand ist Startzustand und Endzustand
- -Kante vom alten Endzustand zum neuen Zustand

Sprache zu Grammatik zu ChomskyTyp:


L = {ambn|m,n >=1} w=ab w=aab w=abbb w=aabb
Grammatik:
S -> aS|aB
B->bB|b
= Typ 3 = Regulre Grammatik
Vom NFA/DFA darstellbar

Kellerautomat(PDA):

A = (Z,

, zStart,

Zend ,

Zustandsmenge, Eingabealphabet, Kellersymbole , Delta, Startzustand, Endzustandsmenge, Kellerbodensymbol

bc =

-Nicht deterministisch
-Akzeptiert bei Wortende und leerem Keller!
-LIFO Speicher (Stack)
Wort zu Transitionsfolge:
(z, abbabba,S) |--(z, bbabba

b und c konkatenieren
=

a+bc=

(a + bc):

Sprache zu regulren Ausdruck:


L = {anbm| n>=4, m<=3}
regexp = aaaa(a)(bbb|bb|b|)
L = {w{a,b} | |w|a ist gerade}
regexp = b| (babab )

Grammatik zu PDA Produktionsregeln:


={a,b} V={S,X,Y}
S->bSY|aXX
X->aYS|bXY|a
Y->bXS|b
zS -b> zSY zS -a> zXX
zX -a> zYS zX -b> zXY
zX -a> z
zY -b>zXS zY-b> z
Wort zu Ableitung:
w = abbabba
S=>aXX => abXYX=> abbXYYX =>* abbabba
Wort zu Transitionsfolge:
(z, abbabba,S) |--(z, bbabba, XX) |--*(z,,)
Zustand, Lesen, Auf Keller

Sprache zu Automatenkonstruktion:
L = {anbn|n >=1}
z0,a, ->z0,A (Fr jedes gelesene a schreibe ein A auf
Keller wenn Kellersymbol oben ist)
z0,a,A->z0,AA (Fr jedes gelesene a schreibe AA auf Keller.
Entnommenes A und ein zustzliches)
z0,b,A -> z1, (Wechselt den Modus in anderen Zustand, nur
einmal. Nimmt ein A vom Keller und legt nichts rauf)
z1,b,A->z1, (Liest ein b, lscht ein A vom Keller und tut
nichts drauf)
z1,, ->z2, (Wenn Wort leer und Kellersymbol oben,
lsche Kellersymbol und Ende)
w= ab
(z0, ab,)|--(z0,b,A)|--(z1,b,)|--(z2,,)
L = {anb2n|n >=1}
Gleiches Spiel nur mit einem A mehr drauflegen. So knnen
doppelt so viele bs gelesen werden.
-Wenn das Leere Wort gehen soll: z0,, ->z2, ergnzen.
w=abb
(z0,abb, )|--(z0,bb,AA)|--(z1,b,A)|--(z1,,)|--(z1, , )

Kontextfreie Grammatiken Typ2:


Sprache zu Grammatik zu ChomskyTyp:
L = {anbn| n >=1} w=ab w=aabb w=aaabbb
S->aSb|ab
(S=>aSb=>aaSbb=>aaabbb)
Um diese Sprache abzubilden ist eine Art Gedchtnis ntig.
Denn die bs werden genau so oft wie as erzeugt, was man
sich merken muss. Dies kann nur ein PDA mit seinem Keller
oder mchtigeres.

Kontextfreie Grammatik zu ChomskyNormalForm:


S->aXYS|Ya X->bX| Y->cc|XX|b
1. Schritt: Separieren
Wo sind Terminale? Ersetze alle Terminale durch neuerstellte
Variable. Terminale drfen nur noch alleine rechts stehen!
S->AXYS|YA A->a
X->BX|
B->b
Y->CC|XX|B C->c
2. Schritt: Verkrzen
Keine rechte Seite darf lnger als 2 sein! Sonst neue Variable.
S->A H1 |YA A->a
H1->XH2
B->b
H2->YS
C->c
X->BX|
Y->CC|XX|B
3. Schritt: Epsilon-Regeln elimieren
-Von welcher Variable komme ich zu Epsilon? (Auch |x oder
auf ableitbar.
V = {X,Y} (Y lsst sich auf nur X ableiten)
-Epsilon verschwindet nun, aber wir gehen davon aus, dass
ein zu nichts werden kann.
S->AH1|YA|A (Y kann einmal nichts werden, daher auch A!)
H1->XH2|H2 A->a
H2->YS|S
B->b
X->BX|B
C->c
Y->CC|B|XX|X
4. Schritt: Kettenregeln elimieren
Alle betrachten wo eine Variable zu nur eine Variable ableitet
K={(X,B),(Y,B),(H2,S),(H1,H2),(S,C)}
Transitive Hlle berechnen: (X->B) und (B->b) = (X->b)!
X->BX|b (Von B kommt man zum b also einsetzen!)
Y->CC|b|XX|BX (Fr ein einzelnes X alles eingesetzen was
davon ableitbar ist, also alle Regeln von X in Y ergnzen!)
S->AH1|YA|c
H2->YS|AH1|YA
H1->XH2|YS|AH1|YA|c (Alle Regeln von H2 ergnzen!)
Grammatik ist nun in ChomskyNormalForm!
Abschlusseigenschaften bei kontextfreien Sprachen:
-Vereinigung
G1=(V1, 1,P1,S1) G2=(V2, 2,P2,S2)
Grammatik bauen, welche die Vereinigung beider erkennt:
-Neue Grammatik, die alle Variablen aus beiden enthlt.
-Alphabet ist Vereinigung beider Sprachen
-Produktionen beider Sprachen als Grammatik
-Startsymbol ist SNeu->S1 SNeu->S2
G=(V1V2{S},12,P1P2 {SNeu->S1,SNeu->S2},SNeu)
Auerdem sollten die Variablen umbenannt werden, um sie
disjunkt zu machen. (Keine Zuflligen neuen Produktionen)
-Kontextfrei ist unter Vereinigung abgeschlossen
-Konkatenation
G1=(V1, 1,P1,S1) G2=(V2, 2,P2,S2)
SNeu->S1S2 -Neues Startsymbol mit einer Regel
G=(V1V2{S},12,P1P2 {SNeu->S1S2},SNeu)
-Kontextfrei ist unter Konkatenation abgeschlossen
-KleeneStern
G1=(V1, 1,P1,S1)
SNeu->S1SNeu (beliebig oft)
SNeu-> (Abbruch und 0 Mal)
G=(V1{S},1,P1 {SNeu->S1S,SNeu->},SNeu)
-Kontextfrei ist unter KleeneStern abgeschlossen

Kontextfreie Sprache Darstellung als Ableitungsbaum:


G1=(V1, 1,P1,S1)
V={S,T,U}
={a,b}
P={S->bTU S->b T->bUa U->UT U->a

CYK-Algorithmus:
S->SA|a
A->BS
B->BB|BS|b|c
w= abacba
1.Schritt: Tabelle erstellen
-Wort als berschrift, Pro Buchstabe eine Spalte nach rechts
a
b
a
c
b
a
S
B
S
B
B
S

A,B
B
A,B

A,B
S
B

w }

Pumping Lemma kontextfreie Sprache:

Subern von kontextfreien Grammatiken:


-Gesubert ist es wenn eine Grammatik generierend und
erreichbar ist.
S->ABA|BA A->BB|Ca B->AC E->Eb|EE C->CcC|c
D->Da|AB
1.Schritt : generierend:(A->a) (Irgendwann zu Terminal)
VGen:{C,A,B,D,S} S ist generierend wenn nicht
S L!=
Also ist E->Eb|EE nicht generiend und wird gelscht!

2.Schritt: Erreichbar: Variable ist von S erreichbar.


D->Da|AB ist nicht erreichbar und wird gelscht!

b
B
A,B

S
2.Schritt: Erste Zeile
Wie erhlt man die Terminale aus den Spalten?
a durch S , bdurch B , c durch B eintragen!
2.Schritt: Teilbaum betrachten
a
b
Kann das Paar SB abgeleitet werden?
S
B
Nein, also darunter eintragen.

Wort aus Ableitung = bbabaaaL(G)


Tiefer der Ableitung ist 5, da 5 Variablen bis zum tiefsten
Blatt durchgangen wurden. Das sind mehr Variablen als die
Grammatik hat, deshalb mssen Variablen doppelt
durchlaufen worden sein. (T betrachten, man htte den
unteren Teilbaum auch gleich oben einhngen knnen)

B
A,B

a
S

Kann das Paar BS abgeleitet werden?


Ja, aus A,B, also darunter eintragen.

Repeat fr die ganze Zeile nach rechts verrckt


3.Schritt: Teilbaum vergrert betrachten
a
b
a
S
B
S

A,B
S
Kann das Paar S,BS abgeleitet werden?
(S,A) Ja, aus S, eintragen! (S,B) Nein.
Kann das Paar ,S abgeleitet werden? Nein.
Repeat fr die ganze Zeile nach rechts verrckt
4.Schritt: Teilbaum vergrert betrachten

B
A,B
B

Kann das Paar S,B abgeleitet werden? Nein.


Kann das Paar , abgeleitet werden? Nein.
Kann das Paar S,B abgeleitet werden? Nein, also eintragen.
Repeat fr die ganze Zeile nach rechts verrckt
5.Schritt: Teilbaum vergrert betrachten
-Teilbaum vergrerung so lange vornehmen, bis Tabelle
ausgefllt. Wenn ganz unten ein S steht, ist das Wort in der
Sprache und kann akzeptiert werden.

DTM:
A = (Z,

, zStart,

Zend) # Symbol leeres Feld

Zustandsmenge, Eingabealphabet, Bandsymbole , Delta, Startzustand, Endzustandsmenge

-Kann alles akzeptieren, was berechenbar ist. Typ0


-Besitzt einen Lese-Schreibkopf, welcher ber dem aktuellen
Symbol auf dem Eingabeband steht
-Eingabeband ist nach rechts unendlich (links auch mglich)
-Endlich viele Zustnde
-Kopf kann nach links und rechts wandern und alle Symbole
auf dem Band manipulieren (nicht nur Stack)
-Zum akzeptieren muss das Eingabewort nicht vollstndig
sein, beim erreichen 1. Endzustand wird w akzeptiert.
-Eine von einer DTM akzeptiere Sprache ist aufzhlbar.
: (ZX) -> (X{L,R,H}XZ)
LD ist aufzhlbar und nicht von DTM berechenbar.

Beispiel DTM:
Bei einer eingabe 111 sollen am Ende 6x1 auf dem Band
stehen.
Strategie: Fr jede gelesene 1 gehen wir ans Ende und
schreiben eine 1 aufs Band.
z0,1->z1,X1,R (Markiere erste 1 und nach rechts)
z1,1->z1,1,R (Skippe alle 1)
z1,X2->z1,X2,R (Skppe alle X)
Z1,#->z2, X2,L
z2,X2,->z2, X2,L (
z2,1->z2,1,L
z2,X1->z0,1,R
z0,X2->z0,1,R
z0,#->z4,#,L

Erfolgsrechnung DTM:

Petrinetze:
z0aab|--Xz0ab|--XXz0b|--XXz0#|--XXz1b|--XXbz2#
Landet im Endzustand, ist Erfolgsrechnung!

Ein-Band DTM: (Zustandsdiagramm angeben/konstruieren)


-Zu Jeder DTM mit einseitig unendlichen Einband, gibt es eine
DTM mit beidseitig unendlichem Band

k-Band DTM: (Erluterung der Funktionsweise DTM)


-Hat k beidseitig unendliche Bnder mit jeweils LSK
-Ein Eingabeband nur zum Lesen (LSK R und L)
-Ein Ausgabeband nur zum schreiben (LSK nur rechts)
-Jede k-Band DTM hat eine quivalente mit einem Band

NTM:
: (ZX) -> (2X{L,R,H}XZ)
-Akzeptiert wenn es eine Erfolgsrechnung gibt

Bestimmte die Menge der Nachfolgemarkierung m, wenn t in


der Markierung m = 4P1 + 2p2+2p4 schaltet.
m=(P1: 4-3) + (P2: 2-2) + (P3: 0+4) + (P4:2+7) = 9
Bestimme die Menge aller Markierungen fr die t in Netz
aktiviert ist. Ist die Menge endlich?
t ist aktiviert, falls p1(s)>=W1(s,t) UND p2(s)>=W2(s,t), also
p1(s)>=3 UND p2(s)>=2, daher ist die Menge unendlich.
(Also auf allen Pltzen vor der Schaltung genug Marken fr
Kantengewichtung)
Bestimmte die Menge aller Markierungen fr die t im Netz
nicht aktiviert ist. Ist die Menge endlich?
t ist nicht aktiviert falls p1(s)<w(s,t) ODER p2(s)<W1(s,t), also
p1(s)<3 ODER p2(s)<2, also ist die Menge unendlich.
Da p1<3 sein kann und p2>=2 oder in anderen Fall p1>=3 und
p2<2 sein kann und es zur Schaltung gelten muss, dass beide
Pltze schalten knnen, also aktiviert sein mssen. Daher
knnen auch hier unendlich viele Markierungen gewhlt
werden fr die t im Netz nicht aktiviert ist.
( )->[t] kann nicht schalten (kein Marker)
(.)->[t] kann nur einmal schalten (1 Marker)
(.)<->[t] kann beliebig oft schalten
(.)-> <-2[t] Pro Schaltung werden 2 Markengeneriert

Probleme:
Wortproblem
Endlichkeitsproblem
Leerheitsproblem
quivalenzproblem

Was ist abzhlbar, was ist aufzhlbar, berabzhlbar?


Nerode-quivalenz?

GFA fast buchstabierend, buchstabierend, Lambda-Frei !

Mengen:

Petri Netz

Teilmengen AB gdw. fr jedes aA und eB gilt.


Bei Mengengleichheit in beide Richtungen beweisen.
Differenz: {1,2,4}\{1,2,3} ={4}
Potenzmenge: P({1,2})= {,{1},{2},{1,2}}
Karthesisches Produkt:
Z={1,2,3} A={a,b,c} AXZ={(a,1),(a,2),(a,3)(b,1)..}
AXA={(a,a)(a,b)..} AXZXA={(a,1,a),(a,2,a)..}

Bume einhngen
DFA Konstruieren der alle Worte auf aaa akzeptiert:

quivalenzklasse und Suffix bilden:


L={w {a,b}||w|a gerade und |w|b ungerade}
quivalenzklasse: Welche Mglichkeiten haben wir das Wort
zu bilden, so dass es noch nicht akzeptiert wird.
[] (Wort ist noch leer)
[b] (bist ungerade und a gerade)
[a] (a ungerade, b gerade)
[ab] (a ungerade, 1 ungerade)
Suffix: ist das was dran gehngt werden muss, damit
akzeptiert wird.
Suffix()= w[a]
Suffix(1)= w[ab]
Suffix(0)= w[]
Suffix(01)= w[b]

Nerode quivalenz:
-Jede Sprache L erzeugt eine Relation RLX erklrt
durch: uRLv gdw. Fr alle w(uwL <=> vw L)
Also nach den Prfixen u und v stellt sich die gleiche Situation
ein.
-Jeder DFA erzeugt eine Relation RAX erklrt durch:
uRAv gdw. (q0, u) = (q0, v).
-Also Worte u und v sind Nerode-quivalent, wenn sie aus
dem gleichen Startzustand den gleichen Zustand erreichen.
quivalente Zustnde: Zwei Zustnde p,q eines DFA A sind
quivalent wenn fr alle Wrter w gilt: (p, wEnd)
gdw. (q, w)End.
Entscheidungsverfahren:
Zwei Zustnde p,q sind nicht quivalent wenn gilt: 1) p
akzeptiert und q nicht, sie behandeln das Wort w anders.
2) Es gibt Zustnde die als nicht quivalent bekannt sind.
(Unterschiedlich und p fhrt mit x zu v und q zu s, dh. v!=s
also auch p!=q.