zusätzlich: u ist eine

Werbung
Info4 Stoff
Aufgabentypen:
•
Grammatik
CH einordnen
NFA
•
Grammatik
Chomsky-NF
CYK-Algorithmus: Tabelle / Ableitungsbäume
•
Grammatik
streng kf. Grammatik
•
Grammatik
Pumping Lemma Beweis, dass Gr. nicht reg, bzw. kf.
•
NFA
•
zeige, dass eine Funktion pr. rek.
Sprache DFA
reg. Ausdruck (KSE-Regeln)
Turingmaschine
Diagonalisierung
Entscheidbarkeit
Sortierverfahren Laufzeitbestimmung Induktionsbeweis, dass Sortierung korrekt
•
Heap-Sortierung (schrittweise) mit unsortiertem Binärbaum
•
AVL-Baum aufbauen (mit Rotationen)
Spickerblatt:
Grammatik G = (V Variablen, Terminalalphabet V Ø, P Produktionen, S Startvariable V)
kontextsensitiv (Typ 1):
für alle Regeln u → v gilt u ≤ v .
kontextfrei (Typ 2):
zusätzlich: u ist eine !"#
regulär (Typ 3):
zusätzlich: v ist entweder ein einzelnes Terminalzeichen, oder
v ≥1
ein Terminalzeichen gefolgt von einer einzelnen Variablen.
Bei allen 3 Typen ist jedoch die Produktion S → ε $&%(')+*,-/. 0 -Sonderregelung).
BNF: zur Beschreibung von Typ 2 Grammatiken.
Regeln:
statt A → a, A → b schreibt man A → a | b
statt A → ac, A → abc schreibt man A → a[b ]c
A → a{b}c b kann beliebig oft vorkommen.
Bei kontextfreien Sprachen sind die Ableitungsgraphen immer Bäume.
eindeutige, kontextfreie Grammatik: für jedes Wort w ∈ L(G ) gibt es genau eine
Linksableitung. Sonst mehrdeutig! streng kf.: 1234265 -Produktion
DFA M (für CH3) = (Z Zustände, 7
8
Übergangsfunktionen)
Eingabealphabet,
z0 Startzustand, E ⊆ Z Endzustände,
NFA kann mehrere Startzustände haben. Umwandlung zu DFA immer möglich (MyHill)!
Zu jedem DFA M ∃ reguläre Grammatik G mit L(G) = L(M).
regulärer Ausdruck: Beispiel: Alle Worte, die 0110 enthalten.
Umwandlung DFA 9
{(0|1)*0110(0|1)*}
reg. Ausdruck:
-
neuen Start- :;<>=?;@<A&:CBED(F;<HGJIKDML -Übergängen
-
Regel K:
-
Regel S:
-
Regel E:
*
Ist die Sprache L ⊆ Σ durch einen regulären Ausdruck beschreibbar ⇔ L regulär.
Pumping Lemma:
zeigen, dass eine Sprache L nicht regulär ist. -> uvw-Theorem:
n = Pumpingzahl, x ≥ n , x =uvw, v ≥ 1 , uv ≤ n , uv i w ∈ L
zeigen, dass eine Sprache L nicht kontextfrei ist: uvwxy-Theorem:
x ≥ n , vx ≥ 1 , vwx ≤ n , uv i wx i y ∈ L ; i ≥ 0
Abgeschlossenheit: Die Menge L von Sprachen ist abgeschlossen unter der Operation
u
,
falls gilt: L1 , L2 ∈ L ⇒ L1 v L2 ∈ L .
zu jeder kontextfreien Grammatik G mit ε ∈ L (G ) gibt es eine äquivalente Grammatik G’,
die ε -frei ist. ( äquivalent: L(G) = L(G’) )
Chomsky-Normalform (CNF): Alle ε -Produktionen und alle Zyklen müssen weg! Am
Schluss dürfen nur noch Produktionen der Form A N OQPSRTU&VXWZY [6\+]^`_bac^\de\fhg
Ableitungsbäume einer kontextfreien Grammatik in CNF sind immer Binärbäume,
also kann ein Wort der Länge n in genau 2n-1 Schritten abgeleitet werden!
zu jeder kontextfreien Grammatik G mit ε ∉ L (G ) gibt es eine äquivalente Gr. G’ in CNF.
CYK-Algorithmus:
kein exponentieller Aufwand mehr, sondern O(n3). Verfahren: zuerst
umformen in CNF. Um zu prüfen, ob Wort x in L i
Kellerautomat M (für CH2) = (Z Zustände, r
z0 Startzustand, #∈ Γ
Kellerbodenzeichen).
bei deterministischem KA zusätzlich E ⊆ Z
Eingabealphabet,
jlk+monpqpn
Γ
Kelleralphabet st
Übergangsfunktionen,
Übergang z.B. δ ( z 0 , a, # ) → ( z 0 , A# ), ( z1 , A# )
Endzustände
∀z ∈ Z , ∀a ∈ Σ, ∀A ∈ Γ : δ ( z , a, A) + δ ( z , ε , A ≤ 1
Z, außerdem mus gelten:
deterministisch: Automat hat zu jedem Zeitpunkt höchstens eine Alternative!
eine kontextfreie Grammatik G heißt deterministisch kontextfrei, falls es einen
deterministischen KA M gibt mit L(G) = L(M).
Ch2-Grammaktik G=(V, Σ , P, S) w
xyz{}|(~€|‚&ƒ„†…ˆ‡Š‰€‹+Œo&Ž Σ , V ∪ Σ , δ , z, S) :
-
Für jede Regel aus P: δ ( z , ε , S ) → ( z , a )
-
zusätzlich für alle a ∈ Σ : δ ( z , a, a) → ( z , ε )
nichtdet. KA M = (Z, Σ , Γ , δ , z0 , #) 
’‘”“ -Grammatik G=(V, Σ , P, S) :
-
V := {S } ∪ Z × Γ × Z
-
S•
-
[z, A, z’] ™
š
für alle δ ( z , a, A) → ( z ' , ε )
-
[z, A, y] ›
œžŸ˜ ¡Q @¢@£
für alle δ ( z , a, A) → ( z ' , B) und alle y ∈ Z
-
[z, A, y’] ¤
–˜— 0, #, z]
œ”˜žŸ , B, y][y, C, y’]
für alle z ∈ Z
für alle δ ( z , a, A) → ( z ' , BC ) und alle y , y '∈ Z
LR(k)-Grammatik: Eine kontextfreie Grammatik ist eine LR(k)-Grammatik, wenn man durch
Lookaheads der Länge k erreichen kann, dass bei einer Reduktion von Links nach
rechts in jedem Schritt genau eine Regel anwendbar ist.
Jede kontextfreie Sprache, für die es eine LR(k)-Grammatik gibt, ist det. k-frei.,
Turingmaschine (für CH1 und CH0) = (Z Zustände, ¥ Eingabealphabet, Γ Bandalphabet,
¦
Übergangsfunktionen, z0 Startzustand, § ∈ Γ \ Σ Leerzeichen, E ⊆ Z Endzustände).
Übergang δ ( z , a ) → δ ( z ' , b, x ) ; d.h. wenn sich M im Zustand z befindet und unter
dem Schreib-/Lesekopf das Zeichen a steht ¨
Übergang zu z’, schreibe anstatt des a’s
das Zeichen b und bewege den Schreib-/Lesekopf in Richtung x (R, oder L)
Konfiguration: (© ª@«+ª ¬ ): ­® liegt auf dem Band, Maschine befindet sich im Zustand z,
Schreib-/Lesekopf auf erstem Zeichen von ® . ( α , β ∈ Γ * )
Startkonfiguration einer Turingmaschine bei Eingabe x : (ε , x, z 0 ) .
linear beschränkte Turingmaschine: Sie darf nur Positionen beschreiben, an denen zu Beginn
die Eingabe x stand.
Die von Turingmschinen akzeptierten Sprachen sind vom Typ CH0.
Die von linear beschränkten Turingmaschinen akzeptierten Sprachen sind vom Typ CH1.
Abschlusseigenschaften:
Typ
Schnitt
Vereinigung
¯
Komplement
¯
CH3
det kf
/
CH2
/
Produkt
¯
¯
¯
¯
/
/
¯
¯
¯
¯
¯
¯
CH0
¯
¯
¯
¯
¯
/
/
¯
/
CH1
Stern
Entscheidbarkeit:
Typ
CH3
Wortproblem
ist Wort x in L(G) ?
¶
Leerheitsproblem
ist L(G)=Ø ?
¶
det kf
¶
¶
CH2
¶
¶
CH1
¶
CH0
/
Äquivalenzproblem
L(G1)=L(G2) ?
¶
Schnittproblem
L(G1) ° ±³²µ´ 2) ?
¶
¶
/
/
/
/
/
/
/
/
/
Turing-Berechenbarkeit: Es gibt eine Turingmaschine, die für alle Eingaben
bin(n1)#bin(n2)#...#bin(nk) nach endlich vielen Schritten mit bin(f(n1, ..., nk)) auf dem
Band stoppt.
Jede k-Band Turingmaschine kann man durch eine 1-Band Turingmaschine simulieren.
Loop-Programme:
xi:=c, xi:=xj+c, xi:=xj-c (=0, falls c>xj) sind Loop-Programme.
Beispiel: IF x=0 THEN A END
·
y :=1;
LOOP x DO y:=0 END;
LOOP y DO A
nicht Loop-berechenbar: Ackermann-Funktion
Ist eine Funktion While- oder Goto-berechenbar, so ist sie auch Turing-berechenbar.
Klasse der primitiv-rekursiven Funktionen (entspr. Loop):
-
alle konstanten Funktionen
-
Nachfolgefunktion s(n) = n+1
-
Projektionen f(n1, ..., nk)=nj für alle j∈ {1, ..., k}. Bsp.: p13 (ad ( x, y ), x, y )
-
Komposition: Sei f, g pr.rek., so ist auch f(g(n)) pr.rek. ∀n ∈ N 0
-
Funktion, die aus pr. rek. Funktionen entsteht. Sei F : N 0k → N 0 und g, h pr.rek, dann
, falls n = 0
h( F (n − 1, x 2 ,..., x k ), n − 1, x 2 ,..., x k ) , sonst
g ( x 2 ,...x k )
F(n, x2, ..., xk) =
0
, falls x = 0
add (mult ( x − 1, y ), y ) , sonst
Bsp.: mult (x,y) =
¸º¹˜»¼‚¼e½6¾½&¿ À
-rekursiven Funktionen (entspr. While, Goto):
À
zusätzlich -Operator. Sei f Á : N 0k → N 0 , dann
( x1 ,..., x k )
min{ n ⊂ N | f (n, x1 ,...x k ) = 0}
(undefiniert )
Â
Menge A ⊆ Σ * heißt entscheidbar, wenn:
ℵ A (w) =
1, w ∈ A
0, w ∉ A
, falls f (m, x1 ,..., x k ) def. ∀ m ≤ n
, sonst
semi-entscheidbar, wenn:
ℵ A (w) =
1,
w∈ A
undefinier t, w ∉ A
entspr.
für alle w ∈ Σ * ,
charakteristische Fkt.
semi-charakteristische Fkt.
Eine Sprache A ⊆ Σ ist genau dann entscheidbar, wenn sowohl A als auch A ⊆ Σ* \ A semi*
entscheidbar sind.
rekursiv aufzählbar: Für die Sprache A ⊆ Σ * gibt es eine berechenbare Fkt. f : N 0 → Σ * ,
so dass A={f(0), f(1), f(2), ...}. Genau dann ist die Sprache auch semi-entscheidbar!
spezielles Halteproblem: Sprache HS={w∈ {0,1}* | Mw angesetzt auf w hält}
allg. Halteproblem: Sprache H={w#x∈ {0,1}* | Mw angesetzt auf x hält}; # = Trennzeichen
Halteprobleme sind nicht entscheidbar!
Reduzierbarkeit: Sei A ⊆ Σ * und B ⊆ Γ * . A heißt reduzierbar auf B (in Zeichen A ÃÄ ), falls
eine totale, berechenbare Fkt f: Σ * → Γ * existiert. Mit: ∀x ∈ Σ * : x ∈ A ⇔ f ( x) ∈ B .
Heap und AVL-Bäume sind binäre Suchbäume.
Heap:
-
alle inneren Knoten bis auf max. einen haben genau zwei Kinder
-
alle Nachfolger haben höchstens gleich großen Schlüssel
-
Knoten mit weniger als 2 Kindern befinden sich auf Level größer Tiefe
-
Baum unten von links nach rechts aufgefüllt
Sortierverfahren mit Heap:
-
beginne auf unterster Ebene
-
falls Kind(er) größer Knoten, vertausche (größeres) Kind mit Knoten
-
evtl. Wurzel weiter absenken (auch durch vertauschen)
eine Ebene nach oben
AVL-Baum: Höhe des lUB und rUB unterscheiden sich höchstens um eins.
Rechts-/Linksrotation:
Einfachrotation:
evtl. Def. von (a,b)-Bäumen & Hashing (wenn noch Platz ist)
Doppelrotation:
Herunterladen