Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Informatik Vorkurs Programmieren.pdf
Скачиваний:
14
Добавлен:
19.03.2016
Размер:
2.38 Mб
Скачать

499

deine Antworten. Wenn die Antwort positiv ist, entwirf einen EA für diese Sprache. Wenn die Antwort negativ ist, liefere einen Beweis der Nichtexistenz eines EA für die gegebene Sprache.

a){uuv {0, 1, } | u, v {0, 1} },

b){ww {0, 1} | w {0, 1} },

c){x {a, b} | (|x|a + 2|x|b) mod 4 = 3},

d){an2 | n N} über {a},

e){02n | n N} über {0},

f){u1v | u, v {0, 1} , (|uv|0 2|uv|1) mod 3 = 1},

g){x1y | x, y {0, 1} , |x| = |y|}.

Zusammenfassung

Um die Nichtexistenz eines kleinen oder sogar eines beliebigen endlichen Automaten zu beweisen, reicht es nicht zu sagen, dass keiner der Ansätze funktioniert. Es muss etwas Allgemeines über die betrachtete Sprache bewiesen werden, um die Existenz eines kleinen oder überhaupt eines endlichen Automaten für die Akzeptanz der Sprache auszuschließen.

In dieser Lektion haben wir eine einfache und dabei wirksame Methode für Nichtexistenzbeweise entwickelt. Die Methode basiert auf der Zuordnung der Wortklassen zu jedem Zustand und auf der Fähigkeit, eine große (potentiell unendliche) Gruppe von Wörtern zu finden, von denen keine zwei zur gleichen Zustandsklasse eines Automaten gehören dürfen. Die Suche nach dieser Gruppe von Wörtern basiert auf einer Schätzung, welche Information über das bisher gelesene Wort gespeichert werden muss.

Es bestehet die Möglichkeit, die Beweise sowohl direkt als auch indirekt zu führen. Bei direkten Beweisen gehen wir konstruktiv vor, indem wir eine Gruppe unterschiedlicher Wörter bilden, von denen keine zwei in die gleiche Zustandsklassen gehören dürfen. Beim indirekten Beweisen setzen wir voraus, dass es für die gegebene Sprache einen endlichen Automaten mit einer gewissen Größe gibt. Danach konstruieren wir eine Gruppe von Wörtern, die größer ist als die Anzahl der Zustände des endlichen Automaten und in

500

Lektion 7 Größe endlicher Automaten und Nichtexistenzbeweise

der kein Wortpaar zur gleichen Zustandsklasse gehören darf. Damit erhalten wir einen Widerspruch zu der Annahme, dass der Automat die Sprache akzeptiert.

Kontrollfragen

a)Warum sind Nichtexistenzbeweise oft schwieriger als andere Beweise?

b)Was hat die Entwurfsmethode der Zustandsklassen mit den Nichtexistenzbeweisen gemeinsam?

c)Wie kann man mittels indirekter Beweismethode zeigen, dass für gewisse Sprachen keine endlichen Automaten existieren?

Kontrollaufgaben

1.Beweise für die gegebene Zahl k und die gegebene Sprache L, dass jeder endliche Automat M mit L(M) = L mindestens k Zustände haben muss.

a)k = 7, L = {x110110y | x, y {0, 1} }

b)k = 4, L = {x0y | x {0, 1} , y {0, 1}}

c)k = 6, L = {x {0, 1} | |x|0 ist gerade und |x|1 2}

2.Bestimme die Mindestgröße endlicher Automaten zum Erkennen folgender Sprachen:

a){1x11y | x, y {0, 1} },

b){x {0, 1} | |x|0 {0, 2} und |x|1 mod 3 = 2},

c){x {0, 1} | |x| ≤ 3},

d){x00y | x {0, 1} , y {00, 01, 10, 11}}.

3.Beweise, dass folgende Sprachen keine regulären Sprachen sind, d.h. dass sie von keinem endlichen Automaten akzeptiert werden können.

a)* {0n! | n N},

501

b)* {1n20n3 | n N},

c){02n1n02n | n N},

d){x2y | |x|1 = |y|0, x, y {0, 1} },

e){w#w#w | w {0, 1} },

f){x#y | x, y {0, 1} , x ist ein Präfix von y},

g){uv | u, v {0, 1} , u ist ein Präfix von v}.

Lösungen zu ausgesuchten Aufgaben

Aufgabe 7.2

Es stehen unendlich viele passende Möglichkeiten zur Wahl der Wörter x1, x2, x3 und x4. Wenn wir den endlichen Automaten in Abb. 7.1 betrachten, funktioniert unsere Methode für eine beliebige Wahl von xi aus Klasse[qi−1] für i = 1, 2, 3, 4.

 

0

 

0

 

 

 

0

 

 

 

 

q0

 

q1

 

 

q2

 

 

q3

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Abbildung 7.1

 

 

Wählen wir zum Beispiel

 

 

 

 

 

 

 

x1

= 0000

 

 

 

 

x2

= 00000

 

 

x3

= 00

 

 

 

 

x4

= 000.

 

 

 

Um zu zeigen, dass kein Paar (xi, x j ) die Eigenschaft hat, dass beide Wörter xi und x j zu der gleichen Zustandsklasse gehören können, kann man die entsprechenden zi j wie folgt wählen:

z12

= 000

z13 = 0

z14

= λ

z23 = 0

z24 = λ

z34 = λ .

Aufgabe 7.4 (a)

Um Wörter mit dem Teilwort 101 zu akzeptieren, muss sich ein endlicher Automat merken, ein

502

Lektion 7 Größe endlicher Automaten und Nichtexistenzbeweise

wie langes passendes Präfix er gerade gefunden hat. Das Präfix kann die Länge 0, 1, 2 oder 3 haben. Damit ist die einfachste Wahl der Wörter, die nicht zur gleichen Zustandsklasse gehören dürfen, die folgende:

x1 = λ

x2 = 1

x3 = 10

x4 = 101.

Wenn wir z12 gleich 01 setzen, erhalten wir

 

x1z12 = 01 / L und x2z12 = 101 L.

 

Für x2 und x3 wählen wir z23 = 1 und erhalten

 

x2z23 = 11 / L und x3z23 = 101 L.

 

Weiter kann man erfolgreich

 

z13 = 1

z14 = λ

z24 = λ

z34 = λ

setzen.

 

Aufgabe 7.6 (b)

Um Mn = {wcw | w {a, b}n} zu akzeptieren, braucht man mindestens 2n viele Zustände. Der Grund dafür ist, dass man jedes Präfix w {a, b}n vollständig abspeichern muss, um es später mit dem Wort hinter c vergleichen zu können. Es gibt 2n viele Wörter über {a, b} der Länge n. Wir müssen jetzt beweisen, dass für jedes Paar (u, v) mit u, v {a, b}n, u =v, ein Wort z existiert, so dass uz L und vz / L.

Die Wahl ist einfach. Wir wählen z = cu. Somit erhalten wir

uz = ucu L und vz = vcu / L (weil v =u).

Die Zahl 2n ist nur eine untere Schranke für die Anzahl der benötigten Zustände. Tatsächlich kann man sogar beweisen, dass mindestens 2n+1 1 Zustände notwendig sind. Schaffst du es selbstständig? Zeichne einen endlichen Automaten für M3!

Aufgabe 7.7

Mit xi = 02i trifft man auch eine gute Wahl. Für xi = 02i und x j = 02 j mit i =j reicht es, zi j zu wählen. Somit erhält man

xizi j = 02i12i L und x j zi j = 02 j 12i / L.

Die Beweismethode wird funktionieren, auch wenn man Wörter xi = 0i1 für i = 1, 2, 3, . . .

Für diese Wahl reicht es, zi j als 1i−1 zu setzen.

= 12i

wählt.

503

Aufgabe 7.12

Um die Nichtregularität der Sprache

L = {w {0, 1} | |w|0 = 2|w|1}

zu zeigen, kann man ähnlich wie in Beispiel 7.2 vorgehen. Wir beweisen zuerst, dass alle Wörter der Form 02n1n in L gehören und dass kein Wort der Form 02i1 j für i =j in L liegt. Somit kann man xi = 02i für i = 1, 2, . . . wählen. Für beliebige xi und x j mit i =j wählen wir dann zi j = 1i und erhalten

xizi j = 02i1i L und x j zi j = 02i1 j / L.

Aufgabe 7.13 (d)

Die Nichtregularität der Sprache

L = {an2 | n N}

kann man dank der wachsenden Differenz zwischen zwei nachfolgenden Quadratzahlen beweisen. Wir berechnen, dass

(n + 1)2 = n2 + 2 ·n + 1 und somit

(n + 1)2 −n2 = 2 ·n + 1

gilt. Wir wählen jetzt

 

xi = ai2 +1 / L

für i = 1, 2, . . .. Für xi und x j mit i < j wählen wir zi j = a2i. Somit erhalten wir xizi j = ai2 +1a2i = a(i+1)2 L

und

x j zi j = a j2 +1a2i = a j2 +2i+1 / L.

Das Letzte gilt, weil j2 < j2 + 2 ·i + 1 < j2 + 2 · j + 1 = ( j + 1)2. Somit liegt j2 + 2i + 1 zwischen zwei nachfolgenden Quadratzahlen und ist damit keine Quadratzahl.

Lektion 8

Zusammenfassung des Moduls

In diesem Modul haben wir das einfachste Berechnungsmodell – die endlichen Automaten

– kennen gelernt. Endliche Automaten entsprechen einfachen Programmen, die keine Variablen und damit keinen zusätzlichen Speicher (außer dem Speicher für das Programm selbst) verwenden. Dabei haben wir erfahren, was die Grundbegriffe Konfiguration, Berechnungsschritt, Berechnung und Simulation bedeuten und wie sie formal beschrieben werden können.

Die wichtigsten Lerninhalte waren die folgenden Methoden und Beweistechniken:

1.Die Entwurfsmethode für endliche Automaten, die auf der Bestimmung der Bedeutung einzelner Zustände durch Zustandsklassen basiert.

2.Die modulare Entwurfsmethode, die komplexe Automaten aus einfacheren Automaten zusammenbaut.

3.Die Korrektheit der entworfenen Automaten zu beweisen.

4.Endliche Automaten zur Steuerung von realen Systemen wie Verkaufsautomaten, Fahrstühlen und Kreuzungen zu entwerfen.

5.Techniken zum Beweisen, dass der entworfene Automat die minimal mögliche Anzahl von Zuständen hat, d.h. Beweistechniken für die Mindestgröße von endlichen Automaten zu gegebenen, konkreten Zwecken.

6.Direkte und indirekte Techniken zum Beweis der Nichtexistenz endlicher Automaten für konkrete Sprachen.

J.Hromkovicˇ, Lehrbuch Informatik, DOI 10.1007/978-3-8348-9692-6_29,

© Vieweg+Teubner |GWV Fachverlage GmbH, Wiesbaden 2008

506

Lektion 8 Zusammenfassung des Moduls

Neben dem Erlernen von Grundlagen der Automatentheorie haben wir zur Festigung unserer eigenen mathematischen Denkweise beigetragen. Wir haben geübt, direkte und indirekte Beweise sowie Induktionsbeweise zu führen. Während des gesamten Moduls wurde die Mathematik als Sprache der Wissenschaft benutzt, um Objekte unseres Interesses prägnant beschreiben und eindeutige Aussagen über sie treffen zu können.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]