Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Basisinformationstechnologie HK-Medien

Ähnliche Präsentationen


Präsentation zum Thema: "Basisinformationstechnologie HK-Medien"—  Präsentation transkript:

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

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

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

4 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

5 Reguläre Ausdrücke (2) Mögliche Operatoren:
Vereinigung L ∪ M L = {001, 10, 111} M = {ε, 001} L ∪ M = {ε, 10, 001, 111} Verkettung L.M L = {001, 10, 111} M = {ε, 001} L.M = {001, 10, 111, , 10001, } 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

6 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

7 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

8 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

9 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 = xyz Ursprungswort w ' = xyyz einmal "gepumpt" w '' = xyyyz zweimal "gepumpt" Wenn das NICHT funktioniert, dann gehört das Ursprungswort nicht zur Sprache L BIT – Schaßan – WS 02/03

10 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 kz auch in L enthalten ist. BIT – Schaßan – WS 02/03

11 Beispiel: Palindrome Eine Sprache L bestehe aus allen Palindromen über das Alphabet {a ,b } Wenn Palindrome ∈ L, dann muss w = 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! Palindrom: symmetrisch um Mittelpunkt (ABBA) y ≠ ε |xy | ≤ n Auch keine Primzahlen! BIT – Schaßan – WS 02/03

12 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. Pigeonholes BIT – Schaßan – WS 02/03

13 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

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

15 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

16 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. deterministisch: wenn ein Wort in der Sprache enthalten ist, wird es, auf welchem Weg auch immer, akzeptiert Umgekehrt wird ein Wort, welches nicht in der Sprache enthalten ist, niemals akzeptiert BIT – Schaßan – WS 02/03

17 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 Bei Schulz nur ein Sextupel, Z0 nicht angegeben BIT – Schaßan – WS 02/03

18 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

19 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

20 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

21 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

22 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

23 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

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

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

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

27 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

28 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!) Das Überführungszeichen mit Sternchen zur Repräsentation einer oder mehrerer Bewegungen! BIT – Schaßan – WS 02/03

29 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

30 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

31 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) Hier nur wenn-dann-Teil, Nur-dann-Teil weggelassen * * BIT – Schaßan – WS 02/03

32 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

33 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 Hier nur wenn-dann-Teil, Nur-dann-Teil weggelassen BIT – Schaßan – WS 02/03

34 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

35 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.) k*n Zellen: vgl. PDA, der auch nur eine lineare Anzahl Zellen auf dem Hilfsband hat  LBA "fährt" zwischen Eingabe und Workspace hin und her BIT – Schaßan – WS 02/03

36 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 BIT – Schaßan – WS 02/03

37 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

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

39 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 Delta hängt vom Zustand und der Eingabe ab Kein Endzustand!!! BIT – Schaßan – WS 02/03

40 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

41 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 BIT – Schaßan – WS 02/03

42 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


Herunterladen ppt "Basisinformationstechnologie HK-Medien"

Ähnliche Präsentationen


Google-Anzeigen