Automaten, formale Sprachen und Berechenbarkeit II SoSe 2004 Prof. W. Brauer Teil 1: Wiederholung...

Preview:

Citation preview

Automaten, formale Sprachen und Berechenbarkeit II

SoSe 2004Prof. W. Brauer

Teil 1: Wiederholung(Vor allem Folien von Priv.-Doz. Dr. Kindler vom

WS 2001/02 zur Vorl. Autom. form. Spr. u. Berechenb. Weitere Unterlagen auf der Webseite

dieser Vorlesung)

Äquivalente Konzepte zur Beschreibung regulärer Sprachen

(N)DEA Wege in endlichen (Kanten- oder Knoten-bewerteten) Graphen

Zweiweg-Automaten „Lesen“ von Wörtern bei festen Speicherplatz

Reguläre Ausdrücke Termdarstellung von Mengen von Wörtern mithilfe von Operatoren (+, •, *) [nichtdet. Spezifikation von Mengen von Abläufen: Alternative, Nacheinander, Iteration/FOR-Schleife]

Lineare Gleichungssysteme Verwendung obiger Operatoren

Kongruenzrelationen auf ∑*, endliche Monoide

Chomsky-Grammatik vom Typ 3

Äquivalente Konzepte zur Beschreibung kontextfreier Sprachen

(N)DKA Wege in endlich vielen endlichen Kanten-bewerteten Graphen, die sich gegenseitig aufrufen können (Unterprogrammtechnik) - Syntaxdiagramme

Keller-Automaten „Lesen“ von Wörtern bei Speicherplatz mit Kellereigenschaft

Kontextfreie Ausdrücke Termdarstellung von Mengen von Wörtern mithilfe von Operatoren (+, •, *, spezielle iterierte Substitution) [nichtdet. Spezifikation von Mengen von Abläufen: Alternative, Nacheinander, Iteration, rekursive Aufrufe]

Algebraische Gleichungssysteme Verwendung von +, •, *

(Kongruenzrelationen auf Term-Algebren: Terme ~ Bäume )

Chomsky-Grammatik vom Typ 2

Definitionsmethoden für formale Sprachen - BeispielDyck-Sprache D1 über einem Klammerpaar {a, b}

(A) Beschreibende Definitionen:(1) D1 := { w {a, b}* | In jedem Präfix von w kommen mindestens so viele a‘s vor wie b‘s, und in jedem Suffix von w kommen mindestens so viele b‘s vor wie a‘s }

(2) D1 := { w {a, b}* | In jedem Präfix von w kommen mindestens so viele a‘s vor wie b‘s,

und in w selbst sind diese Anzahlen gleich }[ Das entspricht der saloppen Beschreibung von D1 als Menge allerwohlgeformten Klammerausdrücke. ]Äquivalenz der beiden Def. , Beweisskizze: - Aus Def. (1) folgt Def. (2), weil w sowohl Präfix als auch Suffix von w ist.

- Aus Def. (2) folgt für jedes Suffix v von w, dass ein Präfix u von w existiert mit w = uv, so dass v nicht mehr a‘s als b‘s enthalten kann, weil sonst w

mehr a‘s als b‘s enthielte.

(B) Induktive Definitionen

(1) D1 sei die kleinste Teilmenge von {a, b}* mit

(i) D1

(ii) Wenn u und v in D1 liegen, so sollen auch uv und aub in D1 liegen.

(2) D1 sei die kleinste Teilmenge von {a, b}* mit

(i) D1

(ii) Für jedes w D1 und jede Zerlegung w = uv gilt uabv D1

Äquivalenzbeweis: Erfüllt eine Sprache (B) (i) mit i = 1 oder i = 2, so ist sie Teil einer nach (A) definierten Sprache.

Erfülle w die Def. (A) (2). Sei u das kürzeste Präfix von w mit u D1 undw = uv. Dann liegt auch v in D1. Ist u = w, so gilt w = aw‘b mit w‘ D1 .

Erfülle w die Def. (A) (1). Für jede Zerlegung w = uv gilt dann: Das Wort uabvErfüllt die Def. (A) (1).

(C) Rekursive Definition - durch Kürzungsregeln

D1 := { w | p(w) = true }, wobei p folgendes Prädikat ist:

p(w) := if w = then true else ( u,v: w = uabv) p(uv) fi.

Bemerkung: Diese Def. Ist „spiegelbildlich“ zu Def. (B) (2) - sie ist „abbauend“, die andere war „aufbauend“. Nach dieser Def. gehört ein Wort zu D1, wenn man

es zu reduzieren kann, indem man sukzessive ab durch ersetzt.

(D) Definition durch einen Erzeugungsmechanismus

(1) D1 = L(G), wobei G eine kontextfreie Grammatik ist - mit den Produktionen

S SS | aSb | (2) D1 = L(G), wobei G eine kontextfreie Grammatik ist - mit den Produktionen

S aSbS | Äquivalenz: (1) entspricht sehr genau (B) (1).Alles, was mit (2) erzeugbar ist, ist es auch mit (1). (Ersetze das erste S in SS durch aSb). Aus SS erhält man mit (2) nur dann ein Terminalwort, wenn man

das erste S durch aSb oder ersetzt.

(E) Definition durch Erkennungs-/Akzeptierungsverfahren

(1) D1 besteht aus allen Wörtern w {a, b}*, die wie folgt akzeptiert werden: Sei k eine integer-Variable mit Startwert 0; w werde zeichenweise von links

nach rechts gelesen: while w noch nicht ganz gelesen do lese nächstes Zeichen z; if z=a then k := k + 1 else if k ≠ 0 then k:= k - 1 else w wird nicht akzeptiert fi fi od; if k=0 then w wird akzeptiert else w wird nicht akzeptiert fi Das Verfahren entspricht genau Def. (A) (2).

(2) D1 besteht aus allen Wörtern w {a, b}*, die wie folgt akzeptiert werden:

while w ≠ do Suche in w das am weitesten links stehende b und streiche es sowie das links daneben stehende a - findet man kein b oder steht kein a links von dem b, so wird w nicht akzeptiert od; w wird akzeptiert.

Das Verfahren entspricht ziemlich genau der Arbeitsweise des üblicherweise

zur Akzeptierung von D1 verwendeten Kellerautomaten.

Recommended