Theoretische Informatik
Prof. Dr. Jürgen Cleve
Hochschule Wismar
24. August 2015
Inhaltsverzeichnis
1
TI – Einführung
2
Grundlagen
3
Automatentheorie
4
Logik
5
Komplexität
6
Berechenbarkeit & Entscheidbarkeit
Infos
Folien, Übungen etc. in Stud.IP
Modul TI
in ILIAS, viele Zusatzinfos (Videos, Tests)
Lehrveranstaltungen 2 V + 2 Ü
Prüfung
Klausur 120 min
Literatur
Skript, dort auch weitere Literatur
1 TI – Einführung
Theoretische Informatik
24. August 2015
Inhaltsverzeichnis
1
TI – Einführung
2
Grundlagen
3
Automatentheorie
4
Logik
5
Komplexität
6
Berechenbarkeit & Entscheidbarkeit
1 TI – Einführung
Theoretische Informatik
24. August 2015
Inhaltsverzeichnis – Kapitel 1
1
TI – Einführung
Einordnung von TI
Inhalte von TI
TI – Motivation
1 TI – Einführung
Theoretische Informatik
Folie 1-1 (6)
TI – Einführung
The sum of the intelligence on the planet remains a
constant; the population, however, continues to grow.
Mr. Cole’s Axiom
1 TI – Einführung
Theoretische Informatik
1.1 Einordnung von TI
Was ist Informatik?
Definition 1.1 (Informatik; Meyers Neues Lexikon, 1993)
Informatik ist die Wissenschaft von der automatischen
Informationsverarbeitung mit Hilfe von Computern, insbesondere
dem Entwurf und der Formulierung von Algorithmen in
angemessenen Sprachen sowie
ihre physische Realisation.
Folie 1-2 (7)
1 TI – Einführung
1.1 Einordnung von TI
Theoretische Informatik
Folie 1-3 (8)
Informatik und die reale Welt
Reale Welt
Objekte
Handlungen
Eigenschaften (von Objekten)
Beziehungen (zwischen Objekten)
Informatik
Daten
Algorithmen
Attribute (von Daten)
Relationen (zwischen Daten)
1 TI – Einführung
Theoretische Informatik
1.1 Einordnung von TI
Folie 1-4 (9)
Teilgebiete der Informatik
Technische Informatik
Theoretische Informatik
Informatik
Praktische Informatik
Angewandte Informatik
1 TI – Einführung
1.2 Inhalte von TI
Gegenstand der Vorlesung
;
theoretische Grundlagen und Konzepte der Informatik
Grundbegriffe, inkl. Graphen
Automaten
formale Sprachen
Algorithmen
Berechenbarkeit
Komplexität
Logik
Theoretische Informatik
Folie 1-5 (10)
1 TI – Einführung
Theoretische Informatik
1.3 TI – Motivation
Folie 1-6 (11)
Wozu TI ??
TI ist Philosophie.
I
I
I
I
Welche Probleme sind unlösbar?
Welche Probleme sind theoretisch lösbar, praktisch unlösbar?
Was ist Berechenbarkeit?
Was ist Indeterminismus, Zufall?
TI ist praxisrelevant.
I
I
I
I
I
TI liefert Methodik.
TI stellt Berechnungsmodelle wie endliche Automaten bereit.
TI liefert einen guten Zugang zum Zufall.
TI gibt uns eine klare, unmissverständliche Sprache.
TI liefert Grundlagen für die Softwareverifikation.
TI-Resultate haben lange Lebensdauer.
I
I
I
TI liefert relativ stabiles Wissen.
TI enthält fundierte Techniken.
. . . losgelöst von bestimmten Produkten.
TI fördert das (formale) Denken.
1 TI – Einführung
Theoretische Informatik
1.3 TI – Motivation
Folie 1-7 (12)
Motto der Vorlesung
Nichts ist so praktisch wie eine gute Theorie.
2 Grundlagen
Theoretische Informatik
24. August 2015
Inhaltsverzeichnis
1
TI – Einführung
2
Grundlagen
3
Automatentheorie
4
Logik
5
Komplexität
6
Berechenbarkeit & Entscheidbarkeit
2 Grundlagen
Theoretische Informatik
24. August 2015
Inhaltsverzeichnis – Kapitel 2
2
Grundlagen
Mengen
Relationen
Funktionen
Formale Sprachen
Graphen
Zusammenfassung (Grundlagen)
Aufgaben (Grundlagen)
2 Grundlagen
Theoretische Informatik
Folie 2-1 (15)
Grundlagen
Wenn Eins besonders groß ist, ist es beinahe so groß wie
ein bisschen Zwei.
Murphys mathematisches Axiom
Arthur Bloch, Murphy’s Law, 1981
2 Grundlagen
Theoretische Informatik
2.1 Mengen
Folie 2-2 (16)
Mengen
Menge ist eine Zusammenfassung von Objekten
Schreibweise: {x , y , . . .}
Element-Beziehung (∈) : x ∈ M, wenn M = {. . . , x , . . .}
Gleichheit von Mengen
Leere Menge, Darstellung als {} oder 0/
Teilmengen (⊂), echte Teilmengen
Es gibt endliche (alle lebenden Menschen) und unendliche (Zahlen)
Mengen.
Mengen werden i.allg. durch Eigenschaften beschrieben:
M = {x ∈ IN | x ≤ 6}
Video 25/5
2 Grundlagen
Theoretische Informatik
2.1 Mengen
Folie 2-3 (17)
Mengen
Beispiel 2.1 (Mengen)
Menge aller geraden Zahlen: {0, 2, 4, 6, . . .}
Menge aller Zeichenketten über dem Alphabet {a, b}:
{e, a, b, aa, bb, ab, ba, aaa, aab, . . .}
Alle Studenten von WI12: {Klaus, Erwin, Anne, Petra, . . . }
M = {(x , y ) ∈ IN × IN | x ∗ y ist gerade}
/ nicht die leere Menge ist, sondern die
Beachten Sie, dass {0}
Menge, die die leere Menge als (einziges) Element enthält.
2 Grundlagen
Theoretische Informatik
2.1 Mengen
Mengenoperationen
Vereinigung (∪)
Durchschnitt (∩)
Mengendifferenz (\)
Symmetrische Mengendifferenz (−)
Mengenkomplement (A oder Ac )
Folie 2-4 (18)
2 Grundlagen
Theoretische Informatik
2.1 Mengen
Mengenoperationen
Beispiel 2.2 (Mengenoperationen)
{3, 2, 1} ∪ {3, 4, 5} = {1, 2, 3, 4, 5}
{1, 2, 3} ∩ {3, 4, 5} = {3}
{2, 1, 3} \ {3, 4, 5} = {1, 2}
{1, 2, 3} − {3, 4, 5} = {1, 2, 4, 5}
Sei die Grundmenge {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, dann ist
{3, 4, 5} = {1, 2, 6, 7, 8, 9, 10}
Folie 2-5 (19)
2 Grundlagen
Theoretische Informatik
2.1 Mengen
Folie 2-6 (20)
Eigenschaften von Mengenoperationen – 1
Idempotenz
Kommutativität
Assoziativität
Distributivität
Absorption
Identität
(Grundmenge X )
A∪A = A
A∩A = A
A∪B = B∪A
A∩B = B∩A
(A ∪ B ) ∪ C = A ∪ (B ∪ C )
(A ∩ B ) ∩ C = A ∩ (B ∩ C )
(A ∪ B ) ∩ C = ( A ∩ C ) ∪ (B ∩ C )
(A ∩ B ) ∪ C = ( A ∪ C ) ∩ (B ∪ C )
A ∪ (A ∩ B ) = A
A ∩ (A ∪ B ) = A
A ∩ 0/ = 0/
A∪X = X
Tabelle 1: Eigenschaften von Mengenoperationen – 1
2 Grundlagen
Theoretische Informatik
2.1 Mengen
Folie 2-7 (21)
Eigenschaften von Mengenoperationen – 2
Involution
DeMorgans Law
Gesetz vom Widerspruch
Gesetz vom ausgeschlossenen Dritten
A=A
A \ (B ∩ C ) = (A \ B ) ∪ (A \ C )
A \ (B ∪ C ) = (A \ B ) ∩ (A \ C )
(A ∪ B ) = A ∩ B
(A ∩ B ) = A ∪ B
A ∩ A = 0/
A∪A = X
Tabelle 2: Eigenschaften von Mengenoperationen – 2
2 Grundlagen
Theoretische Informatik
2.1 Mengen
Folie 2-8 (22)
Weitere Begriffe
Disjunktheit: A ∩ B = 0/
Potenzmenge: 2B = { A | A ⊂ B } (Menge aller Teilmengen)
Abgeschlossenheit von Mengen bezüglich Operationen:
x , y ∈ M , dann x op y ∈ M
Größe einer Menge: |M |
2 Grundlagen
Theoretische Informatik
2.1 Mengen
Folie 2-9 (23)
Mengeneigenschaften
Beispiel 2.3 (Mengeneigenschaften)
Die Mengen {1, 2, 7, 8, 9, 10} und {2, 3, 4, 5} sind nicht disjunkt.
Die Mengen {1, 7, 8, 9, 10} und {2, 3, 4, 5} sind disjunkt.
/ {1}, {2}, {3}, {1, 2}, {1, 3}, {2, 3}, {1, 2, 3}}
2{1,2,3} = {0,
Die natürlichen Zahlen sind bezüglich der Addition
abgeschlossen.
Zur Darstellung von Mengen eignen sich die sogenannten
Venn1 -Diagramme.
1
John Venn, 1834-1923
2 Grundlagen
Theoretische Informatik
2.2 Relationen
Folie 2-10 (24)
Relationen
Beispiel-Relation:
verheiratet_mit =
{(Adam,Beate), (Claus,Dana), (Ernst,Franzi)}.
Kartesisches Produkt (Kreuzprodukt):
A × B = {(a, b) | a ∈ A, b ∈ B }
Oder:
A × B × C × D = {(a, b, c , d ) | a ∈ A, b ∈ B , c ∈ C , d ∈ D }
Das Kreuzprodukt ist also die Menge aller möglichen Kombinationen
aus den vorgegebenen Mengen.
Jede Relation ist eine Teilmenge des Kreuzprodukts über den
Grundmengen:
R ⊂ S1 × ... × Sn
2 Grundlagen
Theoretische Informatik
2.2 Relationen
Folie 2-11 (25)
Relationen
Beispiel 2.4 (Relationen)
Die Relation ist_verheiratet:
{(gert, inge), (uwe, petra), (wolfgang, gerda) . . .} ⊂
Männer × Frauen.
Die Relation ist_Teiler_von:
{(1, 1), (1, 2), (2, 2), (2, 4), (2, 6), (3, 6), . . .} ⊂ IN × IN.
{1, 2} × {a, b, c } = {(1, a), (2, a), (1, b), (2, b), (1, c ), (2, c )}
2 Grundlagen
Theoretische Informatik
2.2 Relationen
Folie 2-12 (26)
Relation – Student
Beispiel 2.5 (Relation – Student)
Die Relation student:
Matrikel
104526
103556
113576
104920
...
Name
Arnhold
Börne
Cäsar
Dönhoff
...
Vorname
Anton
Carl-Friedrich
Cleopatra
Dörte
...
Studiengang
MMT
WI
MMT
WI
...
student ⊂ Matrikel × Namen × Vornamen × Studiengänge
2 Grundlagen
Theoretische Informatik
2.2 Relationen
Folie 2-13 (27)
Eigenschaften von 2-stelligen Relationen
Betrachten nur 2-stellige Relationen über gemeinsamer
Grundmenge: R ⊂ A × A.
z.B. Kleiner-Relation auf natürlichen Zahlen: <IN ⊂ IN × IN.
Schreibweise: x R y an Stelle von (x , y ) ∈ R
. . . x < y an Stelle von (x , y ) ∈<
Welche Eigenschaften können 2-stellige Relationen haben?
Reflexivität: Für alle x ∈ A gilt: xRx.
Andere Formulierung: Es gibt kein x ∈ A, für welches nicht gilt:
xRx.
Symmetrie: Für alle x , y ∈ A gilt: Falls xRy , so gilt auch y Rx.
Andere Formulierung: Es gibt keine x , y ∈ A, für die xRy gilt,
jedoch nicht y Rx.
2 Grundlagen
Theoretische Informatik
2.2 Relationen
Folie 2-14 (28)
Eigenschaften von 2-stelligen Relationen
Antisymmetrie: Für alle x , y ∈ A gilt: Falls xRy und y Rx, so gilt
x=y .
Andere Formulierung: Es gibt keine x , y ∈ A, für die xRy und
y Rx gilt, jedoch nicht x=y .
Transitivität: Für alle x , y , z ∈ A gilt: Falls xRy und y Rz, so gilt
auch xRz.
Andere Formulierung: Es gibt keine x , y , z ∈ A, für die xRy und
y Rz gilt, jedoch nicht xRz.
Äquivalenzrelation (reflexiv, symmetrisch, transitiv)
Ordnungsrelation (reflexiv, antisymmetrisch, transitiv), (partiell,
total)
2 Grundlagen
Theoretische Informatik
2.2 Relationen
Folie 2-15 (29)
Partielle / totale Ordnungsrelationen
Totale Ordnungsrelation: zwei beliebig gewählte Elemente (x, y)
müssen immer vergleichbar sein, d.h. es muss xRy oder yRx
gelten.
Partielle Ordnungsrelation: Unvergleichbarkeit zugelassen.
Relation ist_teiler_von: partielle Ordnungsrelation, da
beispielsweise weder 3|7 noch 7|3 gilt.
2 Grundlagen
Theoretische Informatik
2.2 Relationen
Äquivalenz- / Ordnungsrelationen
Beispiel 2.6 (Relationen)
Kandidaten für Äquivalenzrelationen sind beispielsweise:
gleiche_haarfarbe
geschwister_von
Kandidaten für Ordnungsrelationen sind:
≥
klüger_als
Prüfen Sie die Eigenschaften.
Folie 2-16 (30)
2 Grundlagen
Theoretische Informatik
2.2 Relationen
Folie 2-17 (31)
Aufgaben
Aufgabe 2.1 (Relationen)
Sind folgende Aussagen korrekt?
Die Relation ist_verheiratet ist weder reflexiv noch transitiv.
Die Relation „x ist Teiler von y“ ist reflexiv und transitiv, jedoch
nicht symmetrisch.
2 Grundlagen
Theoretische Informatik
2.2 Relationen
Folie 2-18 (32)
Graphische Darstellung von 2-stelligen Relationen
Bemerkung 2.1 (Graphische Darstellung)
2-stellige Relationen lassen sich graphisch darstellen (Abb. 1).
c
a
{(a,b), (f,b), (c,d)}
f
b
d
Abb. 1: Relationen – Beispiel
2 Grundlagen
Theoretische Informatik
2.2 Relationen
Folie 2-19 (33)
Hüllenbildung auf 2-stelligen Relationen
Bei der Hüllenbildung wird eine Relation um Elemente erweitert, so
dass eine bestimmte Eigenschaft gilt.
transitive Hülle
reflexive Hülle
symmetrische Hülle
Beachten Sie:
Bei der Hüllenbildung muss man auch die neuen Kanten
betrachten.
Nur die Erweiterungen, die zwingend nötig sind, nicht mehr!
2 Grundlagen
Theoretische Informatik
2.2 Relationen
Folie 2-20 (34)
Hüllenbildung auf 2-stelligen Relationen
Wozu braucht man eine solche Hülle?
Betrachten ein Computer-Netzwerk.
Möchten untersuchen, ob man von jedem Computer zu jedem
anderen kommt.
Die direkten Verbindungen der Computer seien durch die
Relation R dargestellt: Zwischen a und b besteht also eine
direkte Verbindung, wenn (a, b) ∈ R.
Wie bekommt man auch die indirekten Verbindungen?
reflexive, transitive Hülle von R
2 Grundlagen
Theoretische Informatik
2.2 Relationen
Folie 2-21 (35)
Hüllenbildung
0
21
2
0
1
1
0
0
1
2
1
0
0
1
0
21
0
1
1
10
0
1
1
30
0
1
1
10
0
1
1
3 0
0
1
0
11
0
1
3
1
0
0
1
0
51
0
1
4
1
0
0
1
0
51
0
1
0
41
0
1
0
51
0
1
4
0
61
0
1
Ausgangs−Relation
6
1
0
0
1
reflexive Hülle
6
1
0
0
1
1
0
0
1
symmetrische Hülle
Abb. 2: Hüllenbildung – Beispiel 1
0
11
0
1
0
31
0
1
1
0
0
1
0
51
0
1
4
6
1
0
0
1
transitive Hülle
2 Grundlagen
Theoretische Informatik
2.2 Relationen
Folie 2-22 (36)
Relationen – weitere Eigenschaften
Es gibt eine Reihe weiterer Eigenschaften von zweistelligen
Relationen R ⊂ A × B:
linkstotal
Zu jedem a gibt es (mind.) ein b, so dass (a, b) ∈ R.
rechtstotal
Zu jedem b gibt es (mind.) ein a, so dass (a, b) ∈ R.
linkseindeutig Falls (a1 , b) ∈ R und (a2 , b) ∈ R, dann a1 = a2 .
rechtseindeutig Falls (a, b1 ) ∈ R und (a, b2 ) ∈ R, dann b1 = b2 .
2 Grundlagen
Theoretische Informatik
2.3 Funktionen
Funktionen
Funktion – spezielle 2-stellige Relation
Wichtige Eigenschaft: Eindeutigkeit
Zu jedem a existiert höchstens ein b, so dass (a, b) ∈ R gilt.
a . . . Urbild
b . . . Bild
Folie 2-23 (37)
2 Grundlagen
Theoretische Informatik
2.3 Funktionen
Folie 2-24 (38)
Eigenschaften von Funktionen
totale
Funktion: Zu jedem Urbild gibt es genau ein Bild.
partielle
Funktion: Nicht zu jedem Urbild muss es ein Bild geben.
injektive
Funktion: Zu jedem Bild gibt es höchstens ein Urbild.
surjektive
Funktion: Zu jedem Bild gibt es mindestens ein Urbild.
bijektive
Funktion: total, injektiv und surjektiv
2 Grundlagen
Theoretische Informatik
2.3 Funktionen
Folie 2-25 (39)
Funktionen
1
0
11
00
00
11
1
0
1
0
0
1
00
11
11
00
nicht injektiv
nicht total
111
00
1
0
0
0
1
0
1
11
00
11 0
00
1
11
00
1
0
nicht surjektiv
00
11
1
0
01
1
0
0
1
1
0
11 00
00
00 11
11
1
0
11
00
Abb. 3: Funktionen – Beispiel
bijektiv
1
0
1
0
1
0
1
0
00
11
011
1
00
2 Grundlagen
Theoretische Informatik
2.3 Funktionen
Folie 2-26 (40)
Funktionen
Beispiel 2.7 (Funktionen)
Addition von natürlichen Zahlen: plus : IN × IN → IN
Absolutbetrag auf ganzen Zahlen: abs : ZZ → IN
Maximum von 4 reellen Zahlen: max : IR × IR × IR × IR → IR
Sind diese Funktionen injektiv, surjektiv, total?
Man verwendet als Abkürzung für IN × IN × . . . × IN häufig: INk .
2 Grundlagen
Theoretische Informatik
2.3 Funktionen
Folie 2-27 (41)
Funktionen
Bemerkung 2.2 (Injektivität, Surjektivität)
Wie kann man sich Injektivität und Surjektivität vorstellen?
Ist eine Funktion f injektiv, so ist ihre Umkehrfunktion f −1
wohldefiniert, denn zu jedem Bild gibt es maximal ein Urbild. Sie
kann jedoch partiell sein.
Ist die Funktion f zusätzlich noch surjektiv, dann ist f −1 sogar
total.
2 Grundlagen
Theoretische Informatik
2.3 Funktionen
Folie 2-28 (42)
Beispiel 2.8 (Injektivität, Surjektivität)
Die Funktion vater_von ist nicht injektiv, denn ihre
Umkehrabbildung vater_von−1 ist nicht eindeutig.
Die Funktion ehepartner_von ist in Deutschland injektiv, denn
man kann nicht 2 Ehepartner haben. Die Umkehrabbildung
ehepartner_von−1 ist eindeutig. Sie ist jedoch partiell.
2 Grundlagen
Theoretische Informatik
2.3 Funktionen
Folie 2-29 (43)
Weitere Begriffe
Definitionsbereich, Wertebereich von Funktionen
endliche und unendliche Mengen
Kardinalität einer Menge
Abzählbarkeit, Überabzählbarkeit
Definition 2.3 (Abzählbarkeit)
Eine unendliche Menge heißt abzählbar, wenn eine surjektive
Abbildung von den natürlichen Zahlen auf die Menge existiert, sonst
heißt sie überabzählbar.
2 Grundlagen
Theoretische Informatik
2.3 Funktionen
Folie 2-30 (44)
Abzählbarkeit
Satz 2.4 (Abzählbarkeit)
Jede unendliche Teilmenge einer abzählbaren Menge ist wieder
abzählbar.
Die Vereinigung von endlich vielen abzählbaren Mengen ist
wieder abzählbar.
Beispiel 2.9 (Abzählbarkeit)
Die rationalen Zahlen sind abzählbar. (Beweis als Aufgabe)
2 Grundlagen
Theoretische Informatik
2.4 Formale Sprachen
Folie 2-31 (45)
Formale Sprachen
Alphabet (endliche Menge von Symbolen)
(endliche) Zeichenketten (Wörter, Strings) über einem Alphabet
leere Zeichenkette e, Teilzeichenkette
Länge einer Zeichenkette: |w |
Anzahl von Zeichen (a) in einer Zeichenkette w: |w |a
Konkatenation (Verknüpfung) von Zeichenketten (ist assoziativ)
Umkehrung einer Zeichenkette (reversal)
2 Grundlagen
Theoretische Informatik
2.4 Formale Sprachen
Folie 2-32 (46)
Formale Sprachen
Definition 2.5 (Formale Sprache)
Formale Sprache – eine Teilmenge der Menge aller endlichen
Zeichenketten über einem vorgegebenen Alphabet Σ.
Beschreibung:
L = {w ∈ Σ∗ |w hat die Eigenschaft P }
wobei die Eigenschaft P endlich beschreibbar sein muss.
(Σ∗ = Menge aller endlichen Zeichenketten über Σ, inkl. e)
Satz 2.6 (Abzählbarkeit)
Jede Sprache über einem endlichen Alphabet ist abzählbar.
2 Grundlagen
Theoretische Informatik
2.4 Formale Sprachen
Operationen
Konkatenation (Produkt) von Sprachen
L1 • L2 = {x • y | x ∈ L1 und y ∈ L2 }
Kleenescher Abschluss (Kleene star): Vereinigung aller
endlichen Produkte der Sprache L mit sich selbst:
S
i
L∗ = ∞
i =0 L = {e} ∪ L ∪ (L • L) ∪ (L • L • L) ∪ . . ..
Folie 2-33 (47)
2 Grundlagen
Theoretische Informatik
2.4 Formale Sprachen
Folie 2-34 (48)
Operationen
Beispiel 2.10 (Stringoperationen)
{a, b} • {d , ff , g } = {ad , aff , ag , bd , bff , bg }
{a, bb}∗ = {e, a, bb, aa, abb, bba, bbbb, aaa, aabb, . . .} (Menge
aller endlichen Zeichenketten, gebildet aus den Bausteinen a /
bb).
2 Grundlagen
Theoretische Informatik
2.4 Formale Sprachen
Folie 2-35 (49)
2.4.1 Reguläre Ausdrücke
Reguläre Ausdrücke
Man kann Sprachen durch Ausdrücke der folgenden Form
beschreiben:
1
2
a∗ b∗ Menge der Zeichenketten, aufgebaut aus endlichen vielen
a (einschließlich 0) gefolgt von endlich vielen b (einschließlich 0).
a(a∗ ∪ b∗ )a+
I
I
I
3
Das 1. Zeichen ist ein a.
Dann folgt ein beliebiger String, gebildet entweder nur aus
a-Zeichen oder nur aus b-Zeichen (einschließlich dem leeren
String).
Danach kommen beliebig viele a, aber mindestens 1.
(a ∪ ab)∗ ∩ (a ∪ ba)∗ alle Zeichenketten, die sowohl durch den
ersten als auch den zweiten Ausdruck darstellbar sind.
2 Grundlagen
Theoretische Informatik
2.4 Formale Sprachen
Folie 2-36 (50)
2.4.1 Reguläre Ausdrücke
Reguläre Ausdrücke
Bemerkung 2.7 (Reguläre Ausdrücke)
an bm . . . n a, danach m b
an bn . . . n a, danach gleich viele b
Beispiel 2.11 (Reguläre Ausdrücke)
an+2 bn . . . Zunächst a, dann b. 2 a mehr als b.
am bn am . . . a, dann b, dann wieder a. Gleich viele a vor und nach
den b.
am bn , m ≥ n . . . a, dann b; mindestens so viele a wie b.
(a ∪ b)n , n ≥ 2 . . . Beliebig a/b; mindestens 2.
2 Grundlagen
Theoretische Informatik
2.4 Formale Sprachen
Folie 2-37 (51)
2.4.1 Reguläre Ausdrücke
Reguläre Ausdrücke
Reguläre Ausdrücke sind
die leere Menge,
die Wörter der Länge 1
sowie
Konkatenation, Vereinigung, Durchschnitt und Kleenescher
Abschluss von regulären Ausdrücken.
Darstellung:
Konkatenation a∗ • b∗ oder einfach a∗ b∗ .
Vereinigung
∪
Durchschnitt ∩
Kleene-Star
∗
2 Grundlagen
Theoretische Informatik
2.4 Formale Sprachen
Folie 2-38 (52)
2.4.1 Reguläre Ausdrücke
Reguläre Ausdrücke
Beispiel 2.12 (Reguläre Ausdrücke)
Der Ausdruck a(a∗ ∪ b∗ )b steht für die Zeichenketten, die wie folgt
aufgebaut sind:
Das 1. Zeichen ist ein a.
Dann folgt eine beliebige Zeichenkette, gebildet entweder nur aus
as oder nur aus bs (einschließlich dem leeren String).
Das letzte Zeichen ist ein b.
2 Grundlagen
Theoretische Informatik
2.4 Formale Sprachen
Folie 2-39 (53)
2.4.1 Reguläre Ausdrücke
Reguläre Ausdrücke – Typische Fehler
Beispiel 2.13 (Reguläre Ausdrücke – Typische Fehler)
a∗ ∩ b ∗
Alle Zeichenketten aus a UND alle Zeichenketten aus
b? NEIN.
String muss beiden Mustern a∗ und b∗ genügen: Nur
der leere String e.
a∗ ∪ b ∗
Zeichenketten, aufgebaut aus a und b, aber nicht
vermischt.
Jeder String ist aufgebaut aus NUR a oder NUR aus b.
(a ∪ b )∗
Nun dürfen a und b beliebig gemischt auftreten.
2 Grundlagen
Theoretische Informatik
2.4 Formale Sprachen
Folie 2-40 (54)
2.4.1 Reguläre Ausdrücke
Reguläre Ausdrücke
Beispiel 2.14 (Reguläre Ausdrücke)
regulärer Ausdruck
a∪b
(a ∪ b)(a ∪ b)
a(a ∪ b) ∪ b(a ∪ b)
(ab)∗
a∗ b ∗
a∗ ∪ b ∗
a∩b
a∗ ∩ b ∗
(a ∪ b)∗
(0 ∪ 1)∗ ∪ (a ∪ b)∗
a(ba)∗ b∗ ∩ (ab)∗ a∗
Sprache L
{a , b }
{aa, ab, ba, bb}
{aa, ab, ba, bb}
{(ab)n |n ≥ 0}
{am bn |m, n ≥ 0}
{an |n ≥ 0} ∪ {bn |n ≥ 0}
{}
{e}
beliebige Zeichenketten über a, b
bel. Strings nur aus 0/1 oder nur aus a/b
{a} ∪ {(ab)m an |m ≥ 1, n ≤ 1}
2 Grundlagen
Theoretische Informatik
2.5 Graphen
Folie 2-41 (55)
Königsberger Brückenproblem (Euler 1736)
Das Königsberger Brückenproblem geht auf Euler2 zurück. In
Königsberg gab es 7 Brücken. Die Aufgabe war, einen Rundweg zu
finden, so dass jede der 7 Brücken genau einmal überquert wird.
1
0
1
0
1
0
0
1
1
0
0
1
1
0
0
1
Abb. 4: Königsberger Brückenproblem
Ist das Problem lösbar?
2
Leonhard Euler, 1707-1783
2 Grundlagen
Theoretische Informatik
2.5 Graphen
Folie 2-42 (56)
Graphen – Bedeutung
Rechnernetze: Konfiguration, Routing etc.
Suche: Suchprobleme als Suche in Graphen
Tourenplanung, Verkehrsweg-Planung
Compiler
Datenbanken
Darstellung von zustandsorientierten Modellen
I
I
Automaten
Modellierung von Workflows
2 Grundlagen
Theoretische Informatik
2.5 Graphen
Folie 2-43 (57)
Beispiel-Graphen
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
Abb. 5: Beispiel-Graphen
2 Grundlagen
Theoretische Informatik
2.5 Graphen
Folie 2-44 (58)
2.5.1 Grundlagen und Grundbegriffe
Grundlagen und Grundbegriffe
Definition 2.8 (Graph)
Ein Graph ist definiert als Paar G = (K , V ), wobei
K eine nichtleere Menge von Knoten
und
V ⊂ K × K eine Menge von Kanten (Verbindungen) ist.
Wir sagen, zwischen den Knoten a und b besteht eine Verbindung,
wenn gilt: (a, b) ∈ V oder (b, a) ∈ V .
2 Grundlagen
Theoretische Informatik
2.5 Graphen
Folie 2-45 (59)
2.5.1 Grundlagen und Grundbegriffe
Gerichteter Graph
Definition 2.9 (Gerichteter Graph)
Ein gerichteter Graph ist definiert als Paar G = (K , V ), wobei
K eine nichtleere Menge
und
V ⊂ K × K ist.
Wir sagen, zwischen den Knoten a und b besteht eine Verbindung,
wenn gilt: (a, b) ∈ V .
Schlingen: Verbindungen der Form (a, a) ∈ V
bei gerichteten Graphen: zugelassen
bei ungerichteten Graphen: nein.
2 Grundlagen
Theoretische Informatik
2.5 Graphen
Folie 2-46 (60)
2.5.1 Grundlagen und Grundbegriffe
Komplement eines Graphen, Grad von Knoten
Definition 2.10 (Komplement eines Graphen)
Das Komplement eines Graphen G = (K , V ) ist definiert durch
Gc = (K , V 0 ), wobei V 0 = (K × K ) \ V .
Definition 2.11 (Grad)
Der Grad eines Knoten k : g (k ) eines ungerichteten Graphen (K , V )
ist die Anzahl, wie oft k in Kanten enthalten ist. Bei gerichteten
Graphen unterscheidet man zwischen g (k )+ (abgehende Kanten) und
g (k )− (ankommende Kanten).
2 Grundlagen
Theoretische Informatik
2.5 Graphen
Folie 2-47 (61)
2.5.1 Grundlagen und Grundbegriffe
Kantenzug, Weg, Kreis
Definition 2.12 (Kantenzug, Weg, Kreis)
Sei (v1 , v2 , . . . vn ) eine Folge von Kanten eines Graphen G. Man
bezeichnet diese Kantenfolge als
Kantenzug
falls es Knoten k0 , . . . , kn ∈ K gibt, so dass vi = ki −1 ki .
Weg
falls die ki paarweise verschieden sind.
geschlossenen Kantenzug falls k0 = kn
Kreis
falls im Kantenzug die ki paarweise verschieden sind.
2 Grundlagen
2.5 Graphen
Theoretische Informatik
Folie 2-48 (62)
2.5.1 Grundlagen und Grundbegriffe
Verbindbar, zusammenhängend
Definition 2.13 (Verbindbar, zusammenhängend)
Zwei Knoten a, b eines Graphen G = (K , V ) heißen verbindbar, wenn
es einen Kantenzug von a nach b gibt.
G heißt zusammenhängend, wenn jedes beliebige Knotenpaar
a, b ∈ K verbindbar ist.
Abstand von 2 Knoten: Länge des kürzesten Weges zwischen diesen.
2 Grundlagen
Theoretische Informatik
2.5 Graphen
Folie 2-49 (63)
2.5.1 Grundlagen und Grundbegriffe
Spezielle Graphen
Vollständige Graphen (Jeder Knoten ist mit jedem verbunden.)
Zyklische Graphen (Der Graph ist ein geschlossener Weg.)
Reguläre Graphen (Jeder Knoten hat den gleichen Grad.)
Ein kreisfreier gerichteter Graph wird als DAG bezeichnet
(directed acyclic graph).
2 Grundlagen
Theoretische Informatik
2.5 Graphen
Folie 2-50 (64)
2.5.1 Grundlagen und Grundbegriffe
Graphen
1
1
0
0
1
0
21
0
1
0
41
0
1
3
1
0
0
1
11
00
00 5
11
Abb. 6: Beispielgraph
Grad der Knoten: 1:4, 2:1, 3:3, 4:2, 5:2
Kantenzug (z.B.): 1-3-4-5-3, Weg (z.B.): 1-3-4-5
geschlossener Kantenzug (z.B.): 3-4-5-3-4-5-3
Kreis (z.B.): 3-4-5-3
Der Graph ist zusammenhängend.
Der Abstand zwischen 2 und 3 ist 2.
2 Grundlagen
2.5 Graphen
Theoretische Informatik
Folie 2-51 (65)
2.5.2 Bäume
Bäume
Definition 2.14 (Baum)
Ein Graph G = (K , V ) heißt Baum, falls es für jedes Paar a, b ∈ K
genau einen Weg von a nach b gibt.
Bäume sind also spezielle zusammenhängende Graphen.
In Bäumen gilt: Kantenanzahl = Knotenanzahl - 1
Bäume enthalten keine Kreise.
2 Grundlagen
Theoretische Informatik
2.5 Graphen
Folie 2-52 (66)
2.5.2 Bäume
Bäume
1
0
0
1
1
0
1
0
1
0
1
0
0 0
1
0 1
1
1
0
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
0
1
1
0
0
1
Abb. 7: Baum oder nicht ?
1
0
0
1
1
0
0
1
1
0
1
0
2 Grundlagen
Theoretische Informatik
2.5 Graphen
Folie 2-53 (67)
2.5.2 Bäume
Gerichteter Baum
Definition 2.15 (Gerichteter Baum)
gerichteter Graph G = (K , V ) heißt gerichteter Baum, falls
zugrundeliegender ungerichteter Graph ein Baum
Knoten eines gerichteten Baums mit Ausgangsgrad 0 heißt Blatt.
Knoten eines gerichteten Baumes heißt Wurzel, wenn von dort
aus jeder andere Knoten erreichbar
Gerichteter Baum heißt Wurzelbaum, wenn er genau eine
Wurzel besitzt.
Die Tiefe eines Wurzelbaums ist die maximale Entfernung eines
Blatts von der Wurzel.
Wurzelbaum heißt ausgeglichen (engl. balanced), wenn die
Tiefe der Blätter um maximal 1 differiert.
2 Grundlagen
Theoretische Informatik
2.5 Graphen
Folie 2-54 (68)
2.5.2 Bäume
Bäume
Ungerichtete Graphen als Datenstrukturen wenig sinnvoll.
Häufig findet man eine rekursive Definition von Bäumen.
Definition 2.16 (Baum)
Sei K eine Menge von Knoten.
Jeder Knoten e ∈ K ist ein Baum.
Seien b1 , . . . , bn Bäume. Dann ist auch tree(b1 , . . . , bn ) ein Baum.
Aufgabe 2.2 (Baum)
Welchem unserer Begriffe entspricht dies?
Was ist an dieser Definition nicht korrekt, auch wenn sie intuitiv
korrekt erscheint? Was muss man an dieser Definition verfeinern?
2 Grundlagen
Theoretische Informatik
2.5 Graphen
2.5.2 Bäume
Binäre Bäume
Definition 2.17 (Binärer Baum)
Ein binärer Baum ist ein gerichteter Baum mit der Eigenschaft:
Jeder Knoten hat maximal einen Ausgangsgrad von 2.
Folie 2-55 (69)
2 Grundlagen
Theoretische Informatik
2.5 Graphen
Folie 2-56 (70)
2.5.2 Bäume
Anwendungen von Bäumen
Hierarchische Dateisysteme (Directories und Subdirectories)
Ableitungsbäume (Compiler, Sprachverarbeitung)
Suchbäume
Bemerkung 2.18 (Ausgeglichener Binärbaum)
Ein Binärbaum heißt ausgeglichen (engl. balanced), wenn im Baum
bis zur vorletzten Ebene alle Knoten existieren, d.h. jeder Knoten bis
zur Ebene n-1 den Ausgangsgrad 2 hat.
2 Grundlagen
Theoretische Informatik
2.5 Graphen
Folie 2-57 (71)
2.5.3 Binäre Suchbäume
Binäre Suchbäume
Definition 2.19 (Binärer Suchbaum)
Ein binärer Suchbaum ist ein Binärbaum, wobei gilt:
Alle Elemente im linken Teilbaum sind kleiner als das Element
der Wurzel.
Alle Elemente im rechten Teilbaum sind größer als das Element
der Wurzel (oder gleich).
2 Grundlagen
Theoretische Informatik
2.5 Graphen
Folie 2-58 (72)
2.5.3 Binäre Suchbäume
Suchbaum – Beispiel
19
10
5
3
21
12
7
28
12
24
Abb. 8: Beispiel-Suchbaum
35
2 Grundlagen
Theoretische Informatik
2.5 Graphen
Folie 2-59 (73)
2.5.3 Binäre Suchbäume
Aufgaben
Aufgabe 2.3 (Suchbaum)
Wie kann man einen Suchbaum aufbauen?
Möglichkeit: den Baum „nach und nach “ aufbauen.
I
I
Zu Beginn: Baum besteht nur aus der 1. gegebenen Zahl.
Die zweite Zahl vergleicht man nun mit der 1. Zahl.
Kleiner
sonst
I
→ links mit neuer Kante einfügen,
→ rechts mit neuer Kante einfügen.
Und so weiter . . .
Sehen Sie Alternativen zu diesem Vorgehen?
2 Grundlagen
Theoretische Informatik
2.5 Graphen
Folie 2-60 (74)
2.5.4 Beispielprobleme und Algorithmen
Beispielprobleme und Algorithmen
Typische Aufgaben sind:
Weg suchen
Nachbarn bestimmen
Vorgänger bzw. Nachfolger in gerichteten Graphen bestimmen
2 Grundlagen
Theoretische Informatik
2.6 Zusammenfassung (Grundlagen)
Folie 2-61 (75)
Das sollten Sie wissen . . .
Zusammenfassung 2.20 (Grundlagen)
Mengen, -operationen und -relationen
Eigenschaften von Mengenoperationen und -relationen
endliche / unendliche Mengen
Relationen, Kreuzprodukt, Eigenschaften von 2-stelligen
Relationen
Hüllenbildung, Abgeschlossenheit
Funktionen und deren Eigenschaften
Formale Sprachen, reguläre Ausdrücke
Graphen – Grundlagen, typische Graphen
Graph, Baum – gerichtet und ungerichtet, binärer Suchbaum
2 Grundlagen
Theoretische Informatik
2.7 Aufgaben (Grundlagen)
Aufgaben
Aufgabe 2.4 (Zeichenketten)
Wie definiert man mittels Rekursion
die Länge einer Zeichenkette (|w |),
die Anzahl von a in w (|w |a ),
das Umdrehen einer Zeichenkette (w R )?
Aufgabe 2.5 (Potenzmenge)
Berechnen Sie 2{1,2,3,4} und |2{1,2,3,4} | !
Folie 2-62 (76)
2 Grundlagen
2.7 Aufgaben (Grundlagen)
Theoretische Informatik
Folie 2-63 (77)
Aufgaben
Aufgabe 2.6 (Hülle)
Beschreiben Sie die Menge aller Spiele der 1. Fußball-Bundesliga als
Relation! Welche Eigenschaften hat diese Relation? Wie sehen die
reflexive und die transitive Hülle dieser Relation aus?
Aufgabe 2.7 (Funktionen)
Sei die Funktion f (x ) = x 2 auf den reellen Zahlen gegeben. Welche
Eigenschaften hat diese Funktion (partiell, total, injektiv, ...)? Welche
Eigenschaften hat diese Funktion auf den ganzen bzw. den
natürlichen Zahlen?
2 Grundlagen
2.7 Aufgaben (Grundlagen)
Aufgaben
Aufgabe 2.8 (Regulärer Ausdruck)
Wofür steht der Ausdruck (ab ∪ b)∗ ?
Aufgabe 2.9 (Kreuzprodukt)
Bilden Sie das Kreuzprodukt {1, 3} × {3, 1}
Theoretische Informatik
Folie 2-64 (78)
2 Grundlagen
Theoretische Informatik
2.7 Aufgaben (Grundlagen)
Aufgaben
Aufgabe 2.10 (Abgeschlossenheit)
Sind folgende Mengen abgeschlossen bez. der folgenden
Operationen? Begründen Sie Ihre Aussagen!
1
Ungerade natürliche Zahlen / Subtraktion
2
Positive ganze Zahlen / Multiplikation
3
Negative ganze Zahlen / Subtraktion
4
Natürliche Zahlen / Division
Folie 2-65 (79)
2 Grundlagen
Theoretische Informatik
2.7 Aufgaben (Grundlagen)
Aufgaben
Aufgabe 2.11 (Regulärer Ausdruck)
Was ist der Unterschied zwischen den regulären Ausdrücken:
a(a∗ ∪ b∗ )b
a(a ∪ b)∗ b
a(a∗ ∪ b∗ )∗ b
a(a∗ ∩ b∗ )∗ b
a(a ∪ b)+ b
a(a∗ ∪ b∗ )+ b
Welche Sprachen werden durch diese regulären Ausdrücke
beschrieben?
Folie 2-66 (80)
2 Grundlagen
Theoretische Informatik
2.7 Aufgaben (Grundlagen)
Folie 2-67 (81)
Aufgaben
Aufgabe 2.12 (surjektiv/injektiv)
Sind folgende Funktionen auf den reellen Zahlen total, surjektiv bzw.
injektiv?
Betragsfunktion f (x ) = abs(x )
inverse Funktion f (x ) =
1
x
Multiplikation mit -1: f (x ) = −x
Addition: f (x , y ) = x + y
Division: f (x , y ) =
f (x , y ) = ex × y
x
y
2 Grundlagen
2.7 Aufgaben (Grundlagen)
Theoretische Informatik
Folie 2-68 (82)
Aufgaben
Aufgabe 2.13 (Grad eines Graphen)
Ist die Anzahl der Knoten geraden Grades in einem ungerichteten
Graphen stets gerade?
Aufgabe 2.14 (Zusammenhängende Graphen)
Sei G ein Graph mit n Knoten, für den jeder Knoten mindestens den
1
Grad n−
hat. Der Graph sei schlicht, d.h. er hat keine reflexiven oder
2
Doppelkanten. Zeigen Sie, dass G immer zusammenhängend ist!
2 Grundlagen
Theoretische Informatik
2.7 Aufgaben (Grundlagen)
Folie 2-69 (83)
Aufgaben
Aufgabe 2.15 (Zusammenhängende Graphen)
Wenn ein Graph G nicht zusammenhängend ist, ist dann der
Komplementärgraph zusammenhängend? (Der Graph sei schlicht, er
hat also keine Doppelkanten oder reflexive Kanten.)
Aufgabe 2.16 (Komplementgraphen)
Finden Sie die jeweiligen Komplementgraphen und die transitiven
Abschlüsse (transitive Hülle) der folgenden Graphen!
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
2 Grundlagen
Theoretische Informatik
2.7 Aufgaben (Grundlagen)
Folie 2-70 (84)
Aufgaben
Aufgabe 2.17 (Ungerichtete Bäume)
Wieviele (ungerichtete, nicht äquivalente) Bäume mit 5 Knoten
gibt es?
Wieviele Wurzeln kann ein gerichteter Baum haben?
Aufgabe 2.18 (Mengen und Relationen)
Sind folgende Aussagen über Mengen korrekt? Begründen Sie Ihre
Vermutung.
A × (B ∩ C ) = (A × B ) ∩ (A × C )
(A ∪ B ) × C = (A × C ) ∪ (B × C )
2 Grundlagen
Theoretische Informatik
2.7 Aufgaben (Grundlagen)
Aufgaben
Aufgabe 2.19 (Eigenschaften von Relationen)
Ist die Teilmengenbeziehung ⊂:
reflexiv,
symmetrisch,
antisymmetrisch,
transitiv?
Folie 2-71 (85)
3 Automatentheorie
Theoretische Informatik
24. August 2015
Inhaltsverzeichnis
1
TI – Einführung
2
Grundlagen
3
Automatentheorie
4
Logik
5
Komplexität
6
Berechenbarkeit & Entscheidbarkeit
3 Automatentheorie
Theoretische Informatik
24. August 2015
Inhaltsverzeichnis – Kapitel 3
3
Automatentheorie
Endliche Automaten
Kontextfreie Sprachen und Kellerautomaten
Turingmaschinen
Sprachen und Automaten – Ergänzungen
Zusammenfassung (Automaten)
Aufgaben (Automaten)
3 Automatentheorie
Theoretische Informatik
Folie 3-1 (88)
Automatentheorie
Drücken
Start
EIN
AUS
Drücken
Abb. 9: Tastschalter
3 Automatentheorie
Theoretische Informatik
Folie 3-2 (89)
Zustandsdiagramm – Telefon
klingelt Abheb
en
mt
m
ko
ver−
f
u
r
r
e
bunden
An
ruf auf
An legt
Ruhe
Auflegen
Teilnehmer nimmt ab
Ab
heb
Wählen
en
Auflegen
Abb. 10: Telefon
3 Automatentheorie
3.1 Endliche Automaten
Endliche Automaten
Die Hauptursache aller Probleme sind Lösungen.
Sevareids Gesetz
Arthur Bloch, Murphy’s Law, 1981
Theoretische Informatik
Folie 3-3 (90)
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-4 (91)
Endliche Automaten
(Endliche) Automaten als abstraktes Beschreibungsmittel
Endliche Automaten – eingeschränktes (Computer-)Modell
Viele praktische Probleme lassen sich mit endlichen Automaten
lösen.
3 Automatentheorie
3.1 Endliche Automaten
Theoretische Informatik
Folie 3-5 (92)
3.1.1 Deterministische endliche Automaten
Deterministische endliche Automaten
Folgende Komponenten:
Endliches Eingabe-Band (Zeichen aus einem vorgegebenen
Alphabet)
Lesekopf (kann ein Zeichen lesen und dann eine Position nach
rechts rücken)
Eine „Blackbox“, die in Abhängigkeit vom eingelesenen Zeichen
ihren internen Zustand ändert.
3 Automatentheorie
3.1 Endliche Automaten
Theoretische Informatik
Folie 3-6 (93)
3.1.1 Deterministische endliche Automaten
Deterministische endliche Automaten
Liest Zeichen für Zeichen (von links)
und kann nach jedem Zeichen seinen internen Zustand wechseln.
Wenn Bandende erreicht und Automat in einem der (vorher
festgelegten) Finalzustände
→ Zeichenkette auf dem Band: vom Automaten akzeptiert.
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-7 (94)
3.1.1 Deterministische endliche Automaten
DFA
Beispiel 3.1 (DFA)
Automat, der Wörter akzeptiert (aufgebaut aus a und b), die
mindestens zwei a enthalten (als regulärer Ausdruck
b∗ ab∗ a(a ∪ b)∗ ):
( s , a ) → q1
(q1 , a) → q2
(q2 , a) → q2
1
3
5
Einziger Finalzustand ist hier q2 .
(s, b) → s
(q1 , b) → q1
(q2 , b) → q2
2
4
6
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-8 (95)
3.1.1 Deterministische endliche Automaten
Graphische Darstellung eines DFA
b
b
b
s
a
q1
a
q2
a
Abb. 11: Graphische Darstellung DFA
DFA-2a
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-9 (96)
3.1.1 Deterministische endliche Automaten
DFA – Abarbeitung
s
b
a
b
a
b
b
a
s
b
a
b
a
b
b
a
q1
b
a
b
a
b
b
a
q1
b
a
b
a
b
b
a
q2
b
a
b
a
b
b
a
q2
b
a
b
a
b
b
a
q2
b
a
b
a
b
b
a
q2
b
a
b
a
b
b
a
erstes a wurde gefunden
zweites a wurde gefunden
Band komplett eingelesen
Abb. 12: Abarbeitung DFA
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-10 (97)
3.1.1 Deterministische endliche Automaten
Komponenten eines DFA
Endliche Menge von Zuständen, die der Automat einnehmen
kann (K ).
Eingabeband: Zeichenketten aufgebaut aus Zeichen eines
Alphabets Σ.
In welchem Zustand befindet sich der Automat zu Beginn? s.
Wann wird eine Zeichenkette akzeptiert? Wenn
I
I
der gesamte String eingelesen und
der Endzustand des Automaten ein „ausgezeichneter“ Zustand ist
(Finalzustände F ).
Zustandsübergangsfunktion δ legt Folgezustand fest.
Aktueller Zustand + Zeichen auf dem Band → neuer Zustand.
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-11 (98)
3.1.1 Deterministische endliche Automaten
DFA – Abarbeitung
Band
bbab
Endzustand
NICHT final
String nicht akzeptiert
b
b
s
a
q1
a
b
Abb. 13: Verarbeitung mit DFA
q2
a
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-12 (99)
3.1.1 Deterministische endliche Automaten
Deterministische endliche Automaten
Definition 3.1 (DFA)
Ein DFA ist ein Quintupel M = (K , Σ, δ, s, F ), wobei
K . . . eine endliche Menge von Zuständen,
Σ . . . ein endliches Alphabet,
s ∈ K . . . der Startzustand des Automaten,
F ⊂ K . . . die Finalzustände
und
δ . . . die totale Zustandsübergangsfunktion K × Σ → K ist.
Aufgabe 3.1 (Totalität)
Was bedeutet es, dass die Zustandsübergangsfunktion total sein soll?
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-13 (100)
3.1.1 Deterministische endliche Automaten
Darstellungsformen für DFA
Darstellungsformen:
Regeln
graphisch
Tabelle
Der Automat, der alle Wörter aus a/b akzeptiert, die mind. 2 a
enthalten, kann auch so dargestellt werden:
Zustand
s
q1
q2
Eingabe
a
b
q1
s
q2 q1
q2 q2
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-14 (101)
3.1.1 Deterministische endliche Automaten
DFA – Konfiguration
Definition 3.2 (DFA – Konfiguration)
Konfiguration: Paar (q , w )
interner Zustand des Automaten: q ∈ K
noch einzulesendes Band w ∈ Σ∗
Konfigurationsübergang: (q , w ) `M (q 0 , w 0 )
Automat M erreicht in einem Schritt aus dem Zustand q die
Nachfolgekonfiguration
w = σw 0 für ein σ ∈ Σ, so dass δ(q , σ) = q 0 .
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-15 (102)
3.1.1 Deterministische endliche Automaten
DFA – Konfiguration
Konfiguration (wenn das Band komplett gelesen): (q , e)
`∗M : reflexive, transitive Hülle von `M
K1 `∗M K2 bedeutet also, dass man in endlich vielen Schritten aus
der Konfiguration K1 in die Konfiguration K2 gelangt.
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-16 (103)
3.1.1 Deterministische endliche Automaten
DFA – Konfiguration
Beispiel 3.2 (DFA – Konfiguration)
Automat, der Wörter akzeptiert (aufgebaut aus a und b), die
mindestens zwei a enthalten
Zustandsübergangsregeln:
(s, a) → q1
1
(s, b) → s
2
(q1 , a) → q2
3
(q1 , b) → q1
4
(q2 , a) → q2
5
(q2 , b) → q2
6
Einziger Finalzustand: q2 .
Zustand
s
s
q1
q1
q1
q1
q1
Band
babbbb
babbbb
babbbb
babbbb
babbbb
babbbb
babbbb
Regel
2
1
4
4
4
4
3 Automatentheorie
3.1 Endliche Automaten
Theoretische Informatik
Folie 3-17 (104)
3.1.1 Deterministische endliche Automaten
Akzeptierte Sprache
Definition 3.3 (DFA – Akzeptierte Sprache)
Ein String w ∈ Σ∗ heißt akzeptiert durch M, gdw. ein q ∈ F existiert,
so dass (s, w ) `∗M (q , e) gilt.
Von M akzeptierte Sprache:
L(M ) = {w |w wird durch M akzeptiert}.
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-18 (105)
3.1.1 Deterministische endliche Automaten
Aufgaben
Aufgabe 3.2 (DFA)
1
DFA für die Sprache, deren Wörter nur aus den Zeichen a, b
gebildet werden und eine gerade Anzahl von b enthalten.
2
DFA, so dass nie 3 b hintereinander stehen (Σ = {a, b}).
3
DFA, der prüft, ob Klammerstrukturen in einem Ausdruck korrekt
sind. Gehen Sie von maximal 2 geöffneten Klammern aus.
4
Erweitern Sie Ihren DFA, so dass er auch mit 3 oder 4 Klammern
umgehen kann.
5
Kann man Ihren DFA so erweitern, dass er mit beliebig vielen
Klammern umgehen kann?
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-19 (106)
3.1.2 Indeterministische endliche Automaten
Indeterministische endliche Automaten
Wozu Indeterminismus ?
Indeterministisches Programm = Programm, wo Auswahl der
Strategie ständig per Münzwurf entschieden wird.
Kann ein solches Programm besser sein als ein deterministisches?
JA !
Es gibt (praktische) Probleme, die deterministisch unlösbar sind,
da ihre Lösung extrem viel Zeit erfordern würde.
Durch ein indeterministisches Programm kann man solche
Probleme (z.B. in der Kryptografie zur Primzahlzerlegung)
zufallsgesteuert durchaus lösen.
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-20 (107)
3.1.2 Indeterministische endliche Automaten
Indeterministische endliche Automaten
Beispiel 3.3 (NFA)
Sprache aller Wörter, die nur aus den Bausteinen aaa und abb
aufgebaut sind
( s , a ) → q1
(q1 , a) → q2
( q2 , a ) → s
1
2
3
( s , a ) → q3
(q3 , b) → q4
(q4 , b) → s
4
5
6
Startzustand und (einziger) Finalzustand sind identisch (s).
Gelingt es, das Band komplett einzulesen und in s zu enden, so
wird die Zeichenkette akzeptiert (z.B. abbaaaabb).
Gelingt dies nicht, so vereinbaren wir, dass der String nicht
akzeptiert wird.
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-21 (108)
3.1.2 Indeterministische endliche Automaten
Graphische Darstellung
a
q1
q2
a
a
s
b
a
q3
q4
b
Abb. 14: Graphische Darstellung NFA
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-22 (109)
3.1.2 Indeterministische endliche Automaten
Indeterministische endliche Automaten
Beispiel 3.4 (NFA)
(s, aaa) → s
(s, abb) → s
1
2
aaa
s
abb
Abb. 15: Kompakter NFA
NFA-aaa-abb
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-23 (110)
3.1.2 Indeterministische endliche Automaten
Indeterministische endliche Automaten
Folgender NFA akzeptiert Zeichenketten, die entweder nur aus a oder
nur aus b aufgebaut sind.
a
q1
e
s
e
q2
b
Abb. 16: NFA mit leeren Kanten
NFA-leer
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-24 (111)
3.1.2 Indeterministische endliche Automaten
Indeterministische endliche Automaten
Beispiel 3.5 (DFA-NFA)
ein deterministischer
Automat
(q , a) → p
(q , b ) → q
(p, a) → q
(p, b) → p
...
ein indeterministischer
Automat
(q , a) → p
(q , a) → q
(p, a) → q
(p , a ) → p
...
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-25 (112)
3.1.2 Indeterministische endliche Automaten
Indeterministischer endlicher Automat
Definition 3.4 (NFA)
Ein NFA ist ein Quintupel M = (K , Σ, ∆, s, F ), wobei
K . . . eine endliche Menge von Zuständen,
Σ . . . ein endliches Alphabet,
s ∈ K . . . der Startzustand des Automaten,
F ⊂ K . . . die Finalzustände
und
∆ . . . die Zustandsübergangsrelation ∆ ⊂ K × Σ∗ × K ist.
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-26 (113)
3.1.2 Indeterministische endliche Automaten
Indeterministische endliche Automaten
Folgezustand muss nicht mehr eindeutig sein !
Was passiert bei Eingabe der Zeichenkette abb? Beim Einlesen des
ersten Zeichens a hat der Automat 2 Möglichkeiten.
a
q1
q2
a
s
a
Band: abb
s
b
a
q3
q4
b
q1 Band: bb
Abb. 17: Verzweigung beim NFA
q3
Band: bb
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-27 (114)
3.1.2 Indeterministische endliche Automaten
Konfiguration
Definition 3.5 (NFA – Konfiguration)
Konfiguration: Paar (q , w )
Zustand q ∈ K
Zeichenkette w ∈ Σ∗
Konfigurationsübergang: (q , w ) `M (q 0 , w 0 )
Automat M erreicht in einem Schritt aus dem Zustand q die
Nachfolgekonfiguration
w = uw 0 für ein u ∈ Σ∗ , so dass (q , u , q 0 ) ∈ ∆.
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-28 (115)
3.1.2 Indeterministische endliche Automaten
Konfiguration
Konfiguration (wenn das Band komplett gelesen): (q , e)
`∗M : reflexive, transitive Hülle von `M (endlich viele Schritte des
Automaten)
3 Automatentheorie
3.1 Endliche Automaten
Theoretische Informatik
Folie 3-29 (116)
3.1.2 Indeterministische endliche Automaten
Akzeptierte Sprache
Definition 3.6 (NFA – Akzeptierte Sprache)
Eine Zeichenkette w ∈ Σ∗ wird durch M akzeptiert, gdw. ein q ∈ F
existiert, so dass (s, w ) `∗M (q , e) gilt.
Von M akzeptierte Sprache:
L(M ) = {w |w wird durch M akzeptiert}.
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-30 (117)
3.1.2 Indeterministische endliche Automaten
NFA
NFA, der alle Zeichenketten über {a, b} akzeptiert, wo mind. 1x bb
vorkommt.
a
s
b
a
bb
q1
b
Abb. 18: NFA – Mindestens zwei b
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-31 (118)
3.1.2 Indeterministische endliche Automaten
NFA
Drehen Aufgabenstellung um: NIE zwei b hintereinander.
a
s
b
a
bb
q1
b
Abb. 19: NFA – Keine zwei b ?
Falsch! Dieser NFA akzeptiert jede Zeichenkette über a/b.
Beim NFA Konzentration auf positive Fälle.
NFA braucht keinen Fehlerzustand.
Teile des NFA ohne Finalzustand (aus denen man nie wieder
„herauskommt“) kann man weglassen.
NFA-2b-falsch
3 Automatentheorie
3.1 Endliche Automaten
3.1.3 Gleichwertigkeit von DFA und NFA
Gleichwertigkeit von DFA und NFA
Wann sind ein DFA und ein NFA äquivalent?
Wenn sie die GLEICHE Sprache akzeptieren !
Theoretische Informatik
Folie 3-32 (119)
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-33 (120)
3.1.3 Gleichwertigkeit von DFA und NFA
Umwandlung NFA-DFA – Schritt 1
aba
q0
ab
Abb. 20: Gegebener NFA
Zunächst löst man die Zeichenketten an den Kanten auf.
q1
a
q0
b
a
q2
a
b
q3
Abb. 21: Umwandlung – Schritt 1
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-34 (121)
3.1.3 Gleichwertigkeit von DFA und NFA
Umwandlung NFA-DFA – Schritt 2
Konstruieren neuen DFA.
Wir sammeln jeweils alle Zustände auf, die durch exakt ein
Zeichen erreichbar sind.
Beginnen am Startzustand q0 = q{0} .
Von q0 aus erreicht man mit einem a die Zustände q1 und q3 ,
mit einem b überhaupt keinen Zustand.
q{1,3}
a
q{0}
b
a
q{}
Abb. 22: Umwandlung – Schritt 2
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-35 (122)
3.1.3 Gleichwertigkeit von DFA und NFA
Umwandlung NFA-DFA – Schritt 3
Dieses Verfahren setzt man für alle Zustände fort.
Insgesamt erhält man diesen Automaten:
(q{0} , a) → q{1,3}
(q{1,3} , b) → q{0,2}
(q{0,1,3} , a) → q{1,3}
(q{} , b) → q{}
(q{0} , b) → q{}
(q{0,2} , a) → q{0,1,3}
(q{0,1,3} , b) → q{0,2}
a
q{1,3}
a
q{0}
b
a
q{}
b
b
(q{1,3} , a) → q{}
(q{0,2} , b) → q{}
(q{} , a) → q{}
q{0,1,3}
b
a
q{0,2}
a b
Abb. 23: Kompletter DFA 1
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-36 (123)
3.1.3 Gleichwertigkeit von DFA und NFA
Umwandlung NFA-DFA – Schritt 4
Umbennen der Zustände (s = p0 ).
p2 ist der Fehlerzustand.
Welche Zustände sind final? p0 , p3 , p4 .
. . . da im ursprünglichen Automaten nur q0 final.
a
a
p0
p4
p1
b
b
a
p2
b
b
a
p3
a b
Abb. 24: Kompletter DFA 2
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-37 (124)
3.1.3 Gleichwertigkeit von DFA und NFA
Ergänzung
Wie wandeln wir den NFA in einen DFA um?
a
q0
q3
q1
e
b
e
q2
c
b
Abb. 25: NFA – Beispiel
Ganz analog.
Was machen wir mit den e-Kanten?
Startzustand ist nicht q{0} , sondern q{0,1,2} ,
denn q1 und q2 sind vom Startzustand q0 aus OHNE
Bandeingabe erreichbar.
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-38 (125)
3.1.3 Gleichwertigkeit von DFA und NFA
Aufgaben
Aufgabe 3.3 (DFA-NFA)
Wandeln Sie folgenden NFA in einen DFA um:
( s , e ) → q1
(q1 , bb) → q1
Finalzustände: q1 und q2 .
Startzustand: s.
(q1 , a) → q1
(s, aa) → q2
3 Automatentheorie
3.1 Endliche Automaten
Theoretische Informatik
Folie 3-39 (126)
3.1.3 Gleichwertigkeit von DFA und NFA
Umwandlung DFA in NFA
Bemerkung 3.7 (DFA und NFA)
Und wie wandelt man einen DFA in einen NFA um?
Man muss am DFA nichts verändern, da jeder DFA auch ein NFA
ist.
Man kann Fehlerzustände weglassen.
3 Automatentheorie
3.1 Endliche Automaten
Theoretische Informatik
Folie 3-40 (127)
3.1.3 Gleichwertigkeit von DFA und NFA
DFA und NFA
Der DFA arbeitet deterministisch, der NFA indeterministisch.
Automat liefert keine Ausgabe. Man bezeichnet solche
Automaten als Akzeptor.
DFA: totale Zustandsübergangsfunktion
NFA: nicht total, indeterministisch, Zustandsübergangsrelation
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-41 (128)
3.1.3 Gleichwertigkeit von DFA und NFA
DFA und NFA
Man könnte die Automaten folglich abweichend konfigurieren durch:
Kriterium
Ausgabe
Arbeitsweise
verarbeitete
Zeichen
Definiertheit
Möglichkeiten
nein (Akzeptor) / ja
deterministisch / indeterministisch
nur 1 / beliebig viele (einschl. e)
Totalität / Partialität
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-42 (129)
3.1.3 Gleichwertigkeit von DFA und NFA
DFA/NFA – Unterschiede Vorlesung/JFLAP
DFA – Unterschiede Vorlesung/JFLAP
Definiertheit
verarbeitete
Zeichen
leerer String
Vorlesung
Totalität
nur 1
e
JFLAP
Partialität
beliebig viele (einschl. e)
λ oder ε
NFA – Unterschiede Vorlesung/JFLAP:
Darstellung des leeren Strings
3 Automatentheorie
3.1 Endliche Automaten
Theoretische Informatik
Folie 3-43 (130)
3.1.3 Gleichwertigkeit von DFA und NFA
Automaten mit Ausgabe
Bemerkung 3.8 (Automaten mit Ausgabe)
Es gibt zwei Erweiterungen des endlichen Automaten, die Ausgaben
erzeugen können:
1
Mealy-Automat
2
Moore-Automat
Mealy-Automat gibt bei jedem Zustandsübergang ein Zeichen
aus.
Moore-Automat gibt in Abhängikeit des erreichten Zustands ein
Zeichen aus.
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-44 (131)
3.1.4 Sprachen von DFA und NFA
Sprachen von DFA und NFA
Offene Fragen:
Welche Sprachen werden von endlichen Automaten akzeptiert?
Welche Eigenschaften haben sie?
Die von DFA/NFAs akzeptierten Sprachen sind die regulären
Sprachen.
3 Automatentheorie
3.1 Endliche Automaten
Theoretische Informatik
Folie 3-45 (132)
3.1.4 Sprachen von DFA und NFA
Reguläre Sprachen und reguläre Ausdrücke
Satz 3.9 (Reguläre Sprachen)
Eine Sprache ist regulär genau dann, wenn sie durch einen regulären
Ausdruck beschrieben werden kann.
Bemerkung 3.10 (Reguläre Sprachen)
Beachten Sie, dass es zu jeder Sprache, die mit einem regulären
Ausdruck darstellbar ist, auch einen DFA/NFA gibt, der sie akzeptiert.
Umgekehrt gilt dies auch.
Reguläre Ausdrücke und DFA/NFA sind also bezüglich ihrer
Leistungskraft äquivalent.
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-46 (133)
3.1.4 Sprachen von DFA und NFA
Reguläre Sprachen und DFA/NFA
Wie wandelt man einen regulären Ausdruck in einen DFA/NFA um?
Betrachten die Sprache ((ab)∗ ∪ b(a)∗ )b.
Zunächst: Zeichenkette muss mit einem b enden.
b
s
....
q1
q2
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-47 (134)
3.1.4 Sprachen von DFA und NFA
Reguläre Sprachen und DFA/NFA
Davor: String, der entweder (ab)∗ oder b(a)∗ genügen muss.
q3
e
....
s
q1
b
q2
e
q4
Jetzt müssen wir nur noch die beiden Teilmuster (in q3 und q4)
darstellen.
ab
q3
e
e
s
q1
e
q4
b
e
q5
a
b
q2
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-48 (135)
3.1.4 Sprachen von DFA und NFA
Reguläre Sprachen und DFA/NFA
Was müssen wir ändern, wenn wir den regulären Ausdruck
modifizieren: ((ab)∗ ∪ b(a)∗ )+ b?
ab
q3
e
e
s
q1
e
q4
b
e
b
q2
e
q5
a
Zusatzaufgabe: Wandeln Sie diesen NFA in einen DFA um.
3 Automatentheorie
3.1 Endliche Automaten
3.1.4 Sprachen von DFA und NFA
Reguläre Ausdrücke
UNIX: Muster [A-Z][A-z]*[A-Z]
Theoretische Informatik
Folie 3-49 (136)
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
3.1.4 Sprachen von DFA und NFA
Eigenschaften
Satz 3.11 (Reguläre Sprachen – Abgeschlossenheit)
Die Klasse aller durch einen endlichen Automaten akzeptierten
Sprachen ist abgeschlossen bezüglich
Vereinigung
Durchschnitt
Konkatenation (Produkt)
Kleene star
Komplement
Folie 3-50 (137)
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-51 (138)
3.1.4 Sprachen von DFA und NFA
Beweis der Regularität
Beispiel 3.6 (Reguläre Sprache)
Die Menge der durch 6, also durch 3 und 2 teilbaren natürlichen
Zahlen ist eine reguläre Sprache.
Teil 1: Die geraden Zahlen sind regulär.
Σ = (0 ∪ 1 ∪ 2 ∪ 3 ∪ 4 ∪ 5 ∪ 6 ∪ 7 ∪ 8 ∪ 9) Menge aller Ziffern.
Menge aller natürlichen Zahlen:
L1 = 0 ∪ (1 ∪ 2 ∪ 3 ∪ 4 ∪ 5 ∪ 6 ∪ 7 ∪ 8 ∪ 9)Σ∗
Die Menge der geraden Zahlen wird dann definiert als:
L2 = L1 ∩ Σ∗ (0 ∪ 2 ∪ 4 ∪ 6 ∪ 8)
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
3.1.4 Sprachen von DFA und NFA
Beweis der Regularität
Beispiel 3.6 cont.
Teil 2: Durch 3 teilbare Zahlen sind regulär.
Konstruieren einen DFA über Quersumme.
3 Zustände: Bisherige Quersumme ist 0/1/2 mod 3.
Teil 3:
Reguläre Sprachen sind abgeschlossen bezüglich des
Durchschnitts.
Bilden Durchschnitt aus durch 2 bzw. 3 teilbaren Zahlen.
Beweis fertig.
Folie 3-52 (139)
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-53 (140)
3.1.4 Sprachen von DFA und NFA
DFA/NFA
Zusammenfassung 3.12 (DFA/NFA)
deterministisch
DFA
ja
überall eindeutig definiert
ja
NFA
nein
nein
Wann wird String
akzeptiert ?
Band gelesen und
Finalzustand
Band gelesen und
Finalzustand
DFA: alles eindeutig spezifiziert.
DFA/NFA akzeptiert eine Zeichenkette, wenn nach dem Einlesen
der Zeichenkette ein finaler Zustand erreicht ist.
Beim NFA können Zustandsübergänge fehlen.
3 Automatentheorie
3.1 Endliche Automaten
Theoretische Informatik
Folie 3-54 (141)
3.1.4 Sprachen von DFA und NFA
Aufgaben
Aufgabe 3.4 (DFA)
Ist die Sprache ⊂ {a, b}∗ , in der jedes Wort gleich viele a und b
enthält, durch einen endlichen Automaten darstellbar? Begründen Sie
Ihre Vermutung.
Aufgabe 3.5 (Regulärer Ausdruck)
Beschreiben Sie die Sprache (aufgebaut aus a und b), die nur
Zeichenkettenn enthält, wo beliebig viele a gefolgt von beliebig vielen
b sind, durch einen regulären Ausdruck!
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-55 (142)
3.1.4 Sprachen von DFA und NFA
Aufgaben
Aufgabe 3.6 (Regulärer Ausdruck)
Beschreiben Sie die Sprache, die durch den regulären Ausdruck ab∗ a
definiert ist.
Aufgabe 3.7 (End- und Finalzustand)
Was ist der Unterschied zwischen End- und Finalzustand?
Aufgabe 3.8 (Zustand und Konfiguration)
Was ist der Unterschied zwischen Zustand und Konfiguration?
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-56 (143)
Kontextfreie Sprachen und Kellerautomaten
Die Lösung eines Problems besteht darin, jemanden zu
finden, der das Problem löst.
Van Herpens Gesetz
Arthur Bloch, Murphy’s Law, 1981
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-57 (144)
3.2.1 Kontextfreie Grammatik
Kontextfreie Grammatik
Beispiel 3.7 (Grammatik)
Satz
Nominal
Artikel
Adjektiv
Substantiv
Verb
→
→
→
→
→
→
Nominal Verb
Artikel Adjektiv Substantiv
das|die
kleine|große
Klavier|Katze
schläft
Damit ist beispielsweise der Satz „Die große Katze schläft“ darstellbar.
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-58 (145)
3.2.1 Kontextfreie Grammatik
Grundprinzip der Grammatiken
Zeichenketten generieren
beginnend mit einem Startsymbol (hier Satz)
nicht deterministisch
Sind alle Platzhalter wie Satz ersetzt, so ist ein syntaktisch
korrekter Satz (String) generiert.
Menge aller dieser Zeichenketten: Sprache dieser Grammatik.
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-59 (146)
3.2.1 Kontextfreie Grammatik
Grammatik
Beispiel 3.8 (Grammatik)
Welche Zeichenketten werden durch die folgende Grammatik erzeugt?
S → aBa
B→e
B → bbB
Zeichenketten müssen mit einem a beginnen und enden.
Dazwischen: gerade Anzahl von b (einschl. 0 b, also e).
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-60 (147)
3.2.1 Kontextfreie Grammatik
Wozu Grammatiken ?
Betrachten C-Programme (als eine Zeichenkette)
Schlüsselwörter (C hat 39): als 39-elementige Liste darstellbar
Menge der Bezeichner einer Programmiersprache: auch endlich.
Aber: Sie ist zu groß, um sie in Form einer Liste darzustellen.
Z.B. bei 31 relevanten Stellen und 26 Buchstaben (groß und
klein) sowie 10 Ziffern und dem Unterstrich: 53 ∗ 6330 Bezeichner
möglich !!
Dennoch muss ein Compiler diese erkennen bzw. Fehler in den
Bezeichnern erkennen können.
Notwendigkeit der kompakten Beschreibung der korrekten
Zeichenketten: Grammatiken.
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-61 (148)
3.2.1 Kontextfreie Grammatik
Grammatik
Beispiel 3.9 (Reguläre Ausdrücke und Grammatiken)
Der reguläre Ausdruck a(a∗ ∪ b∗ )b in Regelform :
S → aM
M
A
A
→
→
→
A
b
aA
M
B
B
→
→
→
B
b
bB
Beachten Sie, dass wir durch die Regeln M → A und M → B
verhindern, dass a und b – zwischen dem linken a und dem rechten b
– gemischt auftreten können.
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-62 (149)
3.2.1 Kontextfreie Grammatik
Grammatik
Beispiel 3.9 cont.
Durch folgende Ableitung kann man die Zeichenkette aaaab erzeugen:
S ; aM ; aA ; aaA ; aaaA ; aaaaA ; aaaab
Ausgehend vom Startsymbol (S) ersetzt man die Platzhalter, bis die
Zeichenkette nur noch Symbole aus unserem Sprachalphabet Σ
enthält.
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-63 (150)
3.2.1 Kontextfreie Grammatik
Graphische Darstellung – Ableitungsbaum
S
a
M
A
a
A
a
A
a
A
b
Abb. 26: Ableitungsbaum
3 Automatentheorie
3.2 Kontextfreie Sprachen und Kellerautomaten
Theoretische Informatik
Folie 3-64 (151)
3.2.1 Kontextfreie Grammatik
Vorteil von Grammatiken
einfache Beschreibung einer Sprache
einfache Prüfung, ob eine gegebene Zeichenkette der Grammatik
entspricht, möglich (z.B. syntaktische Korrektheit eines JAVAoder C++-Programms)
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-65 (152)
3.2.1 Kontextfreie Grammatik
Grammatik – JAVA
Beispiel 3.10 (Java-Grammatik)
Die Syntax einer JAVA-Klasse kann ebenso durch Regeln beschrieben
werden:
S → R class N {B }
R → public
R → private
B → ...
N → ...
Vorteil: Aus Grammatik-Regeln kann man automatisch einen
Syntax-Prüfer generieren.
Sogar ein Compiler kann daraus erzeugt werden.
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-66 (153)
3.2.1 Kontextfreie Grammatik
Aufgaben
Aufgabe 3.9 (Grammatik)
Suchen Sie im WWW nach einer Sprachdefinition von JAVA bzw.
C++ mittels Grammatik-Regeln.
Beschreiben Sie Teile von JAVA bzw. C++ durch reguläre
Ausdrücke.
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-67 (154)
3.2.1 Kontextfreie Grammatik
Grammatik
Beispiel 3.11 (Grammatik)
Betrachten Sprache der Wörter (über a, b), die nur aus ab-Blöcken
bestehen.
Zum einen kann das Wort leer sein (0 ab-Blöcke):
S→e
Sonst muss das Wort mit einem ab-Block beginnen. Was darf
dahinter stehen? Ein beliebiges korrektes Wort. Dies symbolisieren wir
durch den Buchstaben S.
S → abS
Damit ist unsere Grammatik schon komplett.
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-68 (155)
3.2.1 Kontextfreie Grammatik
Kontextfreie Grammatiken
Definition 3.13 (Kontextfreie Grammatik)
Eine kontextfreie Grammatik G ist ein Quadrupel (V , Σ, R , S ), wobei
V ist ein Vokabular
Alphabet Σ (Terminalsymbole) ⊂ V
R (Regeln) ist eine endliche Teilmenge von (V \Σ) × V ∗
S (Startsymbol) ∈ (V \Σ)
Die Elemente der Menge N = V \Σ werden Nichtterminale genannt.
Das Vokabular enthält sowohl Σ (Terminale) als auch die
Nichtterminale.
3 Automatentheorie
3.2 Kontextfreie Sprachen und Kellerautomaten
Theoretische Informatik
Folie 3-69 (156)
3.2.1 Kontextfreie Grammatik
Kontextsensitive Grammatik
Definition 3.14 (Kontextsensitive Grammatik)
Eine kontextsensitive Grammatik G ist ein Quadrupel (V , Σ, R , S )
V ist ein Vokabular
Alphabet Σ (Terminalsymbole) ⊂ V
R (Regeln) ist eine endliche Teilmenge von V + × V ∗ mit
I w1 uw2 → w1 vw2 , wobei u ∈ (V \Σ) und w1 , w2 , v ∈ (V \{S })∗
mit v 6= e
oder
I S →e
S (Startsymbol) ∈ (V \Σ)
Jede kontextfreie Grammatik ist auch kontextsensitiv.
3 Automatentheorie
3.2 Kontextfreie Sprachen und Kellerautomaten
3.2.1 Kontextfreie Grammatik
Allgemeine Grammatik
Linke Regelseite: beliebige Kombinationen aus Nichtterminal- und Terminalsymbolen, außer e.
In der Definition muss nur der 3. Punkt
modifiziert werden:
R (Regeln) ist eine endliche
Teilmenge von V + × V ∗
Theoretische Informatik
Folie 3-70 (157)
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-71 (158)
3.2.1 Kontextfreie Grammatik
Kf-Grammatiken – Regelanwendung und erzeugte Sprache
Terminalsymbole (Alphabet): Σ
Nichtterminalsymbole: N = V \Σ
Relation →G (die Grammatik-Regeln)
X ⇒∗G Y : Man kommt durch Anwendung von Grammtikregeln
(endlich oft) von X zu Y .
Dabei ist auch die Anwendung auf Teilstrings erlaubt.
Durch G erzeugte Sprache: L(G) = {w ∈ Σ∗ : S ⇒∗G w }
Menge aller Zeichenketten, die sich durch Anwendung von
Regeln (beginnend mit dem Startsymbol) erzeugen lassen.
3 Automatentheorie
3.2 Kontextfreie Sprachen und Kellerautomaten
3.2.1 Kontextfreie Grammatik
Aufgaben
Aufgabe 3.10 (Grammatik)
Sei G = (V , Σ, R , S ) mit
V = {S , A, N , Verb, P } ∪ Σ,
Σ = {jim, big , green, cheese, ate},

S →G PVerbP A →G big



P →G N
P →G AP
R=
A →G green
N →G cheese



N →G jim
Verb →G ate
Welche Sätze werden durch diese Grammatik erzeugt?
Theoretische Informatik
Folie 3-72 (159)
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-73 (160)
3.2.1 Kontextfreie Grammatik
Syntax der Aussagenlogik – kontextfreie Grammatik
Beispiel 3.12 (Grammatik – Aussagenlogik)
Für die aussagenlogischen Variablen wird stellvertretend nur eine
Konstante var verwendet.
Sei Σ = {var, ∧, ∨, ¬, (, ), →, ↔}, V = Σ ∪ {S }.

S →G




S →G



S →G
R=
S →G





S
→G


S →G
var
(S ∨ S )
(S ∧ S )
¬S
(S → S )
(S ↔ S )
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-74 (161)
3.2.1 Kontextfreie Grammatik
Beispiel – Arithmetische Ausdrücke
Beispiel 3.13 (Arithmetische Ausdrücke)
Sei G = (W , Σ, R , E ) mit
W = {E , O } ∪ Σ,
Σ = {x , +, −, ∗, /},

 E →G E O E
O →G ∗
R=

O →G /
E →G x
O →G +
O →G −
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
3.2.1 Kontextfreie Grammatik
Aufgaben
Aufgabe 3.11 (Arithmetische Ausdrücke)
Die Arithmetik-Grammatik berücksichtigt nicht die stärkere
Bindung von Multiplikation und Division.
Was muss man verändern, um dies zu berücksichtigen?
Und wie kann man Klammern integrieren?
Folie 3-75 (162)
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-76 (163)
3.2.1 Kontextfreie Grammatik
Kontextfreie Grammatik
Beispiel 3.14 (Grammatik)
Sei G = (W , Σ, R , S ) mit
W = {S , A} ∪ Σ,
Σ = {a, b},

 S →G AA
A →G a
R=

A →G Ab
A →G AAA
A →G bA
1
Welche Sprache wird erzeugt?
2
Wie sieht ein NFA für diese Sprache aus?
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-77 (164)
3.2.1 Kontextfreie Grammatik
Zwischenfazit
Welche Sprachen und Beschreibungsmittel haben wir bisher?
Sprache
reguläre
Grammatik
??
Automat
DFA / NFA
kontextfreie
kontextfreie
Grammatik
??
sonst
reguläre
Ausdrücke
??
3 Automatentheorie
3.2 Kontextfreie Sprachen und Kellerautomaten
Theoretische Informatik
Folie 3-78 (165)
3.2.2 Backus-Naur-Form für kontextfreie Sprachen
Backus-Naur-Form für kontextfreie Sprachen
Eine äquivalente Repräsentation für kontextfreie Sprachen ist die
Backus-Naur-Form.
Beispiel 3.15 (Backus-Naur-Form)
<Bezeichner> ::= <Buchstabe> | _
| <Bezeichner><Buchstabe>
| <Bezeichner> _
| <Bezeichner> <Ziffer>
<Buchstabe> ::= a|b|c|d| .... |z
<Ziffer>
::= 0|1|2|3|4|5|6|7|8|9
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-79 (166)
3.2.3 Reguläre und kontextfreie Sprachen
Reguläre Grammatiken
Definition 3.15 (Reguläre Grammatik)
Eine reguläre Grammatik G ist ein Quadrupel (V , Σ, R , S ), wobei
V ist ein Vokabular
Alphabet Σ (Terminalsymbole) ⊂ V
R (Regeln) ist eine endliche Teilmenge von
(V \Σ) × Σ∗ ((V \Σ) ∪ {e})
S (Startsymbol) ∈ (V \Σ)
Die Menge N = V \Σ enthält alle Nichtterminale.
Was hat sich geändert?
Nichtterminale in der rechten Regelseite nur noch an letzter Position:
R ⊂ (V \Σ) × Σ∗ ((V \Σ) ∪ {e})
3 Automatentheorie
3.2 Kontextfreie Sprachen und Kellerautomaten
Theoretische Informatik
Folie 3-80 (167)
3.2.3 Reguläre und kontextfreie Sprachen
Reguläre und kontextfreie Sprachen
Nicht jede kontextfreie Sprache ist regulär: {ai bi |i = 1, 2, . . .}.
Jede reguläre Sprache ist auch kontextfrei.
Wir wissen schon: Reguläre Sprachen sind genau die Sprachen,
die durch einen endlichen Automaten akzeptiert werden.
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-81 (168)
3.2.3 Reguläre und kontextfreie Sprachen
Reguläre Sprache
Satz 3.16 (Reguläre Sprachen und Grammatiken)
Eine Sprache ist regulär, gdw. eine reguläre Grammatik für sie
existiert.
Damit haben wir für reguläre Sprachen 3 Formen der Darstellung:
reguläre Ausdrücke
DFA/NFA
reguläre Grammatiken
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-82 (169)
3.2.3 Reguläre und kontextfreie Sprachen
Umwandlung reguläre Grammatik – DFA/NFA
Beispiel 3.16 (Umwandlung reguläre Grammatik – DFA/NFA)
Der reguläre Ausdruck a(a∗ ∪ b∗ )b als reguläre Grammatik:
S
M
M
→
→
→
aM
A
B
A
B
→ aA
→ bB
A
B
b
B
e
s
a
b
f
M
e
A
b
a
Abb. 27: Umwandlung reg. Grammatik – NFA
→ b
→ b
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-83 (170)
3.2.3 Reguläre und kontextfreie Sprachen
Umwandlung DFA/NFA – reguläre Grammatik
Beispiel 3.17 (Umwandlung DFA/NFA – reguläre Grammatik)
ab
q3
e
e
s
q1
e
q4
b
e
e
q5
a
b
q2
S → Q3
Q3 → abQ3
Q3 → Q1
Q1 → bQ2
Q2 → e
q2 (Q2 ) ist final, also kann die Zeichenkette hier enden.
S → Q4
Q4 → bQ5
Q5 → aQ5
Q5 → Q1
Q1 → S
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-84 (171)
3.2.3 Reguläre und kontextfreie Sprachen
Umwandlung regulärer Ausdruck – reguläre Grammatik
Beispiel 3.18 (Umwandlung reguläre Grammatik – regulärer Ausdruck)
Wir betrachten den Ausdruck (a∗ bab∗ a) ∪ b(ab)∗ . Zunächst müssen
wir ∪ abbilden:
S→X
S→Y
X steht für den linken, Y für den rechten Term. Den rechten Term
b(ab)∗ bilden wir wie folgt ab:
Y → bN
N → abN
N →e
1. Zeichen ist ein b.
Danach können mehrere ab kommen.
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-85 (172)
3.2.3 Reguläre und kontextfreie Sprachen
Umwandlung regulärer Ausdruck – reguläre Grammatik
Beispiel 3.18 cont.
Den linken Term a∗ bab∗ a stellen wir wie folgt dar:
X → aX
X → baB
B → bB
B→a
Zunächst können a kommen.
Dann kommt ba.
Dann können mehrere b kommen.
Zum Schluss kommt ein a.
3 Automatentheorie
3.2 Kontextfreie Sprachen und Kellerautomaten
Theoretische Informatik
Folie 3-86 (173)
3.2.3 Reguläre und kontextfreie Sprachen
Aufgaben
Aufgabe 3.12 (NFA – Grammatik)
Wie wandelt man einen NFA in eine reguläre Grammatik um? Hinweis:
Sie können sich anschauen, wie JFLAP dies tut.
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
3.2.4 Kellerautomaten
Kellerautomaten
Nicht jede kontextfreie Sprache ist auch regulär.
Wie sieht ein Automat für kontextfreie Sprachen aus?
Idee: Ergänzen den Automaten durch einen Speicher.
Folie 3-87 (174)
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-88 (175)
3.2.4 Kellerautomaten
Kellerautomaten
Wir müssen unsere Regeln erweitern.
Die Regel
q1, a, b → q2, c
bedeutet:
Wenn wir im Zustand q1 sind
vom Band ein a lesen
und
und
vom Keller (von oben) ein b lesen,
gehen wir in den Zustand q2
dann
und
schreiben auf den Keller (oben drauf) ein c.
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-89 (176)
3.2.4 Kellerautomaten
Graphische Darstellung – Kellerautomat
q1
b, e ;b
a, e ;a
q0
e , e; e
a, e; e
e ,Z ;e
b, e; e
Abb. 28: Kellerautomat in JFLAP
b, b; e
a, a; e
q2
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-90 (177)
3.2.4 Kellerautomaten
Kellerautomaten
Beispiel 3.19 (Kellerautomat)
Kellerautomat für {wcw R : w ∈ {a, b}∗ }

(s, a, e) → (s, a)




(
 s, b, e) → (s, b)
(s, c , e) → (f , e)
∆:


(
f , a , a ) → (f , e )



(f , b, b) → (f , e)
b, e; b
a, e; a
s
c, e; e
Abb. 29: Kellerautomat für wcw R
b, b; e
a, a; e
f
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-91 (178)
3.2.4 Kellerautomaten
Beispiel 3.20 (Kellerautomat – Abarbeitung)
s
b
a
c
a
b
s
b
a
c
a
b
b
s
b
a
c
a
b
a
b
f
b
a
c
a
b
a
b
f
b
a
c
a
b
b
f
b
a
c
a
b
3 Automatentheorie
3.2 Kontextfreie Sprachen und Kellerautomaten
Theoretische Informatik
Folie 3-92 (179)
3.2.4 Kellerautomaten
Kellerautomat
Definition 3.17 (Kellerautomat)
M = (K , Σ, Γ, ∆, s, F ) mit
K . . . endliche Menge von Zuständen
Σ . . . endliches Alphabet (input symbols)
Γ . . . endliches Alphabet (stack symbols)
s ∈ K . . . initialer Zustand
F ⊂ K . . . Finalzustände
∆ ⊂ (K × Σ∗ × Γ∗ ) × (K × Γ∗ ) . . . Zustandsübergangsrelation
(endlich)
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-93 (180)
3.2.4 Kellerautomaten
Kellerautomat – Bemerkungen 1
((p, u , β), (q , γ)) ∈ ∆ werden wir im folgenden mit dem Pfeil
schreiben.
(p, u , β) → (q , γ) ist anwendbar, wenn:
I
I
I
Automat M ist im Zustand p.
Kellerspeicher hat als oberste Elemente die Zeichenkette β.
Auf dem Band kommen als nächste Zeichen der String u.
Ist die Regel anwendbar, so geht M in den Zustand q und ersetzt
im Keller β durch γ.
∆ ist als Relation definiert ; indeterministischer Automat
Häufig ist Σ = Γ.
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-94 (181)
3.2.4 Kellerautomaten
Kellerautomat – Bemerkungen 2
Konvention: Oberste Elemente des Keller abc, so a ganz oben.
Man kann auf dem Keller mit Zeichenketten operieren, z.B.
(s, a, bb) → (q , aba) oder (p, e, bb) → (q , e).
Beachten Sie, dass man auf dem Keller mit eigenen Symbolen
(Menge Γ) arbeiten kann.
Beobachtung: Die bisher vom Band gelesenen Zeichen sind für
das Resultat der Verarbeitung unwichtig.
analog: Konfiguration und Konfigurationsübergang, `∗M und `M .
M akzeptiert ein Wort w, wenn es einen Weg zu einer finalen
Konfiguration gibt: (s, w , e) `∗M (p, e, e), p ∈ F .
Jeder endliche Automat ist ein Kellerautomat.
3 Automatentheorie
3.2 Kontextfreie Sprachen und Kellerautomaten
Theoretische Informatik
Folie 3-95 (182)
3.2.4 Kellerautomaten
Akzeptierte Sprache
Definition 3.18 (Akzeptierte Sprache)
Eine Zeichenkette w ∈ Σ∗ heißt akzeptiert durch M, gdw. ein q ∈ F
existiert, so dass (s, w , e) `∗M (q , e, e) gilt.
Von M akzeptierte Sprache:
L(M ) = {w |w wird durch M akzeptiert}.
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-96 (183)
3.2.4 Kellerautomaten
Kellerautomaten
Beispiel 3.21 (Kellerautomat – Palindrome)
Kellerautomat für {ww R : w ∈ {a, b}∗ }.
K = {s, f }, Σ = Γ = {a, b}, F = {f }

(s, a, e) → (s, a)




 (s , b , e ) → (s , b )
(s , e , e ) → (f , e )
∆:


(
f , a , a ) → (f , e )



(f , b , b ) → (f , e )
Keller-ww r
b, b; e
a, a; e
b, e; b
a, e; a
s
e, e; e
f
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-97 (184)
3.2.4 Kellerautomaten
Kellerautomaten
Beispiel 3.22 (Kellerautomat – Klammerstruktur)
Kellerautomat, der untersucht, ob die Klammerstruktur eines
Programms oder Terms korrekt ist, d.h.:
Gleich viele öffnende und schließende Klammern
Nicht mehr schließende als öffnende Klammern
Betrachten nur runde Klammern (, ). Alle sonstigen Terme werden
durch ein x dargestellt.
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-98 (185)
3.2.4 Kellerautomaten
Kellerautomaten
Beispiel 3.22 cont.
Zunächst der Kellerautomat:
Alle x können wir einfach ignorieren.
Kommt eine öffnende Klammer, legen wir diese auf den Keller.
Kommt eine schließende Klammer, löschen wir eine öffnende
vom Keller.

 (s, ), () → (s, e)
(s, (, e) → (s, ()
∆:

(s, x , e) → (s, e)
), (; e
(, e; (
x, e; e
s
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-99 (186)
3.2.4 Kellerautomaten
Kellerautomat und Grammatik
Beispiel 3.22 cont.
Grammatik:
Zu jeder öffnenden Klammer muss eine schließende generiert
werden.
Zwischen den Klammern darf ein beliebiger Ausdruck (x) stehen.
S → (S )
S → xS
S → Sx
S→e
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-100 (187)
3.2.4 Kellerautomaten
Aufgaben
Aufgabe 3.13 (DFA / NFA)
Automat für L ⊂ {a, b}∗ , so dass eine gleiche Anzahl von a und b im
Wort gegeben ist.
Benötigen Sonderzeichen, um leeren Keller zu erkennen:
(s, e, e) → (q1 , Z )
Sonderzeichen Z zum Schluss wieder löschen, da Keller leer
sein muss.
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-101 (188)
3.2.4 Kellerautomaten
Verarbeitung mit Kellerautomat
Beispiel 3.23 (Kellerautomat – Abarbeitung)
{ww R : w ∈ {a, b}∗ }, K = {s, f }, Σ = Γ = {a, b}, F = {f }

(s, a, e) → (s, a)




 (s , b , e ) → (s , b )
(s, e, e) → (f , e)
∆:


(
f , a, a) → (f , e)



(f , b, b) → (f , e)
wende Regel 1 an:
wende Regel 2 an:
wende Regel 3 an:
wende Regel 5 an:
wende Regel 4 an:
(s, abba , e)
(s, bba , a)
(s, ba , ba)
(f, ba , ba)
(f, a , a)
(f, e , e)
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-102 (189)
3.2.4 Kellerautomaten
Verarbeitung mit KF-Grammatik
Beispiel 3.24 (Verarbeitung mit KF-Grammatik)
{ww R : w ∈ {a, b}∗ }
S →G e
S →G aSa
S →G bSb
wende Regel 2 an:
wende Regel 3 an:
wende Regel 1 an:
S
aSa
abSba
abba
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-103 (190)
3.2.4 Kellerautomaten
Kellerautomaten – Unterschiede Vorlesung/JFLAP
Vorlesung
JFLAP
leerer String
e
λ oder ε
Keller zu Be- leer
Z
ginn
Wann wird Finalzustand
er- Finalzustand
erString
ak- reicht und Keller reicht oder Keller
zeptiert?
leer
leer
Der Kellerautomat heißt unter JFLAP: Pushdown-Automat.
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-104 (191)
3.2.4 Kellerautomaten
Kellerautomaten
Zusammenfassung 3.19 (Kellerautomaten)
Der Kellerautomat liest (wie die endlichen Automaten) das Band
einmal von links nach rechts.
Kellerautomat
deterministisch
nein
überall eindeutig definiert
nein
Wann wird String
akzeptiert ?
Band gelesen, Finalzustand, Keller
leer
Kellerautomat ist indeterministisch.
Bleibt der Kellerautomat stecken und findet keine anderen
Wege, dann akzeptiert er den String nicht.
Kellerautomat hat einen Hilfsspeicher, den Keller.
3 Automatentheorie
3.2 Kontextfreie Sprachen und Kellerautomaten
Theoretische Informatik
Folie 3-105 (192)
3.2.5 Kellerautomaten und kontextfreie Grammatiken
Kellerautomaten und kontextfreie Grammatiken
Satz 3.20 (Kontextfreie Sprachen)
Klasse der Sprachen, die durch Kellerautomaten akzeptiert
werden, ist genau die Klasse der kontextfreien Sprachen.
2 unterschiedliche Beschreibungsmittel für ein und dieselbe
Sprachklasse.
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-106 (193)
3.2.5 Kellerautomaten und kontextfreie Grammatiken
Kurzes Resümee
Welche Sprachen und Beschreibungsmittel haben wir bisher?
Sprache
reguläre
kontextfreie
Grammatik
reguläre
Grammatik
kontextfreie
Grammatik
Automat
DFA / NFA
Kellerautomaten
sonst
reguläre
Ausdrücke
??
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-107 (194)
3.2.6 Eigenschaften von kontextfreien Sprachen
Eigenschaften von kontextfreien Sprachen
Kontextfreie Sprachen sind:
abgeschlossen bezüglich Mengenvereinigung, Konkatenation,
Kleene star
nicht abgeschlossen bezüglich Durchschnitt, Komplement
abgeschlossen bezüglich Durchschnitt mit regulären Sprachen
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
3.2.6 Eigenschaften von kontextfreien Sprachen
Leistungskraft von Kellerautomaten
Es gibt Sprachen, die nicht kontextfrei sind: {an bn c n |n ∈ IN}.
Folie 3-108 (195)
3 Automatentheorie
3.2 Kontextfreie Sprachen und Kellerautomaten
Theoretische Informatik
Folie 3-109 (196)
3.2.7 Sprachdefinition mit FLEX
Sprachdefinition mit FLEX
FLEX steht für fast lexical analyzer generator. FLEX analysiert Text
und kann benutzt werden, um
Texte bezüglich einer Sprachdefinition zu prüfen,
Scanner für Texte zu generieren.
FLEX erlaubt reguläre Grammatiken.
3 Automatentheorie
3.2 Kontextfreie Sprachen und Kellerautomaten
3.2.7 Sprachdefinition mit FLEX
FLEX
Flex benötigt eine Datei, die folgenden Aufbau hat:
Definitionen
%%
Regeln
%%
Funktionen
Die Datei hat die Extension .l.
Theoretische Informatik
Folie 3-110 (197)
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
3.2.7 Sprachdefinition mit FLEX
FLEX
Beispiel 3.25 (FLEX)
Eine Beispieldatei:
int num_lines = 0, num_chars = 0;
%%
\n
++num_lines; ++num_chars;
.
++num_chars;
%%
yywrap()
{printf( "# of lines = %d, # of chars = %d\n",
num_lines, num_chars );
}
Folie 3-111 (198)
3 Automatentheorie
3.2 Kontextfreie Sprachen und Kellerautomaten
Theoretische Informatik
Folie 3-112 (199)
3.2.7 Sprachdefinition mit FLEX
FLEX
Aufruf (unter Linux): flex datei.l
gcc -g lex.yy.c -lfl (oder gcc -DYY_MAIN lex.yy.c)
Es entsteht eine Datei a.out, die ausführbar ist.
Hinweis: Die Funktion yywrap wird nach Erreichen des Dateiendes
aufgerufen, sie muss deshalb in datei.l definiert werden.
Flex
3 Automatentheorie
3.2 Kontextfreie Sprachen und Kellerautomaten
Theoretische Informatik
Folie 3-113 (200)
3.2.7 Sprachdefinition mit FLEX
Scanner Pascal-like language
Beispiel 3.26 (Scanner Pascal-like language)
#include <math.h>
DIGIT
[0-9]
ID
[a-z][a-z0-9]*
%%
{DIGIT}+
{printf( "An integer: %s (%d)\n",
yytext, atoi( yytext ) );}
{DIGIT}+"."{DIGIT}* {printf( "A float: %s (%g)\n",
yytext, atof( yytext ));}
if|then|begin|end|procedure|function
printf( "A keyword: %s\n", yytext );
3 Automatentheorie
3.2 Kontextfreie Sprachen und Kellerautomaten
Theoretische Informatik
Folie 3-114 (201)
3.2.7 Sprachdefinition mit FLEX
Scanner Pascal-like language – 2
Beispiel 3.26 cont.
{ID}
printf( "An identifier: %s\n", yytext );
"+"|"-"|"*"|"/" printf( "An operator: %s\n", yytext);
"{"[^}\n]*"}"
/* eat up one-line comments */;
[ \t\n]+
/* eat up whitespace */;
.
printf("Unrecognized character: %s\n", yytext);
%%
yywrap()
{}
Flex
3 Automatentheorie
3.2 Kontextfreie Sprachen und Kellerautomaten
Theoretische Informatik
Folie 3-115 (202)
3.2.7 Sprachdefinition mit FLEX
Aufgaben
Aufgabe 3.14 (JAVA und FLEX)
Beschreiben Sie die korrekte Syntax von JAVA-Statements wie do,
try, for, switch etc. durch eine Grammatik. Verwenden Sie
FLEX, um Ihre Grammatik zu testen.
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-116 (203)
3.2.8 Zwischenfazit
Resümee
Welche Sprachen und Beschreibungsmittel haben wir bisher?
Sprache
regulär
kontextfrei
Grammatik
reguläre
Grammatik
kontextfreie
Grammatik
Automat
DFA / NFA
sonst
reguläre
Ausdrücke
Kellerautomat ??
3 Automatentheorie
3.3 Turingmaschinen
Turingmaschinen
If a program is useful, it will have to be changed.
Arthur Bloch, Murphy’s Law, 1981
Theoretische Informatik
Folie 3-117 (204)
3 Automatentheorie
3.3 Turingmaschinen
3.3.1 Definition
Bisherige Automaten
Endliche Automaten
Kellerautomaten
;
Beide nicht allgemein genug!
Theoretische Informatik
Folie 3-118 (205)
3 Automatentheorie
3.3 Turingmaschinen
3.3.1 Definition
Turing-Maschine – Charakteristika
Band, welches nach rechts und links unbeschränkt ist
Lese- / Schreibkopf
endliche Menge von Zuständen, Zustandsübergänge
Die TM ist überraschend einfach.
Im gewissen Sinn ist sie das stärkste Computer-Modell.
Theoretische Informatik
Folie 3-119 (206)
3 Automatentheorie
Theoretische Informatik
3.3 Turingmaschinen
Folie 3-120 (207)
3.3.1 Definition
Turing-Maschine
Neu:
Lesekopf kann auch schreiben
Band hat keinen rechten/linken Rand
Verarbeitung erfolgt folgendermaßen:
I
I
I
I
Zeichen lesen
Übergang in einen neuen Zustand
Zeichen an aktueller Bandposition überschreiben
Kopf nach links/rechts bewegen oder auf aktueller Position lassen
3 Automatentheorie
3.3 Turingmaschinen
3.3.1 Definition
Turing-Maschine
Turing-Maschine kann beliebig lang arbeiten
Brauchen folglich einen Haltezustand h
TM kann Antwort auf das Band schreiben
Theoretische Informatik
Folie 3-121 (208)
3 Automatentheorie
Theoretische Informatik
3.3 Turingmaschinen
Folie 3-122 (209)
3.3.1 Definition
Turing-Maschine
Was müssen wir ändern? Im Prinzip nur die Regelform.
Die Regel
(q0 , a) → (q2 , c , r )
bedeutet:
Wenn wir im Zustand q0 sind
vom Band ein a lesen,
und
dann
gehen wir in den Zustand q2
schreiben auf das Band ein c
und
und
gehen auf dem Band eine Position nach rechts.
3 Automatentheorie
Theoretische Informatik
3.3 Turingmaschinen
Folie 3-123 (210)
3.3.1 Definition
Beispiel
Wir suchen eine Turing-Maschine, die a zu b umwandelt und
umgekehrt:
( q0 , a ) → ( q0 , b , r ) 1
( q0 , b ) → ( q0 , a , r ) 2
(q0 , #) → (q1 , #, l ) 3
(q1 , a) → (q1 , a, l ) 4
(q1 , b) → (q1 , b, l ) 5
(q1 , #) → (h, #, r ) 6
Hinweis: Das Band ist nach links und rechts „unendlich“ mit #
aufgefüllt.
3 Automatentheorie
Theoretische Informatik
3.3 Turingmaschinen
Folie 3-124 (211)
3.3.1 Definition
Verarbeitung
Regel
1
2
1
1
Konfiguration
(q0 , #abaa#)
(q0 , #bbaa#)
(q0 , #baaa#)
(q0 , #baba#)
(q0 , #babb#)
Nr .
0
1
2
3
4
Regel
3
5
5
4
5
6
Konfiguration
(q1 , #babb#)
(q1 , #babb#)
(q1 , #babb#)
(q1 , #babb#)
(q1 , #babb#)
(h, #babb#)
Nr .
5
6
7
8
9
10
3 Automatentheorie
Theoretische Informatik
3.3 Turingmaschinen
Folie 3-125 (212)
3.3.1 Definition
Turingmaschine – Arbeitsweise
q0
#
a
b
a
a
#
q0
#
b
b
a
a
#
q0
#
b
a
a
a
#
q0
#
b
a
b
a
#
q0
#
b
a
b
b
#
..................
Abb. 30: Turingmaschine – Arbeitsweise
3 Automatentheorie
Theoretische Informatik
3.3 Turingmaschinen
Folie 3-126 (213)
3.3.1 Definition
Darstellungsformen für Turing-Maschinen
Auch Turing-Maschinen können wir in Tabellenform darstellen:
Zustand
q0
q1
Eingabe
#
a
b
(q1 , #, l ) (q0 , b, r ) (q0 , a, r )
(h, #, r ) (q1 , a, l ) (q1 , b, l )
3 Automatentheorie
Theoretische Informatik
3.3 Turingmaschinen
Folie 3-127 (214)
3.3.1 Definition
Turing-Maschine – Definition
Definition 3.21 (Turing-Maschine)
TM = (K , Σ, δ, q0 , A), wobei
K ... endl. Menge von Zuständen, h 6∈ K
Σ ... Alphabet, Füllzeichen # ∈ Σ
q0 ∈ K ... Initialzustand
A = {l , r , s} ... Aktion
δ : K × Σ → (K ∪ {h}) × Σ × A
(totale Fkt.)
Das Band ist nach links und rechts mit # aufgefüllt.
Wichtig: Die Turing-Maschine
1
schreibt zunächst ein Zeichen auf die aktuelle Position.
2
Danach erst bewegt sich der Lese-/Schreibkopf nach links, rechts
oder bleibt auf der aktuellen Position (l , r , s).
3 Automatentheorie
Theoretische Informatik
3.3 Turingmaschinen
3.3.1 Definition
Deterministisch oder indeterministisch ?
Bemerkung 3.22
Man beachte, dass die Definition eine TM als deterministische
Maschine festlegt.
Folie 3-128 (215)
3 Automatentheorie
Theoretische Informatik
3.3 Turingmaschinen
Folie 3-129 (216)
3.3.1 Definition
Beispiel 3.27 (TM)
TM, die für Strings (a/b/c) prüft, ob Anzahl von b/c durch 3 teilbar ist.
a; #, R
q1
b; #, R
c; #, R
a; #, R
#; N, S
b; #, R
#; Y, S
q0
h
c; #, R
b; #, R
c; #, R
#; N, S
q2
a; #, R
Abb. 31: TM in JFLAP für b/c durch 3 teilbar
3 Automatentheorie
Theoretische Informatik
3.3 Turingmaschinen
Folie 3-130 (217)
3.3.1 Definition
Konfiguration
;
Unterschied Konfiguration – innerer Zustand
Auch die Zeichen links vom Kopf sind wichtig.
Nur ein endliches Teilstück des Bandes ist ungleich #.
Definition: eine Konfiguration ist ein Element aus:
(K ∪ {h}) × Σ∗ × Σ × Σ∗
Eine Konfiguration besteht also aus:
dem inneren Zustand der TM,
den Zeichen links vom Kopf,
dem aktuellen Zeichen und
den Zeichen rechts vom Kopf.
3 Automatentheorie
Theoretische Informatik
3.3 Turingmaschinen
Folie 3-131 (218)
3.3.1 Definition
Konfiguration und Konfigurationsübergang
1
Halte-Konfiguration: innerer Zustand ist der Haltezustand h
2
Schreibweise für eine Konfiguration: (p, abcbaba)
Konfigurationsübergang: analog zur Definition bei den
endlichen Automaten
Berechnung: endliche Folge von Konfigurationsübergängen
3 Automatentheorie
Theoretische Informatik
3.3 Turingmaschinen
Folie 3-132 (219)
3.3.2 Berechnungen mit Turingmaschinen
Berechnungen mit Turingmaschinen
Man hat bei Turing-Maschinen eine Reihe von Freiheitsgraden:
Wo steht der Kopf am Anfang?
Wie erkennt man das linke/rechte Ende des Eingabestrings?
Wo steht der Kopf am Ende?
3 Automatentheorie
3.3 Turingmaschinen
Theoretische Informatik
Folie 3-133 (220)
3.3.2 Berechnungen mit Turingmaschinen
Berechnungen mit TM – Konventionen
Eingabe-String links und rechts durch ein # eingeschlossen.
Der Kopf steht zu Beginn auf dem ersten Zeichen, also rechts
vom linken Begrenzungs-#.
Eine TM M hält bei Eingabe w gdw., (q0 , #w #) `∗M (h, . . .).
Hält TM, so muss der Kopf auf dem ersten Zeichen des
Antwortstrings stehen, also rechts vom linken Begrenzungs-#.
Auf dem Band darf ausschließlich die Antwort stehen, sonst nur
#.
3 Automatentheorie
3.3 Turingmaschinen
Theoretische Informatik
Folie 3-134 (221)
3.3.2 Berechnungen mit Turingmaschinen
Wann akzeptiert eine TM einen String?
Definition 3.23 (Akzeptierte Zeichenkette)
Eine TM akzeptiert einen String, wenn sie den Haltezustand h erreicht.
3 Automatentheorie
3.3 Turingmaschinen
Theoretische Informatik
Folie 3-135 (222)
3.3.2 Berechnungen mit Turingmaschinen
Berechnungen mit TM
Definition 3.24 (Berechnungen mit TM)
Seien Σ0 , Σ1 Alphabete (ohne #). Sei f : Σ∗0 → Σ∗1 . TM berechnet f ,
falls:
Σ0 , Σ1 ⊂ Σ
Für alle w ∈ Σ∗0 : (q0 , #w #) `∗TM (h, #u #)
⇔ f (w ) = u
Existiert zu einer Funktion f eine TM, so heißt f Turing-berechenbar.
3 Automatentheorie
Theoretische Informatik
3.3 Turingmaschinen
Folie 3-136 (223)
3.3.2 Berechnungen mit Turingmaschinen
Verallgemeinerte Funktionen
Bisher: TM bildet strings auf strings ab.
Mehrstellige Funktionen (strings × . . . × strings → string) :
Trennzeichen auf Band: z.B. #string #string . . . #
Funktionen über den natürlichen Zahlen – Kodierung durch
Strings:
0=e
1=I
2 = II
3 Automatentheorie
Theoretische Informatik
3.3 Turingmaschinen
Folie 3-137 (224)
3.3.2 Berechnungen mit Turingmaschinen
TM zur Sprachentscheidung
Sei L ⊂ Σ∗ . 2 Symbole: Y, N TM schreibt auf das Band Y oder N.
Definition 3.25 (Turing-Entscheidbarkeit)
Eine Sprache L heißt Turing-entscheidbar, falls
f : Σ∗ → {Y, N}
f (w ) =
Y, falls w ∈ L
N, sonst
eine Turing-berechenbare Funktion ist.
3 Automatentheorie
Theoretische Informatik
3.3 Turingmaschinen
Folie 3-138 (225)
3.3.2 Berechnungen mit Turingmaschinen
Entscheidungsverfahren
Beispiel 3.28 (TM)
Wir suchen TM als Entscheidungsverfahren für die Sprache
L = {w ∈ Σ∗ : |w | ist gerade}, Σ = {a}.
M = (K , Σ, δ, q0 ), K = {q0 , . . . , q3 }, Σ = {a, Y, N, #}

(q0 , a)



(q0 , #)
δ :
(q1 , a)



(q1 , #)
→
→
→
→
(q1 , a, r )
(q3 , #, l )
(q0 , a, r )
(q2 , #, l )
(q2 , a)
(q2 , #)
(q3 , a)
(q3 , #)
Auf unnötige Regeln wurde verzichtet.
TM-gerade
→
→
→
→
(q2 , #, l )
(h, N, s)
(q3 , #, l )
(h, Y, s)
3 Automatentheorie
Theoretische Informatik
3.3 Turingmaschinen
Folie 3-139 (226)
3.3.2 Berechnungen mit Turingmaschinen
Entscheidungsverfahren – 2
Beispiel 3.29 (TM 2)
TM für L = {w ∈ Σ∗ : w = a2k bk , k ≥ 0}, Σ = {a, b}.
tm-2a1b
Abb. 32: Turingmaschine – a2k bk
3 Automatentheorie
3.3 Turingmaschinen
Theoretische Informatik
Folie 3-140 (227)
3.3.2 Berechnungen mit Turingmaschinen
Semi-Entscheidbarkeit
Definition 3.26 (Semi-Entscheidbarkeit)
Eine Sprache L heißt Turing-semientscheidbar, falls eine
Turingmaschine existiert, so dass diese TM bei jeder Eingabe eines
Wortes aus L das Resultat Y liefert. Falls das Wort nicht aus L ist, kann
das Verhalten der TM undefiniert sein.
Turing-entscheidbar und Turing-semientscheidbar sind nicht
äquivalent.
Jede Turing-entscheidbare Sprache ist auch
Turing-semientscheidbar, aber nicht umgekehrt.
3 Automatentheorie
Theoretische Informatik
3.3 Turingmaschinen
Folie 3-141 (228)
3.3.2 Berechnungen mit Turingmaschinen
Turing-Maschinen – Unterschiede Vorlesung/JFLAP
Zustandsübergang
Füllzeichen
Haltezustand
Vorlesung
deterministisch (totale Funktion)
#
h
JFLAP
indeterministisch
(Relation)
2
beliebig viele
3 Automatentheorie
3.3 Turingmaschinen
3.3.3 Kombinationen und Erweiterungen von Turingmaschinen
TM als Prozedur
Ziel: TM als generelles Berechnungsmodell.
Frage: TM als Prozeduren?
Überlegung:
Gibt es Konfigurationsübergänge:
(q1 , w1 a1 u1 ) `∗TM (q2 , w0 w2 a2 u2 ) und
(q2 , w2 a2 u2 ) `∗TM (q3 , w3 a3 u3 ) ,
so ist auch (q1 , w1 a1 u1 ) `∗TM (q3 , w0 w3 a3 u3 ) ein
Konfigurationsübergang.
Theoretische Informatik
Folie 3-142 (229)
3 Automatentheorie
3.3 Turingmaschinen
Theoretische Informatik
Folie 3-143 (230)
3.3.3 Kombinationen und Erweiterungen von Turingmaschinen
Kombination von Turing-Maschinen
Es gibt 2 Möglichkeiten, Turing-Maschinen zu kombinieren:
TM1 hält, dann startet TM2 .
In TM0 wird eine Fallunterscheidung gemacht, im Fall i übernimmt
dann TMi .
3 Automatentheorie
3.3 Turingmaschinen
3.3.3 Kombinationen und Erweiterungen von Turingmaschinen
Erweiterung von Turing-Maschinen
TM können wie folgt erweitert werden:
2 Bänder
mehrere Köpfe
2-dimensionales Band
All diese Erweiterungen sind äquivalent zur einfachen TM.
Theoretische Informatik
Folie 3-144 (231)
3 Automatentheorie
Theoretische Informatik
3.3 Turingmaschinen
Folie 3-145 (232)
3.3.3 Kombinationen und Erweiterungen von Turingmaschinen
Turing-Maschinen
Zusammenfassung 3.27 (Turing-Maschinen)
Turingmaschine kann sich auf dem Eingabeband frei bewegen
und auch schreiben.
Die TM schreibt die Antwort auf das Band.
Die TM ist deterministisch.
Ihr Verhalten muss in jeder Situation eindeutig definiert sein.
TM hat keinen Hilfsspeicher (sie kann das Band dazu benutzen).
Turingmaschine
deterministisch
ja
überall eindeutig definiert
ja
Wann hält sie an?
im Haltezustand
3 Automatentheorie
3.4 Sprachen und Automaten – Ergänzungen
Sprachen und Automaten – Ergänzungen
The simpler it looks, the more problems it hides.
Lee’s Law of Electrical Repair.
Theoretische Informatik
Folie 3-146 (233)
3 Automatentheorie
Theoretische Informatik
3.4 Sprachen und Automaten – Ergänzungen
Folie 3-147 (234)
Bisher . . .
Typ
0
Grammatik
allgemeine
1 (kontextsensitiv)
2 (kontextfrei)
kontextsensitiv
kontextfrei
3 (regulär)
regulär
Automat
TuringMaschine
??
indet. Kellerautomat
DFA/NFA
sonst
??
??
??
reguläre
Ausdrücke
3 Automatentheorie
Theoretische Informatik
3.4 Sprachen und Automaten – Ergänzungen
Folie 3-148 (235)
3.4.1 Chomsky-Hierarchie
Chomsky-Hierarchie
Satz 3.28 (Sprachklassen)
Die Sprachen-Klasse des Typs n ist eine echte Teilmenge der
Sprachen-Klasse vom Typ n-1.
Typ 0 aufzählbar
Typ 1 kontext−sensitiv
Typ 2
Typ 3
kontext−frei
regulär
Abb. 33: Chomsky-Hierarchie
3 Automatentheorie
3.4 Sprachen und Automaten – Ergänzungen
Theoretische Informatik
Folie 3-149 (236)
3.4.1 Chomsky-Hierarchie
Chomsky-Hierarchie
Typ-0-Sprachen werden durch Turing-Maschinen akzeptiert.
Eine Turing-Maschine akzeptiert eine Zeichenkette, wenn sie bei
Eingabe der Zeichenkette anhält.
Welcher Automat gehört zu den kontextsensitiven Sprachen?
Dies sind die linear-beschränkten indeterministischen
Turing-Maschinen.
Die Typ-0-Sprachen entsprechen den aufzählbaren Sprachen.
3 Automatentheorie
3.4 Sprachen und Automaten – Ergänzungen
Theoretische Informatik
Folie 3-150 (237)
3.4.2 LL-Sprachen
LL-Sprachen
Grammatiken sind elegante Form zur Beschreibung der Syntax
einer Sprache.
Für effiziente Parser: sinnvoll, sich auf Sprachen zu beschränken,
die sich von „links nach rechts“ prüfen lassen.
3 Automatentheorie
Theoretische Informatik
3.4 Sprachen und Automaten – Ergänzungen
Folie 3-151 (238)
3.4.2 LL-Sprachen
LL-Sprachen – Beispiel
Es wird folgende Grammatik betrachtet:
S → aSb
S→e
Prüft man mit dieser Grammatik die Korrektheit einer
Zeichenkette,
so kann man anhand des nächsten Zeichens in der Zeichenkette
erkennen, welche Regel anzuwenden ist.
Grammatik arbeitet also mit einer Vorschau von nur 1 Zeichen.
Man bezeichnet diese Grammatik als LL(1)-Grammatik:
L . . . Eingabe wird von links nach rechts gelesen.
L . . . Es wird immer das linkeste Nichtterminal ersetzt.
1 . . . Vorausschau 1
3 Automatentheorie
3.4 Sprachen und Automaten – Ergänzungen
Theoretische Informatik
Folie 3-152 (239)
3.4.2 LL-Sprachen
LL-Grammatiken
Mit LL1-Grammatiken: deterministisches Verfahren zur Prüfung
der Korrektheit einer Zeichenkette
Methode des rekursiven Abstiegs
LL-Sprachen sind eine Unterklasse der kontextfreien Sprachen.
3 Automatentheorie
Theoretische Informatik
3.4 Sprachen und Automaten – Ergänzungen
Folie 3-153 (240)
3.4.2 LL-Sprachen
Beispiel – Rekursiver Abstieg
Beispiel 3.30 (Rekursiver Abstieg)
Sei folgende Grammatik gegeben. Das Zeichen | steht für „oder“:
S
X
Y
→
→
→
Xa | Yb
s|e
t
Jedem Nichtterminal wird eine Prozedur zugeordnet:
procedure S
procedure X
procedure Y
case nextSymbol
case nextSymbol
match(t)
s,a : X; match(a)
s
: match(s)
t
: Y; match(b)
a
:
else : error
else : error
3 Automatentheorie
Theoretische Informatik
3.4 Sprachen und Automaten – Ergänzungen
Folie 3-154 (241)
3.4.3 Syntaxdiagramme
Syntaxdiagramm
A=e
A
A
B
C
A=BC
A=B*
A
B
A
B
A=B+
A
B
A=B | C
C
A
a
A=a
Abb. 34: Syntaxdiagramm
3 Automatentheorie
Theoretische Informatik
3.4 Sprachen und Automaten – Ergänzungen
Folie 3-155 (242)
3.4.3 Syntaxdiagramme
Syntaxdiagramm
JavaStatement
CompoundStatement
Statement
CompoundStatement
{
Statement
Abb. 35: Syntaxdiagramm JavaStatements
}
3 Automatentheorie
Theoretische Informatik
3.4 Sprachen und Automaten – Ergänzungen
3.4.4 BISON
BISON
Compilerbau mit Grammatiken:
Y
Yet
A
Another
C
Compiler
C
Compiler
FLEX: nur Scanning (lexikalische Analyse).
YACC dagegen führt ein Parsing durch.
Resultat: Struktur gemäß der vorgegebenen Grammatik
Folie 3-156 (243)
3 Automatentheorie
3.4 Sprachen und Automaten – Ergänzungen
3.4.4 BISON
BISON
Das Beispiel implementiert einen Rechner in UPN.
%{
#define YYSTYPE double
#include <math.h>
#include <stdio.h>
%}
%token NUM
Theoretische Informatik
Folie 3-157 (244)
3 Automatentheorie
3.4 Sprachen und Automaten – Ergänzungen
Theoretische Informatik
Folie 3-158 (245)
3.4.4 BISON
BISON
%% /* Grammar rules and actions follow */
input:
/* empty */ | input line
;
line:
’\n’ | exp ’\n’ { printf ("\t%.10g\n", $1); }
;
exp: NUM
{ $$ = $1;
}
| exp exp ’+’ { $$ = $1 + $2;
}
| exp exp ’-’ { $$ = $1 - $2;
}
| exp exp ’*’ { $$ = $1 * $2;
}
| exp exp ’/’ { $$ = $1 / $2;
}
| exp exp ’^’ { $$ = pow ($1, $2);} /*Exponentiation*/
| exp ’n’
{ $$ = -$1; }
/* Unary minus */
;
3 Automatentheorie
3.4 Sprachen und Automaten – Ergänzungen
Theoretische Informatik
Folie 3-159 (246)
3.4.4 BISON
BISON
%%
#include <ctype.h>
yylex ()
{ int c;
/* skip white space */
while ((c = getchar ()) == ’ ’ || c == ’\t’)
;
if (c == ’.’ || isdigit (c)) /* process numbers
*/
{ ungetc (c, stdin);
scanf ("%lf", &yylval);
return NUM;
}
if (c == EOF)
return 0; /* return end-of-file */
return c;
} /* return single chars */
3 Automatentheorie
3.4 Sprachen und Automaten – Ergänzungen
3.4.4 BISON
BISON
main ()
{ yyparse (); }
#include <stdio.h>
yyerror (s) /* Called by yyparse on error */
char *s;
{ printf ("%s\n", s); }
Theoretische Informatik
Folie 3-160 (247)
3 Automatentheorie
3.4 Sprachen und Automaten – Ergänzungen
Theoretische Informatik
Folie 3-161 (248)
3.4.4 BISON
BISON
Man übersetzt das File: bison <file_name>.y
Bison liefert eine Datei namens <file_name>.tab.c. Nun kann man
diese Datei kompilieren:
# List files in current directory.
ls
pol.tab.c pol.y
# Compile the Bison parser.
# ‘-lm’ tells compiler to search math library for pow.
cc pol.tab.c -lm -o pol
# List files again.
ls
pol pol.tab.c pol.y
BISON
3 Automatentheorie
Theoretische Informatik
3.4 Sprachen und Automaten – Ergänzungen
Folie 3-162 (249)
3.4.4 BISON
BISON
Ein Dialog unter pol könnte wie folgt aussehen:
./pol
4 9 +
13
3 7 + 3 4 5 *+-13
3 7 + 3 4 5 * + - n
13
5 6 / 4 n +
-3.166666667
3 4 ^
81
^D
einstelliges Minus n
Exponent
Eingabeende
3 Automatentheorie
Theoretische Informatik
3.4 Sprachen und Automaten – Ergänzungen
Folie 3-163 (250)
3.4.5 Übersetzung von Programmiersprachen
Übersetzung von Programmiersprachen
Quellprogramm
lexikalische Analyse
SCANNER
Folge von Token
syntaktische Analyse
PARSER
Ableitungsbaum
semantische Analyse
und Codegenerierung
Zielprogramm
Codeoptimierung
optimiertes Zielprogramm
Abb. 36: Übersetzung von Programmiersprachen
3 Automatentheorie
Theoretische Informatik
3.4 Sprachen und Automaten – Ergänzungen
Folie 3-164 (251)
3.4.5 Übersetzung von Programmiersprachen
Beispiel – Syntaxbaum
Betrachten den arithmetischen Ausdruck (3 + 1) ∗ 4 − 7.
2 Interpretationen möglich, die zu
unterschiedlichen Resultaten führen.
Durch Grammatik wird eine Interpretation ausgeschlossen.
−
*
+
3
*
−
1
4
+
7
3
Abb. 37: Syntaxbaum
7
4
1
3 Automatentheorie
Theoretische Informatik
3.4 Sprachen und Automaten – Ergänzungen
Folie 3-165 (252)
3.4.6 Resümee
Resümee
Typ
0
Grammatik
allgemeine
1 (kontextsensitiv)
kontextsensitiv
2 (kontextfrei)
3 (regulär)
kontextfrei
regulär
Automat
TuringMaschine
linear
beschränkte
TM
indet. Kellerautomat
DFA/NFA
sonst
aufzählbare
Sprachen
??
Syntaxdiagramm
reguläre
Ausdrücke
3 Automatentheorie
Theoretische Informatik
3.5 Zusammenfassung (Automaten)
Das sollten Sie wissen . . .
Zusammenfassung 3.29 (Automaten)
Endliche Automaten, (in)determinstisch, Gleichwertigkeit
Umwandlung vom NFA zum DFA
Kellerautomaten
Turingmaschinen
Grammatiken
Sprachklassen und -hierarchie
Folie 3-166 (253)
3 Automatentheorie
Theoretische Informatik
3.6 Aufgaben (Automaten)
Folie 3-167 (254)
Aufgaben
Aufgabe 3.15 (DFA/NFA – leeres Wort)
Wann liegt das leere Wort e in der Sprache eines DFA / NFA?
Aufgabe 3.16 (DFA/NFA)
Konstruieren Sie einen DFA und NFA für die Sprache aller Wörter (aus
a und b), in denen sowohl ab als auch ba als Teilstring vorkommen,
also z.B. aba oder bab oder baaab.
Finden Sie für diese Sprache auch eine (reguläre) Grammatik und
einen regulären Ausdruck.
3 Automatentheorie
3.6 Aufgaben (Automaten)
Theoretische Informatik
Folie 3-168 (255)
Aufgaben
Aufgabe 3.17 (DFA/NFA – Cola-Automat)
Konstruieren Sie auf der Basis eines DFA oder NFA einen Automaten,
der Cola-Büchsen verkauft. Eine Cola kostet 1 Euro. Der Automat soll
folgende Münzen akzeptieren : 10 c, 50 c, 1 Euro.
Aufgabe 3.18 (Grammatik und Kellerautomat)
Geben Sie eine Kf-Grammatik und einen Kellerautomaten für die
Sprache {vv R ww R |v , w ∈ {a, b}∗ } an!
3 Automatentheorie
3.6 Aufgaben (Automaten)
Theoretische Informatik
Folie 3-169 (256)
Aufgaben
Aufgabe 3.19 (TM)
Finden Sie eine TM, die die Sprache L ⊂ {a, b}∗ , so dass im Wort 2
aufeinanderfolgende a enthalten sind, entscheidet!
Aufgabe 3.20 (Regulärer Ausdruck)
Finden Sie für den regulären Ausdruck ab∗ (ba)+ c einen endlichen
Automaten.
Aufgabe 3.21 (Regulärer Ausdruck)
Wandeln Sie den regulären Ausdruck ((ab)+ ∪ ba∗ )b in eine reguläre
Grammatik um.
4 Logik
Theoretische Informatik
24. August 2015
Inhaltsverzeichnis
1
TI – Einführung
2
Grundlagen
3
Automatentheorie
4
Logik
5
Komplexität
6
Berechenbarkeit & Entscheidbarkeit
4 Logik
Theoretische Informatik
24. August 2015
Inhaltsverzeichnis – Kapitel 4
4
Logik
Aussagenlogik
Beispiel (Resolution)
Zusammenfassung (Aussagenlogik)
Aufgaben (Aussagenlogik)
4 Logik
Theoretische Informatik
Folie 4-1 (259)
Logik
Logic is a systematic method of coming to the wrong
conclusion with confidence.
Manly’s Maxim
4 Logik
Theoretische Informatik
Folie 4-2 (260)
Ein Rätsel
Um einen runden Tisch herum sitzt eine unbekannte Anzahl von
Leuten.
Ein Teil von ihnen sagt IMMER die Wahrheit, die anderen lügen
IMMER.
Jeder behauptet über seine beiden Nachbarn, dass sie lügen.
Einer von ihnen sagt: „Es sitzen 53 Leute am Tisch.“
Daraufhin sagt ein anderer: „Er lügt. Es sind 52.“
Wieviele sitzen denn nun am Tisch ?
4 Logik
Theoretische Informatik
Folie 4-3 (261)
Logik
Alle Vögel können fliegen.
Ich gehe schwimmen,
wenn die Sonne scheint.
+Speicherkarte −CF
Alltagslogik
Suchmaschinen
......
Programmierung
IF A=4 THEN .....
......
Logik
Systembeschreibung
Der Chef muss alle Beschaffungen unterschreiben.
Abb. 38: Logik-Anwendungen
4 Logik
Theoretische Informatik
Folie 4-4 (262)
Informatik und Logik
Für die Informatik ist die Logik aus 2 Gründen interessant:
Beschreibungsmittel
Berechnungsmittel
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-5 (263)
Aussagenlogik
Aussagen im Alltag:
Es regnet.
Nicht jeder Schnee ist weiß.
;
;
Aussagen sind wahr oder falsch.
Wahrheitswert muss nicht unbedingt bekannt sein!
GOLDBACHsche Vermutung:
Jede gerade natürliche Zahl lässt sich darstellen als Summe
zweier Primzahlen.
Bis heute nicht bewiesen bzw. widerlegt.
Sie ist jedoch in jedem Fall wahr oder falsch.
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-6 (264)
Aussagenlogik
Beispiel 4.1 (Aussagenlogik)
Es seien die Aussagen gegeben:
Wenn es regnet, ist die Straße nass.
Es regnet.
Dies kann man in der Aussagenlogik so darstellen:
regnet → strasse_nass
regnet
Aus diesen beiden Aussagen kann man schließen, dass die Straße
nass ist.
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
4.1.1 Syntax und Übersetzen von Aussagen
Syntax
In der Aussagenlogik werden elementare Aussagen durch
aussagenlogische Variablen dargestellt:
A für die Aussage: „BMW-Aktien sind hoch im Kurs.“
B für die Aussage: „Heute ist Montag.“
Man kann Aussagen auch verknüpfen, z.B. steht A ∨ B für:
„BMW-Aktien sind hoch im Kurs oder heute ist Montag.“
Die Aussagen A und B sind elementare (atomare) Aussagen.
Folie 4-7 (265)
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
4.1.1 Syntax und Übersetzen von Aussagen
Syntax
Die Aussagenlogik ist aufgebaut aus:
Aussagenvariablen (atomare Aussagen)
Verknüpfungen:
I ¬ (Negation)
I
∨ (Oder)
I
∧ (Und)
I
→ (Implikation, Wenn . . . dann . . . )
I
↔ (Äquivalenz, . . . genau dann wenn . . . )
Folie 4-8 (266)
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-9 (267)
4.1.1 Syntax und Übersetzen von Aussagen
Das logische Oder
Die Aussage
Wir fahren nach Frankreich, falls das Quartier billig ist oder sehr gutes
Wetter ist.
kann aussagenlogisch dargestellt werden:
billig ∨ guteswetter → urlaubfrankreich
Wann fahren wir also garantiert nach Frankreich?
Gutes Wetter und nicht billig.
Kein gutes Wetter und billig.
Gutes Wetter und billig.
Das Oder ist also ein einschließendes Oder.
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-10 (268)
4.1.1 Syntax und Übersetzen von Aussagen
Die Implikation
Wann ist die folgende Aussage wahr?
Falls es regnet, ist die Straße nass.
Fall 1: Es regnet, die Straße ist nass.
Was ist, wenn es gar nicht regnet? Aussage ist nicht verletzt!
Nur falls es regnet, muss die Straße nass sein.
Fall 2: Es regnet nicht, die Straße ist nass.
Fall 3: Es regnet nicht, die Straße ist nicht nass.
Der einzige Fall, der nicht eintreten darf, der die Aussage also
verletzen würde, ist:
Fall 4: Es regnet, die Straße ist nicht nass.
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-11 (269)
4.1.1 Syntax und Übersetzen von Aussagen
Die Implikation – 2
Wir betrachten Spielkarten.
Vorderseite der Karten: Buchstabe
Rückseite: eine Ziffer
Einzige Bedingung:
Falls auf der Vorderseite ein Vokal ist, dann muss auf der Rückseite
eine gerade Zahl stehen.
A D 5 8
Jemand zeigt uns folgende 4 Karten:
.
Frage: Welche Karte(n) müssen wir umdrehen, um obige Restriktion
zu prüfen?
Antwort: Nur die Karten
A 5.
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-12 (270)
4.1.1 Syntax und Übersetzen von Aussagen
Aussagenlogik
Satz
. . . und . . .
sowohl . . . als auch . . .
aber, jedoch, obwohl
. . . oder . . .
Wenn A dann B, aus A folgt B
A, vorausgesetzt dass B gilt
A, falls/wenn B
A nur dann, wenn B
A genau dann, wenn B
entweder A oder B
weder A noch B
A, es sei denn B
Es stimmt nicht, dass . . .
aussagenlogisch
A ∧ B
A ∧ B
A ∧ B
A ∨ B
A → B
B → A
B → A
A → B
A ↔ B
(A ∨ B ) ∧ (¬A ∨ ¬B )
¬A ∧ ¬B
(B → ¬A) ∧ (¬B → A)
¬(. . .)
Tabelle 3: Übersetzen von Aussagen
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
4.1.1 Syntax und Übersetzen von Aussagen
Aussagenlogik
Beispiel 4.2 (Übersetzen)
Betrachten wir die Aussage Beate und Klaus mögen sich nicht.
Offensichtlich stecken in dieser Aussage 2 Teilaussagen:
Beate mag Klaus nicht.
Klaus mag Beate nicht.
Mit der Negation als Operator:
Nicht (Beate mag Klaus).
Nicht (Klaus mag Beate).
2 aussagenlogische Variablen: BmagK, KmagB.
Nun können wir die gesamte Aussage aufschreiben:
¬BmagK ∧ ¬KmagB.
Folie 4-13 (271)
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
4.1.1 Syntax und Übersetzen von Aussagen
Typisches Vorgehen beim Übersetzen
1
Finden von Teilaussagen.
2
Zerlegen der Aussage(n), Finden der atomaren Aussagen.
3
Namen für die atomaren Aussagen vergeben.
4
Aufstellen der Formel.
Folie 4-14 (272)
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
4.1.1 Syntax und Übersetzen von Aussagen
Aussagenlogik
Beispiel 4.3 (Übersetzen)
Klaus und Bernd gehen nur gemeinsam zum Fußball:
fklaus ↔ fbernd
Klaus und Bernd gehen nie gemeinsam zum Fußball:
¬(fklaus ∧ fbernd)
Entweder geht Klaus oder Bernd zum Fußball:
(fklaus ∧ ¬fbernd) ∨ (¬fklaus ∧ fbernd)
Wenn Klaus geht, dann auch Bernd: fklaus → fbernd
Folie 4-15 (273)
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-16 (274)
4.1.1 Syntax und Übersetzen von Aussagen
Das XOR
In vielen Programmiersprachen gibt es das ausschließende Oder,
meist XOR genannt. a XOR b ist äquivalent zu:
(a ∧ ¬b) ∨ (¬a ∧ b)
oder auch a ↔ ¬b
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-17 (275)
4.1.1 Syntax und Übersetzen von Aussagen
Aussagenlogische Formeln
Definition 4.1 (Aussagenlogische Formeln)
Die Menge der aussagenlogischen Formeln ist definiert durch:
Alle Aussagenvariablen (atomare Aussagen) sind Formeln.
Sind A und B Formeln, dann auch:
I A ∧ B
I A ∨ B
I ¬A
I A → B
I A ↔ B
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-18 (276)
4.1.1 Syntax und Übersetzen von Aussagen
Äquivalenz und Implikation
Man kann die Äquivalenz und Implikation auch definieren durch:
A ↔ B gdw. (A → B ) ∧ (B → A)
A → B gdw. ¬A ∨ B,
Demnach braucht man die Implikation und die Äquivalenz eigentlich
nicht.
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-19 (277)
4.1.2 Gültigkeit und Erfüllbarkeit
Wahr oder falsch?
Die Frage, die uns natürlich interessiert, ist die, ob eine Formel wahr
oder falsch ist.
Die BMW-Aktie steigt
oder
die BMW-Aktie
steigt nicht.
ist eine immer wahre Aussage.
1999 war der Bundeskanzler Helmut Kohl.
falsche Aussage.
ist eine
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-20 (278)
4.1.2 Gültigkeit und Erfüllbarkeit
Wahr oder falsch?
Beispiel 4.4 (Wahrheitswert von Aussagen)
(A ∨ B ) ∧ ¬A ∧ ¬B ist falsch, unabhängig davon, ob A oder B
wahr sind.
(A ∧ B ) ∨ ¬A ∨ ¬B ist wahr, unabhängig davon, ob A oder B
wahr sind.
A ∨ B ist wahr, wenn A oder B wahr ist, sonst falsch.
Allgemeine Unterscheidung:
immer wahre Aussage: wahr
immer falsche Aussage: falsch
sonst: nur in Abhängigkeit von der jeweiligen realen Welt
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-21 (279)
4.1.2 Gültigkeit und Erfüllbarkeit
Gültigkeit und Erfüllbarkeit
Gelingt es durch geschicktes Belegen der aussagenlogischen
Variablen, eine Formel φ „wahrzumachen“, so heißt φ erfüllbar,
geht dies nicht: unerfüllbar (falsch).
Wird die Formel unter jeder Belegung wahr, so heißt φ
allgemeingültig (Tautologie).
Gibt es eine Belegung, so dass die Formel falsch wird:
falsifizierbar.
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-22 (280)
4.1.2 Gültigkeit und Erfüllbarkeit
Aussagenlogische Formeln
φ ist allgemeingültig, gdw. ¬φ ist unerfüllbar.
Die erfüllbaren und die falschen Formeln sind komplementär.
Allgemeingültige Formeln ⊂ Erfüllbare Formeln
Falsche Formeln ⊂ Falsifizierbare Formeln
(Erfüllbare F. ∩ Falsifizierbare F.) ∪ Allgemeingültige F. =
Erfüllbare Formeln
(Erfüllbare F. ∩ Falsifizierbare F.) ∪ Falschen Formeln =
Falsifizierbare F.
Tauto−
logien
sowohl
erfüllbar
als auch
falsifizierbar
falsche
Formeln
Abb. 39: Aussagenlogische Formeln
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
4.1.2 Gültigkeit und Erfüllbarkeit
Mengen von Formeln
Wir vereinbaren, dass
eine Menge von Formeln {F1 , F2 , . . . , Fn } wahr ist,
genau dann wenn jedes Element der Menge wahr ist.
Folie 4-23 (281)
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
4.1.2 Gültigkeit und Erfüllbarkeit
Aufgaben
Aufgabe 4.1 (Implikation)
Wann die logische Implikation a → b wahr?
Betrachten Sie dazu eine Alltagsaussage wie „Wenn ich
Geburtstag habe, dann mache ich eine Fete“.
Prüfen Sie für die 4 Fälle (a und b wahr/falsch), wann die
Aussage erfüllt bzw. verletzt ist.
Folie 4-24 (282)
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
4.1.2 Gültigkeit und Erfüllbarkeit
Aufgaben
Aufgabe 4.2 (Erfüllbarkeit, Falsifizierbarkeit)
Sind folgende Formeln wahr / erfüllbar / falsifizierbar / falsch ?
a → b
a → ¬a
a → a
¬a → a
(a ∧ ¬a) → b
(a → b) ∨ (a → ¬b)
(a → b) ∧ (a → ¬b)
Folie 4-25 (283)
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-26 (284)
4.1.3 Berechnungen mit Aussagenlogik
Wahrheitswerttabellen
A
B
A ∨ B
A ∧ B
W
W
F
F
W
F
W
F
W
W
W
F
W
F
F
F
¬A A → B A ↔ B
F
W
W
F
F
F
W
W
F
W
W
W
Tabelle 4: Wahrheitswerttabelle für ∨ , ∧ , ¬, → , ↔
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-27 (285)
4.1.3 Berechnungen mit Aussagenlogik
Wahrheitswerttabellen
Beispiel 4.5 (Wahrheitswerttabelle)
Wir betrachten ¬A → (A → B ):
A
B
A → B
W
W
F
F
W
F
W
F
W
F
W
W
Die Formel ist eine Tautologie.
¬A → (A → B )
W
W
W
W
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-28 (286)
4.1.3 Berechnungen mit Aussagenlogik
Logischer Zusammenhang von Formeln
Beispiel 4.6 (Aussagenlogik)
Zwei Zeugen beobachten ein Verbrechen. Die Zeugen machen
folgende Aussagen:
1
A und B arbeiten nie zusammen.
2
Wenn A der Täter war, dann hat er mit B
zusammengearbeitet.
Daraus folgt zwingend, dass A unschuldig ist.
Ziel ist nicht, die Unschuld von A zu beweisen,
sondern dass aus Aussage 1 und 2 folgt, dass A unschuldig ist.
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-29 (287)
4.1.3 Berechnungen mit Aussagenlogik
Logischer Zusammenhang von Formeln
Definition 4.2 (Folgen)
Sei Φ eine Menge von Formeln, φ eine Formel. Wir sagen, φ folgt aus
Φ (Φ |= φ), falls jede Variablenbelegung, die Φ erfüllt, auch φ erfüllt.
Aus A und B folgt z.B. A ∨ B.
Prinzipiell mit Wahrheitswerttabellen beweisbar:
In der Wahrheitswerttabelle nur die Zeile untersuchen, wo A und
B wahr sind
oder
Beweis, dass die Aussage A ∧ B → A ∨ B eine Tautologie ist.
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-30 (288)
4.1.3 Berechnungen mit Aussagenlogik
Beispiel
Seien folgende Aussagen gegeben:
Wenn Michael Schumacher mitfährt, sehen die Leute Formel 1.
Wenn Schumacher nicht mitfährt, dann hat Mercedes nicht
genug Geld bezahlt.
Mercedes bezahlt viel Geld an Schumacher.
Wir möchten beweisen, dass die Leute sich Formel 1 anschauen.
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-31 (289)
4.1.3 Berechnungen mit Aussagenlogik
Beispiel
Diese Aussagen müssen wir zunächst in die Aussagenlogik
übersetzen.
Michael Schumacher fährt mit: faehrt
Die Leute sehen Formel 1: formel1
Mercedes zahlt genug Geld an MS: geld
Nun können wir die Aussagen formulieren:
faehrt → formel1
¬faehrt → ¬geld
geld
formel1
(1)
(2)
(3)
(Behauptung)
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-32 (290)
4.1.3 Berechnungen mit Aussagenlogik
Beispiel
Beweis von
formel1
mittels Wahrheitswerttabellen. Die Formel
(faehrt → formel1) ∧ (¬faehrt → ¬geld) ∧ geld
muss eine Tautologie sein.
→
formel1
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-33 (291)
4.1.3 Berechnungen mit Aussagenlogik
Beispiel - Wahrheitswerttabelle
faehrt
formel1
geld
F
F
F
F
F
W
W
F
W
W
...
W
...
W
(faehrt → formel1) ∧ . . .
. . . → formel1
W
W
W
W
W
W
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
4.1.3 Berechnungen mit Aussagenlogik
Wahrheitswerttabellen
Nachteil: hoher Aufwand!
2n Möglichkeiten
Deshalb hat man nach anderen Beweis-Verfahren gesucht.
Folie 4-34 (292)
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-35 (293)
4.1.3 Berechnungen mit Aussagenlogik
Inferenz-Regeln
Verknüpfen logische Formeln (Aussagen) zu neuen Formeln
. . . bis gewünschte Formel entsteht.
Modus Ponens
L → K
L
K
Man beachte, dass es keine Rolle spielt, welche Aussagen sich hinter
L und K verbergen.
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-36 (294)
4.1.3 Berechnungen mit Aussagenlogik
Inferenzregeln
Inferenzregel
L → K
L
K
Tautologische Form
Name
[(L → K ) ∧ L] → K
Modus ponens
L → K
¬K
¬L
[(L → K ) ∧ ¬K ] → ¬L
Modus tollens
(indirekter Beweis)
L ∨ K
¬K
L
[(L ∨ K ) ∧ ¬K ] → L
Disjunktiver Syllogismus
[¬(¬K )] → K
Doppelte Negation
¬(¬K )
K
Tabelle 5: Inferenzregeln
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
4.1.3 Berechnungen mit Aussagenlogik
Folgen und Ableiten
2 unterschiedliche Begriffe für Zusammenhänge von Formeln:
Folgen: Φ |= φ (φ folgt aus Φ)
Ableiten: Φ ` φ (φ ist aus Φ – mittels Inferenzregeln –
berechenbar).
Folie 4-37 (295)
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-38 (296)
4.1.3 Berechnungen mit Aussagenlogik
Normalformen
Beobachtung: Es gibt äquivalente Formeln.
Aus der Sicht des Beweisens ungünstig!
Definition 4.3 (Äquivalenz von Formeln)
2 Formeln A, B heißen äquivalent (A ≡ B), falls für jede beliebige
Belegung der aussagenlogischen Variablen gilt:
Die Belegung erfüllt A gdw. sie auch B erfüllt.
Es gilt: A ≡ B gdw. A ↔ B eine Tautologie ist.
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-39 (297)
4.1.3 Berechnungen mit Aussagenlogik
Äquivalenzen
A ↔ B ≡ (A → B) ∧ (B →
A → B ≡ ¬A ∨ B
DeMorgan
¬(A ∨ B) ≡ ¬A ∧ ¬B
DeMorgan
¬(A ∧ B) ≡ ¬A ∨ ¬B
Distributivität
(A ∨ (B ∧ C)) ≡ ((A ∨ B) ∧
Distributivität
(A ∧ (B ∨ C)) ≡ ((A ∧ B) ∨
Kommutativität A ∨ B ≡ B ∨ A
Kommutativität A ∧ B ≡ B ∧ A
Assoziativität
(A ∨ (B ∨ C)) ≡ ((A ∨ B) ∨
Assoziativität
(A ∧ (B ∧ C)) ≡ ((A ∧ B) ∧
Doppelte Neg. ¬¬A ≡ A
A)
(A ∨ C))
(A ∧ C))
C)
C)
Tabelle 6: Aussagenlogische Äquivalenzen – 1
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-40 (298)
4.1.3 Berechnungen mit Aussagenlogik
Äquivalenzen – 2
Idempotenz
Idempotenz
Absorption
Absorption
Absurdität
Kontraposition
A ∨ A ≡ A
A ∧ A ≡ A
(A ∨ (A ∧ B)) ≡ A
(A ∧ (A ∨ B)) ≡ A
(A ∧ B) → C ≡ A → (B → C)
(A → B) ∧ (A → ¬B) ≡ ¬A
A → B ≡ ¬B → ¬A
( W ∨ A) ≡ W
( W ∧ A) ≡ A
(F ∨ A) ≡ A
(F ∧ A) ≡ F
Tabelle 7: Aussagenlogische Äquivalenzen – 2
4 Logik
4.1 Aussagenlogik
4.1.3 Berechnungen mit Aussagenlogik
Aufgaben
Aufgabe 4.3 (Umwandeln)
Vereinfachen Sie – mit Hilfe der Äquivalenzen – die Formel
¬((A ∨ ¬(B ∧ A)) ∧ (C ∨ (D ∨ C ))).
Theoretische Informatik
Folie 4-41 (299)
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-42 (300)
4.1.3 Berechnungen mit Aussagenlogik
Normalformen
Literal (pos./neg. atomare Formel)
konjunktive Normalform:
disjunktive Normalform:
!!
n
^
mi
_
i =1
j =1
n
_
mi
^
i =1
j =1
Lij
!!
Lij
Satz 4.4 (KNF und DNF)
Jede Formel hat mindestens eine äquivalente KNF und DNF.
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-43 (301)
4.1.3 Berechnungen mit Aussagenlogik
Normalformen
Beispiel 4.7 (Normalformen)
(A ∨ B ) ∧ (C ∨ ¬D ) ∧ E ist eine korrekte konjunktive Normalform.
Wir lassen die ∧ weg und schreiben die Klauseln untereinander:
A ∨ B
C ∨ ¬D
E
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
4.1.3 Berechnungen mit Aussagenlogik
Transformation auf konjunktive NF
1
Ersetzen der Äquivalenzen und Implikationen
2
Negation ganz nach innen
3
„Ausmultiplizieren“ (Anwendung des Distributivgesetzes)
Beispiel siehe Skript
Folie 4-44 (302)
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-45 (303)
4.1.3 Berechnungen mit Aussagenlogik
Transformation auf konjunktive NF
Beispiel 4.8 (KNF)
Was entsteht beim „Ausmultiplizieren“ aus dieser Formel?
(A ∧ B ∧ C ) ∨ (D ∧ E ∧ F )
Kombination von jedem Element der ersten bzw. zweiten
Und-Verknüpfung:
(A ∨ D ) ∧ (A ∨ E ) ∧ (A ∨ F ) ∧ (B ∨ D ) ∧ (B ∨ E ) ∧ (B ∨ F )
∧ (C ∨ D ) ∧ (C ∨ E ) ∧ (C ∨ F )
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-46 (304)
4.1.3 Berechnungen mit Aussagenlogik
Transformation auf konjunktive NF
Beispiel 4.9 (KNF)
Wie bringt man diese Formel geschickt auf KNF?
(A ∧ (B ∨ C )) ∨ ((D ∨ E ) ∧ F )
Die Teilterme (B ∨ C ) und (D ∨ E ) haben ja schon die richtige
Oder-Form. Also ersetzen wir diese Teilterme durch X und Y .
(A ∧ X ) ∨ (Y ∧ F )
Jetzt multiplizieren wir aus:
(A ∨ Y ) ∧ (A ∨ F ) ∧ (X ∨ Y ) ∧ (X ∨ F )
und ersetzen einfach X und Y wieder durch die Originalterme:
(A ∨ D ∨ E ) ∧ (A ∨ F ) ∧ (B ∨ C ∨ D ∨ E ) ∧ (B ∨ C ∨ F )
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-47 (305)
4.1.4 Resolution
Resolution
Wenn dieser Apfel süß ist, dann isst man ihn gern.
Wenn man ihn gern isst, werde ich ihn essen.
ALSO: Wenn dieser Apfel süß ist, dann werde ich ihn essen.
Dieser Schluss ist logisch gültig, es gilt:
{(A → B ), (B → C )} |= (A → C )
Nicht möglich:
(A → B ) und (B → C ) beide wahr
A → C falsch
; Dies muss zum Widerspruch führen.
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-48 (306)
4.1.4 Resolution
Resolution
Einheitliche Darstellung der Formeln (konjunktive Normalform)
Rechnen mit Formeln: Resolution
Widerspruchsbeweis: Verfahren, welches erkennt, ob eine
Formel widersprüchlich ist.
Es gilt: Φ |= φ, gdw. Φ ∧ ¬φ widersprüchlich
Beweis, dass Φ |= φ äquivalent zum Beweis, dass Φ ∧ ¬φ
widersprüchlich
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-49 (307)
4.1.4 Resolution
Klausel-Normalform
Im folgenden setzen wir die konjunktive Normalform voraus:
((A ∨ B ∨ . . .) ∧ . . . ∧ (E ∨ F ∨ . . .))
und verwenden dafür abkürzend die Mengenschreibweise
{{A, B , . . .}, . . . , {E , F , . . .}}.
Die Mengen {A, B , . . .} und {E , F , . . .} heißen Klauseln. Wir
vereinbaren, dass die leere Klausel den Widerspruch repräsentiert
und kennzeichnen sie durch 2.
Beispiel 4.10 (Klausel-Normalform)
{A, B , C } und 2 und {A, ¬A} sind Klauseln, {{A}} und {¬¬A} nicht.
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-50 (308)
4.1.4 Resolution
Apfelbeispiel und Resolution
Beispiel 4.11 (Apfelbeispiel – KNF)
Für das Apfelbeispiel erhalten wir:
Wenn dieser Apfel süß ist, dann isst man ihn gern:
suess → gernessen, in KNF: {¬suess, gernessen}
Wenn man ihn gern isst, werde ich ihn essen:
gernessen → ichesse, in KNF: {¬gernessen, ichesse}
ALSO: Wenn dieser Apfel süß ist, dann werde ich ihn essen:
suess → ichesse, negiert in KNF: {suess} und {¬ichesse}
Durch Resolution erhält man:
{¬suess, gernessen} und {suess}: {gernessen}
{gernessen} und {¬gernessen, ichesse}: {ichesse}
{ichesse} und {¬ichesse}: {}
AL: Apfel
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-51 (309)
4.1.4 Resolution
Formel1-Beispiel
Beispiel 4.12 (Formel 1 – KNF)
Formel
faehrt → formel1
¬faehrt → ¬geld
geld
¬formel1
KNF
¬faehrt ∨ formel1
faehrt ∨ ¬geld
geld
¬formel1
(1)
(2)
(3)
(4, neg. Behauptung)
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-52 (310)
4.1.4 Resolution
Resolution
Seien die Klauseln {¬a, b}, {¬b, c , ¬a}, {a}, {¬a, ¬c } gegeben. Den
Widerspruch findet man wie folgt:
{¬a, b}
{¬b, c , ¬a}
{a }
{¬a, ¬c }
aa HH PPP
H PP
a
a
{¬a, c }
{¬a, ¬b}
{¬c }
H
#
H
H
#
#
{c }
#
HH
#
H
#
2
Abb. 40: Resolution – Beispiel
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-53 (311)
4.1.4 Resolution
Resolutionsregel – Aussagenlogik
Definition 4.5 (Resolvente)
Seien C1 , C2 Klauseln, L ein positives Literal und L ∈ C1 , ¬L ∈ C2 .
Dann heißt (C1 \{L}) ∪ (C2 \{¬L}) Resolvente von C1 und C2 .
Die Resolutionsregel sieht also wie folgt aus:
C1 = {L, L2 , L3 , . . . , Ln }
C2 = {¬L, K2 , K3 , . . . , Km }
Resolvente = {L2 , L3 , . . . , Ln , K2 , K3 , . . . , Km }
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-54 (312)
4.1.4 Resolution
Resolution – Hinweis
Folgender Resolutionsschritt ist nicht korrekt!
C1 = {L1 , L2 , L3 , . . . , Ln }
C2 = {¬L1 , ¬L2 , K3 , . . . , Km }
Resolvente = {L3 , . . . , Ln , K3 , . . . , Km }
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-55 (313)
4.1.4 Resolution
Aufgaben
Aufgabe 4.4 (Simultanes Streichen von Literalen)
Gleichzeitiges Streichen von mehr als 1 Literal ist nicht zulässig!
{A, B }
{¬A, ¬B }
{}
Dies ist kein korrekter Schritt, da sich die Klauseln nicht
widersprechen!
Wieso widersprechen sich die Klauseln nicht?
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
4.1.4 Resolution
Aufgaben
Aufgabe 4.5 (Resolventen)
Bilden Sie alle Resolventen aus {A, B , ¬C }, {¬A}, {¬C } und
{¬A, ¬B }.
Verwenden Sie auch die Resolventen wieder zur Resolution.
Folie 4-56 (314)
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-57 (315)
4.1.4 Resolution
Fortsetzung des Formel1-Beispiels
Beispiel 4.13 (Formel 1 – Resolution)
¬faehrt ∨ formel1
faehrt ∨ ¬geld
geld
¬formel1
¬faehrt
¬geld
faehrt
{}
Widerspruch gefunden.
AL: Formel 1
(1)
(2)
(3)
(4, neg. Behauptung)
1+4: (5)
2+5: (6)
2+3: (7)
3+6: (8)
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-58 (316)
4.1.5 Validierung der Resultate
Validieren des Resultats
Wir wollen prüfen, ob unsere Lösung eventuell fehlerhaft ist.
Übersetzen der Aussagen mit Wahrheitswerttabellen überprüfbar
Prüfen des Resolutionsbeweis anhand des Formel1-Beispiels
Beweis lieferte: formel1 stimmt.
Setzen überall W für formel1 ein . . .
. . . und prüfen, welche Formeln erfüllt werden
. . . und ob es Widersprüche gibt.
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-59 (317)
4.1.5 Validierung der Resultate
Validieren des Resultats
faehrt → formel1
¬faehrt → ¬geld
geld
(1)
(2)
(3)
wahr
unklar
als wahr gegeben
Bei Aussage (2) ist unklar, ob sie erfüllt wird.
(2) ist eine Implikation ist.
¬geld ist falsch, also muss ¬faehrt ebenso falsch sein.
Das passt zu den anderen Aussagen.
; keine 100%-ige Sicherheit. Es sieht jedoch alles plausibel aus.
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-60 (318)
4.1.6 Resolution – Eigenschaften und Anwendungsscenarios
Korrektheit
Wie verhält sich die Resolutionsregel?
Ist sie korrekt: Folgt jede Formel, die man mittels Resolution
erhält, aus den Formeln?
Satz 4.6 (Korrektheit der Resolution)
Resolution ist korrekt, d.h. ist Φ eine Klauselmenge und φ eine
Resolvente von 2 Klauseln aus Φ, so sind Φ und Φ ∪ {φ} äquivalent.
D.h. es gilt: Φ |= φ.
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-61 (319)
4.1.6 Resolution – Eigenschaften und Anwendungsscenarios
Vollständigkeit
Ist Resolution vollständig?
Kann man jede Formel, die logisch folgt, auch mittels Resolution
berechnen?
Nein: Aus {A} ist nicht ableitbar, dass {A, B } gilt.
Satz 4.7 (Widerlegungsvollständigkeit der Resolution)
Ist die Klauselmenge widersprüchlich, so existiert eine endliche Folge
von Resolutionsschritten, die zur leeren Klausel führt.
(Widerlegungsvollständigkeit)
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-62 (320)
4.1.6 Resolution – Eigenschaften und Anwendungsscenarios
Widerspruchsbeweis
Wie beweist man, dass aus A die Formel A ∨ B folgt?
Zu beweisen: A ∨ B gilt, falls A gilt.
I
I
I
Die Behauptung wird negiert,
zur gegebenen Aussage A hinzugefügt und
anschließend ein Widerspruch abgeleitet.
{A, ¬(A ∨ B )} ≡ {{A}, {¬A}, {¬B }}
Der Widerspruch (die leere Klausel) folgt dann mittels Resolution von
{A} und {¬A}.
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
4.1.6 Resolution – Eigenschaften und Anwendungsscenarios
Tautologien
Welchen Informationsgehalt hat die Klausel A ∨ ¬A?
Keinen!
Sie kann gelöscht werden!
Folie 4-63 (321)
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-64 (322)
4.1.6 Resolution – Eigenschaften und Anwendungsscenarios
Subsumption
Welche Klausel hat einen höheren Informationsgehalt:
A ∨ B
oder
A ∨ B ∨ C ?
Offensichtlich die Klausel A ∨ B.
Die zweite Klausel kann folglich gelöscht werden.
4 Logik
4.1 Aussagenlogik
Theoretische Informatik
Folie 4-65 (323)
4.1.6 Resolution – Eigenschaften und Anwendungsscenarios
Resolution als Beweistechnik
Widerspruchsbeweis Ziel wird negiert hinzugenommen. Widerspruch
suchen.
„Falsch“-Beweis Beweis, dass eine gegebene Formel falsch ist. Nichts
negieren. Widerspruch mittels Resolution suchen.
Direkter Beweis Man hat kein Ziel. Resolution anwenden, eventuell
bekommt man was vernünftiges raus.
Aus der Unvollständigkeit der Resolution folgt, dass der direkte Beweis
meistens nicht funktionieren wird. Probieren darf man es natürlich
trotzdem.
4 Logik
Theoretische Informatik
4.2 Beispiel (Resolution)
4.2.1 Konzert-Beispiel
Beispiel (Resolution)
Seien folgende Aussagen gegeben:
Wenn X ein Konzert gibt, werden viele kommen, falls der
Eintrittspreis nicht zu hoch ist.
Wenn X ein Konzert gibt, ist der Eintrittspreis nicht zu hoch.
Wir möchten beweisen, dass dann gilt:
Wenn X ein Konzert gibt, dann kommen viele.
Folie 4-66 (324)
4 Logik
Theoretische Informatik
4.2 Beispiel (Resolution)
4.2.1 Konzert-Beispiel
Schritt 1: Umwandeln in AL
X → (billig → viele)
X → billig
Behauptung: X → viele
Folie 4-67 (325)
4 Logik
Theoretische Informatik
4.2 Beispiel (Resolution)
Folie 4-68 (326)
4.2.1 Konzert-Beispiel
Schritt 2: Umwandeln in KNF
X → (billig → viele)
X → billig
; ¬X ∨ ¬billig ∨ viele
; ¬X ∨ billig
negierte Behauptung:
¬(X → viele) ; ¬(¬X ∨ viele) ≡ X ∧ ¬viele
4 Logik
Theoretische Informatik
4.2 Beispiel (Resolution)
Folie 4-69 (327)
4.2.1 Konzert-Beispiel
Schritt 3: Resolutionsbeweis
1
¬X ∨ ¬billig ∨ viele
2
¬X ∨ billig
3
X
4
¬viele
5
¬X ∨ ¬billig
6
¬X
7
¬X ∨ viele
8
leere Klausel (Widerspruch)
(1+4)
(2+5)
(1+2)
Damit ist die Behauptung bewiesen.
(3+6)
4 Logik
Theoretische Informatik
4.2 Beispiel (Resolution)
Folie 4-70 (328)
4.2.2 Koalitions-Beispiel
Beispiel (Resolution)
Seien folgende Aussagen gegeben:
Angela
Peer oder ich werden an der Koalition beteiligt sein.
Peer
Entweder Rainer oder ich werden an der Koalition
beteiligt sein.
Rainer
Entweder Angela oder ich werden an der Koalition
beteiligt sein.
Wie sieht die Koalition aus?
4 Logik
Theoretische Informatik
4.2 Beispiel (Resolution)
Folie 4-71 (329)
4.2.2 Koalitions-Beispiel
Ein weiteres Beispiel
Erste Überlegungen:
Wir haben 3 Aussagen gegeben.
Ein Ziel haben wir nicht gegeben.
Da wir kein Ziel gegeben haben, können wir 2 Varianten versuchen:
1
Wir stellen eine Vermutung auf, z.B. Rainer ist beteiligt.
2
Wir rechnen einfach mit den gegebenen Aussagen, also ohne
Ziel.
4 Logik
Theoretische Informatik
4.2 Beispiel (Resolution)
Folie 4-72 (330)
4.2.2 Koalitions-Beispiel
KNF
P ∨ A
(R ∧ ¬P ) ∨ (¬R ∧ P )
(R ∧ ¬A) ∨ (¬R ∧ A)
Durch Ausmultiplizieren entsteht:
1
P ∨ A
2
¬R ∨ ¬P
3
R ∨ P
4
¬R ∨ ¬A
5
R ∨ A
Die anderen Klauseln sind Tautologien und können weggelassen
werden.
4 Logik
Theoretische Informatik
4.2 Beispiel (Resolution)
Folie 4-73 (331)
4.2.2 Koalitions-Beispiel
Resolution
Kein Ziel gegeben.
Also einfach Resolution anwenden, ohne (neg.) Ziel.
Vielleicht bekommen wir was raus.
6 (2+5)
A ∨ ¬P
7 (6+1)
A
8 (7+4)
¬R
9 (8+3)
P
Weitere Resolutionsschritte bringen nichts Neues. Wir finden auch
keinen Widerspruch.
Wir haben ohne negiertes Ziel gerechnet, also abgeleitete Formeln ok.
A und P bilden eine Koalition, ohne R.
4 Logik
Theoretische Informatik
4.2 Beispiel (Resolution)
Folie 4-74 (332)
4.2.3 Auto-Beispiel
Auto-Beispiel
Seien folgende Aussagen gegeben:
1
Wenn die Batterie in Ordnung ist, dann gibt es Strom.
2
Wenn Strom vorhanden ist und die Zündkerzen in Ordnung sind,
dann funktioniert die Zündung.
3
Wenn die Zündung funktioniert und Benzin im Tank ist, dann wird
der Motor laufen.
4
Wenn der Motor läuft und die Räder in Ordnung sind, dann wird
das Auto fahren.
5
Wenn die Batterie in Ordnung ist, die Zündkerzen funktionieren,
genug Benzin im Tank ist und die Räder in Ordnung sind, dann
wird das Auto fahren.
Wir möchten beweisen, dass die letzte Aussage aus den Aussagen
1-4 folgt.
4 Logik
Theoretische Informatik
4.2 Beispiel (Resolution)
4.2.3 Auto-Beispiel
Auto-Beispiel
Zunächst wählen wir aussagenlogische Variablen:
B . . . Die Batterie ist in Ordnung.
S . . . Strom ist vorhanden.
Z . . . Die Zündung funktioniert.
T . . . Es ist genug Benzin im Tank.
M . . . Der Motor wird laufen.
A . . . Das Auto wird fahren.
R . . . Die Räder sind in Ordnung.
K . . . Die Zündkerzen sind in Ordnung.
Folie 4-75 (333)
4 Logik
Theoretische Informatik
4.2 Beispiel (Resolution)
Folie 4-76 (334)
4.2.3 Auto-Beispiel
Auto-Beispiel – AL-Formeln
Jetzt können wir die Aussagen aufschreiben.
1
Wenn die Batterie in Ordnung ist, dann gibt es Strom: B → S.
2
Wenn Strom vorhanden ist und die Zündkerzen in Ordnung sind,
dann funktioniert die Zündung: S ∧ K → Z .
3
Wenn die Zündung funktioniert und Benzin im Tank ist, dann wird
der Motor laufen: Z ∧ T → M.
4
Wenn der Motor läuft und die Räder in Ordnung sind, dann wird
das Auto fahren: M ∧ R → A.
Das Ziel:
Wenn die Batterie in Ordnung ist, die Zündkerzen funktionieren, genug
Benzin im Tank ist und die Räder in Ordnung sind, dann wird das Auto
fahren: B ∧ K ∧ T ∧ R → A.
4 Logik
Theoretische Informatik
4.2 Beispiel (Resolution)
Folie 4-77 (335)
4.2.3 Auto-Beispiel
Auto-Beispiel – KNF
Nun bilden wir die KNF:
; ¬B ∨ S
1
B → S
2
S ∧ K → Z
; ¬S ∨ ¬K ∨ Z
3
Z ∧ T → M
; ¬Z ∨ ¬T ∨ M
4
M ∧ R → A
; ¬M ∨ ¬R ∨ A
Das Ziel wird negiert:
¬(B ∧ K ∧ T ∧ R → A) ; ¬(¬(B ∧ K ∧ T ∧ R ) ∨ A)
; ¬¬(B ∧ K ∧ T ∧ R ) ∧ ¬A ; B ∧ K ∧ T ∧ R ∧ ¬A
Das negierte Ziel ergibt also 5 Klauseln.
4 Logik
Theoretische Informatik
4.2 Beispiel (Resolution)
Folie 4-78 (336)
4.2.3 Auto-Beispiel
Auto-Beispiel – Resolution
1
¬B ∨ S
2
¬S ∨ ¬K ∨ Z
3
¬Z ∨ ¬T ∨ M
4
¬M ∨ ¬R ∨ A
5
B
6
K
7
T
8
R
9
¬A
Resolution:
10
(1+5) S
11
(2+10) ¬K ∨ Z
12
(11+6) Z
13
(12+3) ¬T ∨ M
14
(13+7) M
15
(14+4) ¬R ∨ A
16
(1+2) ¬B ∨ ¬K ∨ Z
17
(15+8) A
18
(17+9) Widerspruch
4 Logik
Theoretische Informatik
4.3 Zusammenfassung (Aussagenlogik)
Das sollten Sie wissen . . .
Zusammenfassung 4.8 (Aussagenlogik)
Aussagenlogik, Umwandeln von Aussagen in die AL
Gültigkeit und Erfüllbarkeit
Wahrheitswerttabellen
Folgen und Ableiten, Inferenzregeln
KNF und DNF
Resolution, Korrektheit und Widerlegungsvollständigkeit
Folie 4-79 (337)
4 Logik
Theoretische Informatik
4.4 Aufgaben (Aussagenlogik)
Folie 4-80 (338)
Aufgaben
Aufgabe 4.6 (Übersetzen)
Übersetzen Sie folgende Aussagen in die aussagenlogische Sprache!
Die Sonne scheint, aber es ist nicht heiß.
Erwin läuft von Wismar nach Gägelow, aber nicht nach Rostock.
Wenn es warm ist, fährt Hans mit dem Fahrrad.
Anna und Bernd mögen sich nicht.
Nur wenn Lutz zum Fußball geht, geht Jürgen hin.
Herbert will Informatik und Betriebswirtschaft studieren, es sei
denn, er geht nach Kaiserslautern.
4 Logik
Theoretische Informatik
4.4 Aufgaben (Aussagenlogik)
Aufgaben
Aufgabe 4.7 (Resolution)
Beweisen Sie mit Resolution, dass B gilt, falls
(B → (A ∨ C )) ∧ (B ∨ C ) ∧ (A → C ) ∧ ¬(¬B ∧ C ) gilt.
Aufgabe 4.8 (Resolution)
Beweisen Sie mit Resolution, dass
((A ↔ (B → C )) ∧ (A ↔ B ) ∧ (A ↔ ¬C )) falsch ist.
Folie 4-81 (339)
4 Logik
Theoretische Informatik
4.4 Aufgaben (Aussagenlogik)
Folie 4-82 (340)
Aufgaben
Aufgabe 4.9 (Übersetzen)
Formulieren Sie folgende Sätze sowie deren Negation:
Das Buch ist zwar umfangreich, aber nicht schwer zu lesen.
Der Text ist nicht lang, doch er hat eine komplizierte Struktur.
Petra mag Gemüse und Obst, jedoch keine Nüsse.
Lutz spielt weder Geige noch Piano, aber sowohl Cello als auch
Kontrabass.
Wenn Jürgen Aktien hat, dann sind BMW-Aktien immer dabei.
Die Hautallergie verschwindet genau dann, wenn Olaf keine
Milch trinkt.
Die Wirkungen S und T treten genau dann nicht zusammen ein,
wenn von den Ursachen U und V mindestens eine vorliegt.
Nur wenn Bernd zur Vorlesung geht, dann geht auch Beate.
5 Komplexität
Theoretische Informatik
24. August 2015
Inhaltsverzeichnis
1
TI – Einführung
2
Grundlagen
3
Automatentheorie
4
Logik
5
Komplexität
6
Berechenbarkeit & Entscheidbarkeit
5 Komplexität
Theoretische Informatik
24. August 2015
Inhaltsverzeichnis – Kapitel 5
5
Komplexität
Speicherplatz und Zeitaufwand
Komplexitätsklassen
P und N P
Zusammenfassung (Komplexität)
Aufgaben (Komplexität)
5 Komplexität
Theoretische Informatik
Folie 5-1 (343)
Komplexität
Program complexity grows until it exceeds the capability of
the programmer who must maintain it.
Arthur Bloch, Murphy’s Law, 1981
5 Komplexität
5.1 Speicherplatz und Zeitaufwand
Speicherplatz und Zeitaufwand
Ein Reisender soll 20 Städte besuchen.
Gesucht: Reiseroute mit der minimalen Streckenlänge
Idee: Durchprobieren aller möglichen Kombinationen.
Möglichkeiten: 20!, d.h. etwa 2, 433 × 1018 .
Annahme: Computer benötigt pro Strecke 0,01 sec
Aufwand: etwa 770 Mio Jahre
Theoretische Informatik
Folie 5-2 (344)
5 Komplexität
Theoretische Informatik
5.1 Speicherplatz und Zeitaufwand
Folie 5-3 (345)
Problemklassen
unlösbar
und
lösbar
I
I
praktisch lösbar
praktisch unlösbar
und
5 Komplexität
Theoretische Informatik
5.1 Speicherplatz und Zeitaufwand
Folie 5-4 (346)
Komplexität
Beispiel 5.1 (Komplexität)
Sortieren einer Liste von Namen (Länge n)
Suchen in der Liste zunächst den kleinsten Namen, 1 Durchlauf
Stellen diesen auf Position 1 (durch Tauschen)
Im nächsten Durchlauf: Suchen kleinsten Namen ab Position 2
Stellen diesen auf Position 2 (durch Tauschen)
...
5 Komplexität
Theoretische Informatik
5.1 Speicherplatz und Zeitaufwand
Folie 5-5 (347)
Komplexität
Beispiel 5.1 cont.
Wie hoch ist der Aufwand? Wir zählen dazu nur die Vergleiche, die
(im schlimmsten Fall) nötig sind:
1. Durchlauf n-1
2. Durchlauf n-2
3. Durchlauf n-3
...
n-1. Durchlauf 1
Der Aufwand ist also (Gaußsche Summenformel):
n−1
∑i=
i =1
n ∗ ( n − 1)
2
5 Komplexität
Theoretische Informatik
5.1 Speicherplatz und Zeitaufwand
Folie 5-6 (348)
Komplexität
Definition 5.1 (Komplexität)
Sei M eine Turing-Maschine, t ∈ IN. Die Relation `tM ist definiert
durch:
C `0M C 0 gdw. C = C 0
C `tM+1 C 0 gdw. eine Konfiguration C 00 existiert, so dass C `tM C 00
und C 00 `M C 0
C `tM C 0 gilt also genau dann, wenn die Konfiguration C 0 in genau t
Schritten erreicht wird.
Wir zählen, wie oft ein Konfigurationsübergang erfolgt.
5 Komplexität
5.1 Speicherplatz und Zeitaufwand
Theoretische Informatik
Folie 5-7 (349)
Komplexität 1
Definition 5.2 (Komplexität)
Sei T : IN → IN. Sei L ⊂ Σ∗0 eine Sprache. Sei M = (K , Σ, δ, s, A) eine
TM mit Σ0 ⊂ Σ.
M entscheidet L in der Zeit T , falls:
(s, #w #) `tM (h, #Y#), falls w ∈ L
(s, #w #) `tM (h, #N#), falls w 6∈ L
mit t ≤ T (|w |).
L heißt entscheidbar in der Zeit T , falls eine TM existiert, die L in der
Zeit T entscheidet.
5 Komplexität
Theoretische Informatik
5.1 Speicherplatz und Zeitaufwand
Folie 5-8 (350)
Komplexität 2
Definition 5.3 (Komplexität)
Sei T : IN → IN, L ⊂ Σ∗0 , M = (K , Σ, δ, s, A) eine TM, Σ0 ⊂ Σ.
M semientscheidet L in der Zeit T , falls:
(s, #w #) `tM (h, #Y#), gdw. w ∈ L
mit t ≤ T (|w |).
L heißt semientscheidbar in der Zeit T , falls eine TM existiert, die L
in der Zeit T semientscheidet.
Definition 5.4 (TIME)
Die Klasse aller Sprachen, die in T -Zeit semientscheidbar sind,
bezeichnen wir mit TIME (T ).
5 Komplexität
Theoretische Informatik
5.1 Speicherplatz und Zeitaufwand
Folie 5-9 (351)
Komplexität 3
Andere Definition von TIME, mittels Akzeptierbarkeit
Definition 5.5 (Komplexität)
Sei T : IN → IN. Sei L ⊂ Σ∗0 eine Sprache. Sei M = (K , Σ, δ, s, A) eine
TM mit Σ0 ⊂ Σ.
M akzeptiert L in der Zeit T , gdw.
(s, #w #) `tM (h, . . .), gdw. w ∈ L
mit t ≤ T (|w |).
L heißt akzeptierbar in der Zeit T , falls eine TM existiert, die L in der
Zeit T akzeptiert.
Unterschied: Semientscheidbarkeit und Akzeptierbarkeit? Keiner.
Eine Sprache ist semientscheidbar gdw. akzeptierbar.
Beide Begriffe sind also äquivalent.
5 Komplexität
Theoretische Informatik
5.1 Speicherplatz und Zeitaufwand
Beispiel
Wir suchen eine TM, die
L = {w ∈ {a, b, c }∗ |w hat die gleiche Anzahl von a, b, c }
entscheidet.
Folie 5-10 (352)
5 Komplexität
Theoretische Informatik
5.1 Speicherplatz und Zeitaufwand
JFLAP – TM-abc
Abb. 41: Turing-Maschine, die L entscheidet
Folie 5-11 (353)
5 Komplexität
Theoretische Informatik
5.1 Speicherplatz und Zeitaufwand
Folie 5-12 (354)
Aufwand
Sei n die Länge der Eingabe.
Jeder Durchlauf (maximal n Symbole durchsuchen und zurück
auf das linke Ende) : 2n Schritte
Pro Tripel (a, b, c ) maximal 3 × 2n Schritte
maximal [n/3]↑ + 1 Tripel (Durchläufe)
Ende: Band löschen, Schreiben von Y / N : n + 2 Schritte
Also Aufwand maximal: ([n/3]↑ + 1) × 3(2n) + n + 2
2
Mit [n/3]↑ ≤ n+
erhält man: L ∈ TIME (2n2 + 11n + 2)
3
5 Komplexität
5.2 Komplexitätsklassen
Komplexitätsklassen
Wie hoch ist der Aufwand im:
worst case analysis schlechtesten Fall
best case analysis besten Fall
average case analysis Durchschnitt
Sind unsere Abschätzungen genau, d.h. scharf?
Theoretische Informatik
Folie 5-13 (355)
5 Komplexität
5.2 Komplexitätsklassen
Theoretische Informatik
Folie 5-14 (356)
Komplexität
Definition 5.6 (O (g ))
Sei f eine Funktion über n.
Wir schreiben f = O (g ), falls eine Konstante c > 0 und eine Zahl n0
existieren, so dass f (n) ≤ c × g (n) für alle n ≥ n0 gilt.
5 Komplexität
Theoretische Informatik
5.2 Komplexitätsklassen
Folie 5-15 (357)
Komplexität von Algorithmen
Wichtige Unterscheidung:
polynomialer Aufwand
oder
exponentieller Aufwand.
Exponentieller Aufwand: Abschätzung = O (r n ) mit r > 1.
Jedes Polynom ist = O (r n ), r > 1.
nk +1 wächst schneller als nk .
Also: Jede exponentielle Funktion wächst schneller als jedes
Polynom.
5 Komplexität
5.2 Komplexitätsklassen
Theoretische Informatik
Folie 5-16 (358)
SPACE
SPACE(S) : Klasse aller TMs, deren Speicherbedarf durch S (|w |)
abgeschätzt werden kann.
5 Komplexität
Theoretische Informatik
5.2 Komplexitätsklassen
Typische Komplexitätsklassen
konstanter Aufwand
log (n)
n
n ∗ log (n)
n2
n3
en
Folie 5-17 (359)
5 Komplexität
Theoretische Informatik
5.2 Komplexitätsklassen
Folie 5-18 (360)
Typische Komplexitätsklassen
Beispiel 5.2 (Komplexitätsklassen)
n
2
20
100
1000
linear
10 ∗ n
20
200
1000
10000
logar.
n ∗ log n
0,6
26
200
3000
quadr.
n2
4
400
10000
1 ∗ 106
expon.
en
7
4, 85 ∗ 108
2, 688 ∗ 1043
1, 97 ∗ 10434
expon.
n!
2
18
2, 43 ∗ 10
9, 33 ∗ 10157
...
5 Komplexität
Theoretische Informatik
5.2 Komplexitätsklassen
Komplexität und Kryptographie
Kryptographie nutzt Komplexität aus.
Kryptographische Verfahren verschlüsseln Informationen
x ; y = f (x ).
Berechnung der Umkehrfunktion f −1 (y ) ist wegen hoher
Komplexität de facto unmöglich.
Folie 5-19 (361)
5 Komplexität
5.3
Theoretische Informatik
P und N P
Folie 5-20 (362)
P und N P
Unterschied zwischen exponentiellem und polynomialem Aufwand ist
wesentlich!!!
(Jede exponentielle Funktion wächst schneller als jedes Polynom!!)
Also: Unterscheidung zwischen Problemen, die lösbar sind mit
polynomialem Aufwand
exponentiellem Aufwand.
Definition 5.7 (P )
P = ∪{TIME (nd ) : d > 0}
oder
5 Komplexität
5.3
P und N P
Theoretische Informatik
Folie 5-21 (363)
NTIME
Definition 5.8 (NTIME)
Sei T : IN → IN. Sei L ⊂ Σ∗0 eine Sprache. Sei M = (K , Σ, δ, s, A) eine
indeterministische TM mit Σ0 ⊂ Σ.
M semientscheidet L in der Zeit T, falls:
(s, #w #) `tM (h, #Y#), gdw. w ∈ L
mit t ≤ T (|w |).
L heißt indeterministisch semientscheidbar in der Zeit T , falls eine
indeterministische TM existiert, die L in der Zeit T akzeptiert. Die
Klasse aller dieser Sprachen bezeichnen wir mit NTIME (T ).
5 Komplexität
5.3
Theoretische Informatik
P und N P
Folie 5-22 (364)
NP
Definition 5.9 (N P )
N P = ∪{NTIME (nd ) : d > 0}
Offensichtlich: P ⊂ N P
Frage: P = N P ?? !! Das ist ungeklärt !!
D.h es ist noch kein Problem gefunden worden, welches
in N P ist, aber
nicht in P .
August 2010: Inder Vinay Deolalikar beweist Ungleichheit. Beweis
wird jedoch angezweifelt.
5 Komplexität
5.3
Theoretische Informatik
P und N P
Folie 5-23 (365)
N P -vollständige Probleme
; Ganzzahlige Optimierung
Man kann zeigen:
P =NP
gdw.
die ganzzahlige Optimierung ist in P .
Solche Probleme, die typisch für N P sind, bezeichnet man als
N P -vollständig.
5 Komplexität
5.3
Theoretische Informatik
P und N P
Folie 5-24 (366)
N P -vollständige Probleme – Beispiele
Knapsack problem (Rucksack-Problem) Gegeben sind n Objekte mit
Gewichten g1 , . . . , gn und Nutzen w1 , . . . , wn sowie ein
Rucksack, der maximal das Gewicht G trägt. Gesucht
ist die Bepackung mit maximalem Nutzen.
Travelling salesman problem
BPP (bin packing problem) Gegeben sind k Behälter (Volumen b) und
n Objekte der Größe g1 , . . . , gn . Kann man die Objekte
auf die Behälter verteilen, ohne dass einer überläuft?
Hamilton-Pfad Gibt es in einem Graphen einen Hamilton-Pfad?
SAT
Gegeben ist eine aussagenlogische Formel in KNF. Ist
die Formel erfüllbar?
Ganzzahlige Optimierung
Domino-Problem Kann man aus n Steinen einen Kreis bilden?
Stundenplanproblem
5 Komplexität
Theoretische Informatik
5.4 Zusammenfassung (Komplexität)
Das sollten Sie wissen . . .
Zusammenfassung 5.10 (Komplexität)
Praktisch unlösbare Probleme
Speicherplatz, Zeitbedarf
Komplexitätsklassen
P und N P
Folie 5-25 (367)
5 Komplexität
5.5 Aufgaben (Komplexität)
Theoretische Informatik
Folie 5-26 (368)
Aufgaben
Aufgabe 5.1 (Aufwand)
Bisher haben wir immer vom Aufwand einer Maschine (bzw. eines
Algorithmus) gesprochen. Wie würden Sie den Aufwand eines
Problems definieren (beispielsweise Tourenplanung)?
Aufgabe 5.2 (Rundreiseproblem)
Finden Sie ein Verfahren, welches (näherungsweise) eine gute Lösung
für das Rundreiseproblem bestimmt! Untersuchen Sie den Aufwand in
Abhängigkeit von der Anzahl der Städte!
5 Komplexität
Theoretische Informatik
5.5 Aufgaben (Komplexität)
Folie 5-27 (369)
Aufgaben
Aufgabe 5.3 (Sortieren)
Eine Liste von Zahlen soll sortiert werden.
Entwickeln Sie einen Sortieralgorithmus für Listen von Zahlen
oder greifen Sie auf einen Ihnen bekannten Algorithmus wie
Bubblesort oder Nachbarvertauschen zurück.
Wie verhält sich Ihr Algorithmus? Berechnen Sie seine
Komplexität in Abhängigkeit von der Länge n der Liste!
Wie verhält sich Ihr Algorithmus im „besten“ Fall? Wie muss die
gegebene Liste dann aussehen?
Wie hoch ist der Aufwand im „schlimmsten“ Fall?
Aufgabe 5.4 (Komplexität)
Untersuchen Sie die Turingmaschine aus Abbildung 41. Finden Sie
eine bessere Aufwandsabschätzung.
6 Berechenbarkeit & Entscheidbarkeit
Theoretische Informatik
24. August 2015
Inhaltsverzeichnis
1
TI – Einführung
2
Grundlagen
3
Automatentheorie
4
Logik
5
Komplexität
6
Berechenbarkeit & Entscheidbarkeit
6 Berechenbarkeit & Entscheidbarkeit
Theoretische Informatik
24. August 2015
Inhaltsverzeichnis – Kapitel 6
6
Berechenbarkeit & Entscheidbarkeit
Gödelisierung
LOOP- und WHILE-Berechenbarkeit
Churchsche These
Aussagen über Turingmaschinen und unlösbare Probleme
Zusammenfassung (Berechenbarkeit)
Aufgaben (Berechenbarkeit)
6 Berechenbarkeit & Entscheidbarkeit
Theoretische Informatik
Folie 6-1 (372)
Berechenbarkeit & Entscheidbarkeit
The one who says it cannot be done should never interrupt
the one who is doing it.
The Roman Rule
Arthur Bloch, Murphy’s Law
6 Berechenbarkeit & Entscheidbarkeit
Theoretische Informatik
Folie 6-2 (373)
Arten der Nichtberechenbarkeit
Unkenntnis der Gesetze Simulation der Evolution, Entwicklung neuer
Gene etc.
Spontane Systemveränderungen radioaktiver Zerfall (nur
Wahrscheinlichkeitsaussagen, nicht wirkliche Aussage
über den Zerfall EINES Atoms)
Überschreitung der Kapazität der Computer Aufgaben, die zwar
lösbar, aber nur unter extremem Aufwand
(Rundreiseproblem)
6 Berechenbarkeit & Entscheidbarkeit
Theoretische Informatik
Folie 6-3 (374)
Arten der Nichtberechenbarkeit – 2
Nichtberechenbarkeit bisher unbekannt Ist die Funktion
while(n!=1) {
if(n gerade) n=n/2;
else n=3*n+1; }
für jedes n definiert?
Beweisbar nicht berechenbare Probleme Mit Zirkel und Lineal soll ein
Winkel in 3 gleiche Teile zerlegt werden.
Nichtentscheidbare Probleme Leisten 2 Programme das gleiche?
Sind sie äquivalent?
6 Berechenbarkeit & Entscheidbarkeit
Theoretische Informatik
Folie 6-4 (375)
Berechenbarkeit
Frage: Kann eine Funktion mit Hilfe eines Computers berechnet
werden?
Einführen verschiedener Berechenbarkeitsbegriffe
Vergleich der Ausdrucksstärke
6 Berechenbarkeit & Entscheidbarkeit
Theoretische Informatik
Folie 6-5 (376)
Berechenbarkeitsbegriffe
Turing-Berechenbarkeit
Grammatik-Berechenbarkeit
WHILE-Berechenbarkeit
6 Berechenbarkeit & Entscheidbarkeit
Theoretische Informatik
Folie 6-6 (377)
Grammatik-Berechenbarkeit
f heißt Grammatik-berechenbar gdw. :
Es existieren x , y , x 0 , y 0 ∈ V ∗ , so dass für alle u , v gilt
f (u ) = v ↔ xuy ⇒∗G x 0 vy 0 .
Die Zeichenketten x , y , x 0 , y 0 kann man als Begrenzungen auffassen.
6 Berechenbarkeit & Entscheidbarkeit
Theoretische Informatik
6.1 Gödelisierung
Gödelisierung
Bisher: Verarbeitung von Zeichenketten
Wir möchten auch über Funktionen über natürlichen Zahlen
reden.
Kann man Zeichenketten und Zahlen 1-1 aufeinander
abbilden?
Natürliche Zahlen als Zeichenketten: 6=iiiiii
Folie 6-7 (378)
6 Berechenbarkeit & Entscheidbarkeit
Theoretische Informatik
6.1 Gödelisierung
Folie 6-8 (379)
Gödelisierung – 2
Ziel: Kodierung von Zeichenketten durch Zahlen.
Beispiel 6.1 (Kodierung)
Sei Σ = {a, b, c },
Zahlenbasis: B = |Σ| + 1 = 4
Weisen den Elementen des Alphabets (Σ) Zahlen zu:
a → 1,
b → 2,
c → 3.
Kodierung von bbcba :
44 × 2 + 43 × 2 + 42 × 3 + 41 × 2 + 40 × 1
Aufgabe 6.1 (Kodierung)
Gibt es bei dieser Kodierung Zahlen, zu denen es keine Zeichenkette
gibt?
6 Berechenbarkeit & Entscheidbarkeit
6.2 LOOP- und WHILE-Berechenbarkeit
Theoretische Informatik
Folie 6-9 (380)
LOOP- und WHILE-Berechenbarkeit
Viele Probleme lassen sich nur iterativ (oder rekursiv) lösen. Folglich
muss Iteration bei der Definition von Berechenbarkeit eine Rolle
spielen.
6 Berechenbarkeit & Entscheidbarkeit
Theoretische Informatik
6.2 LOOP- und WHILE-Berechenbarkeit
6.2.1 LOOP-Berechenbarkeit
LOOP-Berechenbarkeit
Die Programmiersprache LOOP erlaubt folgende syntaktische
Elemente:
Variablen x1 , x2 , . . .
Konstanten 0, 1, 2, . . .
Symbole := und ;
Operatoren + und ÷
Schlüsselwörter LOOP, DO, END
Folie 6-10 (381)
6 Berechenbarkeit & Entscheidbarkeit
Theoretische Informatik
6.2 LOOP- und WHILE-Berechenbarkeit
Folie 6-11 (382)
6.2.1 LOOP-Berechenbarkeit
LOOP-Berechenbarkeit
Folgende Programme sind erlaubt:
Wertzuweisung: (n ∈ IN): xi := xj + n bzw. xi := xj ÷ n wobei
÷(n, m) = max(n − m, 0)
das leere Programm Λ
Komposition: Sind P1 und P2 LOOP-Programme, so auch P1 ; P2
Ist P ein LOOP-Programm, so auch LOOP xi DO P END
6 Berechenbarkeit & Entscheidbarkeit
6.2 LOOP- und WHILE-Berechenbarkeit
Theoretische Informatik
Folie 6-12 (383)
6.2.1 LOOP-Berechenbarkeit
LOOP-Berechenbarkeit
Ausgabevariable . . . x0
x1 , . . . , xk . . . Eingabe-Variablen
Restliche Variablen . . . Hilfsvariablen, die beim Programmstart mit
0 belegt sind.
P k . . . P ; . . . ; P, also das k-malige Ausführen von P
P 0 ist das leere Programm Λ.
LOOP ist eine Schleife, die xi -mal ausgeführt.
6 Berechenbarkeit & Entscheidbarkeit
6.2 LOOP- und WHILE-Berechenbarkeit
Theoretische Informatik
Folie 6-13 (384)
6.2.1 LOOP-Berechenbarkeit
LOOP-Berechenbarkeit
Beispiel 6.2 (LOOP)
Nehmen wir an, wir hätten nicht bereits die Addition als
LOOP-Funktion, sondern nur eine Funktion „+1“.
Folgendes Programm berechnet die Addition x1 + x2 und gibt das
Resultat auf x0 zurück.
x0 := x1 ; LOOP x2 DO x0 := x0 + 1 END
6 Berechenbarkeit & Entscheidbarkeit
Theoretische Informatik
6.2 LOOP- und WHILE-Berechenbarkeit
Folie 6-14 (385)
6.2.2 WHILE-Programme
WHILE-Programme
Beobachtung: Nicht jede Funktion ist LOOP-berechenbar.
Beispiel 6.3 (Ackermannfunktion)
Die Ackermann-Funktion ist nicht LOOP-berechenbar.
ack (0, y ) = y + 1
ack (x + 1, 0) = ack (x , 1)
ack (x + 1, y + 1) = ack (x , ack (x + 1, y ))
6 Berechenbarkeit & Entscheidbarkeit
Theoretische Informatik
6.2 LOOP- und WHILE-Berechenbarkeit
Folie 6-15 (386)
6.2.2 WHILE-Programme
WHILE-Programme
Da das LOOP-Konzept offensichtlich nicht ausreicht, erweitern wir die
LOOP-Programme:
Jedes LOOP-Programm ist auch ein WHILE-Programm.
Ist P ein WHILE-Programm, dann auch
WHILE xi > 0 DO P END
Mit den WHILE-Programmen sind wir nun in der Leistungsklasse der
Turing-Maschinen.
6 Berechenbarkeit & Entscheidbarkeit
6.2 LOOP- und WHILE-Berechenbarkeit
6.2.2 WHILE-Programme
Aufgaben
Aufgabe 6.2 (LOOP)
Vorausgesetzt, wir wüssten bereits, dass die Addition
LOOP-berechenbar ist, ist dann die Multiplikation
LOOP-berechenbar?
f (n1 , n2 ) = n1 × n2
Begründen Sie Ihre Aussage!
Theoretische Informatik
Folie 6-16 (387)
6 Berechenbarkeit & Entscheidbarkeit
Theoretische Informatik
6.3 Churchsche These
Folie 6-17 (388)
Leistungskraft der Berechenbarkeitsbegriffe
1. Hälfte des 20. Jhdt.: etliche Berechenbarkeitsbegriffe
Welches Konzept war das stärkste?
; Immer wieder in der Leistungsklasse der TM.
Satz 6.1 (Äquivalenz der Berechenbarkeitsbegriffe)
Jede Turing-berechenbare Funktion ist Grammatik-berechenbar.
Jede Grammatik-berechenbare Funktion ist auch
WHILE-berechenbar.
Jede WHILE-berechenbare Funktion ist auch
Turing-berechenbar.
Also: Alle 3 Berechenbarkeitsbegriffe sind äquivalent.
6 Berechenbarkeit & Entscheidbarkeit
6.3 Churchsche These
Theoretische Informatik
Folie 6-18 (389)
Churchsche These
Zu jeder intuitiv berechenbaren Funktion gibt es eine Turing-Maschine.
6 Berechenbarkeit & Entscheidbarkeit
6.4 Aussagen über Turingmaschinen und unlösbare Probleme
Theoretische Informatik
Folie 6-19 (390)
Aussagen über Turing-Maschinen
Wir möchten Turing-Maschinen, die Aussagen über
Turing-Maschinen machen können.
Z.B.: Gibt es eine TM, die entscheidet, ob eine gegebene
Turing-Maschine TM’ eine gegebene Zeichenkette akzeptiert?
Wir müssen TM’ als Zeichenkette kodieren können!
Eingabe-Band für TM: # TM’-Kodierung # Eingabe-Kodierung #
6 Berechenbarkeit & Entscheidbarkeit
6.4 Aussagen über Turingmaschinen und unlösbare Probleme
Theoretische Informatik
Folie 6-20 (391)
Aussagen über Turing-Maschinen
Satz 6.2 (Unentscheidbarkeit)
Es gibt keinen Algorithmus zur Entscheidung, ob eine beliebige
Turing-Maschine M eine (beliebige) Zeichenkette w akzeptiert.
Es gilt nicht, dass zu jeder Turing-Maschine M ein Algorithmus
existiert, der entscheidet, ob M eine (beliebige) Zeichenkette w
akzeptiert.
6 Berechenbarkeit & Entscheidbarkeit
Theoretische Informatik
6.4 Aussagen über Turingmaschinen und unlösbare Probleme
Folie 6-21 (392)
Das Halteproblem
Existiert eine Turing-Maschine, die entscheidet, ob eine
Turing-Maschine TM’ bei der Eingabe einer Zeichenkette w anhält?
Annahme: Es gibt eine solche TM. Diese TM berechnet folgende
Funktion f :
f (i , x ) =
1 falls die TM i bei Eingabe von x anhält
0 sonst
6 Berechenbarkeit & Entscheidbarkeit
Theoretische Informatik
6.4 Aussagen über Turingmaschinen und unlösbare Probleme
Das Halteproblem
Konstruieren eine TM” :
Eingabe: Zeichenkette v
berechnet f (v , v )
Falls das Resultat = 0 ist, wird eine 0 ausgegeben und
angehalten,
sonst geht TM” in einen unendlichen Zyklus.
Folie 6-22 (393)
6 Berechenbarkeit & Entscheidbarkeit
Theoretische Informatik
6.4 Aussagen über Turingmaschinen und unlösbare Probleme
Folie 6-23 (394)
Das Halteproblem
Kodierung dieser TM” : j.
; Wie verhält sich TM” bei der Eingabe von j?
Würde TM” anhalten, so muss f (j , j ) = 1 gelten, d.h. TM” hält
nicht an.
Hält TM” nicht an, dann wäre f (j , j ) = 0, also hält TM” an.
Widerspruch! Also: Annahme, dass f existiert, ist falsch.
6 Berechenbarkeit & Entscheidbarkeit
Theoretische Informatik
6.4 Aussagen über Turingmaschinen und unlösbare Probleme
Folie 6-24 (395)
Unlösbare Probleme
Es gibt eine Reihe von weiteren unlösbaren Problemen.
Hält eine TM bei der Eingabe einer beliebigen Zeichenkette w?
Hält eine fest vorgegebene TM bei der Eingabe einer beliebigen
Zeichenkette w?
Hält eine TM bei der Eingabe der leeren Zeichenkette?
Sei eine TM gegeben. Ist die durch sie akzeptierte Sprache
regulär, ist sie kontext-frei, ist sie Turing-entscheidbar?
Sind 2 TMs äquivalent, d.h. leisten sie dasselbe?
6 Berechenbarkeit & Entscheidbarkeit
Theoretische Informatik
6.4 Aussagen über Turingmaschinen und unlösbare Probleme
Folie 6-25 (396)
Unlösbare Probleme
Folgende Probleme über Grammatiken sind unlösbar:
Gilt für eine Grammatik G und eine Zeichenkette w : w ∈ L(G)?
Gilt für Grammatiken G1 , G2 : L(G1 ) = L(G2 )?
Das folgende Problem ist leider ebenso unlösbar:
Es soll für jede beliebige mathematische Aussage geprüft
werden, ob sie wahr oder falsch ist
(Hilbert-Entscheidungsproblem).
6 Berechenbarkeit & Entscheidbarkeit
Theoretische Informatik
6.4 Aussagen über Turingmaschinen und unlösbare Probleme
Folie 6-26 (397)
Die Busy-Beaver-Funktion
Tibor Rado (1895-1965) ging folgender Frage nach:
Wie viele Einsen kann eine Turingmaschine (maximal) mit n
Zuständen auf ein leeres Band schreiben, bevor sie schließlich anhält?
Solche TM wird busy beaver (fleißiger Biber) genannt.
Busy-Beaver-Funktion bb(n) ist wohldefiniert, aber schon für
n ≥ 6 sehr komplex.
Rado bewies: Es gibt kein Verfahren, das für beliebige n bb(n)
berechnet.
Funktion ist also nicht berechenbar.
6 Berechenbarkeit & Entscheidbarkeit
6.4 Aussagen über Turingmaschinen und unlösbare Probleme
Theoretische Informatik
Folie 6-27 (398)
Weitere Begriffe zur Berechenbarkeit
Berechenbarkeit einer (partiellen) Funktion f : X → Y definiert über
die Existenz eines Verfahrens, welches bei Eingabe von x ∈ X einen
Wert y ∈ Y liefert genau dann, wenn gilt f (x ) = y .
Entscheidbarkeit: Existiert ein Verfahren, welches für eine gegebene
Eingabe x prüft, ob x ∈ M gilt, und entsprechend 1 oder 0 liefert, so
bezeichnet man M als entscheidbar.
Weitere Begriffe zur Berechenbarkeit:
Aufzählbarkeit Eine Sprache L heißt aufzählbar, wenn es eine TM
gibt, die L akzeptiert.
Semientscheidbarkeit Existiert ein Verfahren, welches für jede
Eingabe x prüft, ob x ∈ M gilt, und im positiven Fall 1
liefert, so bezeichnet man M als semi-entscheidbar.
6 Berechenbarkeit & Entscheidbarkeit
Theoretische Informatik
6.4 Aussagen über Turingmaschinen und unlösbare Probleme
Folie 6-28 (399)
Semientscheidbarkeit – Beispiel
Beispiel 6.4 (Semientscheidbarkeit)
Wir betrachten die Sprache:
L = {x ∈ {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}∗ |x ist Teilstring von π}
Diese Sprache ist nur semientscheidbar, da wir π nicht komplett
kennen und nur ja sagen können, wenn wir x gefunden haben. no
können wir nie sagen.
6 Berechenbarkeit & Entscheidbarkeit
Theoretische Informatik
6.4 Aussagen über Turingmaschinen und unlösbare Probleme
Folie 6-29 (400)
Unentscheidbarkeit – diophantische Gleichungen
Beispiel 6.5 (Diophantische Gleichungen)
Wir betrachten das 10. Hilbertsche Problem, welches die Frage stellt,
ob man immer entscheiden kann, ob ein Gleichungssystem wie z.B.:
x 3 + 5y − 7z
u + v − y4
(x − y )2 − u
= uv 2
= z3 + 4
= v −1
eine ganzzahlige Lösung hat. Hier gibt es eine Lösung
(u = 4, v = 1, x = −1, y = 1, z = 0), aber im allgemeinen kann man
dieses nicht entscheiden.
6 Berechenbarkeit & Entscheidbarkeit
Theoretische Informatik
6.4 Aussagen über Turingmaschinen und unlösbare Probleme
Sprachen und Berechenbarkeit
abzählbare Sprachen
Typ 0 aufzählbare Sprachen
entscheidbare Sprachen
Typ 1 kontext−sensitive Sprachen
Typ 2
kontext−frei
Typ 3 regulär
Abb. 42: Sprachhierarchie
Folie 6-30 (401)
6 Berechenbarkeit & Entscheidbarkeit
6.4 Aussagen über Turingmaschinen und unlösbare Probleme
Theoretische Informatik
Folie 6-31 (402)
Sprachen und Berechenbarkeit
Abzählbarkeit Elementares Kriterium: man kann die Menge abzählen.
Aufzählbarkeit Schon näher an einem Algorithmus dran: es gibt ein
Verfahren, welches bei Eingabe einer korrekten
Zeichenkette anhält. Problem: Was machen wir, wenn
die TM rechnet und rechnet? Wird sie irgendwann
anhalten?
Entscheidbarkeit Aufzählbarkeit für Informatik meistens zu schwach.
Man will häufig wissen: Ist ein Element in einer Menge
oder nicht. Sprich: nach endlicher Zeit Yes/No.
6 Berechenbarkeit & Entscheidbarkeit
Theoretische Informatik
6.5 Zusammenfassung (Berechenbarkeit)
Das sollten Sie wissen . . .
Zusammenfassung 6.3 (Berechenbarkeit)
Gödelisierung
Berechenbarkeitsmodelle: LOOP/WHILE, Grammatiken,
Turing-Berechenbarkeit
Churche These
Lösbare/Unlösbare Probleme, Halteproblem
Folie 6-32 (403)
6 Berechenbarkeit & Entscheidbarkeit
6.6 Aufgaben (Berechenbarkeit)
Theoretische Informatik
Folie 6-33 (404)
Aufgaben
Aufgabe 6.3 (Kodierung)
Kodieren Sie Zeichenketten über Σ = {a, b, c , d , e} mittels
Gödelisierung!
Aufgabe 6.4 (Entscheidbarkeit)
Ist jede endliche Menge Turing-entscheidbar? Begründen Sie Ihre
Aussage!
6 Berechenbarkeit & Entscheidbarkeit
6.6 Aufgaben (Berechenbarkeit)
Theoretische Informatik
Folie 6-34 (405)
Aufgaben
Aufgabe 6.5 (Abgeschlossenheit)
Zeigen Sie, dass die Menge der Turing-entscheidbaren Sprachen
abgeschlossen ist bezüglich
Vereinigung
Komplement-Bildung
Durchschnitt
Kleene star.
Skizzieren Sie dazu passende Turing-Maschinen!