View
105
Download
2
Category
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