Abschlusseigenschaften - Vincent-wolowski.net
Abschlusseigenschaften - Vincent-wolowski.net
Abschlusseigenschaften - Vincent-wolowski.net
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