BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 15.Sitzung WS 02/03.

42
BIT – Schaßan – WS 02/03 Basisinformationstechnol ogie HK-Medien Teil 1, 15.Sitzung WS 02/03

Transcript of BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 15.Sitzung WS 02/03.

Page 1: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 15.Sitzung WS 02/03.

BIT – Schaßan – WS 02/03

Basisinformationstechnologie

HK-Medien

Teil 1, 15.SitzungWS 02/03

Page 2: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-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.

Page 3: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 15.Sitzung WS 02/03.

BIT – Schaßan – WS 02/03

Beispiel 3: NEA (2)

Page 4: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 15.Sitzung WS 02/03.

BIT – Schaßan – WS 02/03

Reguläre Ausdrücke

Reguläre Ausdrücke sind mit nichtdeterminis-tischen endlichen Automaten eng verwandtSie sind eine Alternative zur NEA-Notation zur Beschreibung von SoftwarekomponentenAnwendung:Bildung von Mengen von Worten x aus V und Überprüfung, ob ein Wort x' aus der Eingabe das gewünschte Format hat

Page 5: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 15.Sitzung WS 02/03.

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

Page 6: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 15.Sitzung WS 02/03.

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."

Page 7: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 15.Sitzung WS 02/03.

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]?

Page 8: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 15.Sitzung WS 02/03.

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.

Page 9: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 15.Sitzung WS 02/03.

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 Ursprungswortw ' = xyyz einmal "gepumpt"w '' = xyyyz zweimal "gepumpt"

Page 10: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 15.Sitzung WS 02/03.

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 | ≤ nFür alle k ≥ 0 gilt, dass die Zeichenreihe xy kz auch in L enthalten ist.

Page 11: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 15.Sitzung WS 02/03.

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!

Page 12: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 15.Sitzung WS 02/03.

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.

Page 13: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 15.Sitzung WS 02/03.

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.

Page 14: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 15.Sitzung WS 02/03.

BIT – Schaßan – WS 02/03

Beispiel: Kellerautomat

Page 15: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 15.Sitzung WS 02/03.

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.

Page 16: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 15.Sitzung WS 02/03.

BIT – Schaßan – WS 02/03

Kellerautomat (3)

Kellerautomaten arbeiten eigentlich nicht-deterministisch, nichtdeterministische Kellerautomaten sind aber in deterministische überführbarε-Bewegungen sind erlaubtEine 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.

Page 17: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 15.Sitzung WS 02/03.

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

Page 18: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 15.Sitzung WS 02/03.

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)

Page 19: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 15.Sitzung WS 02/03.

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, oderin den Zustand r gewechselt und X vom Stack entfernt werden.

Page 20: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 15.Sitzung WS 02/03.

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.

Page 21: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 15.Sitzung WS 02/03.

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.

Page 22: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 15.Sitzung WS 02/03.

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)

Page 23: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 15.Sitzung WS 02/03.

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

Page 24: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 15.Sitzung WS 02/03.

BIT – Schaßan – WS 02/03

Beispiel PDA:Graphische Notation

Page 25: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 15.Sitzung WS 02/03.

BIT – Schaßan – WS 02/03

BeispielPDA : Konfigurationen

Page 26: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 15.Sitzung WS 02/03.

BIT – Schaßan – WS 02/03

Schreibkonventionen für PDAs

a, b, ... ∈ Σp, q, ... ∈ Qw, z, ... = Zeichenreihen aus ΣX, Y, ... = Γα, γ, ... = Zeichenreihen aus Γ

Page 27: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 15.Sitzung WS 02/03.

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 γ.)

Page 28: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 15.Sitzung WS 02/03.

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!)

Page 29: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 15.Sitzung WS 02/03.

BIT – Schaßan – WS 02/03

Akzeptanzzustände von PDAs

Es gibt zwei Ansätze, wann ein PDA eine Eingabe akzeptiert:

Akzeptanz durch EndzustandAkzeptanz durch leeren Stack

Zwar unterscheiden sich die Sprachen, die die jeweiligen PDAs akzeptieren, aber sie sind jeweils ineinander überführbar.

Page 30: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 15.Sitzung WS 02/03.

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

Page 31: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 15.Sitzung WS 02/03.

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)

*

*

Page 32: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 15.Sitzung WS 02/03.

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.

*

Page 33: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 15.Sitzung WS 02/03.

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

Page 34: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 15.Sitzung WS 02/03.

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

Page 35: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 15.Sitzung WS 02/03.

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.)

Page 36: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 15.Sitzung WS 02/03.

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

Page 37: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 15.Sitzung WS 02/03.

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.

Page 38: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 15.Sitzung WS 02/03.

BIT – Schaßan – WS 02/03

Beispiel: Turing-Maschine

Page 39: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 15.Sitzung WS 02/03.

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

Page 40: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 15.Sitzung WS 02/03.

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.

Page 41: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 15.Sitzung WS 02/03.

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

Page 42: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 15.Sitzung WS 02/03.

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.