02.09.2013 Aufrufe

Abschlusseigenschaften - Vincent-wolowski.net

Abschlusseigenschaften - Vincent-wolowski.net

Abschlusseigenschaften - Vincent-wolowski.net

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

<strong>Abschlusseigenschaften</strong><br />

Abschlusseigenschaft:<br />

Schnitt Vereinigung Komplement Produkt Stern<br />

Typ3 Ja Ja Ja Ja Ja<br />

Det. ktf. Nein Nein Ja Nein Nein<br />

Typ2 Nein Ja Nein Ja Ja<br />

Typ1 Ja Ja Ja Ja Ja<br />

Typ0 Ja Ja Nein Ja Ja<br />

Wortproblem:<br />

Wortproblem Leerheitsproblem Äquivalenzproblem Schnittproblem<br />

Typ3 Ja Ja Ja Ja<br />

Det. ktf. Ja Ja Ja Nein<br />

Typ2 Ja Ja Nein Nein<br />

Typ1 Ja Nein Nein Nein<br />

Typ0 Nein Nein Nein Nein<br />

Abgeschlossenheit regulärer Mengen:<br />

Satz<br />

Die regulären Mengen sind abgeschlossen unter Vereinigung, Kleenscher Hüllenbildung und<br />

Konkatenation.<br />

Satz<br />

Die Klasse der regulären Mengen ist abgeschlossen unter Komplementbildung.<br />

Satz<br />

Die regulären Mengen sind abgeschlossen unter Schnittbildung.<br />

Satz<br />

Die Klasse der regulären Mengen ist unter Substitution abgeschlossen.<br />

Satz<br />

Die Klasse der regulären Mengen ist unter Homomorphismus und inversem<br />

Homomorphismus abgeschlossen.<br />

Satz<br />

Die Klasse der regulären Mengen ist unter Quotientenbildung mit beliebigen Mengen<br />

abgeschlossen.<br />

Abgeschlossenheit bei kontextfreien Sprachen:<br />

Satz<br />

Die kontextfreien Sprache sind abgeschlossen unter Vereinigung, Kleenscher Hüllenbildung<br />

und Konkatenation.<br />

Satz<br />

Die kontextfreien Sprachen sind abgeschlossen unter Substitution.<br />

Satz<br />

Die kontextfreien Sprachen sind abgeschlossen unter Homomorphismen.<br />

Satz<br />

Die kontextfreien Sprachen sind abgeschlossen unter inversen Homomorphismen.<br />

1


Satz<br />

Die kontextfreien Sprachen sind abgeschlossen unter Schnittbildung.<br />

Satz<br />

Die kontextfreien Sprachen sind nicht abgeschlossen unter Komplementbildung.<br />

Satz<br />

Ist L eine kontextfreie Sprache und R eine reguläre Menge, so ist L∩R eine kontextfreie<br />

Sprache.<br />

Rekursive Sprachen / Rekursiv aufzählbare Sprachen:<br />

Vereinigung<br />

Die Klasse der rekursiven Sprachen ist gegen die (endliche) Vereinigung abgeschlossen,<br />

d.h. mit L1 und L2 ist auch die Vereinigung von L1 und L2 rekursiv. Eine analoge Aussage gilt<br />

für die rekursiv aufzählbaren Sprachen. Es gibt hierfür zwei Beweisstrategien.<br />

Die erste besteht in der Hintereinanderausführung der Entscheidungsalgorithmen für L1 und<br />

L2. Eine Eingabe wird akzeptiert, wenn sie für mindestens eine der beiden Sprachen<br />

akzeptiert wird. Diese Beweisstrategie funktioniert für die Klasse der rekursiven Sprachen,<br />

aber nicht für die Klasse der rekursiv aufzählbaren Sprachen. Ein Wort w kann in L2, aber<br />

nicht in L1 sein. Der Algorithmus, der L1 semi-entscheidet, stoppt auf w vielleicht nicht, und<br />

dann wird w nicht akzeptiert, obwohl w in L1∪L2 ist.<br />

Die zweite Beweisstrategie läßt die Entscheidungsalgorithmen für L1 und L2 parallel laufen,<br />

für Turingmaschinen z.B. auf zwei unabhängigen Bändern. Wenn einer der beiden<br />

Algorithmen die Eingabe w akzeptiert, dann wird w auch für die Vereinigung akzeptiert.<br />

Diese Beweisstrategie arbeitet sowohl für die Klasse der rekursiven als auch für die Klasse<br />

der rekursiv aufzählbaren Sprachen korrekt. Falls w ∈ L1∪L2 ist, muß einer der beiden<br />

Entscheidungsalgorithmen w in endlicher Zeit akzeptieren.<br />

Durchschnitt<br />

Sowohl die Klasse der rekursiven als auch die Klasse der rekursiv aufzählbaren Sprachen ist<br />

gegen (endliche) Durchschnittsbildung abgeschlossen. Die für die Vereinigung<br />

beschriebenen Beweisstrategien müssen hier insofern geändert werden, daß erst akzeptiert<br />

wird, wenn beide Entscheidungsalgorithmen akzeptiert haben. Für die Durchschnittsbildung<br />

sind beide Beweisstrategien für beide Sprachklassen erfolgreich. Falls w ∈ L1∪L2, müssen<br />

auch im Fall der rekursiv aufzählbaren Sprachen beide Algorithmen in endlicher Zeit<br />

akzeptieren.<br />

Komplement<br />

Die Klasse der rekursiven Sprachen ist gegen Komplementbildung abgeschlossen, d.h. mit L<br />

ist auch das Komplement L , die Sprache aller Wörter, die nicht in L liegen, rekursiv. Die<br />

Beweisstrategie sieht vor, den Entscheidungsalgorithmus für L laufen zu lassen und die<br />

Entscheidung zu negieren. Diese Beweisstrategie versagt für die Klasse der rekursiv<br />

aufzählbaren Sprachen, da der Algorithmus, der L semi-entscheidet, nicht immer eine<br />

Entscheidung fällt und nicht immer stoppt.<br />

Falls jedoch L und L rekursiv aufzählbar sind, können die Algorithmen, die L und L semientscheiden,<br />

parallel laufen. Ein Algorithmus hält in endlicher Zeit, und dann ist bekannt, ob<br />

w ∈ L oder w ∈ L , d.h. w ∉ L, ist. Also ist dann L sogar rekursiv. Die Klasse der rekursiv<br />

aufzählbaren Sprachen ist nicht gegen Komplementbildung abgeschlossen.<br />

2


Reguläre Sprachen / Endliche Automaten:<br />

Komplementbildung<br />

Aus einem deterministischen Automaten für L erhalten wir offensichtlich einen<br />

deterministischen Automaten für die Komplementsprache L , wenn wir akzeptierende<br />

Zustände zu nicht akzeptierende Zuständen erklären und umgekehrt. Dies ist in linearer Zeit<br />

ohne Größenzuwachs möglich. Der entstehende Automat ist minimal, wenn der gegebene<br />

Automat minimal ist. Sonst könnten wird durch eine zweite Komplementbildung auf dem<br />

minimalen Automaten für L einen kleineren Automaten für L erhalten.<br />

Dieses einfache Verfahren ist für nichtdeterministische Automaten nicht anwendbar. Für ein<br />

Wort w aus der Sprache L kann es akzeptierende und nicht akzeptierende Rechenwege<br />

geben. Nach dem Austausch akzeptierender und nicht akzeptierender Zustände wird w<br />

fälschlicherweise weiterhin akzeptiert.<br />

Negationen sind für nichtdeterministische Modelle problematisch. Dem Nichtdeterminismus<br />

entspricht aus Logik-orientierter Sicht ein Existenzquantor. Nach Negation und Anwendung<br />

der de Morgan Regeln wird daraus ein Allquantor, der im allgemeinen nicht durch einen<br />

Existenzquantor ersetzt werden kann. So sind die Komplemente NP-vollständiger Sprachen<br />

vermutlich nicht in NP enthalten.<br />

Wir können nicht ausschließen, daß Komplementbildung bei nichtdeterministischen<br />

Automaten zu einem exponentiellen Größenzuwachs führt.<br />

Vereinigung<br />

Bereits bei der Behandlung rekursiver Sprachen haben wir zwei Techniken kennengelernt,<br />

um Maschinen für die Vereinigung zweier durch Maschinen beschriebener Sprachen zu<br />

entwerfen. Die eine Methode, die Maschine nacheinander zu simulieren, kommt für endliche<br />

Automaten definitionsgemäß nicht in Frage. Die andere Methode sieht eine parallele<br />

(gleichzeitige) Simulation beider Maschinen vor. Dies ist für endliche Automaten durch<br />

Produktbildung leicht möglich. Als Zustandsmenge wird das Kreuzprodukt Q1 x Q2 der<br />

Zustandsmengen der beiden Automaten genommen. In den beiden Komponenten der neuen<br />

Zustandsmenge werden die beiden Automaten unabhängig voneinander simuliert. Eine<br />

Eingabe wird am Ende des Rechenweges akzeptiert, wenn mindestens einer der<br />

Teilautomaten akzeptiert. Diese Konstruktion ist für deterministische und für<br />

nichtdeterministische Automaten möglich (Produktautomat).<br />

Bei deterministischen Automaten kann im worst case der Größenzuwachs nicht vermieden<br />

werden. Anders ist die Situation bei nichtdeterministischen Automaten. Formal gehört ein<br />

Wort w zu L1∪L2, wenn ein i ∈ {1,2} existiert, so daß w ∈ Li ist. Von nichtdeterministischen<br />

Automaten kann ausgenutzt werden, daß Vereinigungen über Existenzquantoren definiert<br />

sind. Wir benutzen disjunkte Kopien der Automaten für L1 und L2 und einen zusätzlichen<br />

Anfangszustand q0. Für q0 gibt es die ε-Bewegungen zu den Anfangszuständen der beiden<br />

gegebenen Automaten A1 und A2. Der neue Automat rät also nichtdeterministisch, ob w in L1<br />

oder L2 liegt und verifiziert dies mit dem Automaten A1 oder A2. Diese Konstruktion ist<br />

wesentlich effizienter als die Produktkonstruktion.<br />

Durchschnitt<br />

Die Produktkonstruktion kann angewandt werden mit der einzigen Änderung, daß nun beide<br />

Automaten akzeptieren müssen. Da der Durchschnitt über einen Allquantor definiert ist und<br />

nicht über einen Existenzquantor, gibt es bei nichtdeterministischen Automaten keinen Trick<br />

wie bei der Vereinigung.<br />

Konkatenation<br />

Die bisher behandelten Operationen Komplementbildung, Vereinigung und Durchschnitt<br />

bilden die grundlegenden Operationen auf Mengen und daher auch auf Sprachen (=<br />

Wortmengen). Die Operationen Konkatenation, Kleenescher Abschluß und Substitution<br />

haben ihren Ursprung in der Programmierung.<br />

3


Die Konkatenation L1L2 zweier Sprachen L1 und L2 enthält alle Wörter vw mit v ∈ L1 und w ∈<br />

L2. Anders ausgedrückt: Ein Wort z = z1....zn gehört genau dann zu L1L2, wenn ein i existiert,<br />

so daß v = z1...zi ∈ L1 und w = zi+1...zn ∈ L2 ist. Für i = 0 ist v = ε, und für i = n ist w = ε.<br />

Nichtdeterministische Automaten können die richtige Trennstelle raten. Daher ist es<br />

naheliegend, einen nichtdeterministischen Automaten für L1L2 zu entwerfen und diesen bei<br />

Bedarf in einen deterministischen Automaten umzuwandeln.<br />

Die folgende Konstruktion arbeitet korrekt unabhängig davon, ob L1 und L2 durch<br />

deterministische oder nichtdeterministische Automaten A1 und A2 gegeben sind. Wieder<br />

werden disjunkte Kopien von A1 und A2 benutzt. Der Anfangszustand in A1 wird<br />

Anfangszustand des neuen Automaten. Von jedem akzeptierenden Zustand in A1 führt eine<br />

ε-Bewegung zum Anfangszustand von A2. Immer wenn der Wortanfang zu L1 gehört, kann<br />

der Automat nichtdeterministisch entscheiden, ob er in A1 weitermacht oder prüft, ob das<br />

Restwort zu L2 gehört. Damit folgt sofort, daß der neue Automat L1L2 akzeptiert, wenn nur die<br />

akzeptierenden Zustände von A2 akzeptierend bleiben.<br />

Kleenescher Abschluß<br />

Mit L² bezeichnen wir die Konkatenation von L = L 1 mit sich selbst und mit L i die<br />

Konkatenation von L i-1 und L. Damit enthält L i genau die Wörter, die sich so in i Teile<br />

zerlegen lassen, daß alle Teile zu L gehören. Der positive Kleenesche Abschluß L + besteht<br />

aus der Vereinigung aller L i , i ≥ 1. Wenn wir testen wollen, ob ein Wort zu L + gehört, müssen<br />

wir ein passendes i und eine passende Zerlegung des Wortes „raten“. Eine effiziente<br />

Konstruktion deterministischer Automaten scheint also ausgeschlossen zu sein, und wir<br />

gehen den Umweg über nichtdeterministische Automaten. Es genügt eine Kopie eines<br />

Automaten für L, in der wir in allen akzeptierenden Zuständen eine ε-Bewegung zum<br />

Anfangszustand erlauben. Immer wenn eine derartige ε-Bewegung ausgeführt wird, ist ein<br />

Teilwort aus L gelesen. Es werden also genau die Wörter aus L + akzeptiert.<br />

Der eigentliche Kleenesche Abschluß L* von L besteht aus der Vereinigung aller L i , i ≥ 1,<br />

wobei L 0 nur das leere Wort enthält. Da L* die Vereinigung von L + und {ε} ist, erhalten wir<br />

auch leicht einen nichtdeterministischen Automaten für L*.<br />

Die wichtigsten Operationen für reguläre Sprachen:<br />

Die wichtigsten Operationen für reguläre Sprachen sind: Vereinigung, Konkatenation und<br />

Kleenescher Abschluß, um aus „ganz einfachen“ regulären Sprachen alle regulären<br />

Sprachen zu erhalten. Die Operationen Vereinigung, Konkatenation und Kleenescher<br />

Abschluß sind implizit nichtdeterministisch definiert, da die Definitionen einen<br />

Existenzquantor enthalten. Bei nichtdeterministischen Automaten ist der entstehende<br />

Automat um höchstens einen Zustand größer als die gegebenen Automaten zusammen.<br />

Nichtdeterministisch kontextfreie Sprachen:<br />

Vereinigung<br />

Es seien G1 und G2 kontextfreie Grammatiken für L1 und L2, die auf disjunkten<br />

Variablenmengen definiert sind. Wir wollen eine kontextfreie Grammatik für die Vereinigung<br />

von L1 und L2 entwerfen. Dies ist ganz einfach. Wir benutzen ein neues Startsymbol S und<br />

die beiden neuen Ableitungsregeln S → S1 und S → S2. Im ersten Ableitungsschritt<br />

entscheiden wir also nichtdeterministisch, ob wir ein Wort aus L1 oder aus L2 erzeugen<br />

wollen. Auf ganz natürliche Weise erhalten wir zwei Kettenregeln. Wenn wir diese ersetzen,<br />

erhalten wir alle Regeln S → r, für die S1 → r oder S2 → r eine Ableitungsregel in G1 oder G2<br />

ist. Die Klasse der kontextfreien Sprachen ist gegen Vereinigung abgeschlossen.<br />

Kontextfreie Grammatiken für die Vereinigung zweier kontextfreier Sprachen lassen sich<br />

effizient konstruieren und sind kaum größer als die Grammatiken für L1 und L2 zusammen.<br />

Konkatenation<br />

Der Entwurf einer kontextfreien Grammatik für L1L2 ist recht einfach. Wir benutzen ein neues<br />

Startsymbol S, das sich nur nach SS ableiten läßt. Die Klasse kontextfreier Sprachen ist<br />

gegen Konkatenation abgeschlossen. Kontextfreie Grammatiken für die Konkatenation<br />

4


zweier kontextfreier Sprachen lassen sich effizient konstruieren und sind kaum größer als die<br />

Grammatiken für L1 und L2 zusammen.<br />

Kleenescher Abschluß<br />

Aufgrund der Verwandtschaft mit der Konkatenation ist der folgende Entwurf einer<br />

kontextfreien Grammatik für L1* nicht überraschend. Wir benutzen ein neues Startsymbol S<br />

und die neuen Ableitungsregeln S → ε, S → SS und S → S1. Die Klasse kontextfreier<br />

Sprachen ist gegen Kleenescher Abschluß abgeschlossen. Kontextfreie Grammatiken für<br />

den Kleenescher Abschluß zweier kontextfreier Sprachen lassen sich effizient konstruieren<br />

und sind kaum größer als die Grammatiken für L1.<br />

Durchschnitt<br />

Die Klasse kontextfreier Sprachen ist nicht gegen Durchschnittsbildung abgeschlossen.<br />

Komplement<br />

Wenn eine Sprachklasse gegen Vereinigung und gegen Komplementbildung abgeschlossen<br />

ist, dann auch gegen Durchschnittsbildung (de Morgan Regel). Also ist die Klasse<br />

kontextfreier Sprachen nicht gegen Komplementbildung abgeschlossen.<br />

Zusammenfassung:<br />

Für Vereinigung, Konkatenation, Kleeneschen Abschluß und Substitution lassen sich<br />

kontextfreie Grammatiken für die neu gebildeten Sprachen sehr effizient aus kontextfreien<br />

Grammatiken für die gegebenen Sprachen konstruieren. Die Klasse der kontextfreien<br />

Sprachen ist nicht gegen Durchschnitt und Komplementbildung abgeschlossen.<br />

Durchschnitt einer kontextfreien und einer regulären Sprache<br />

Wir lassen einen endlichen Automaten und einen Kellerautomaten parallel laufen und<br />

interpretieren das ganze als Kellerautomat.<br />

Deterministisch kontextfreie Sprachen:<br />

Die Klasse der deterministisch kontextfreien Sprachen ist nicht abgeschlossen gegen<br />

Durchschnitt, Vereinigung, Homomorphismus, Konkatenation und Kleeneschen Abschluß.<br />

Die Klasse der deterministisch kontextfreien Sprachen ist nur abgeschlossen gegen<br />

Komplementbildung, inversen Homomorphismus und den Durchschnitt mit regulären<br />

Sprachen.<br />

Definition von Mengenoperation:<br />

Vereinigung<br />

A ∪ B = { x | x ∈ A ∨ x ∈ B } mit A ∪ B ≠ ∅<br />

∀x ∈ A ∪ B ⇒ x ∈ A ∨ x ∈ B<br />

Für alle x aus A oder B gilt, daß x ∈ A oder x ∈ B ist.<br />

Durchschnitt<br />

A ∩ B = { x | x ∈ A ∧ x ∈ B } mit A ∩ B ≠ ∅<br />

∃x ∈ A ∩ B ⇒ x ∈ A ∧ x ∈ B<br />

Es existiert ein x aus A und B, für das gilt, daß x ∈ A und x ∈ B ist.<br />

5

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!