Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 15.Sitzung WS 02/03."—  Präsentation transkript:

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

2 BIT – Schaßan – WS 02/03 Beispiel 3: NEA Ein NEA, der nach den Wörtern 'web' und 'ebay' sucht.

3 BIT – Schaßan – WS 02/03 Beispiel 3: NEA (2)

4 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

5 BIT – Schaßan – WS 02/03 Reguläre Ausdrücke (2) Mögliche Operatoren: VereinigungL M L = {001, 10, 111}M = {ε, 001} L M = {ε, 10, 001, 111} VerkettungL.M L = {001, 10, 111}M = {ε, 001} L.M = {001, 10, 111, , 10001, } Kleenesche HülleL* Menge aller Zeichenreihen, die durch Verkettung einer beliebigen Anzahl von Zeichenreihen aus L gebildet werden

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

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

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

9 BIT – Schaßan – WS 02/03 Pumping Lemma fü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 = xyzUrsprungswort w '= xyyzeinmal "gepumpt" w ''= xyyyzzweimal "gepumpt"

10 BIT – Schaßan – WS 02/03 Pumping Lemma fü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 k z auch in L enthalten ist.

11 BIT – Schaßan – WS 02/03 Beispiel: Palindrome Eine Sprache L bestehe aus allen Palindromen über das Alphabet {a,b } Wenn Palindrome L, dann muss w = a n ba n ebenfalls L sein. w = a n ba n = xyz mit y ε und |xy | n xy bestehen nur aus a's y besteht aus mindestens einem a "gepumpt": w = xy 2 z = a m ba n mit m > n a m ba n L, da a m ba n kein Palindrom ist!

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

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

14 BIT – Schaßan – WS 02/03 Beispiel: Kellerautomat

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

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

17 BIT – Schaßan – WS 02/03 Kellerautomat (4) Ein Kellerautomat (=pushdown automaton, PDA) ist ein Septupel P = {Q, Σ, Γ, δ, q 0, Z 0, F } mit: QZustandsmenge, |Q | < ΣEingabealphabet, |Σ| < ΓStackalphabet, |Γ| < δ Übergangsfunktion (ZustandsÜF) δ(q,a,X) mit q Q, a {Σ, ε}, X Γ q 0 Anfangszustand Z 0 Startsymbol (für Stack) FEndzustand, F Q

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

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

20 BIT – Schaßan – WS 02/03 Beispiel PDA: Palindrome L wwr = { ww R | w {(0 + 1)*} } Informelle Beschreibung: Beginn im Zustand q 0, 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.

21 BIT – Schaßan – WS 02/03 Beispiel PDA: Palindrome (2) Jederzeit kann in Zustand q 1 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 q 0 bei und fährt fort, Eingabesymbole zu lesen und sie auf dem Stack abzulegen.

22 BIT – Schaßan – WS 02/03 Beispiel PDA: Palindrome (3) Sobald der Zustand q 1 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)

23 BIT – Schaßan – WS 02/03 Beispiel PDA: Palindrome (4) Formelle Beschreibung: P = ({q 0,q 1,q 2 },{0,1},{0,1,Z 0 }, δ, q 0, Z 0, {q 2 }) δ(q 0, 0, Z 0 )= {(q 0,0 Z 0 )} lesen und push δ(q 0, 1, Z 0 )= {(q 0,1 Z 0 )} δ(q 0, 0, 0)= {(q 0,00)} lesen und push δ(q 0, 0, 1)= {(q 0,01)} δ(q 0, 1, 0)= {(q 0,10)} δ(q 0, 1, 1)= {(q 0,11)} δ(q 0, ε, Z 0 )= {(q 1, Z 0 )} Wechsel nach q 1, ohne Stack δ(q 0, ε, 0)= {(q 1, 0)}zu verändern δ(q 0, ε, 1)= {(q 1, 1)} δ(q 1, 0, 0)= {(q 1, ε)} lesen, vergleichen, pop δ(q 1, 1, 1)= {(q 1, ε)} δ(q 1, ε, Z 0 )= {(q 2, Z 0 )} Z 0 erreicht, akzeptiert

24 BIT – Schaßan – WS 02/03 Beispiel PDA: Graphische Notation

25 BIT – Schaßan – WS 02/03 Beispiel PDA: Konfigurationen

26 BIT – Schaßan – WS 02/03 Schreibkonventionen für PDAs a, b,... Σ p, q,... Q w, z,... = Zeichenreihen aus Σ X, Y,... = Γ α, γ,... = Zeichenreihen aus Γ

27 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 qfür den Zustand, wfür die verbleibende Eingabe, γfür den Inhalt des Stacks steht. (Das obere Ende des Stacks steht am linken Ende von γ.)

28 BIT – Schaßan – WS 02/03 Beschreibung der Konfiguration (2) Sei P = {Q, Σ, Γ, δ, q 0, Z 0, 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!)

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

30 BIT – Schaßan – WS 02/03 Akzeptanz durch Endzustand Sei P = {Q, Σ, Γ, δ, q 0, Z 0, F } ein PDA. Dann ist die Sprache L(P ), die von P durch Endzustand akzeptiert wird, {w | (q 0, w, Z 0 ) (q, ε, β) für einen Zustand q in F und eine Stackzeichenreihe α. *p*p

31 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 : (q 0, ww R, Z 0 ) (q 0, w R, w R Z 0 ) (q 1, w R, w R Z 0 ) (q 1, ε, Z 0 ) (q 2, ε, Z 0 ) * *

32 BIT – Schaßan – WS 02/03 Akzeptanz durch leeren Stack Sei P = {Q, Σ, Γ, δ, q 0, Z 0, F } ein PDA. Dann ist die Sprache N(P ), die von P durch Endzustand akzeptiert wird, {w | (q 0, w, Z 0 ) (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. *

33 BIT – Schaßan – WS 02/03 Beispiel AdE: Palindrome Der PDA P aus dem Beispiel leert den Stack nie, daher ist N(P ) = Statt δ(q 1, ε, Z 0 ) = {(q 2, Z 0 )} muss δ(q 1, ε, Z 0 ) = {(q 2, ε)} verwendet werden. Jetzt kann P das letzte Symbol vom Stack entfernen, während er akzeptiert, und L(P ) = N(P ) = L wwr

34 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

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

36 BIT – Schaßan – WS 02/03 Der "Erfinder" des Computers Alan M. Turing ( ) 1936: "On Computable Numbers, With an Application to the Entscheidungsproblem" in: Proc. London Math. Soc, Ser. 2 Vol. 42, No – 7, 230 – 265. Entschlüsselung des Codes der Enigma

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

38 BIT – Schaßan – WS 02/03 Beispiel: Turing-Maschine

39 BIT – Schaßan – WS 02/03 Turing-Maschine (2) Eine Turing-Maschine ist ein Quadrupel M = {Q, Σ, δ, q 0 } mit: QZustandsmenge, |Q | < ΣEingabealphabet, |Σ| < δ Übergangsfunktion (ZustandsÜF) δ : Q x Σ Q x (Σ {L, R}) q 0 Anfangszustand

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

41 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 Hopcroft, John; Motwani, Rajeev; Ullman, Jeffrey: Einführung in die Automatentheorie, Formale Sprachen und Komplexitätstheorie. 2., überarbeitete Auflage. Pearson Education

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


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

Ähnliche Präsentationen


Google-Anzeigen