420 likes | 608 Views
Basisinformationstechnologie HK-Medien. Teil 1, 15.Sitzung WS 02/03. Beispiel 3: NEA. Ein NEA, der nach den Wörtern 'web' und 'ebay' sucht. Beispiel 3: NEA (2). Reguläre Ausdrücke. Reguläre Ausdrücke sind mit nichtdeterminis-tischen endlichen Automaten eng verwandt
E N D
BasisinformationstechnologieHK-Medien Teil 1, 15.Sitzung WS 02/03 BIT – Schaßan – WS 02/03
Beispiel 3: NEA • Ein NEA, der nach den Wörtern 'web' und 'ebay' sucht. BIT – Schaßan – WS 02/03
Beispiel 3: NEA (2) BIT – Schaßan – WS 02/03
Reguläre Ausdrücke • Reguläre Ausdrücke sind mit nichtdeterminis-tischen endlichen Automaten eng verwandt • Sie sind eine Alternative zur NEA-Notation zur Beschreibung von Softwarekomponenten • Anwendung:Bildung von Mengen von Worten x aus V und Überprüfung, ob ein Wort x' aus der Eingabe das gewünschte Format hat BIT – Schaßan – WS 02/03
Reguläre Ausdrücke (2) • Mögliche Operatoren: • Vereinigung L ∪ ML = {001, 10, 111} M = {ε, 001} L ∪ M = {ε, 10, 001, 111} • Verkettung L.ML = {001, 10, 111} M = {ε, 001}L.M = {001, 10, 111, 001001, 10001, 111001} • Kleenesche Hülle L*Menge aller Zeichenreihen, die durch Verkettung einer beliebigen Anzahl von Zeichenreihen aus L gebildet werden BIT – Schaßan – WS 02/03
Beispiel: Reguläre Ausdrücke • In UNIX sind u.a. folgende RAs gebräuchlich: . ein beliebiges Zeichen [0-9] die Menge Ziffern [a-z] die Menge der Kleinbuchstaben [A-Za-z] die Menge aller Klein- und Großbuchstaben ? "null oder ein Vorkommen von " + "ein oder mehr Vorkommen von " (Road|Rd\.) findet "Road" oder "Rd." BIT – Schaßan – WS 02/03
Textmuster erkennen • [0-9]+[A-Z]? [A-Z][a-z]*( [A-Z][a-z]*)* (Street|St\.|Road|Rd\.) • findet amerikanische Adressen nach dem Muster "123Z Arlington Road" • Welcher reguläre Ausdruck findet internationale Telefonnummern (in der Form "+LK-(0)Ort-Nr") in einem Text? • \+[1-9]([0-9][0-9]?)?-\(0\)[1-9][0-9][0-9]?[1-9]?-[1-9][0-9][0-9][0-9]?[0-9]?[0-9]? BIT – Schaßan – WS 02/03
Pumping Lemma • Das Pumping Lemma ist eine Methode, um heraus zu finden, ob eine Sprache regulär ist oder nicht. BIT – Schaßan – WS 02/03
Pumping Lemmafür reguläre Sprachen • Wenn ein genügend langes Wort einer regulären Sprache "gepumpt" wird, erhält man immer wieder ein Wort dieser Sprache. • Zum "Pumpen" wird ein Teilwort y aus w durch yy ersetzt. • w = xyz Ursprungswort • w ' = xyyz einmal "gepumpt" • w '' = xyyyz zweimal "gepumpt" BIT – Schaßan – WS 02/03
Pumping Lemmafür reguläre Sprachen (2) • Sei L eine reguläre Sprache. Dann gibt es eine Konstante n, derart dass für jede Zeichenreihe w in L mit |w | ≥ n gilt, dass wir in w drei Zeichenreihen w = xyz zerlegen können, für die gilt: • y ≠ ε • |xy | ≤ n • Für alle k ≥ 0 gilt, dass die Zeichenreihe xy kz auch in L enthalten ist. BIT – Schaßan – WS 02/03
Beispiel: Palindrome • Eine Sprache L bestehe aus allen Palindromen über das Alphabet {a ,b } • Wenn Palindrome ∈ L, dann mussw = anban ebenfalls ∈ L sein. • w = anban = xyz mit y ≠ ε und |xy | ≤ n⇒ xy bestehen nur aus a's⇒ y besteht aus mindestens einem a • "gepumpt": w = xy2z = amban mit m > n⇒ amban ∉ L, da amban kein Palindrom ist! BIT – Schaßan – WS 02/03
Beispielgraph für ein PL • Jede Zeichenreihe, deren Länge nicht kleiner ist als die Anzahl der Zustände, muss bewirken, dass ein Zustand zweimal durchlaufen wird. BIT – Schaßan – WS 02/03
Kellerautomat • Eigenschaften eines Kellerautomaten: • Das Eingabeband kann sich nur in eine Richtung bewegen. • Es existiert ein "Hilfsband", welches sich in beide Richtungen bewegen kann. • Der Automat liest im ersten Schritt die jeweils erste Zelle beider Bänder. • Als Reaktion des Automaten kann entweder das Hilfsband vorwärts bewegt und ein Zeichen in die nächste Zelle geschrieben werden oder das Symbol gelöscht und das Hilfsband eine Zelle zurück bewegt werden. BIT – Schaßan – WS 02/03
Beispiel: Kellerautomat BIT – Schaßan – WS 02/03
Kellerautomat (2) • Das Hilfsband heißt auch Kellerstapel oder einfach Stapel (engl. stack ). • Ein Element kann immer nur oben auf den Stapel gelegt (bzw. an das Ende des Bandes geschrieben) werden (= push ). • Immer nur das oberste (letzte) Element kann wieder vom Stapel entfernt werden (= pop ). • Die erste Zelle des Hilfsbandes enthält eine spezielle Kennzeichnung, um anzuzeigen, wann der Stapel leer ist. Ein Kellerautomat kann bei leerem Stapel nicht weiterarbeiten. BIT – Schaßan – WS 02/03
Kellerautomat (3) • Kellerautomaten arbeiten eigentlich nicht-deterministisch, nichtdeterministische Kellerautomaten sind aber in deterministische überführbar • ε-Bewegungen sind erlaubt • Eine Eingabe wird genau dann erlaubt, wenn es möglich ist, eine Konfiguration zu erreichen, bei der die gesamte Eingabe gelesen wurde und der Stapel leer ist. BIT – Schaßan – WS 02/03
Kellerautomat (4) • Ein Kellerautomat (=pushdown automaton, PDA) ist ein Septupel P = {Q, Σ, Γ, δ, q0, Z0, F } mit: • Q Zustandsmenge, |Q | < ∞ • Σ Eingabealphabet, |Σ| < ∞ • Γ Stackalphabet, |Γ| < ∞ • δ Übergangsfunktion (ZustandsÜF)δ(q,a,X) mit q ∈ Q, a ∈ {Σ, ε}, X ∈ Γ • q0 Anfangszustand • Z0 Startsymbol (für Stack) • F Endzustand, F ⊆ Q BIT – Schaßan – WS 02/03
PDA-Übergangsfunktionen • Die Ausgabe von δ besteht aus einer endlichen Menge von Paaren (p, γ), wobei p für den neuen Zustand und γ für die Zeichenreihe der Stack-symbole steht, die X auf dem oberen Ende des Stacks ersetzt. • Wenn γ = ε, dann wird das oberste Stacksymbol wird gelöscht. (pop-Operation) • Wenn γ = X, dann bleibt der Stack unverändert. • Wenn γ = YZ, dann wird X durch Z ersetzt und Y zuoberst auf dem Stack abgelegt. (push-Operation) BIT – Schaßan – WS 02/03
PDA-Übergangsfunktionen (2) • Da PDAs nicht-deterministisch arbeiten, kann die Ausgabe von δ eine Menge an Paaren ergeben, z.B.δ(q, a, X) = { (p, YZ), (r, ε) } • Die Paare müssen dabei als Einheit betrachtet und behandelt werden.Wenn sich der PDA im Zustand q befindet, X das oberste Stacksymbol ist und die Eingabe a gelesen wird, kann • in den Zustand p gewechselt und X durch YZ ersetzt werden, oder • in den Zustand r gewechselt und X vom Stack entfernt werden. BIT – Schaßan – WS 02/03
Beispiel PDA: Palindrome • Lwwr = { wwR | w ∈ {(0 + 1)*} } • Informelle Beschreibung: • Beginn im Zustand q0, der Annahme, dass die Mitte der Zeichenreihe nicht erreicht ist, d.h., dass das Ende der Zeichenreihe w, dem die Umkehrung von w folgt, noch nicht gelesen wurde.Der Automat kann Symbole lesen und auf dem Stack speichern. BIT – Schaßan – WS 02/03
Beispiel PDA: Palindrome (2) • Jederzeit kann in Zustand q1 gewechselt werden, der Annahme, dass die Mitte der Zeichenreihe erreicht ist, d.h., dass das Ende von w erreicht ist. w ist dann auf dem Stack.Gleichzeitig gehen wir davon aus, dass das Ende von w noch nicht erreicht ist, d.h. der Automat behält den Zustand q0 bei und fährt fort, Eingabesymbole zu lesen und sie auf dem Stack abzulegen. BIT – Schaßan – WS 02/03
Beispiel PDA: Palindrome (3) • Sobald der Zustand q1 erreicht wurde, vergleicht der Automat die Eingabesymbole mit dem obersten Symbol auf dem Stack. Stimmen die Symbole überein, dann ist das Eingabesymbol verarbeitet und das oberste Symbol wird vom Stack entfernt. Stimmen sie nicht überein, dann war die Annahme falsch, dass das Ende von w erreicht sei und w R folgt. • Wenn der Stack leer ist, wurde die Eingabe w gefolgt von w R gelesen. (=akzeptiert) BIT – Schaßan – WS 02/03
Beispiel PDA: Palindrome (4) • Formelle Beschreibung: P = ({q0,q1,q2},{0,1},{0,1,Z0}, δ, q0, Z0, {q2}) • δ(q0, 0, Z0) = {(q0,0 Z0)} lesen und pushδ(q0, 1, Z0) = {(q0,1 Z0)} • δ(q0, 0, 0) = {(q0,00)} lesen und pushδ(q0, 0, 1) = {(q0,01)}δ(q0, 1, 0) = {(q0,10)}δ(q0, 1, 1) = {(q0,11)} • δ(q0, ε, Z0) = {(q1, Z0)} Wechsel nach q1, ohne Stackδ(q0, ε, 0) = {(q1, 0)} zu verändernδ(q0, ε, 1) = {(q1, 1)} • δ(q1, 0, 0) = {(q1, ε)} lesen, vergleichen, popδ(q1, 1, 1) = {(q1, ε)} • δ(q1, ε, Z0) = {(q2, Z0)} Z0 erreicht, akzeptiert BIT – Schaßan – WS 02/03
Beispiel PDA:Graphische Notation BIT – Schaßan – WS 02/03
BeispielPDA : Konfigurationen BIT – Schaßan – WS 02/03
Schreibkonventionen für PDAs • a, b, ... ∈ Σ • p, q, ... ∈ Q • w, z, ... = Zeichenreihen aus Σ • X, Y, ... = Γ • α, γ, ... = Zeichenreihen aus Γ BIT – Schaßan – WS 02/03
Beschreibung der Konfiguration • Im Gegensatz zum endlichen Automaten, bei denen lediglich der Zustand (neben dem Ein-gabesymbol) für einen Übergang von Bedeutung ist, umfasst die Konfiguration eines PDA sowohl den Zustand als auch den Inhalt des Stacks. • Die Konfiguration wird daher durch das Tripel (q, w, γ) dargestellt, wobei • q für den Zustand, • w für die verbleibende Eingabe, • γ für den Inhalt des Stacks steht.(Das obere Ende des Stacks steht am linken Ende von γ.) BIT – Schaßan – WS 02/03
Beschreibung der Konfiguration (2) • Sei P = {Q, Σ, Γ, δ, q0, Z0, F } ein PDA. • Angenommen, δ(q, a, X) enthält (p, α).Dann gilt für alle Zeichenreihen w aus Σ* und β aus Γ*: (q, aw, X β) ⊢ (p, w, αβ)D.h., der Automat kann vom Zustand q in den Zustand p übergehen, indem er das Symbol a (das ε sein kann) aus der Eingabe einliest und X auf dem Stack durch α ersetzt. (Die restliche Eingabe w und der restliche Inhalt des Stacks β beinflussen die Aktion des PDA nicht!) BIT – Schaßan – WS 02/03
Akzeptanzzustände von PDAs • Es gibt zwei Ansätze, wann ein PDA eine Eingabe akzeptiert: • Akzeptanz durch Endzustand • Akzeptanz durch leeren Stack • Zwar unterscheiden sich die Sprachen, die die jeweiligen PDAs akzeptieren, aber sie sind jeweils ineinander überführbar. BIT – Schaßan – WS 02/03
Akzeptanz durch Endzustand • Sei P = {Q, Σ, Γ, δ, q0, Z0, F } ein PDA. • Dann ist die Sprache L(P ), die von P durch Endzustand akzeptiert wird, {w | (q0, w, Z0) ⊢ (q, ε, β)für einen Zustand q in F und eine Stackzeichenreihe α. * p BIT – Schaßan – WS 02/03
Beispiel AdE: Palindrome • Der PDA P akzeptiert eine Zeichenreihe x durch Endzustand genau dann, wenn x die Form ww R hat. • Wenn x = ww R:(q0, ww R, Z0) ⊢ (q0, w R, w RZ0)⊢ (q1, w R, w RZ0)⊢ (q1, ε, Z0)⊢ (q2, ε, Z0) * * BIT – Schaßan – WS 02/03
Akzeptanz durch leeren Stack • Sei P = {Q, Σ, Γ, δ, q0, Z0, F } ein PDA. • Dann ist die Sprache N(P ), die von P durch Endzustand akzeptiert wird, {w | (q0, w, Z0) ⊢ (q, ε, ε)für einen beliebigen Zustand q.N(P) ist die Menge der Eingabezeichenreihen w, die P einlesen kann und bei der er gleichzeitig den Stack leeren kann. * BIT – Schaßan – WS 02/03
Beispiel AdE: Palindrome • Der PDA P aus dem Beispiel leert den Stack nie, daher ist N(P ) = ∅ • Statt δ(q1, ε, Z0) = {(q2, Z0)}muss δ(q1, ε, Z0) = {(q2, ε)} verwendet werden. Jetzt kann P das letzte Symbol vom Stack entfernen, während er akzeptiert, und L(P ) = N(P ) = Lwwr BIT – Schaßan – WS 02/03
Anwendungen von PDAs • Mechanische Verfahren zur Umwandlung von Sprachbeschreibungen kontextfreier Grammatiken in einen Parser (Compilerkomponenten) • XML + DTDs (oder Schema) die DTD ist im Grunde genommen eine kontextfreie Grammatik erkennen der richtigen Klammerung BIT – Schaßan – WS 02/03
Linear beschränkte Automaten • Eigenschaften eines linear beschränkten Automaten: • Es gibt nur ein Band, welches sich in beide Richtungen bewegen kann. • Es ist erlaubt, vom Band zu lesen als auch darauf zu schreiben. • Zur "Verarbeitung" eines Eingabewortes x der Länge n darf ein LBA höchstens k *n Zellen benutzen. (k ist eine Konstante.) BIT – Schaßan – WS 02/03
Der "Erfinder" des Computers • Alan M. Turing (1912-1954) • 1936: "On Computable Numbers, With an Application to the Entscheidungsproblem"in: Proc. London Math. Soc, Ser. 2 Vol. 42, No. 1936 – 7, 230 – 265. • Entschlüsselung des Codes der Enigma BIT – Schaßan – WS 02/03
Turing-Maschine • Eigenschaften einer Turing-Maschine: • Es gibt nur ein Band, welches sich in beide Richtungen bewegen kann. • Es ist erlaubt, vom Band zu lesen als auch darauf zu schreiben. • Das Eingabeband ist unendlich lang. Es enthält auf den freien Plätzen einen "blank". • Der Prozessor hat zu jedem Zeitpunkt Zugriff auf den Inhalt einer Speicherzelle und weiß, in welchem Zustand er sich befindet. BIT – Schaßan – WS 02/03
Beispiel: Turing-Maschine BIT – Schaßan – WS 02/03
Turing-Maschine (2) • Eine Turing-Maschine ist ein Quadrupel M = {Q, Σ, δ, q0} mit: • Q Zustandsmenge, |Q | < ∞ • Σ Eingabealphabet, |Σ| < ∞ • δ Übergangsfunktion (ZustandsÜF)δ : Q x Σ Q x (Σ⋃ {L, R}) • q0 Anfangszustand BIT – Schaßan – WS 02/03
Nutzen der Automaten • Normalerweise werden Computer als Maschinen betrachtet, die einen Input in einen Output überführen, weniger als "Sprachakzeptoren" einer bestimmten Klasse bzw. Hierarchie. • Ein Wort auf dem Eingabeband wird allerdings in ein anderes Wort transformiert. Durch solche "Worte" können Zahlen, Computerprogramme oder geradezu jede Form von wohldefinierten symbolischen Einheiten repräsentiert werden. BIT – Schaßan – WS 02/03
Literatur zu Formalen Sprachen • Goos, Gerhard: Vorlesungen über Informatik. Bd. 1: Grundlagen und funktionales Programmieren. 3., überarbeitete Auflage. Springer 2000. • Hopcroft, John; Motwani, Rajeev; Ullman, Jeffrey: Einführung in die Automatentheorie, Formale Sprachen und Komplexitätstheorie. 2., überarbeitete Auflage. Pearson Education 2002.http://www-db.stanford.edu/~ullman/ialc.htmlhttp://www.pearson-studium.de BIT – Schaßan – WS 02/03
Literatur zur Turing-Maschine • Bolter, David: Turing's Man. Western Culture in the Computer Age. North Carolina University Press, 1984. BIT – Schaßan – WS 02/03