Theoretische Informatik Inhaltsverzeichnis Infos Inhaltsverzeichnis

Werbung
Inhaltsverzeichnis
1
TI – Einführung
Theoretische Informatik
2
Grundlagen
Prof. Dr. Jürgen Cleve
3
Automatentheorie
Hochschule Wismar
4
Logik
5
Komplexität
6
Berechenbarkeit & Entscheidbarkeit
10. Juli 2016
1 TI – Einführung
Theoretische Informatik
10. Juli 2016
Infos
Inhaltsverzeichnis
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
1
TI – Einführung
2
Grundlagen
3
Automatentheorie
4
Logik
5
Komplexität
6
Berechenbarkeit & Entscheidbarkeit
1 TI – Einführung
Theoretische Informatik
Folie 1-1 (6)
10. Juli 2016
Inhaltsverzeichnis – Kapitel 1
1
TI – Einführung
The sum of the intelligence on the planet remains a
constant; the population, however, continues to grow.
Mr. Cole’s Axiom
TI – Einführung
Einordnung von TI
Inhalte von TI
TI – Motivation
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
1 TI – Einführung
Technische Informatik
Automaten
Logik
theoretische Grundlagen und Konzepte der Informatik
;
Grundbegriffe, inkl. Graphen
Theoretische Informatik
Berechenbarkeit
Automaten
Formale
Sprachen
formale Sprachen
Informatik
Betr.systeme
Compilerbau
Praktische Informatik
Datenstrukturen
Programmierung
Folie 1-5 (10)
Gegenstand der Vorlesung
Komplexität
Algorithmen
Theoretische Informatik
1.2 Inhalte von TI
Algorithmen
Simulation
Angewandte Informatik
Assistenzsysteme
Berechenbarkeit
Computergrafik
Komplexität
WI
Logik
Bioinformatik
Softwaretechnik
1 TI – Einführung
Theoretische Informatik
1.3 TI – Motivation
Folie 1-6 (11)
Wozu TI ??
1 TI – Einführung
Theoretische Informatik
1.3 TI – Motivation
Folie 1-7 (12)
Motto der Vorlesung
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.
Nichts ist so praktisch wie eine gute Theorie.
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.
2 Grundlagen
Theoretische Informatik
2 Grundlagen
Theoretische Informatik
10. Juli 2016
Inhaltsverzeichnis
1
TI – Einführung
2
Grundlagen
3
Automatentheorie
4
Logik
5
Komplexität
6
Berechenbarkeit & Entscheidbarkeit
2 Grundlagen
10. Juli 2016
Inhaltsverzeichnis – Kapitel 2
2
Theoretische Informatik
Folie 2-1 (15)
Grundlagen
Grundlagen
Mengen
Relationen
Funktionen
Formale Sprachen
Graphen
Zusammenfassung (Grundlagen)
Aufgaben (Grundlagen)
2 Grundlagen
Theoretische Informatik
2.1 Mengen
Mengen
Menge ist eine Zusammenfassung von Objekten
Wenn Eins besonders groß ist, ist es beinahe so groß wie
ein bisschen Zwei.
Murphys mathematisches Axiom
Arthur Bloch, Murphy’s Law, 1981
Schreibweise: {x , y , . . .}
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 WI14: {Paul, Sebastian, Michalina, . . . }
Folie 2-2 (16)
2 Grundlagen
Theoretische Informatik
2.1 Mengen
Folie 2-3 (17)
Mengen
2 Grundlagen
Theoretische Informatik
2.1 Mengen
Folie 2-4 (18)
Mengen
Es gibt eine Reihe von wichtigen Beziehungen zwischen Mengen
(bzw. deren Elementen):
Element-Beziehung (∈) : x ∈ M, wenn M = {. . . , x , . . .}
Gleichheit von Mengen
Es gibt endliche und unendliche Mengen.
Leere Menge, Darstellung als {} oder 0/
Die Menge aller lebenden Menschen ist endlich.
Teilmengen (⊂), echte Teilmengen
Die Menge aller natürlichen Zahlen ist unendlich.
Beispiel 2.2 (Mengen)
{1, 2, 3} ⊂ {4, 3, 2, 1}
0/ ⊂ {4, 3, 2, 1}
{1, 2, 3} = {3, 2, 1}
2 ∈ {4, 3, 2, 1}
2 Grundlagen
Theoretische Informatik
2.1 Mengen
Folie 2-5 (19)
Mengen
2 Grundlagen
Theoretische Informatik
2.1 Mengen
Folie 2-6 (20)
Mengenoperationen
Mengen werden durch Eigenschaften beschrieben:
M = {x ∈ IN | x > 6}
M = { x ∈ IN | x > 6 }
1
YH
H
6
HH
Die Menge M
für die gilt,
x größer
allen x aus
als 6 ist.
besteht aus . . . der Menge IN,
dass . . .
Vereinigung (∪)
Durchschnitt (∩)
Mengendifferenz (\)
Symmetrische Mengendifferenz (−)
Abb. 1: Mengendarstellung – intensional
Mengenkomplement (A oder Ac )
Beispiel 2.3 (Mengen)
M = {(x , y ) ∈ IN × IN | x · y ist gerade}
M = {x ∈ IN | x 2 > 10}
/ ist nicht die leere Menge!
Achtung: {0}
2 Grundlagen
Theoretische Informatik
2.1 Mengen
Folie 2-7 (21)
Mengenoperationen
2 Grundlagen
Theoretische Informatik
2.1 Mengen
Folie 2-8 (22)
Eigenschaften von Mengenoperationen – 1
Idempotenz
Kommutativität
Beispiel 2.4 (Mengenoperationen)
{3, 2, 1} ∪ {3, 4, 5} = {1, 2, 3, 4, 5}
Assoziativität
{2, 1, 3} \ {3, 4, 5} = {1, 2}
Distributivität
Sei die Grundmenge {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}. Dann ist
{3, 4, 5} = {3, 4, 5}c = {1, 2, 6, 7, 8, 9, 10}
Absorption
{1, 2, 3} ∩ {3, 4, 5} = {3}
{1, 2, 3} − {3, 4, 5} = {1, 2, 4, 5}
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-9 (23)
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-10 (24)
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 |
Beispiel 2.5 (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,
|{3, 4, 5, 6}| = 4
|IN| = ∞
2 Grundlagen
Theoretische Informatik
2.1 Mengen
Folie 2-11 (25)
Abgeschlossenheit
2 Grundlagen
Theoretische Informatik
2.1 Mengen
Folie 2-12 (26)
Mengeneigenschaften
Gerade die Abgeschlossenheit ist aus Informatiksicht wichtig, da wir
häufig überprüfen müssen, ob bestimmte Operationen nicht aus der
Menge herausführen:
Zur Darstellung von Mengen eignen sich die Venn-Diagramme (John
Venn, 1834-1923).
1111111111111
0000000000000
0000000000000
1111111111111
Menschen
0000000000000
1111111111111
0000000
1111111
0000000000000
1111111111111
0000000
1111111
0000000000000
1111111111111
0000000
1111111
0000000000000
1111111111111
0000000
1111111
0000000000000
1111111111111
Frauen
0000000
1111111
0000000000000
1111111111111
0000000
1111111
0000000000000
1111111111111
0000000
1111111
0000000000000
1111111111111
0000000000000
1111111111111
0000000000000
1111111111111
Beispiel 2.6 (Abgeschlossenheit)
Die natürlichen Zahlen sind bezüglich der Addition
abgeschlossen.
Die natürlichen Zahlen sind bezüglich der Subtraktion nicht
abgeschlossen.
Die reellen Zahlen sind bezüglich der Multiplikation
abgeschlossen.
Abb. 2: Frauen ⊂ Menschen
Die reellen Zahlen sind bezüglich des Wurzelziehens nicht
abgeschlossen.
2 Grundlagen
Theoretische Informatik
2.2 Relationen
Folie 2-13 (27)
Relationen
2 Grundlagen
Theoretische Informatik
2.2 Relationen
Folie 2-14 (28)
Relationen
Beispiel-Relation:
verheiratet_mit = {(Adam,Beate), (Claus,Dana), ...}.
Beispiel 2.7 (Relationen)
Kartesisches Produkt (Kreuzprodukt):
A × B = {(a, b) | a ∈ A, b ∈ B }
Die Relation bruder_von:
{(lutz, juergen), (juergen, lutz), (christine, lutz) . . .} ⊂
Menschen × Männer.
(2.1)
Die Relation ist_Teiler_von:
{(1, 1), (1, 2), (2, 2), (2, 4), (2, 6), (3, 6), . . .} ⊂ IN × IN.
Oder A × B × C × D = {(a, b, c , d )| a ∈ A, b ∈ B , c ∈ C , d ∈ D } (2.2)
; Kreuzprodukt = Menge aller möglichen Kombinationen
{1, 2} × {a, b, c } = {(1, a), (2, a), (1, b), (2, b), (1, c ), (2, c )}
Jede Relation ist Teilmenge des Kreuzprodukts über Grundmengen:
R ⊂ S1 × ... × Sn
(2.3)
Beispiel: verheiratet_mit ⊂ Männer × Frauen
2 Grundlagen
Theoretische Informatik
2.2 Relationen
Folie 2-15 (29)
Relation – Student
2 Grundlagen
Betrachten nur 2-stellige Relationen über gemeinsamer
Grundmenge: R ⊂ A × A.
Die Relation student:
Name
Arnhold
Börne
Cäsar
Dönhoff
...
Vorname
Anton
Carl-Friedrich
Cleopatra
Dörte
...
Schreibweise: x R y an Stelle von (x , y ) ∈ R
Studiengang
MMT
WI
MMT
WI
...
. . . x < y an Stelle von (x , y ) ∈<
Beispiel 2.9 (2-stellige Relationen)
Kleiner-Relation auf den natürlichen Zahlen: <IN ⊂ IN × IN
Relation kennt auf der Menge der Menschen.
Relation älter_als auf der Menge der Lebewesen.
student ⊂ Matrikel × Namen × Vornamen × Studiengänge
2 Grundlagen
Theoretische Informatik
2.2 Relationen
Folie 2-17 (31)
Graphische Darstellung von 2-stelligen Relationen
Bemerkung 2.1 (Graphische Darstellung)
2-stellige Relationen lassen sich graphisch darstellen (Abb. 3).
c
a
{(a,b), (f,b), (c,d)}
f
b
Folie 2-16 (30)
Eigenschaften von 2-stelligen Relationen
Beispiel 2.8 (Relation – Student)
Matrikel
104526
103556
113576
104920
...
Theoretische Informatik
2.2 Relationen
d
Abb. 3: Relationen – Beispiel
2 Grundlagen
Theoretische Informatik
2.2 Relationen
Folie 2-18 (32)
Eigenschaften von 2-stelligen Relationen
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.
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.
2 Grundlagen
Theoretische Informatik
2.2 Relationen
Folie 2-19 (33)
2 Grundlagen
Theoretische Informatik
2.2 Relationen
Folie 2-20 (34)
Eigenschaften von 2-stelligen Relationen
Wir betrachten folgende Relation:
0
1
1
0
0e
1
11
00
a
00
11
1
0
0b
1
c
1
0
0
1
Es gibt 2 spezielle Klassen von Relationen:
Äquivalenzrelation (reflexiv, symmetrisch, transitiv)
1
0
0d
1
Ordnungsrelation (reflexiv, antisymmetrisch, transitiv), (partiell,
total)
Abb. 4: Beispielrelation
Relation: {(a, a), (b, a), (a, c ), (c , e), (d , c ), (e, d )}
Reflexiv
ist sie nicht.
Transitiv
ist sie nicht.
Symmetrisch ist sie nicht.
Antisymmetrisch ist sie.
2 Grundlagen
Theoretische Informatik
2.2 Relationen
Folie 2-21 (35)
Partielle / totale Ordnungsrelationen
2 Grundlagen
Theoretische Informatik
2.2 Relationen
Folie 2-22 (36)
Die Implikation
Beispiel 2.10 (Gleichheitsrelation und Transitivität)
Totale Ordnungsrelation: zwei beliebig gewählte Elemente (x, y)
müssen immer vergleichbar sein, d.h. es muss xRy oder yRx
gelten.
Ist die Gleichheitsrelation auf den natürlichen Zahlen transitiv?
NEIN? Denn wir finden doch gar keine x, y , z, so dass x = y und
y = z gelten. Oder?
Nur wenn wir x = y = z setzen, dann sind Vorbedingung der
Transitivität erfüllt. Dann gilt natürlich die geforderte Bedingung
x = z.
Partielle Ordnungsrelation: Unvergleichbarkeit zugelassen.
Relation ist_teiler_von: partielle Ordnungsrelation, da
beispielsweise weder 3|7 noch 7|3 gilt.
2 Grundlagen
Was ist also mit den fehlenden echten Tripeln x/y /z?
Kein Problem: Nur wenn wir Werte mit x = y und y = z finden, so
dass x = z nicht gilt, dann wäre die Transitivität verletzt.
Theoretische Informatik
2.2 Relationen
Folie 2-23 (37)
Relationen
2 Grundlagen
Theoretische Informatik
2.2 Relationen
Folie 2-24 (38)
Äquivalenz- / Ordnungsrelationen
Beispiel 2.12 (Relationen)
Beispiel 2.11 (Eigenschaften von Relationen)
Kandidaten für Äquivalenzrelationen sind beispielsweise:
Die Relation älter_als ist transitiv und antisymmetrisch, aber
nicht symmetrisch und reflexiv.
Die Relation duzt ist nur reflexiv.
gleiche_haarfarbe
geschwister_von
Kandidaten für Ordnungsrelationen sind:
Die Relation kollege_von ist symmetrisch und transitiv. Ist sie
auch reflexiv?
≥
klüger_als
Prüfen Sie die Eigenschaften.
2 Grundlagen
Theoretische Informatik
2.2 Relationen
Folie 2-25 (39)
Aufgaben
2 Grundlagen
Theoretische Informatik
2.2 Relationen
Folie 2-26 (40)
2-stellige Relationen auf natürlichen Zahlen
Wir betrachten die Relation:
{(x , y )|x , y ∈ IN, 2|x + y }
Aufgabe 2.1 (Relationen)
Sind folgende Aussagen korrekt?
Die Relation verheiratet_mit ist weder reflexiv noch transitiv.
Die Relation „x ist Teiler von y“ ist reflexiv und transitiv, jedoch
nicht symmetrisch.
4
0
5
6
2
(2.4)
1
7
3
Abb. 5: Relation – gerade Summe
Gruppenbildung: gerade Zahlen und ungerade Zahlen getrennt.
Die Relation ist reflexiv, symmetrisch und auch transitiv.
Also ist sie eine Äquivalenzrelation.
2 Grundlagen
Theoretische Informatik
2.2 Relationen
Folie 2-27 (41)
Hüllenbildung auf 2-stelligen Relationen
2 Grundlagen
Folie 2-28 (42)
Hüllenbildung auf 2-stelligen Relationen
Bei der Hüllenbildung wird eine Relation um Elemente erweitert, so
dass eine bestimmte Eigenschaft gilt.
Wozu braucht man eine solche Hülle?
Betrachten ein Computer-Netzwerk.
transitive Hülle
Möchten untersuchen, ob man von jedem Computer zu jedem
anderen kommt.
reflexive Hülle
symmetrische Hülle
Die direkten Verbindungen der Computer seien durch die
Relation R dargestellt: Zwischen a und b besteht also eine
direkte Verbindung, wenn (a, b) ∈ R.
Beachten Sie:
Bei der Hüllenbildung muss man auch die neuen Kanten
betrachten.
Wie bekommt man auch die indirekten Verbindungen?
reflexive, transitive Hülle von R
Nur die Erweiterungen, die zwingend nötig sind, nicht mehr!
2 Grundlagen
Theoretische Informatik
2.2 Relationen
Folie 2-29 (43)
Hüllenbildung
2 Grundlagen
Theoretische Informatik
2.2 Relationen
Folie 2-30 (44)
Relationen – weitere Eigenschaften
1
20
2
1
0
1
0
1
0
2
1
0
0
1
0
21
0
1
0
11
0
1
1
30
0
1
0
11
0
1
1
3 0
0
1
0
11
0
1
3
1
0
1
0
1
0
50
1
4
1
0
1
0
1
0
50
1
0
41
0
1
0
51
0
1
4
Theoretische Informatik
2.2 Relationen
1
0
60
1
6
Ausgangs−Relation
1
0
1
0
reflexive Hülle
1
0
0
1
0
11
0
1
0
31
0
1
1
0
0
1
0
51
0
1
Es gibt eine Reihe weiterer Eigenschaften von zweistelligen
Relationen R ⊂ A × B:
linkstotal
6
4
1
0
1
0
symmetrische Hülle
6
rechtstotal
Zu jedem a gibt es (mind.) ein b, so dass (a, b) ∈ R.
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 .
1
0
1
0
transitive Hülle
rechtseindeutig Falls (a, b1 ) ∈ R und (a, b2 ) ∈ R, dann b1 = b2 .
Abb. 6: Hüllenbildung – Beispiel 1
2 Grundlagen
Theoretische Informatik
2.3 Funktionen
Folie 2-31 (45)
Funktionen
2 Grundlagen
Theoretische Informatik
2.3 Funktionen
Folie 2-32 (46)
Eigenschaften von Funktionen
Funktion – spezielle 2-stellige Relation
Wichtige Eigenschaft: Eindeutigkeit
Zu jedem a existiert höchstens ein b, so dass (a, b) ∈ R gilt.
totale
Funktion: Zu jedem Urbild gibt es genau ein Bild.
a . . . Urbild
partielle
Funktion: Nicht zu jedem Urbild muss es ein Bild geben.
b . . . Bild
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
Beispiel 2.13 (Funktionen)
Betragsfunktion abs auf Integer-Zahlen
Funktion vater_von: Menschen → Menschen
2 Grundlagen
Theoretische Informatik
2.3 Funktionen
Folie 2-33 (47)
Funktionen
1
0
1
0
1
0
00
11
11
00
nicht injektiv
1
0
nicht surjektiv
00
11
1
0
nicht total
001
111
0
0
1
0
0
1
11
00
11 0
00
1
11
00
Theoretische Informatik
2.3 Funktionen
Folie 2-34 (48)
Funktionen
11
00
00
11
1
0
2 Grundlagen
11
0
0
0
1
0
1
11
00
11
00
00
11
Abb. 7: Funktionen – Beispiel
bijektiv
Addition von natürlichen Zahlen: plus : IN × IN → IN
Absolutbetrag auf ganzen Zahlen: abs : ZZ → IN
1
0
11
00
Beispiel 2.14 (Funktionen)
1
0
1
0
0
1
100
0
11
00
1
0
11
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-35 (49)
Funktionen
2 Grundlagen
Theoretische Informatik
2.3 Funktionen
Folie 2-36 (50)
Funktionen
Beispiel 2.15 (Injektivität, Surjektivität)
Bemerkung 2.2 (Injektivität, Surjektivität)
Die Funktion vater_von ist nicht injektiv, denn ihre
Umkehrabbildung vater_von−1 ist nicht eindeutig.
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.
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.
Ist die Funktion f zusätzlich noch surjektiv, dann ist f −1 sogar
total.
Die Funktion halbiere : IN → IN auf den natürlichen Zahlen ist:
I
I
nicht total (Es gibt zu den ungeraden Zahlen keinen
Funktionswert.)
injektiv und surjektiv
halbiere−1 ist also eine totale Funktion.
2 Grundlagen
Theoretische Informatik
2.3 Funktionen
Folie 2-37 (51)
Weitere Begriffe
2 Grundlagen
Theoretische Informatik
2.3 Funktionen
Folie 2-38 (52)
Abzählbarkeit
Satz 2.4 (Abzählbarkeit)
Definitionsbereich, Wertebereich von Funktionen
Jede unendliche Teilmenge einer abzählbaren Menge ist wieder
abzählbar.
endliche und unendliche Mengen
Kardinalität einer Menge
Die Vereinigung von endlich vielen abzählbaren Mengen ist
wieder abzählbar.
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.4 Formale Sprachen
Folie 2-39 (53)
Formale Sprachen
Beispiel 2.16 (Abzählbarkeit)
Die rationalen Zahlen sind abzählbar. (Suchen Sie nach einem
Beweis.)
2 Grundlagen
Theoretische Informatik
2.4 Formale Sprachen
Folie 2-40 (54)
Formale Sprachen
Definition 2.5 (Formale Sprache)
Alphabet (endliche Menge von Symbolen)
(endliche) Zeichenketten (Wörter, Strings) über einem Alphabet
Formale Sprache – eine Teilmenge der Menge aller endlichen
Zeichenketten über einem vorgegebenen Alphabet Σ.
Beschreibung:
leere Zeichenkette e, Teilzeichenkette
Länge einer Zeichenkette: |w |
L = {w ∈ Σ∗ | . . . Eigenschaften von w . . .}
Anzahl von Zeichen (a) in einer Zeichenkette w: |w |a
Konkatenation (Verknüpfung) von Zeichenketten (ist assoziativ)
Umkehrung einer Zeichenkette (reversal)
wobei die Eigenschaften endlich beschreibbar sein müssen.
(Σ∗ = 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
Folie 2-41 (55)
Operationen
2 Grundlagen
Theoretische Informatik
2.4 Formale Sprachen
Folie 2-42 (56)
Operationen
Konkatenation (Produkt) von Sprachen
L1 • L2 = {x • y | x ∈ L1 und y ∈ L2 }
(2.5)
{a, b} • {d , ff , g } = {ad , aff , ag , bd , bff , bg }
{a, bb}∗ = {e, a, bb, aa, abb, bba, bbbb, aaa, aabb, . . .} (Menge
Kleenescher Abschluss (Kleene star): Vereinigung aller
endlichen Produkte der Sprache L mit sich selbst:
L∗ =
∞
[
i =0
Li = {e} ∪ L ∪ (L • L) ∪ (L • L • L) ∪ . . .
Beispiel 2.17 (Stringoperationen)
aller endlichen Zeichenketten, gebildet aus den Bausteinen a /
bb).
(2.6)
2 Grundlagen
Theoretische Informatik
2.4 Formale Sprachen
Folie 2-43 (57)
2.4.1 Reguläre Ausdrücke
Bemerkung 2.7 (Reguläre Ausdrücke)
a(a∗ ∪ b∗ )a+
I
I
3
Wir verwenden auch folgende Schreibweisen:
an bm . . . n a, danach m b
a∗ b∗ Menge der Zeichenketten, aufgebaut aus endlichen vielen
a (einschließlich 0) gefolgt von endlich vielen b (einschließlich 0).
I
Folie 2-44 (58)
Reguläre Ausdrücke
Man kann Sprachen durch Ausdrücke der folgenden Form
beschreiben.
2
Theoretische Informatik
2.4 Formale Sprachen
2.4.1 Reguläre Ausdrücke
Reguläre Ausdrücke
1
2 Grundlagen
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.
an bn . . . n a, danach gleich viele b
Beispiel 2.18 (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.
(a ∪ ab)∗ ∩ (a ∪ ba)∗ alle Zeichenketten, die sowohl durch den
am bn , m ≥ n . . . a, dann b; mindestens so viele a wie b.
ersten als auch den zweiten Ausdruck darstellbar sind.
2 Grundlagen
Theoretische Informatik
2.4 Formale Sprachen
Folie 2-45 (59)
2.4.1 Reguläre Ausdrücke
(a ∪ b)n , n ≥ 2 . . . Beliebig a/b; mindestens 2.
2 Grundlagen
Theoretische Informatik
2.4 Formale Sprachen
Folie 2-46 (60)
2.4.1 Reguläre Ausdrücke
Reguläre Ausdrücke
Reguläre Ausdrücke
Reguläre Ausdrücke sind
die leere Menge,
die Wörter der Länge 1
Beispiel 2.19 (Regulärer Ausdruck)
sowie
Der Ausdruck a(a∗ ∪ b∗ )b steht für die Zeichenketten, die wie folgt
aufgebaut sind:
Konkatenation, Vereinigung, Durchschnitt und Kleenescher
Abschluss von regulären Ausdrücken.
Das 1. Zeichen ist ein a.
Darstellung:
Dann folgt eine beliebige Zeichenkette, gebildet entweder nur aus
as oder nur aus bs (einschließlich dem leeren String).
Konkatenation a∗ • b∗ oder einfach a∗ b∗ .
Vereinigung
∪
Das letzte Zeichen ist ein b.
Durchschnitt ∩
Kleene-Star
∗
2 Grundlagen
Theoretische Informatik
2.4 Formale Sprachen
Folie 2-47 (61)
2.4.1 Reguläre Ausdrücke
2 Grundlagen
Theoretische Informatik
2.4 Formale Sprachen
Folie 2-48 (62)
2.4.1 Reguläre Ausdrücke
Reguläre Ausdrücke
Reguläre Ausdrücke
Beispiel 2.21 (Reguläre Ausdrücke)
Beispiel 2.20 (Reguläre Ausdrücke – Fehlerquellen)
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.
a+
ist eine Abkürzung für aa∗ .
2 Grundlagen
Theoretische Informatik
2.5 Graphen
Folie 2-49 (63)
Königsberger Brückenproblem (Euler 1736)
Das Königsberger Brückenproblem geht auf Euler 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.
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-50 (64)
Graphen – Bedeutung
Rechnernetze: Konfiguration, Routing etc.
Suche: Suchprobleme als Suche in Graphen
1
0
1
0
Tourenplanung, Verkehrsweg-Planung
1
0
1
0
1
0
1
0
1
0
1
0
Abb. 8: Königsberger Brückenproblem
Ist das Problem lösbar?
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∗
Compiler
Datenbanken
Darstellung von zustandsorientierten Modellen
I
I
Automaten
Modellierung von Workflows
2 Grundlagen
Theoretische Informatik
2.5 Graphen
Folie 2-51 (65)
2 Grundlagen
Theoretische Informatik
2.5 Graphen
Folie 2-52 (66)
2.5.1 Grundlagen und Grundbegriffe
Beispiel-Graphen
1
0
0
1
Grundlagen und Grundbegriffe
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
Definition 2.8 (Graph)
1
0
0
1
Ein Graph ist definiert als Paar G = (K , V ), wobei
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
K eine nichtleere Menge von Knoten
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
Abb. 9: Beispiel-Graphen
2 Grundlagen
Wir sagen, zwischen den Knoten a und b besteht eine Verbindung,
wenn gilt: (a, b) ∈ V oder (b, a) ∈ V .
Theoretische Informatik
2.5 Graphen
Folie 2-53 (67)
2.5.1 Grundlagen und Grundbegriffe
Das Komplement eines Graphen G = (K , V ) ist definiert durch
Gc = (K , V 0 ), wobei V 0 = (K × K ) \ V .
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-55 (69)
2.5.1 Grundlagen und Grundbegriffe
Der Grad g (k ) (eines Knotens 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-56 (70)
Verbindbar, zusammenhängend
Definition 2.12 (Kantenzug, Weg, Kreis)
Definition 2.13 (Verbindbar, zusammenhängend)
Sei (v1 , v2 , . . . vn ) eine Folge von Kanten eines Graphen G. Man
bezeichnet diese Kantenfolge als
falls es Knoten k0 , . . . , kn ∈ K gibt, so dass vi = ki −1 ki .
falls die ki paarweise verschieden sind.
geschlossenen Kantenzug falls k0 = kn
falls im Kantenzug die ki paarweise verschieden sind.
2 Grundlagen
Definition 2.11 (Grad)
2.5.1 Grundlagen und Grundbegriffe
Kantenzug, Weg, Kreis
Kreis
Folie 2-54 (68)
Definition 2.10 (Komplement eines Graphen)
Ein gerichteter Graph ist definiert als Paar G = (K , V ), wobei
Weg
Theoretische Informatik
2.5 Graphen
Komplement eines Graphen, Grad von Knoten
Definition 2.9 (Gerichteter Graph)
Kantenzug
2 Grundlagen
2.5.1 Grundlagen und Grundbegriffe
Gerichteter Graph
K eine nichtleere Menge
und
V ⊂ K × K eine Menge von Kanten (Verbindungen) ist.
Theoretische Informatik
2.5 Graphen
Folie 2-57 (71)
2.5.1 Grundlagen und Grundbegriffe
Spezielle Graphen
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-58 (72)
2.5.1 Grundlagen und Grundbegriffe
Graphen
1
Vollständige Graphen (Jeder Knoten ist mit jedem verbunden.)
1
0
20
1
Zyklische Graphen (Der Graph ist ein geschlossener Weg.)
4
13
0
0
1
1
0
0
1
11 5
00
11
00
Abb. 10: Beispielgraph
Reguläre Graphen (Jeder Knoten hat den gleichen Grad.)
Ein kreisfreier gerichteter Graph wird als DAG bezeichnet
(directed acyclic graph).
1
0
0
1
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 den Knoten 2 und 3 beträgt 2.
2 Grundlagen
Theoretische Informatik
2.5 Graphen
Folie 2-59 (73)
2.5.2 Bäume
2 Grundlagen
Theoretische Informatik
2.5 Graphen
Folie 2-60 (74)
2.5.2 Bäume
Bäume
Bäume
Definition 2.14 (Baum)
1
0
0
1
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.
1
0
0
1
1
0
1
0
1
0
1
0
1 0
0
1 0
1
1 0
0
1 0
1
Bäume sind also spezielle zusammenhängende Graphen.
In Bäumen gilt:
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
1
Kantenanzahl = Knotenanzahl − 1
1
0
1
0
(2.7)
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
1
Abb. 11: Baum oder nicht ?
Bäume enthalten keine Kreise.
2 Grundlagen
Theoretische Informatik
2.5 Graphen
Folie 2-61 (75)
2.5.2 Bäume
2 Grundlagen
Folie 2-62 (76)
2.5.2 Bäume
Gerichteter Baum
Bäume
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.
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?
Wurzelbaum heißt ausgeglichen (engl. balanced), wenn die
Tiefe der Blätter um maximal 1 differiert.
2 Grundlagen
Theoretische Informatik
2.5 Graphen
Theoretische Informatik
2.5 Graphen
Folie 2-63 (77)
2.5.2 Bäume
2 Grundlagen
Theoretische Informatik
2.5 Graphen
Folie 2-64 (78)
2.5.2 Bäume
Binäre Bäume
Anwendungen von Bäumen
Hierarchische Dateisysteme (Directories und Subdirectories)
Ableitungsbäume (Compiler, Sprachverarbeitung)
Definition 2.17 (Binärer Baum)
Suchbäume
Ein binärer Baum ist ein gerichteter Baum mit der Eigenschaft:
Bemerkung 2.18 (Ausgeglichener Binärbaum)
Jeder Knoten hat maximal einen Ausgangsgrad von 2.
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-65 (79)
2.5.3 Binäre Suchbäume
Binäre Suchbäume
2 Grundlagen
Theoretische Informatik
2.5 Graphen
Folie 2-66 (80)
2.5.3 Binäre Suchbäume
Suchbaum – Beispiel
19
Definition 2.19 (Binärer Suchbaum)
10
Ein binärer Suchbaum ist ein Binärbaum, wobei gilt:
Alle Elemente im linken Teilbaum sind kleiner als das Element
der Wurzel.
5
21
12
28
Alle Elemente im rechten Teilbaum sind größer als das Element
der Wurzel (oder gleich).
3
7
12
24
Abb. 12: Beispiel-Suchbaum
35
2 Grundlagen
Theoretische Informatik
2.5 Graphen
Folie 2-67 (81)
2.5.3 Binäre Suchbäume
2 Grundlagen
Theoretische Informatik
2.5 Graphen
Folie 2-68 (82)
2.5.4 Beispielprobleme und Algorithmen
Aufgaben
Beispielprobleme und Algorithmen
Aufgabe 2.3 (Suchbaum)
Wie kann man einen Suchbaum aufbauen?
Möglichkeit: den Baum „nach und nach “ aufbauen.
I
I
I
Typische Aufgaben sind:
Zu Beginn: Baum besteht nur aus der 1. gegebenen Zahl.
Die zweite Zahl vergleicht man nun mit der 1. Zahl.
Weg suchen
kleiner
sonst
Vorgänger bzw. Nachfolger in gerichteten Graphen bestimmen
Nachbarn bestimmen
→ 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.6 Zusammenfassung (Grundlagen)
Folie 2-69 (83)
Das sollten Sie wissen . . .
2 Grundlagen
Theoretische Informatik
2.7 Aufgaben (Grundlagen)
Folie 2-70 (84)
Aufgaben
Aufgabe 2.4 (Zeichenketten)
Zusammenfassung 2.20 (Grundlagen)
Wie definiert man mittels Rekursion
Mengen, -operationen und -relationen
die Länge einer Zeichenkette (|w |),
Eigenschaften von Mengenoperationen und -relationen
die Anzahl von a in w (|w |a ),
endliche / unendliche Mengen
das Umdrehen einer Zeichenkette (w R )?
Relationen, Kreuzprodukt, Eigenschaften von 2-stelligen
Relationen
Aufgabe 2.5 (Potenzmenge)
Hüllenbildung, Abgeschlossenheit
Funktionen und deren Eigenschaften
Berechnen Sie 2{1,2,3,4} und |2{1,2,3,4} | !
Formale Sprachen, reguläre Ausdrücke
Aufgabe 2.6 (Hülle)
Graphen – Grundlagen, typische Graphen
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?
Graph, Baum – gerichtet und ungerichtet, binärer Suchbaum
2 Grundlagen
Theoretische Informatik
2.7 Aufgaben (Grundlagen)
Folie 2-71 (85)
Aufgaben
2 Grundlagen
Theoretische Informatik
2.7 Aufgaben (Grundlagen)
Folie 2-72 (86)
Aufgaben
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?
Aufgabe 2.10 (Abgeschlossenheit)
Sind folgende Mengen abgeschlossen bez. der folgenden
Operationen? Begründen Sie Ihre Aussagen!
1
Ungerade natürliche Zahlen / Subtraktion
Aufgabe 2.8 (Regulärer Ausdruck)
2
Positive ganze Zahlen / Multiplikation
Wofür steht der Ausdruck (ab ∪ b)∗ ?
3
Negative ganze Zahlen / Subtraktion
4
Natürliche Zahlen / Division
Aufgabe 2.9 (Kreuzprodukt)
Bilden Sie das Kreuzprodukt {1, 3} × {3, 1}
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
Folie 2-73 (87)
2 Grundlagen
Theoretische Informatik
2.7 Aufgaben (Grundlagen)
Folie 2-74 (88)
Aufgaben
Aufgabe 2.12 (surjektiv/injektiv)
Sind folgende Funktionen auf den reellen Zahlen total, surjektiv bzw.
injektiv?
a(a ∪ b)∗ b
Betragsfunktion f (x ) = abs(x )
a(a∗ ∩ b∗ )∗ b
Multiplikation mit -1: f (x ) = −x
a(a∗ ∪ b∗ )+ b
Division: f (x , y ) =
a(a∗ ∪ b∗ )∗ b
inverse Funktion f (x ) =
a(a ∪ b)+ b
Addition: f (x , y ) = x + y
Welche Sprachen werden durch diese regulären Ausdrücke
beschrieben?
f (x , y ) = ex · y
x
y
1
x
2 Grundlagen
Theoretische Informatik
2.7 Aufgaben (Grundlagen)
Folie 2-75 (89)
Aufgaben
2 Grundlagen
Theoretische Informatik
2.7 Aufgaben (Grundlagen)
Folie 2-76 (90)
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.13 (Grad eines Graphen)
Ist die Anzahl der Knoten geraden Grades in einem ungerichteten
Graphen stets gerade?
Aufgabe 2.16 (Komplementgraphen)
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!
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
2 Grundlagen
Theoretische Informatik
2.7 Aufgaben (Grundlagen)
Folie 2-77 (91)
Aufgaben
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-78 (92)
Aufgaben
Aufgabe 2.17 (Ungerichtete Bäume)
Aufgabe 2.19 (Eigenschaften von Relationen)
Wieviele (ungerichtete, nicht äquivalente) Bäume mit 5 Knoten
gibt es?
Wieviele Wurzeln kann ein gerichteter Baum haben?
Ist die Teilmengenbeziehung ⊂: reflexiv, symmetrisch,
antisymmetrisch, transitiv?
Aufgabe 2.20 (Regulärer Ausdruck)
Aufgabe 2.18 (Mengen und Relationen)
Sind folgende Aussagen über Mengen korrekt? Begründen Sie Ihre
Vermutung.
A × (B ∩ C ) = (A × B ) ∩ (A × C )
Erläutern Sie den Unterschied zwischen den regulären Ausdrücken
(0∗ ∪ 1∗ ) und (0 ∪ 1)∗ .
Aufgabe 2.21 (Regulärer Ausdruck)
Beschreiben Sie die Sprache (über Σ = {0, 1}), in deren Wörtern die
Teilzeichenkette 111 vorkommt, durch einen regulären Ausdruck.
(A ∪ B ) × C = (A × C ) ∪ (B × C )
3 Automatentheorie
Theoretische Informatik
3 Automatentheorie
Theoretische Informatik
10. Juli 2016
Inhaltsverzeichnis
10. Juli 2016
Inhaltsverzeichnis – Kapitel 3
1
TI – Einführung
2
Grundlagen
3
Automatentheorie
4
Logik
5
Komplexität
6
Berechenbarkeit & Entscheidbarkeit
3
3 Automatentheorie
Theoretische Informatik
Automatentheorie
Endliche Automaten
Kontextfreie Sprachen und Kellerautomaten
Turingmaschinen
Sprachen und Automaten – Ergänzungen
Zusammenfassung (Automaten)
Aufgaben (Automaten)
3 Automatentheorie
Theoretische Informatik
Folie 3-1 (95)
Automatentheorie
Folie 3-2 (96)
Zustandsdiagramm – Telefon
Drücken
Start
EIN
AUS
Drücken
Abb. 13: Tastschalter
Abh
eben
t klingelt
mm
o
k
ver−
f
u
r
r
e
f
f
bunden
An
ru au
An legt
Ruhe
Auflegen
Teilnehmer nimmt ab
Ab
heb
Wählen
en
Auflegen
Abb. 14: Telefon
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-3 (97)
Endliche Automaten
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-4 (98)
Endliche Automaten
Die Hauptursache aller Probleme sind Lösungen.
Sevareids Gesetz
Arthur Bloch, Murphy’s Law, 1981
3 Automatentheorie
(Endliche) Automaten als abstraktes Beschreibungsmittel
Endliche Automaten – eingeschränktes (Computer-)Modell
Viele praktische Probleme lassen sich mit endlichen Automaten
lösen.
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-5 (99)
3.1.1 Deterministische endliche Automaten
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-6 (100)
3.1.1 Deterministische endliche Automaten
Deterministische endliche Automaten
Deterministische endliche Automaten
Folgende Komponenten:
Endliches Eingabe-Band (Zeichen aus einem vorgegebenen
Alphabet)
Liest Zeichen für Zeichen (von links)
Lesekopf (kann ein Zeichen lesen und dann eine Position nach
rechts rücken)
Wenn Bandende erreicht und Automat in einem der (vorher
festgelegten) Finalzustände
→ Zeichenkette auf dem Band: vom Automaten akzeptiert.
Eine „Blackbox“, die in Abhängigkeit vom eingelesenen Zeichen
ihren internen Zustand ändert.
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-7 (101)
3.1.1 Deterministische endliche Automaten
und kann nach jedem Zeichen seinen internen Zustand wechseln.
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-8 (102)
3.1.1 Deterministische endliche Automaten
DFA
Graphische Darstellung eines 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
(s, b) → s
(q1 , b) → q1
(q2 , b) → q2
b
b
b
s
a
q1
a
q2
a
2
4
6
Abb. 15: Graphische Darstellung DFA
Einziger Finalzustand ist hier q2 .
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-9 (103)
3.1.1 Deterministische endliche Automaten
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-10 (104)
3.1.1 Deterministische endliche Automaten
DFA – Abarbeitung
Komponenten eines DFA
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
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
Band komplett eingelesen
Abb. 16: Abarbeitung DFA
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 (105)
3.1.1 Deterministische endliche Automaten
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-12 (106)
3.1.1 Deterministische endliche Automaten
DFA – Abarbeitung
Deterministische endliche Automaten
Definition 3.1 (DFA)
Ein DFA ist ein Quintupel M = (K , Σ, δ, s, F ), wobei
NICHT final
String nicht akzeptiert
Endzustand
Band
bbab
K . . . eine endliche Menge von Zuständen,
Σ . . . ein endliches Alphabet,
b
b
a
s
q1
a
s ∈ K . . . der Startzustand des Automaten,
q2
F ⊂ K . . . die Finalzustände
und
δ . . . die totale Zustandsübergangsfunktion K × Σ → K ist.
a
b
Abb. 17: Verarbeitung mit DFA
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 (107)
3.1.1 Deterministische endliche Automaten
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-14 (108)
3.1.1 Deterministische endliche Automaten
Darstellungsformen für DFA
DFA – Konfiguration
Darstellungsformen:
Regeln
Definition 3.2 (DFA – Konfiguration)
graphisch
Konfiguration: Paar (q , w )
Tabelle
interner Zustand des Automaten: q ∈ K
Der Automat, der alle Wörter aus a/b akzeptiert, die mind. 2 a
enthalten, kann auch so dargestellt werden:
Zustand
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
Eingabe
a
b
q1
s
q2 q1
q2 q2
s
q1
q2
3 Automatentheorie
w = σw 0 für ein σ ∈ Σ, so dass δ(q , σ) = q 0
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-15 (109)
3.1.1 Deterministische endliche Automaten
3 Automatentheorie
(3.1)
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-16 (110)
3.1.1 Deterministische endliche Automaten
DFA – Konfiguration
DFA – Konfiguration
Beispiel 3.2 (DFA – Konfiguration)
Automat, der Wörter akzeptiert (aufgebaut aus a und b), die
mindestens zwei a enthalten
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-17 (111)
3.1.1 Deterministische endliche Automaten
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
3 Automatentheorie
3.1 Endliche Automaten
Band
babbbb
babbbb
babbbb
babbbb
babbbb
babbbb
babbbb
Regel
2
1
4
4
4
4
Theoretische Informatik
Folie 3-18 (112)
3.1.1 Deterministische endliche Automaten
DFA – Konfigurationsübergang
Akzeptierte Sprache
Betrachten wir den 1. Schritt:
Konfigurationswechsel: (s, babbbb) ; (s, abbbb).
Aktuelle Werte für w, σ und
w 0:
babbbb
σ w0
Gesamtes Wort w: babbbb
Übergangsregel:
(s, b) → s
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-19 (113)
3.1.1 Deterministische endliche Automaten
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-20 (114)
3.1.1 Deterministische endliche Automaten
DFA-Beispiel
DFA – maximal 2 a
Beispiel 3.3 (DFA – Teilstring abb oder bba)
Automat, der Wörter akzeptiert (aufgebaut aus a und b), in denen
einer der Strings abb oder bba als Teilstring vorkommt:
a
a
b
q1
a
s
q3
a
Automat, der Wörter akzeptiert (aufgebaut aus a und b), die höchstens
zwei a enthalten:
b
b
a
s
q1
b
a
q2
a
q3
a
b
q2
b
b
q5
a
b
Beispiel 3.4 (DFA – maximal 2 a)
a
q4
b
b
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-21 (115)
3.1.1 Deterministische endliche Automaten
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-22 (116)
3.1.1 Deterministische endliche Automaten
Ergänzungen
Aufgaben
Fehlerzustand:
Aufgabe 3.2 (DFA)
kennzeichnet eine Situation, in der klar ist, dass der String
garantiert nicht akzeptiert wird.
Wozu muss man im Fehlerzustand die restlichen Zeichen
einlesen? Band muss komplett eingelesen werden.
Es gibt Aufgaben, bei denen ein Fehlerzustand unnötig und auch
sinnlos ist.
b
b
b
s
a
a
q1
q2
a
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-23 (117)
3.1.2 Indeterministische endliche Automaten
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-24 (118)
3.1.2 Indeterministische endliche Automaten
Indeterministische endliche Automaten
Indeterministische endliche Automaten
Beispiel 3.5 (NFA)
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
1
2
3
( s , a ) → q3
(q3 , b) → q4
(q4 , b) → s
Startzustand und (einziger) Finalzustand sind identisch (s).
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-26 (120)
3.1.2 Indeterministische endliche Automaten
Graphische Darstellung
Indeterministische endliche Automaten
Beispiel 3.6 (NFA)
a
q1
NFA erlauben beim Zustandswechsel Zeichenketten:
q2
a
a
s
(s, aaa) → s
(s, abb) → s
1
2
b
aaa
a
q3
4
5
6
Gelingt dies nicht, so vereinbaren wir, dass der String nicht
akzeptiert wird.
Folie 3-25 (119)
3.1.2 Indeterministische endliche Automaten
( s , a ) → q1
(q1 , a) → q2
( q2 , a ) → s
Gelingt es, das Band komplett einzulesen und in s zu enden, so
wird die Zeichenkette akzeptiert (z.B. abbaaaabb).
Theoretische Informatik
3.1 Endliche Automaten
Sprache aller Wörter, die nur aus den Bausteinen aaa und abb
aufgebaut sind
q4
b
s
Abb. 18: Graphische Darstellung NFA
abb
Abb. 19: Kompakter NFA
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-27 (121)
3.1.2 Indeterministische endliche Automaten
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-28 (122)
3.1.2 Indeterministische endliche Automaten
Indeterministische endliche Automaten
Indeterministische endliche Automaten
Folgender NFA akzeptiert Zeichenketten, die entweder nur aus a oder
nur aus b aufgebaut sind.
Beispiel 3.7 (DFA-NFA)
ein deterministischer
Automat
(q , a) → p
(q , b ) → q
(p, a) → q
(p, b) → p
...
a
q1
e
s
e
q2
b
ein indeterministischer
Automat
(q , a) → p
(q , a) → q
(p, a) → q
(p , a ) → p
...
Abb. 20: NFA mit leeren Kanten
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-29 (123)
3.1.2 Indeterministische endliche Automaten
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-30 (124)
3.1.2 Indeterministische endliche Automaten
Indeterministischer endlicher Automat
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.
Definition 3.4 (NFA)
Ein NFA ist ein Quintupel M = (K , Σ, ∆, s, F ), wobei
K . . . eine endliche Menge von Zuständen,
Σ . . . ein endliches Alphabet,
q2
s
a
b
a
und
q3
q1 Band: bb
q3
Band: bb
Abb. 21: Verzweigung beim NFA
Theoretische Informatik
3.1 Endliche Automaten
q4
b
∆ . . . die Zustandsübergangsrelation ∆ ⊂ K × Σ∗ × K ist.
3 Automatentheorie
Band: abb
s
s ∈ K . . . der Startzustand des Automaten,
F ⊂ K . . . die Finalzustände
a
q1
a
Folie 3-31 (125)
3.1.2 Indeterministische endliche Automaten
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-32 (126)
3.1.2 Indeterministische endliche Automaten
Konfiguration
Konfiguration
Definition 3.5 (NFA – Konfiguration)
Konfiguration: Paar (q , w )
Zustand q ∈ K
Konfiguration (wenn das Band komplett gelesen): (q , e)
Zeichenkette w ∈ Σ∗
`∗M : reflexive, transitive Hülle von `M (endlich viele Schritte des
Konfigurationsübergang: (q , w ) `M (q 0 , w 0 )
Automaten)
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
3.1 Endliche Automaten
(3.2)
Theoretische Informatik
Folie 3-33 (127)
3.1.2 Indeterministische endliche Automaten
Akzeptierte Sprache
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-34 (128)
3.1.2 Indeterministische endliche Automaten
NFA
NFA, der alle Zeichenketten über {a, b} akzeptiert, wo mind. 1x bb
vorkommt.
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}.
a
s
b
a
bb
q1
b
Abb. 22: NFA – Mindestens zwei b
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-35 (129)
3.1.2 Indeterministische endliche Automaten
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-36 (130)
3.1.3 Gleichwertigkeit von DFA und NFA
NFA
Gleichwertigkeit von DFA und NFA
Drehen Aufgabenstellung um: NIE zwei b hintereinander.
a
a
bb
s
q1
b
Wann sind ein DFA und ein NFA äquivalent?
b
Wenn sie die GLEICHE Sprache akzeptieren !
Abb. 23: 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.
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-37 (131)
3.1.3 Gleichwertigkeit von DFA und NFA
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-38 (132)
3.1.3 Gleichwertigkeit von DFA und NFA
Umwandlung NFA-DFA – Schritt 1
Umwandlung NFA-DFA – Schritt 2
Konstruieren neuen DFA.
aba
Wir sammeln jeweils alle Zustände auf, die durch exakt ein
Zeichen erreichbar sind.
q0
ab
Beginnen am Startzustand q0 = q{0} .
Von q0 aus erreicht man mit einem a die Zustände q1 und q3 ,
Abb. 24: Gegebener NFA
mit einem b überhaupt keinen Zustand.
Zunächst löst man die Zeichenketten an den Kanten auf.
q1
a
q0
b
q{0}
a
b
a
q{}
b
q3
Abb. 26: Umwandlung – Schritt 2
Abb. 25: Umwandlung – Schritt 1
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-39 (133)
3.1.3 Gleichwertigkeit von DFA und NFA
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-40 (134)
3.1.3 Gleichwertigkeit von DFA und NFA
Umwandlung NFA-DFA – Schritt 3
Umwandlung NFA-DFA – Schritt 4
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{1,3}
a
q2
a
(q{0} , b) → q{}
(q{0,2} , a) → q{0,1,3}
(q{0,1,3} , b) → q{0,2}
Umbennen der Zustände (s = p0 ).
(q{1,3} , a) → q{}
(q{0,2} , b) → q{}
(q{} , a) → q{}
p2 ist der Fehlerzustand.
Welche Zustände sind final? p0 , p3 , p4 .
. . . da im ursprünglichen Automaten nur q0 final.
a
a
q{1,3}
a
q{0}
a
b
q{}
b
b
p0
b
a
p4
p1
a
q{0,1,3}
b
b
a
b
b
p2
a
p3
q{0,2}
a b
a b
Abb. 28: Kompletter DFA 2
Abb. 27: Kompletter DFA 1
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-41 (135)
3.1.3 Gleichwertigkeit von DFA und NFA
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-42 (136)
3.1.3 Gleichwertigkeit von DFA und NFA
Ergänzung
Aufgaben
Wie wandeln wir den NFA in einen DFA um?
a
q0
q3
q1
e
b
e
q2
c
b
Abb. 29: NFA – Beispiel
Aufgabe 3.3 (DFA-NFA)
Wandeln Sie folgenden NFA in einen DFA um:
( s , e ) → q1
(q1 , bb) → q1
Finalzustände: q1 und q2 .
Ganz analog.
Und 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.
Startzustand: s.
(q1 , a) → q1
(s, aa) → q2
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-43 (137)
3.1.3 Gleichwertigkeit von DFA und NFA
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-44 (138)
3.1.3 Gleichwertigkeit von DFA und NFA
Umwandlung DFA in NFA
DFA und NFA
Der DFA arbeitet deterministisch, der NFA indeterministisch.
Automat liefert keine Ausgabe. Man bezeichnet solche
Automaten als Akzeptor.
Bemerkung 3.7 (DFA und NFA)
DFA: totale Zustandsübergangsfunktion
NFA: nicht total, indeterministisch, Zustandsübergangsrelation
Wie wandelt man einen DFA in einen NFA um?
Man muss am DFA nichts verändern, da jeder DFA auch ein NFA
ist.
Man könnte die Automaten folglich abweichend konfigurieren durch:
Kriterium
Ausgabe
Arbeitsweise
verarbeitete
Zeichen
Definiertheit
Man kann Fehlerzustände weglassen.
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-45 (139)
3.1.3 Gleichwertigkeit von DFA und NFA
Totalität / Partialität
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-46 (140)
3.1.3 Gleichwertigkeit von DFA und NFA
DFA/NFA – Unterschiede Vorlesung/JFLAP
Automaten mit Ausgabe
Bemerkung 3.8 (Automaten mit Ausgabe)
DFA – Unterschiede Vorlesung/JFLAP
Vorlesung
Totalität
nur 1
Definiertheit
verarbeitete
Zeichen
leerer String
Möglichkeiten
nein (Akzeptor) / ja
deterministisch / indeterministisch
nur 1 / beliebig viele (einschl. e)
Es gibt zwei Erweiterungen des endlichen Automaten, die Ausgaben
erzeugen können:
JFLAP
Partialität
beliebig viele (einschl. e)
λ oder ε
e
Mealy-Automat
2
Moore-Automat
Mealy-Automat gibt bei jedem Zustandsübergang ein Zeichen
aus.
NFA – Unterschiede Vorlesung/JFLAP:
Darstellung des leeren Strings
3 Automatentheorie
1
Moore-Automat gibt in Abhängikeit des erreichten Zustands ein
Zeichen aus.
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-47 (141)
3.1.4 Sprachen von DFA und NFA
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-48 (142)
3.1.4 Sprachen von DFA und NFA
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.
Offene Fragen:
Welche Sprachen werden von endlichen Automaten akzeptiert?
Bemerkung 3.10 (Reguläre Sprachen)
Welche Eigenschaften haben sie?
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.
Die von DFA/NFAs akzeptierten Sprachen sind die regulären
Sprachen.
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-49 (143)
3.1.4 Sprachen von DFA und NFA
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-50 (144)
3.1.4 Sprachen von DFA und NFA
Reguläre Sprachen und DFA/NFA
Reguläre Sprachen und DFA/NFA
Davor: String, der entweder (ab)∗ oder b(a)∗ genügen muss.
q3
e
....
s
Wie wandelt man einen regulären Ausdruck in einen DFA/NFA um?
Betrachten die Sprache ((ab)∗ ∪ b(a)∗ )b.
b
....
q1
b
q2
e
q4
Zunächst: Zeichenkette muss mit einem b enden.
s
q1
Jetzt müssen wir nur noch die beiden Teilmuster (in q3 und q4)
darstellen.
ab
q2
q3
e
e
s
q1
e
q4
b
e
q5
a
b
q2
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-51 (145)
3.1.4 Sprachen von DFA und NFA
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-52 (146)
3.1.4 Sprachen von DFA und NFA
Reguläre Sprachen und DFA/NFA
Reguläre Ausdrücke
Was müssen wir ändern, wenn wir den regulären Ausdruck
modifizieren: ((ab)∗ ∪ b(a)∗ )+ b?
ab
q3
e
q1
e
q4
b
UNIX: Muster [A-Z][A-z]*[A-Z]
e
s
b
q2
e
q5
e
a
Zusatzaufgabe: Wandeln Sie diesen NFA in einen DFA um.
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-53 (147)
3.1.4 Sprachen von DFA und NFA
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-54 (148)
3.1.4 Sprachen von DFA und NFA
Eigenschaften
Beweis der Regularität
Beispiel 3.8 (Reguläre Sprache)
Satz 3.11 (Reguläre Sprachen – Abgeschlossenheit)
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:
Die Klasse aller durch einen endlichen Automaten akzeptierten
Sprachen ist abgeschlossen bezüglich
Vereinigung
Durchschnitt
Konkatenation (Produkt)
L1 = 0 ∪ (1 ∪ 2 ∪ 3 ∪ 4 ∪ 5 ∪ 6 ∪ 7 ∪ 8 ∪ 9)Σ∗
Kleene star
Die Menge der geraden Zahlen wird dann definiert als:
Komplement
L2 = L1 ∩ Σ∗ (0 ∪ 2 ∪ 4 ∪ 6 ∪ 8)
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-55 (149)
3.1.4 Sprachen von DFA und NFA
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-56 (150)
3.1.4 Sprachen von DFA und NFA
Beweis der Regularität
DFA/NFA
Zusammenfassung 3.12 (DFA/NFA)
Beispiel 3.8 cont.
deterministisch
Teil 2: Durch 3 teilbare Zahlen sind regulär.
Konstruieren einen DFA über Quersumme.
DFA
ja
überall eindeutig definiert
ja
NFA
nein
nein
3 Zustände: Bisherige Quersumme ist 0/1/2 mod 3.
Teil 3:
Reguläre Sprachen sind abgeschlossen bezüglich des
Durchschnitts.
Wann wird String
akzeptiert ?
Band gelesen und
Finalzustand
Band gelesen und
Finalzustand
DFA: alles eindeutig spezifiziert.
Bilden Durchschnitt aus durch 2 bzw. 3 teilbaren Zahlen.
DFA/NFA akzeptiert eine Zeichenkette, wenn nach dem Einlesen
der Zeichenkette ein finaler Zustand erreicht ist.
Beweis fertig.
Beim NFA können Zustandsübergänge fehlen.
3 Automatentheorie
3.1 Endliche Automaten
Theoretische Informatik
Folie 3-57 (151)
3.1.4 Sprachen von DFA und NFA
Aufgaben
3 Automatentheorie
Theoretische Informatik
3.1 Endliche Automaten
Folie 3-58 (152)
3.1.4 Sprachen von DFA und NFA
Aufgaben
Aufgabe 3.4 (DFA)
Aufgabe 3.6 (Regulärer Ausdruck)
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.
Beschreiben Sie die Sprache, die durch den regulären Ausdruck ab∗ a
definiert ist. Entwickeln Sie für diese Sprache einen endlichen
Automaten.
Aufgabe 3.5 (Regulärer Ausdruck)
Aufgabe 3.7 (End- und Finalzustand)
Beschreiben Sie die Sprache (aufgebaut aus a und b), die nur
Zeichenketten enthält, wo beliebig viele a gefolgt von beliebig vielen b
sind, durch einen regulären Ausdruck! Entwickeln Sie dann – auf der
Basis des regulären Ausdrucks – einen endlichen Automaten.
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-59 (153)
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-60 (154)
3.2.1 Kontextfreie Grammatik
Kontextfreie Sprachen und Kellerautomaten
Kontextfreie Grammatik
Beispiel 3.9 (Grammatik)
Satz
Nominal
Artikel
Adjektiv
Substantiv
Verb
Die Lösung eines Problems besteht darin, jemanden zu
finden, der das Problem löst.
Van Herpens Gesetz
Arthur Bloch, Murphy’s Law, 1981
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-61 (155)
3.2.1 Kontextfreie Grammatik
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-62 (156)
3.2.1 Kontextfreie Grammatik
Grundprinzip der Grammatiken
Grammatik
Beispiel 3.10 (Grammatik)
Zeichenketten generieren
Welche Zeichenketten werden durch die folgende Grammatik erzeugt?
beginnend mit einem Startsymbol (hier Satz)
S
B
B
nicht deterministisch
Sind alle Platzhalter wie Satz ersetzt, so ist ein syntaktisch
korrekter Satz (String) generiert.
Menge aller dieser Zeichenketten: Sprache dieser Grammatik.
→ aBa
→ e
→ 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-63 (157)
3.2.1 Kontextfreie Grammatik
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-64 (158)
3.2.1 Kontextfreie Grammatik
Wozu Grammatiken ?
Grammatik
Beispiel 3.11 (Reguläre Ausdrücke und 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.
Der reguläre Ausdruck a(a∗ ∪ b∗ )b in Regelform :
S → aM
Aber: Sie ist zu groß, um sie in Form einer Liste darzustellen.
M
A
A
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
Folie 3-65 (159)
3.2.1 Kontextfreie Grammatik
A
b
aA
M
B
B
→
→
→
B
b
bB
Durch M → A und M → B verhindern wir, dass a und b – zwischen
dem linken a und dem rechten b – gemischt auftreten können.
Durch folgende Ableitung kann man die Zeichenkette aaaab erzeugen:
S ; aM ; aA ; aaA ; aaaA ; aaaaA ; aaaab
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
→
→
→
3 Automatentheorie
3.2 Kontextfreie Sprachen und Kellerautomaten
Theoretische Informatik
Folie 3-66 (160)
3.2.1 Kontextfreie Grammatik
Graphische Darstellung – Ableitungsbaum
Vorteil von Grammatiken
S
a
M
A
a
einfache Beschreibung einer Sprache
einfache Prüfung, ob eine gegebene Zeichenkette der Grammatik
entspricht, möglich (z.B. syntaktische Korrektheit eines JAVAoder C++-Programms)
A
a
A
a
A
b
Abb. 30: Ableitungsbaum
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-67 (161)
3.2.1 Kontextfreie Grammatik
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-68 (162)
3.2.1 Kontextfreie Grammatik
Grammatik – JAVA
Aufgaben
Beispiel 3.12 (Java-Grammatik)
Die Syntax einer JAVA-Klasse kann ebenso durch Regeln beschrieben
werden:
S
R
R
B
N
→
→
→
→
→
Aufgabe 3.9 (Grammatik)
R class N {B }
public
private
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.
Vorteil von Grammatiken:
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-69 (163)
3.2.1 Kontextfreie Grammatik
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-70 (164)
3.2.1 Kontextfreie Grammatik
Grammatik
Kontextfreie Grammatiken
Beispiel 3.13 (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):
Eine kontextfreie Grammatik G ist ein Quadrupel (V , Σ, R , S ), wobei
V ist ein Vokabular
Alphabet Σ (Terminalsymbole) ⊂ V
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
Definition 3.13 (Kontextfreie Grammatik)
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-71 (165)
3.2.1 Kontextfreie Grammatik
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-72 (166)
3.2.1 Kontextfreie Grammatik
Kontextsensitive Grammatik
Allgemeine Grammatik
Definition 3.14 (Kontextsensitive Grammatik)
Eine kontextsensitive Grammatik G ist ein Quadrupel (V , Σ, R , S )
V ist ein Vokabular
Linke Regelseite:
Beliebige Kombinationen aus
Nichtterminal- und
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 \Σ)
Terminalsymbolen
(außer e).
3. Punkt der Definition muss modifiziert werden:
R (Regeln) ⊂ V + × V ∗
Jede kontextfreie Grammatik ist auch kontextsensitiv.
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-73 (167)
3.2.1 Kontextfreie Grammatik
Kf-Grammatiken – Regelanwendung und erzeugte Sprache
3 Automatentheorie
3.2 Kontextfreie Sprachen und Kellerautomaten
3.2.1 Kontextfreie Grammatik
Aufgaben
Terminalsymbole (Alphabet): Σ
Aufgabe 3.10 (Grammatik)
Nichtterminalsymbole: N = V \Σ
Sei G = (V , Σ, R , S ) mit
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.
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-74 (168)
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-75 (169)
3.2.1 Kontextfreie Grammatik
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-76 (170)
3.2.1 Kontextfreie Grammatik
Syntax der Aussagenlogik – kontextfreie Grammatik
Beispiel – Arithmetische Ausdrücke
Beispiel 3.14 (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
Beispiel 3.15 (Arithmetische Ausdrücke)
Sei G = (W , Σ, R , E ) mit
W = {E , O } ∪ Σ,
var
(S ∨ S )
(S ∧ S )
¬S
(S → S )
(S ↔ S )
3 Automatentheorie
Σ = {x , +, −, ∗, /},

 E →G E O E
O →G ∗
R=

O →G /
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-77 (171)
3.2.1 Kontextfreie Grammatik
E →G x
O →G +
O →G −
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-78 (172)
3.2.1 Kontextfreie Grammatik
Aufgaben
Kontextfreie Grammatik
Beispiel 3.16 (Grammatik)
Sei G = (W , Σ, R , S ) mit
Aufgabe 3.11 (Arithmetische Ausdrücke)
W = {S , A} ∪ Σ,
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?
1
2
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-79 (173)
3.2.1 Kontextfreie Grammatik
Σ = {a, b},

 S →G AA
A →G a
R=

A →G Ab
A →G AAA
A →G bA
Welche Sprache wird erzeugt?
Wie sieht ein NFA für diese Sprache aus?
3 Automatentheorie
3.2 Kontextfreie Sprachen und Kellerautomaten
Theoretische Informatik
Folie 3-80 (174)
3.2.2 Backus-Naur-Form für kontextfreie Sprachen
Zwischenfazit
Backus-Naur-Form für kontextfreie Sprachen
Eine äquivalente Repräsentation für kontextfreie Sprachen ist die
Backus-Naur-Form.
Welche Sprachen und Beschreibungsmittel haben wir bisher?
Sprache
reguläre
Grammatik
??
Automat
DFA / NFA
kontextfreie
kontextfreie
Grammatik
??
3 Automatentheorie
Beispiel 3.17 (Backus-Naur-Form)
sonst
reguläre
Ausdrücke
??
<Bezeichner> ::= <Buchstabe> | _
| <Bezeichner><Buchstabe>
| <Bezeichner> _
| <Bezeichner> <Ziffer>
<Buchstabe> ::= a|b|c|d| .... |z
<Ziffer>
::= 0|1|2|3|4|5|6|7|8|9
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-81 (175)
3.2.3 Reguläre und kontextfreie Sprachen
Reguläre Grammatiken
3 Automatentheorie
3.2 Kontextfreie Sprachen und Kellerautomaten
Theoretische Informatik
Folie 3-82 (176)
3.2.3 Reguläre und kontextfreie Sprachen
Reguläre und kontextfreie Sprachen
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
Nicht jede kontextfreie Sprache ist regulär: {ai bi |i = 1, 2, . . .}.
S (Startsymbol) ∈ (V \Σ)
Wir wissen schon: Reguläre Sprachen sind genau die Sprachen,
die durch einen endlichen Automaten akzeptiert werden.
R (Regeln) ist eine endliche Teilmenge von
(V \Σ) × Σ∗ ((V \Σ) ∪ {e})
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})
Jede reguläre Sprache ist auch kontextfrei.
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-83 (177)
3.2.3 Reguläre und kontextfreie Sprachen
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-84 (178)
3.2.3 Reguläre und kontextfreie Sprachen
Reguläre Sprache
Umwandlung reguläre Grammatik – DFA/NFA
Beispiel 3.18 (Umwandlung reguläre Grammatik – DFA/NFA)
Der reguläre Ausdruck a(a∗ ∪ b∗ )b als reguläre Grammatik:
Satz 3.16 (Reguläre Sprachen und Grammatiken)
S
M
M
Eine Sprache ist regulär, gdw. eine reguläre Grammatik für sie
existiert.
→G
→G
→G
aM
A
B
A
B
aA
bB
→G
→G
Damit haben wir für reguläre Sprachen 3 Formen der Darstellung:
A
B
→G
→G
b
b
b
B
reguläre Ausdrücke
DFA/NFA
a
s
e
b
e
b
f
M
reguläre Grammatiken
A
a
Abb. 31: Umwandlung reg. Grammatik – NFA
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-85 (179)
3.2.3 Reguläre und kontextfreie Sprachen
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-86 (180)
3.2.3 Reguläre und kontextfreie Sprachen
Umwandlung DFA/NFA – reguläre Grammatik
Umwandlung regulärer Ausdruck – reguläre Grammatik
Beispiel 3.20 (Umwandlung reguläre Grammatik – regulärer Ausdruck)
Wir betrachten (a∗ bab∗ a) ∪ b(ab)∗ . Zunächst müssen wir ∪ abbilden:
Beispiel 3.19 (Umwandlung DFA/NFA – reguläre Grammatik)
ab
q3
e
e
s
q1
e
q4
b
e
b
q2
S →G Q3
Q3 →G abQ3
Q3 →G Q1
e
q5
a
Q1 →G bQ2
Q2 →G e
S →G Q4
Q4 →G bQ5
Q5 →G aQ5
Q5 →G Q1
Q1 →G S
S →G X
S →G Y
Den rechten Term b(ab)∗ bilden wir wie folgt ab:
Y →G bN
N →G abN
N →G e
X
X
B
B
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-87 (181)
3.2.3 Reguläre und kontextfreie Sprachen
1. Zeichen ist ein b.
Danach können mehrere ab kommen.
Den linken Term a∗ bab∗ a stellen wir wie folgt dar:
q2 (Q2 ) ist final, also kann die Zeichenkette hier enden.
3 Automatentheorie
(Ausdruck a∗ bab∗ a)
(Ausdruck b(ab)∗ )
→G
→G
→G
→G
aX
baB
bB
a
Zunächst können a kommen.
Dann kommt ba.
Dann können mehrere b kommen.
Zum Schluss kommt ein a.
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-88 (182)
3.2.3 Reguläre und kontextfreie Sprachen
Aufgaben
Beispiel 3.21 (Reguläre Sprache)
Sprache über {a, b}∗ , irgendwo kommt ein ab oder ba vor.
Zunächst der reguläre Ausdruck:
Irgendwo kommt ein ab oder ein ba: (ab ∪ ba)
Was darf davor kommen? Beliebige a/b-Strings: (a ∪ b)∗
Aufgabe 3.12 (NFA – Grammatik)
Was darf danach kommen? Beliebige a/b-Strings: (a ∪ b)∗
Wie wandelt man einen NFA in eine reguläre Grammatik um? Hinweis:
Sie können sich anschauen, wie JFLAP dies tut.
Also erhalten wir: (a ∪ b)∗ (ab ∪ ba)(a ∪ b)∗
Nun die reguläre Grammatik:
Am Anfang beliebige a/b-Strings: S →G aS , S →G bS
Dann kommt ein ab oder ein ba: S →G abX , S →G baX
Am Schluss wieder beliebige a/b-Strings:
X →G aX , X →G bX , X →G e
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-89 (183)
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-90 (184)
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-91 (185)
3.2.4 Kellerautomaten
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-92 (186)
3.2.4 Kellerautomaten
Graphische Darstellung – Kellerautomat
Kellerautomaten
Beispiel 3.22 (Kellerautomat)
q1
b, e ;b
a, e ;a
q0
e , e; e
Kellerautomat für {wcw R : w ∈ {a, b}∗ }
e ,Z ;e
a, e; e
b, e; e
b, b; e
a, a; e

(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)
q2
Abb. 32: Kellerautomat in JFLAP
b, e; b
a, e; a
s
c, e; e
Abb. 33: Kellerautomat für wcw
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-93 (187)
3.2.4 Kellerautomaten
b, b; e
a, a; e
f
R
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-94 (188)
3.2.4 Kellerautomaten
Kellerautomat
Beispiel 3.23 (Kellerautomat – Abarbeitung)
Definition 3.17 (Kellerautomat)
s
b
a
c
a
b
s
b
a
c
a
b
b
s
b
a
c
a
b
a
b
M = (K , Σ, Γ, ∆, s, F ) mit
f
b
a
c
a
b
a
b
f
b
a
c
a
b
b
f
b
a
c
a
b
3 Automatentheorie
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)
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-95 (189)
3.2.4 Kellerautomaten
schreiben.
(p, u , β) → (q , γ) ist anwendbar, wenn:
I
Folie 3-96 (190)
Kellerautomat – Bemerkungen 2
((p, u , β), (q , γ)) ∈ ∆ werden wir im folgenden mit dem Pfeil
I
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
3.2.4 Kellerautomaten
Kellerautomat – Bemerkungen 1
I
3 Automatentheorie
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 Σ = Γ.
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-97 (191)
3.2.4 Kellerautomaten
Akzeptierte Sprache
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-98 (192)
3.2.4 Kellerautomaten
Kellerautomaten
Beispiel 3.24 (Kellerautomat – Palindrome)
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}.
Kellerautomat für {ww R : w ∈ {a, b}∗ }.
K = {s, f }, Σ = Γ = {a, b}, F = {f }

(s, a, e) → (s, a)



b, e; b

 (s , b , e ) → (s , b )
a, e; a
(s , e , e ) → (f , e )
∆:


e, e; e
 (f , a , a ) → (f , e )

s

(f , b , b ) → (f , e )
b, b; e
a, a; e
f
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-99 (193)
3.2.4 Kellerautomaten
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-100 (194)
3.2.4 Kellerautomaten
Kellerautomaten
Kellerautomaten
Beispiel 3.25 cont.
Zunächst der Kellerautomat:
Beispiel 3.25 (Kellerautomat – Klammerstruktur)
Alle x können wir einfach ignorieren.
Kellerautomat, der untersucht, ob die Klammerstruktur eines
Programms oder Terms korrekt ist, d.h.:
Kommt eine öffnende Klammer, legen wir diese auf den Keller.
Kommt eine schließende Klammer, löschen wir eine öffnende
vom Keller.
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-101 (195)
3.2.4 Kellerautomaten

 (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-102 (196)
3.2.4 Kellerautomaten
Kellerautomat und Grammatik
Aufgaben
Beispiel 3.25 cont.
Aufgabe 3.13 (Kellerautomat)
Grammatik:
Zu jeder öffnenden Klammer muss eine schließende generiert
werden.
Zwischen den Klammern darf ein beliebiger Ausdruck (x) stehen.
S
S
S
S
→G
→G
→G
→G
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.
(S )
xS
Sx
e
Finden Sie auch eine Grammatik für diese Sprache!
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-103 (197)
3.2.4 Kellerautomaten
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-104 (198)
3.2.4 Kellerautomaten
Verarbeitung mit Kellerautomat
Verarbeitung mit KF-Grammatik
Beispiel 3.26 (Kellerautomat – Abarbeitung)
Beispiel 3.27 (Verarbeitung mit KF-Grammatik)
{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:
3 Automatentheorie
(s, abba , e)
(s, bba , a)
(s, ba , ba)
(f, ba , ba)
(f, a , a)
(f, e , e)
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-105 (199)
3.2.4 Kellerautomaten
{ww R : w ∈ {a, b}∗ }
S
S
S
→G
→G
→G
e
aSa
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-106 (200)
3.2.4 Kellerautomaten
Kellerautomaten – Unterschiede Vorlesung/JFLAP
Kellerautomaten
Zusammenfassung 3.19 (Kellerautomaten)
leerer String
Keller zu Beginn
Wann wird
String
akzeptiert?
Vorlesung
e
leer
JFLAP
λ oder ε
Z
Finalzustand
erreicht und Keller
leer
Finalzustand
erreicht oder Keller
leer
Der Kellerautomat heißt unter JFLAP: Pushdown-Automat.
Der Kellerautomat liest 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
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-107 (201)
3.2.5 Kellerautomaten und kontextfreie Grammatiken
3 Automatentheorie
Folie 3-108 (202)
3.2.5 Kellerautomaten und kontextfreie Grammatiken
Kellerautomaten und kontextfreie Grammatiken
Kurzes Resümee
Welche Sprachen und Beschreibungsmittel haben wir bisher?
Satz 3.20 (Kontextfreie Sprachen)
Sprache
reguläre
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
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-109 (203)
3.2.6 Eigenschaften von kontextfreien Sprachen
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-110 (204)
3.2.6 Eigenschaften von kontextfreien Sprachen
Eigenschaften von kontextfreien Sprachen
Leistungskraft von Kellerautomaten
Kontextfreie Sprachen sind:
abgeschlossen bezüglich Mengenvereinigung, Konkatenation,
Kleene star
Es gibt Sprachen, die nicht kontextfrei sind: {an bn c n |n ∈ IN}.
nicht abgeschlossen bezüglich Durchschnitt, Komplement
abgeschlossen bezüglich Durchschnitt mit regulären Sprachen
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-111 (205)
3.2.7 Sprachdefinition mit FLEX
3 Automatentheorie
3.2 Kontextfreie Sprachen und Kellerautomaten
Theoretische Informatik
Folie 3-112 (206)
3.2.7 Sprachdefinition mit FLEX
Sprachdefinition mit FLEX
FLEX
Flex benötigt eine Datei, die folgenden Aufbau hat:
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.
Definitionen
%%
Regeln
%%
Funktionen
Die Datei hat die Extension .l.
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
3.2.7 Sprachdefinition mit FLEX
FLEX
Folie 3-113 (207)
3 Automatentheorie
3.2 Kontextfreie Sprachen und Kellerautomaten
Theoretische Informatik
Folie 3-114 (208)
3.2.7 Sprachdefinition mit FLEX
FLEX
Beispiel 3.28 (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 );
}
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.
3 Automatentheorie
3.2 Kontextfreie Sprachen und Kellerautomaten
Theoretische Informatik
Folie 3-115 (209)
3.2.7 Sprachdefinition mit FLEX
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-116 (210)
3.2.7 Sprachdefinition mit FLEX
Scanner Pascal-like language
Scanner Pascal-like language – 2
Beispiel 3.29 (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-117 (211)
3.2.7 Sprachdefinition mit FLEX
Beispiel 3.29 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()
{}
3 Automatentheorie
Theoretische Informatik
3.2 Kontextfreie Sprachen und Kellerautomaten
Folie 3-118 (212)
3.2.8 Zwischenfazit
Aufgaben
Resümee
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.
Welche Sprachen und Beschreibungsmittel haben wir bisher?
Sprache
regulär
Aufgabe 3.15 (FLEX)
kontextfrei
Entwickeln Sie einen regulären Ausdruck für die Sprache (über dem
Alphabet {a, b}), die nur Wörter enthält, die mindestens 2 b enthält.
Entwickeln Sie dann mittels FLEX ein Programm, welches für einen
gegebenen a/b-String prüft, ob er zu dieser Sprache gehört.
3 Automatentheorie
3.3 Turingmaschinen
Theoretische Informatik
Folie 3-119 (213)
Grammatik
reguläre
Grammatik
kontextfreie
Grammatik
Automat
DFA / NFA
sonst
reguläre
Ausdrücke
Kellerautomat ??
3 Automatentheorie
Theoretische Informatik
3.3 Turingmaschinen
Folie 3-120 (214)
3.3.1 Definition
Turingmaschinen
Bisherige Automaten
If a program is useful, it will have to be changed.
Arthur Bloch, Murphy’s Law, 1981
Endliche Automaten
Kellerautomaten
;
3 Automatentheorie
3.3 Turingmaschinen
3.3.1 Definition
Turing-Maschine – Charakteristika
Theoretische Informatik
Folie 3-121 (215)
Beide nicht allgemein genug!
3 Automatentheorie
Theoretische Informatik
3.3 Turingmaschinen
Folie 3-122 (216)
3.3.1 Definition
Turing-Maschine
Neu:
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.
Lesekopf kann auch schreiben und sich auch wieder nach links
bewegen
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
Theoretische Informatik
3.3 Turingmaschinen
Folie 3-123 (217)
3.3.1 Definition
3 Automatentheorie
Theoretische Informatik
3.3 Turingmaschinen
Folie 3-124 (218)
3.3.1 Definition
Turing-Maschine
Turing-Maschine
Was müssen wir ändern? Im Prinzip nur die Regelform.
Die Regel
(q0 , a) → (q2 , c , r )
Turing-Maschine kann beliebig lang arbeiten
bedeutet:
Brauchen folglich einen Haltezustand h
Wenn wir im Zustand q0 sind
TM kann Antwort auf das Band schreiben
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-125 (219)
3.3.1 Definition
3 Automatentheorie
Theoretische Informatik
3.3 Turingmaschinen
Folie 3-126 (220)
3.3.1 Definition
Beispiel
Verarbeitung
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
Regel
(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-127 (221)
3.3.1 Definition
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#)
3 Automatentheorie
Nr.
5
6
7
8
9
10
Theoretische Informatik
3.3 Turingmaschinen
Folie 3-128 (222)
3.3.1 Definition
Turingmaschine – Arbeitsweise
Darstellungsformen für Turing-Maschinen
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
#
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 )
..................
Abb. 34: Turingmaschine – Arbeitsweise
3 Automatentheorie
Theoretische Informatik
3.3 Turingmaschinen
Folie 3-129 (223)
3.3.1 Definition
3 Automatentheorie
Theoretische Informatik
3.3 Turingmaschinen
3.3.1 Definition
Turing-Maschine – Definition
Deterministisch oder indeterministisch ?
Definition 3.21 (Turing-Maschine)
TM = (K , Σ, δ, q0 , A), wobei
K ... endl. Menge von Zuständen, h 6∈ K
Σ ... Alphabet, Füllzeichen # ∈ Σ
Bemerkung 3.22 (Determinismus)
A = {l , r , s} ... Aktion
Man beachte, dass die Definition eine TM als deterministische
Maschine festlegt.
q0 ∈ K ... Initialzustand
δ : 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
erst danach bewegt sich der Lese-/Schreibkopf nach links, rechts
oder bleibt auf der aktuellen Position (l , r , s).
Folie 3-130 (224)
3 Automatentheorie
Theoretische Informatik
3.3 Turingmaschinen
Folie 3-131 (225)
3.3.1 Definition
3 Automatentheorie
Theoretische Informatik
3.3 Turingmaschinen
Folie 3-132 (226)
3.3.1 Definition
Konfiguration
Beispiel 3.30 (TM)
TM, die für Strings (a/b/c) prüft, ob Anzahl von b/c durch 3 teilbar ist.
;
Nur ein endliches Teilstück des Bandes ist ungleich #.
q1
b; #, R
c; #, R
a; #, R
Unterschied Konfiguration – innerer Zustand
Auch die Zeichen links vom Kopf sind wichtig.
a; #, R
Definition: eine Konfiguration ist ein Element aus:
#; N, S
(K ∪ {h}) × Σ∗ × Σ × Σ∗
b; #, R
#; Y, S
q0
c; #, R
b; #, R
c; #, R
h
(3.3)
Eine Konfiguration besteht also aus:
#; N, S
dem inneren Zustand der TM,
q2
den Zeichen links vom Kopf,
a; #, R
dem aktuellen Zeichen und
den Zeichen rechts vom Kopf.
Abb. 35: TM in JFLAP für b/c durch 3 teilbar
3 Automatentheorie
Theoretische Informatik
3.3 Turingmaschinen
Folie 3-133 (227)
3.3.1 Definition
3 Automatentheorie
Theoretische Informatik
3.3 Turingmaschinen
Folie 3-134 (228)
3.3.2 Berechnungen mit Turingmaschinen
Konfiguration und Konfigurationsübergang
Berechnungen mit Turingmaschinen
1
Halte-Konfiguration: innerer Zustand ist der Haltezustand h
2
Schreibweise für eine Konfiguration: (p, abcbaba)
Man hat bei Turing-Maschinen eine Reihe von Freiheitsgraden:
Wo steht der Kopf am Anfang?
Wie erkennt man das linke/rechte Ende des Eingabestrings?
Konfigurationsübergang: analog zur Definition bei den
endlichen Automaten
Wo steht der Kopf am Ende?
Berechnung: endliche Folge von Konfigurationsübergängen
3 Automatentheorie
3.3 Turingmaschinen
Theoretische Informatik
Folie 3-135 (229)
3.3.2 Berechnungen mit Turingmaschinen
3 Automatentheorie
Theoretische Informatik
3.3 Turingmaschinen
Folie 3-136 (230)
3.3.2 Berechnungen mit Turingmaschinen
Berechnungen mit TM – Konventionen
Wann akzeptiert eine TM einen String?
Eingabe-String links und rechts durch ein # eingeschlossen.
Der Kopf steht zu Beginn auf dem ersten Zeichen, also rechts
vom linken Begrenzungs-#.
Definition 3.23 (Akzeptierte Zeichenkette)
Eine TM M hält bei Eingabe w gdw., (q0 , #w #) `∗M (h, . . .).
Eine TM akzeptiert einen String, wenn sie den Haltezustand h erreicht.
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-137 (231)
3.3.2 Berechnungen mit Turingmaschinen
Folie 3-138 (232)
Verallgemeinerte Funktionen
Definition 3.24 (Berechnungen mit TM)
Bisher: TM bildet strings auf strings ab.
Seien Σ0 , Σ1 Alphabete (ohne #). Sei f : Σ∗0 → Σ∗1 . TM berechnet f ,
falls:
Für alle w ∈ Σ∗0 : (q0 , #w #) `∗TM (h, #u #)
Theoretische Informatik
3.3 Turingmaschinen
3.3.2 Berechnungen mit Turingmaschinen
Berechnungen mit TM
Σ0 , Σ1 ⊂ Σ
3 Automatentheorie
⇔ f (w ) = u
Existiert zu einer Funktion f eine TM, so heißt f Turing-berechenbar.
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-139 (233)
3.3.2 Berechnungen mit Turingmaschinen
Definition 3.25 (Turing-Entscheidbarkeit)
Eine Sprache L heißt Turing-entscheidbar, falls
Beispiel 3.31 (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, #}
f : Σ∗ → {Y, N}
f (w ) =
Folie 3-140 (234)
Entscheidungsverfahren
Sei L ⊂ Σ∗ . 2 Symbole: Y, N TM schreibt auf das Band Y oder N.
Y
N
Theoretische Informatik
3.3 Turingmaschinen
3.3.2 Berechnungen mit Turingmaschinen
TM zur Sprachentscheidung
3 Automatentheorie

(q0 , a)



(q0 , #)
δ :

 (q1 , a)

(q1 , #)
falls w ∈ L
sonst
eine Turing-berechenbare Funktion ist.
→
→
→
→
(q1 , a, r )
(q3 , #, l )
(q0 , a, r )
(q2 , #, l )
(q2 , a)
(q2 , #)
(q3 , a)
(q3 , #)
Auf unnötige Regeln wurde verzichtet.
3 Automatentheorie
Theoretische Informatik
3.3 Turingmaschinen
Folie 3-141 (235)
3.3.2 Berechnungen mit Turingmaschinen
→
→
→
→
(q2 , #, l )
(h, N, s)
(q3 , #, l )
(h, Y, s)
3 Automatentheorie
3.3 Turingmaschinen
Theoretische Informatik
Folie 3-142 (236)
3.3.2 Berechnungen mit Turingmaschinen
Entscheidungsverfahren – 2
Semi-Entscheidbarkeit
Beispiel 3.32 (TM 2)
TM für L = {w ∈ Σ∗ : w = a2k bk , k ≥ 0}, Σ = {a, b}.
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.
Abb. 36: Turingmaschine – a2k bk
3 Automatentheorie
Theoretische Informatik
3.3 Turingmaschinen
Folie 3-143 (237)
3.3.2 Berechnungen mit Turingmaschinen
Zustandsübergang
Füllzeichen
Haltezustand
3.3 Turingmaschinen
Theoretische Informatik
Folie 3-144 (238)
3.3.3 Kombinationen und Erweiterungen von Turingmaschinen
Turing-Maschinen – Unterschiede Vorlesung/JFLAP
Vorlesung
deterministisch (totale Funktion)
#
h
3 Automatentheorie
TM als Prozedur
Ziel: TM als generelles Berechnungsmodell.
Frage: TM als Prozeduren?
Überlegung:
Gibt es Konfigurationsübergänge:
JFLAP
indeterministisch
(Relation)
(q1 , w1 a1 u1 ) `∗TM (q2 , w0 w2 a2 u2 ) und
2
(q2 , w2 a2 u2 ) `∗TM (q3 , w3 a3 u3 ) ,
beliebig viele
so ist auch (q1 , w1 a1 u1 ) `∗TM (q3 , w0 w3 a3 u3 ) ein
Konfigurationsübergang.
3 Automatentheorie
3.3 Turingmaschinen
Theoretische Informatik
Folie 3-145 (239)
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-146 (240)
3 Automatentheorie
Theoretische Informatik
3.3 Turingmaschinen
Folie 3-147 (241)
3 Automatentheorie
Theoretische Informatik
3.4 Sprachen und Automaten – Ergänzungen
Folie 3-148 (242)
3.3.3 Kombinationen und Erweiterungen von Turingmaschinen
Turing-Maschinen
Sprachen und Automaten – Ergänzungen
Zusammenfassung 3.27 (Turing-Maschinen)
Turingmaschine kann sich auf dem Eingabeband frei bewegen
und auch schreiben.
Die TM schreibt die Antwort auf das Band.
The simpler it looks, the more problems it hides.
Lee’s Law of Electrical Repair.
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
Theoretische Informatik
3.4 Sprachen und Automaten – Ergänzungen
Folie 3-149 (243)
3 Automatentheorie
Theoretische Informatik
3.4 Sprachen und Automaten – Ergänzungen
Folie 3-150 (244)
3.4.1 Chomsky-Hierarchie
Bisher . . .
Chomsky-Hierarchie
Satz 3.28 (Sprachklassen)
Typ
0
Grammatik
allgemeine
1 (kontextsensitiv)
2 (kontextfrei)
kontextsensitiv
kontextfrei
3 (regulär)
regulär
Automat
TuringMaschine
??
indet. Kellerautomat
DFA/NFA
Die Sprachen-Klasse des Typs n ist eine echte Teilmenge der
Sprachen-Klasse vom Typ n-1.
sonst
??
Typ 0 aufzählbar
??
??
Typ 1 kontext−sensitiv
Typ 2 kontext−frei
reguläre
Ausdrücke
Typ 3
regulär
Abb. 37: Chomsky-Hierarchie
3 Automatentheorie
Theoretische Informatik
3.4 Sprachen und Automaten – Ergänzungen
Folie 3-151 (245)
3.4.1 Chomsky-Hierarchie
3 Automatentheorie
3.4 Sprachen und Automaten – Ergänzungen
Theoretische Informatik
Folie 3-152 (246)
3.4.2 LL-Sprachen
Chomsky-Hierarchie
LL-Sprachen
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.
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.
Die Typ-0-Sprachen entsprechen den aufzählbaren Sprachen.
3 Automatentheorie
Theoretische Informatik
3.4 Sprachen und Automaten – Ergänzungen
Folie 3-153 (247)
3.4.2 LL-Sprachen
3 Automatentheorie
3.4 Sprachen und Automaten – Ergänzungen
Theoretische Informatik
Folie 3-154 (248)
3.4.2 LL-Sprachen
LL-Sprachen – Beispiel
LL-Grammatiken
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
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-155 (249)
3.4.2 LL-Sprachen
3 Automatentheorie
Theoretische Informatik
3.4 Sprachen und Automaten – Ergänzungen
Folie 3-156 (250)
3.4.3 Syntaxdiagramme
Beispiel – Rekursiver Abstieg
Syntaxdiagramm
Beispiel 3.33 (Rekursiver Abstieg)
S
X
Y
B
A
→ Xa | Yb
→ s|e
→ t
C
A=BC
A=B*
A
B
A
Jedem Nichtterminal wird eine Prozedur zugeordnet:
A
Theoretische Informatik
3.4 Sprachen und Automaten – Ergänzungen
Folie 3-157 (251)
3.4.3 Syntaxdiagramme
B
A=B+
B
A=B | C
C
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
A=e
A
Sei folgende Grammatik gegeben. Das Zeichen | steht für „oder“:
a
A
A=a
Abb. 38: Syntaxdiagramm
3 Automatentheorie
Theoretische Informatik
3.4 Sprachen und Automaten – Ergänzungen
Folie 3-158 (252)
3.4.4 BISON
Syntaxdiagramm
BISON
Compilerbau mit Grammatiken:
JavaStatement
CompoundStatement
Statement
CompoundStatement
{
Statement
}
Y
Yet
A
Another
C
Compiler
C
Compiler
FLEX: nur Scanning (lexikalische Analyse).
YACC dagegen führt ein Parsing durch.
Abb. 39: Syntaxdiagramm JavaStatements
Resultat: Struktur gemäß der vorgegebenen Grammatik
3 Automatentheorie
3.4 Sprachen und Automaten – Ergänzungen
Theoretische Informatik
Folie 3-159 (253)
3.4.4 BISON
Theoretische Informatik
Folie 3-160 (254)
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 */
;
Das Beispiel implementiert einen Rechner in UPN.
%{
#define YYSTYPE double
#include <math.h>
#include <stdio.h>
%}
%token NUM
3.4 Sprachen und Automaten – Ergänzungen
3.4 Sprachen und Automaten – Ergänzungen
3.4.4 BISON
BISON
3 Automatentheorie
3 Automatentheorie
Theoretische Informatik
Folie 3-161 (255)
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-162 (256)
3 Automatentheorie
Theoretische Informatik
3.4 Sprachen und Automaten – Ergänzungen
Folie 3-163 (257)
3.4.4 BISON
3 Automatentheorie
Theoretische Informatik
3.4 Sprachen und Automaten – Ergänzungen
Folie 3-164 (258)
3.4.4 BISON
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
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
BISON läuft auf rothko.
3 Automatentheorie
Theoretische Informatik
3.4 Sprachen und Automaten – Ergänzungen
Folie 3-165 (259)
3.4.5 Übersetzung von Programmiersprachen
3 Automatentheorie
Theoretische Informatik
3.4 Sprachen und Automaten – Ergänzungen
Folie 3-166 (260)
3.4.5 Übersetzung von Programmiersprachen
Übersetzung von Programmiersprachen
Beispiel – Syntaxbaum
Betrachten den arithmetischen Ausdruck (3 + 1) ∗ 4 − 7.
Quellprogramm
lexikalische Analyse
2 Interpretationen möglich, die zu
SCANNER
unterschiedlichen Resultaten führen.
Folge von Token
syntaktische Analyse
Durch Grammatik wird eine Interpretation ausgeschlossen.
PARSER
−
*
Ableitungsbaum
semantische Analyse
und Codegenerierung
+
*
−
7
Zielprogramm
Codeoptimierung
3
1
4
optimiertes Zielprogramm
3
4
1
Abb. 41: Syntaxbaum
Abb. 40: Übersetzung von Programmiersprachen
3 Automatentheorie
+
7
Theoretische Informatik
3.4 Sprachen und Automaten – Ergänzungen
Folie 3-167 (261)
3 Automatentheorie
Theoretische Informatik
3.5 Zusammenfassung (Automaten)
Folie 3-168 (262)
3.4.6 Resümee
Resümee
Das sollten Sie wissen . . .
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
3 Automatentheorie
sonst
aufzählbare
Sprachen
??
Zusammenfassung 3.29 (Automaten)
Endliche Automaten, (in)determinstisch, Gleichwertigkeit
Umwandlung vom NFA zum DFA
Kellerautomaten
Syntaxdiagramm
reguläre
Ausdrücke
Theoretische Informatik
3.6 Aufgaben (Automaten)
Folie 3-169 (263)
Aufgaben
Turingmaschinen
Grammatiken
Sprachklassen und -hierarchie
3 Automatentheorie
3.6 Aufgaben (Automaten)
Theoretische Informatik
Folie 3-170 (264)
Aufgaben
Aufgabe 3.16 (DFA/NFA – leeres Wort)
Aufgabe 3.18 (DFA/NFA – Cola-Automat)
Wann liegt das leere Wort e in der Sprache eines DFA / NFA?
Konstruieren Sie auf der Basis eines DFA oder NFA einen Automaten,
der Cola-Büchsen verkauft. Eine Cola kostet 1 Euro. Der Automat soll
nur folgende Münzen akzeptieren : 10c, 50c, 1 Euro. Wechselgeld ist
nicht vorgesehen. Der Betrag muss also passend eingeworfen werden.
Aufgabe 3.17 (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.
Korrekte Strings sind beispielsweise aba, bab, baaab. Finden Sie für
diese Sprache auch eine (reguläre) Grammatik und einen regulären
Ausdruck.
Aufgabe 3.19 (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
Theoretische Informatik
3.6 Aufgaben (Automaten)
4 Logik
Theoretische Informatik
Folie 3-171 (265)
10. Juli 2016
Aufgaben
Inhaltsverzeichnis
Aufgabe 3.20 (TM)
1
TI – Einführung
Finden Sie eine TM, die die Sprache L ⊂ {a, b}∗ , so dass im Wort 2
aufeinanderfolgende a enthalten sind, entscheidet!
2
Grundlagen
Aufgabe 3.21 (Regulärer Ausdruck)
3
Automatentheorie
4
Logik
5
Komplexität
6
Berechenbarkeit & Entscheidbarkeit
Finden Sie für den regulären Ausdruck
Automaten.
ab∗ (ba)+ c
einen endlichen
Aufgabe 3.22 (Regulärer Ausdruck)
Wandeln Sie den regulären Ausdruck ((ab)+ ∪ ba∗ )b in eine reguläre
Grammatik um.
4 Logik
Theoretische Informatik
4 Logik
Theoretische Informatik
Folie 4-1 (268)
10. Juli 2016
Inhaltsverzeichnis – Kapitel 4
4
Logik
Logic is a systematic method of coming to the wrong
conclusion with confidence.
Manly’s Maxim
Logik
Aussagenlogik
Beispiele (Resolution)
Zusammenfassung (Aussagenlogik)
Aufgaben (Aussagenlogik)
4 Logik
Theoretische Informatik
4 Logik
Theoretische Informatik
Folie 4-2 (269)
Ein Rätsel
Folie 4-3 (270)
Logik
Alle Vögel können fliegen.
Ich gehe schwimmen,
wenn die Sonne scheint.
Um einen runden Tisch herum sitzt eine unbekannte Anzahl von
Leuten.
+Speicherkarte −CF
Alltagslogik
Ein Teil von ihnen sagt IMMER die Wahrheit, die anderen lügen
IMMER.
Suchmaschinen
......
......
Logik
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.“
Programmierung
Systembeschreibung
Wieviele sitzen denn nun am Tisch ?
IF A=4 THEN .....
Der Chef muss alle Beschaffungen unterschreiben.
Abb. 42: Logik-Anwendungen
4 Logik
Theoretische Informatik
Folie 4-4 (271)
Informatik und Logik
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-5 (272)
Aussagenlogik
Aussagen im Alltag:
Es regnet.
Nicht jeder Schnee ist weiß.
Für die Informatik ist die Logik aus 2 Gründen interessant:
Beschreibungsmittel
Berechnungsmittel
;
;
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 (273)
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-7 (274)
4.1.1 Syntax und Übersetzen von Aussagen
Aussagenlogik
Syntax
Beispiel 4.1 (Aussagenlogik)
In der Aussagenlogik werden elementare Aussagen durch
aussagenlogische Variablen dargestellt:
Es seien die Aussagen gegeben:
Wenn es regnet, ist die Straße nass.
A für die Aussage: „BMW-Aktien sind hoch im Kurs.“
Es regnet.
B für die Aussage: „Heute ist Montag.“
Dies kann man in der Aussagenlogik so darstellen:
Man kann Aussagen auch verknüpfen, z.B. steht A ∨ B für:
regnet → strasse_nass
„BMW-Aktien sind hoch im Kurs oder heute ist Montag.“
regnet
Aus diesen beiden Aussagen kann man schließen, dass die Straße
nass ist.
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-8 (275)
4.1.1 Syntax und Übersetzen von Aussagen
Die Aussagen A und B sind elementare (atomare) Aussagen.
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-9 (276)
4.1.1 Syntax und Übersetzen von Aussagen
Syntax
Das logische Oder
Die Aussage
Wir fahren nach Frankreich, falls das Quartier billig ist oder sehr gutes
Wetter ist.
Die Aussagenlogik ist aufgebaut aus:
Aussagenvariablen (atomare Aussagen)
kann aussagenlogisch dargestellt werden:
Verknüpfungen:
I ¬ (Negation)
I ∨ (Oder)
I ∧ (Und)
I → (Implikation, Wenn . . . dann . . . )
I ↔ (Äquivalenz, . . . genau dann wenn . . . )
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 (277)
4.1.1 Syntax und Übersetzen von Aussagen
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-11 (278)
4.1.1 Syntax und Übersetzen von Aussagen
Die Implikation
Die Implikation – 2
Wir betrachten Spielkarten.
Wann ist die folgende Aussage wahr?
Vorderseite der Karten: Buchstabe
Falls es regnet, ist die Straße nass.
Rückseite: eine Ziffer
Einzige Bedingung:
Fall 1: Es regnet, die Straße ist nass.
Falls auf der Vorderseite ein Vokal ist, dann muss auf der Rückseite
eine gerade Zahl stehen.
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.
A D 5 8
Fall 3: Es regnet nicht, die Straße ist nicht nass.
Jemand zeigt uns folgende 4 Karten:
.
Frage: Welche Karte(n) müssen wir umdrehen, um obige Restriktion
zu prüfen?
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
Antwort: Nur die Karten
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-12 (279)
4.1.1 Syntax und Übersetzen von Aussagen
A 5.
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
4.1.1 Syntax und Übersetzen von Aussagen
Aussagenlogik
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
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 (280)
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-14 (281)
4.1.1 Syntax und Übersetzen von Aussagen
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-15 (282)
4.1.1 Syntax und Übersetzen von Aussagen
Typisches Vorgehen beim Übersetzen
Aussagenlogik
Beispiel 4.3 (Ü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.
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
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-16 (283)
4.1.1 Syntax und Übersetzen von Aussagen
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-17 (284)
4.1.1 Syntax und Übersetzen von Aussagen
Das XOR
Aussagenlogische Formeln
Definition 4.1 (Aussagenlogische Formeln)
In vielen Programmiersprachen gibt es das ausschließende Oder,
meist XOR genannt. a XOR b ist äquivalent zu:
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
(a ∧ ¬b) ∨ (¬a ∧ b)
oder auch a ↔ ¬b
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-18 (285)
4.1.1 Syntax und Übersetzen von Aussagen
4 Logik
Folie 4-19 (286)
4.1.2 Gültigkeit und Erfüllbarkeit
Äquivalenz und Implikation
Wahr oder falsch?
Die Frage, die uns natürlich interessiert, ist die, ob eine Formel wahr
oder falsch ist.
Man kann die Äquivalenz und Implikation auch definieren durch:
A ↔ B gdw. (A → B ) ∧ (B → A)
Die BMW-Aktie steigt
oder
die BMW-Aktie
steigt nicht.
ist eine immer wahre Aussage.
A → B gdw. ¬A ∨ B,
Demnach braucht man die Implikation und die Äquivalenz eigentlich
nicht.
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-20 (287)
4.1.2 Gültigkeit und Erfüllbarkeit
Wahr oder falsch?
1999 war der Bundeskanzler Helmut Kohl.
ist eine
falsche Aussage.
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-21 (288)
4.1.2 Gültigkeit und Erfüllbarkeit
Gültigkeit und Erfüllbarkeit
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
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 (289)
4.1.2 Gültigkeit und Erfüllbarkeit
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-23 (290)
4.1.2 Gültigkeit und Erfüllbarkeit
Aussagenlogische Formeln
Mengen von 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.) ∪ Falsche Formeln =
Falsifizierbare F.
sowohl
erfüllbar
als auch
falsifizierbar
Tauto−
logien
Wir vereinbaren, dass
eine Menge von Formeln {F1 , F2 , . . . , Fn } wahr ist,
genau dann wenn jedes Element der Menge wahr ist.
falsche
Formeln
Abb. 43: Aussagenlogische Formeln
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-24 (291)
4.1.2 Gültigkeit und Erfüllbarkeit
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-25 (292)
4.1.2 Gültigkeit und Erfüllbarkeit
Aufgaben
Aufgaben
Aufgabe 4.2 (Erfüllbarkeit, Falsifizierbarkeit)
Sind folgende Formeln wahr / erfüllbar / falsifizierbar / falsch ?
Aufgabe 4.1 (Implikation)
a → b
Wann ist die logische Implikation a → b wahr?
a → ¬a
Betrachten Sie dazu eine Alltagsaussage wie „Wenn ich
Geburtstag habe, dann mache ich eine Fete“.
a → a
¬a → a
Prüfen Sie für die 4 Fälle (a und b wahr/falsch), wann die
Aussage erfüllt bzw. verletzt ist.
(a ∧ ¬a) → b
(a → b) ∨ (a → ¬b)
(a → b) ∧ (a → ¬b)
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-26 (293)
4.1.3 Berechnungen mit Aussagenlogik
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-27 (294)
4.1.3 Berechnungen mit Aussagenlogik
Wahrheitswerttabellen
Wahrheitswerttabellen
Beispiel 4.5 (Wahrheitswerttabelle)
A
B
W
W
F
F
W
F
W
F
A ∨ B
W
W
W
F
A ∧ B
W
F
F
F
¬A A → B A ↔ B
F
W
W
F
F
F
W
W
F
W
W
W
Wir betrachten ¬A → (A → B ):
Tabelle 4: Wahrheitswerttabelle für ∨ , ∧ , ¬, → , ↔
A
B
W
W
F
F
W
F
W
F
A → B
W
F
W
W
¬A → (A → B )
W
W
W
W
Die Formel ist eine Tautologie.
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-28 (295)
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.
Aus Aussage 1 und 2 folgt, dass A unschuldig ist.
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-29 (296)
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 (297)
4.1.3 Berechnungen mit Aussagenlogik
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-31 (298)
4.1.3 Berechnungen mit Aussagenlogik
Beispiel
Beispiel
Diese Aussagen müssen wir zunächst in die Aussagenlogik
übersetzen.
Seien folgende Aussagen gegeben:
Michael Schumacher fährt mit: faehrt
Wenn Michael Schumacher mitfährt, sehen die Leute Formel 1.
Wenn Schumacher nicht mitfährt, dann hat Mercedes nicht viel
Geld bezahlt.
Die Leute sehen Formel 1: formel1
Mercedes zahlt viel Geld an MS: geld
Nun können wir die Aussagen formulieren:
Mercedes bezahlt viel Geld an Schumacher.
faehrt → formel1
¬faehrt → ¬geld
geld
formel1
Wir möchten beweisen, dass die Leute sich Formel 1 anschauen.
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-32 (299)
4.1.3 Berechnungen mit Aussagenlogik
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-33 (300)
4.1.3 Berechnungen mit Aussagenlogik
Beispiel
Beweis von
(1)
(2)
(3)
(Behauptung)
Beispiel - Wahrheitswerttabelle
formel1
mittels Wahrheitswerttabellen. Die Formel
[(faehrt → formel1) ∧ (¬faehrt → ¬geld) ∧ geld] → formel1
faehrt
formel1
geld
F
F
F
F
F
W
W
F
...
muss eine Tautologie sein.
W
...
W
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-34 (301)
4.1.3 Berechnungen mit Aussagenlogik
W
W
(faehrt → formel1) ∧ . . .
. . . → formel1
W
W
W
W
W
W
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-35 (302)
4.1.3 Berechnungen mit Aussagenlogik
Wahrheitswerttabellen
Inferenz-Regeln
Verknüpfen logische Formeln (Aussagen) zu neuen Formeln
. . . bis gewünschte Formel entsteht.
Nachteil: hoher Aufwand!
n
2 Möglichkeiten
Modus Ponens
Deshalb hat man nach anderen Beweis-Verfahren gesucht.
L → K
L
(4.1)
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 (303)
4.1.3 Berechnungen mit Aussagenlogik
Folgen und Ableiten
Tautologische Form
Name
[(L → K ) ∧ M → L] → (M →)K
Kettenregel
[(L → K ) ∧ ¬K ] → ¬L
Modus tollens
(indirekter Beweis)
[(L ∨ K ) ∧ ¬K ] → L
Disjunktiver Syllogismus
K
[¬(¬K )] → K
Doppelte Negation
K ∨ K)
K
[K ∨ K ] → K
Faktorisierung
L → K
¬K
¬L
L ∨ K
¬K
L
¬(¬K )
Theoretische Informatik
4.1 Aussagenlogik
4.1.3 Berechnungen mit Aussagenlogik
Inferenzregeln
Inferenzregel
L → K
M → L
M → K
4 Logik
2 unterschiedliche Begriffe für Zusammenhänge von Formeln:
Tabelle 5: Inferenzregeln
Folgen: Φ |= φ (φ folgt aus Φ)
Ableiten: Φ ` φ (φ ist aus Φ – mittels Inferenzregeln –
berechenbar).
Folie 4-37 (304)
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-38 (305)
4.1.3 Berechnungen mit Aussagenlogik
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-39 (306)
4.1.3 Berechnungen mit Aussagenlogik
Normalformen
Ä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
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.
A)
(A ∨ C))
(A ∧ C))
C)
C)
Tabelle 6: Aussagenlogische Äquivalenzen – 1
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-40 (307)
4.1.3 Berechnungen mit Aussagenlogik
Absurdität
Kontraposition
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-41 (308)
4.1.3 Berechnungen mit Aussagenlogik
Äquivalenzen – 2
Idempotenz
Idempotenz
Absorption
Absorption
4 Logik
Aufgaben
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
Aufgabe 4.3 (Umwandeln)
Vereinfachen Sie – mit Hilfe der Äquivalenzen – die Formel
¬((A ∨ ¬(B ∧ A)) ∧ (C ∨ (D ∨ C ))).
Tabelle 7: Aussagenlogische Äquivalenzen – 2
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-42 (309)
4.1.3 Berechnungen mit Aussagenlogik
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-43 (310)
4.1.3 Berechnungen mit Aussagenlogik
KNF – Klauselnormalform
KNF – Klauselnormalform
Wir führen die konjunktive Normalform, auch Klauselnormalform
genannt, ein:
KNF:
n
^
i =1
mi
_
Lij
j =1
Beispiel 4.7 (Normalformen)
!
(4.2)
(A ∨ B ) ∧ (C ∨ ¬D ) ∧ E ist eine korrekte konjunktive Normalform. Wir
lassen die ∧ weg und schreiben die Klauseln untereinander:
A ∨ B
C ∨ ¬D
E
Lij . . . Literal (elementare Aussage oder deren Negation)
Wmi
j =1 Lij . . . Klausel
Satz 4.4 (KNF)
Jede Formel hat mindestens eine äquivalente KNF.
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
4.1.3 Berechnungen mit Aussagenlogik
Transformation auf konjunktive NF
Folie 4-44 (311)
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-45 (312)
4.1.3 Berechnungen mit Aussagenlogik
Transformation auf konjunktive NF
Beispiel 4.8 (KNF)
1
Ersetzen der Äquivalenzen und Implikationen
2
Negation ganz nach innen
3
„Ausmultiplizieren“ (Anwendung des Distributivgesetzes)
Beispiel siehe Skript
Was entsteht beim „Ausmultiplizieren“ aus dieser Formel?
(A ∧ B ∧ C ) ∨ (D ∧ E )
Kombination von jedem Element der ersten bzw. zweiten
Und-Verknüpfung:
(A ∨ D ) ∧ (A ∨ E ) ∧ (B ∨ D ) ∧ (B ∨ E ) ∧ (C ∨ D ) ∧ (C ∨ E )
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-46 (313)
4.1.3 Berechnungen mit Aussagenlogik
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-47 (314)
4.1.4 Resolution
Transformation auf konjunktive NF
Resolution
Beispiel 4.9 (KNF)
Wie bringt man diese Formel geschickt auf KNF?
Wenn dieser Apfel süß ist, dann isst man ihn gern.
Wenn man ihn gern isst, werde ich ihn essen.
(A ∧ (B ∨ C )) ∨ ((D ∨ E ) ∧ F )
ALSO: Wenn dieser Apfel süß ist, dann werde ich ihn essen.
(B ∨ C ) und (D ∨ E ) haben Oder-Form. Ersetzen durch X und Y .
Dieser Schluss ist logisch gültig, es gilt:
(A ∧ X ) ∨ (Y ∧ F )
{(A → B ), (B → C )} |= (A → C )
Jetzt multiplizieren wir aus:
Nicht möglich:
(A → B ) und (B → C ) beide wahr
(A ∨ Y ) ∧ (A ∨ F ) ∧ (X ∨ Y ) ∧ (X ∨ F )
A → C falsch
und ersetzen einfach X und Y wieder durch die Originalterme:
; Dies muss zum Widerspruch führen.
(A ∨ D ∨ E ) ∧ (A ∨ F ) ∧ (B ∨ C ∨ D ∨ E ) ∧ (B ∨ C ∨ F )
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-48 (315)
4.1.4 Resolution
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-49 (316)
4.1.4 Resolution
Resolution
Klausel-Normalform
Im folgenden setzen wir die konjunktive Normalform voraus:
((A ∨ B ∨ . . .) ∧ . . . ∧ (E ∨ F ∨ . . .))
Einheitliche Darstellung der Formeln (konjunktive Normalform)
Rechnen mit Formeln: Resolution
und verwenden dafür abkürzend die Mengenschreibweise
Widerspruchsbeweis: Verfahren, welches erkennt, ob eine
Formel widersprüchlich ist.
{{A, B , . . .}, . . . , {E , F , . . .}}
Es gilt: Φ |= φ, gdw. Φ ∧ ¬φ widersprüchlich
Beweis, dass Φ |= φ äquivalent zum Beweis, dass Φ ∧ ¬φ
widersprüchlich
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 (317)
4.1.4 Resolution
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-51 (318)
4.1.4 Resolution
Apfelbeispiel und Resolution
Formel1-Beispiel
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}
Beispiel 4.12 (Formel 1 – KNF)
Formel
faehrt → formel1
¬faehrt → ¬geld
geld
¬formel1
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:
KNF
¬faehrt ∨ formel1
faehrt ∨ ¬geld
geld
¬formel1
(1)
(2)
(3)
(4, neg. Behauptung)
{¬suess, gernessen} und {suess}: {gernessen}
{gernessen} und {¬gernessen, ichesse}: {ichesse}
{ichesse} und {¬ichesse}: {}
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-52 (319)
4.1.4 Resolution
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-53 (320)
4.1.4 Resolution
Resolution
Resolutionsregel – Aussagenlogik
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. 44: Resolution – Beispiel
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
C2
Resolvente
= {L, L2 , L3 , . . . , Ln }
= {¬L, K2 , K3 , . . . , Km }
= {L2 , L3 , . . . , Ln , K2 , K3 , . . . , Km }
(4.3)
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-54 (321)
4.1.4 Resolution
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-55 (322)
4.1.4 Resolution
Resolution – Hinweis
Aufgaben
Aufgabe 4.4 (Simultanes Streichen von Literalen)
Folgender Resolutionsschritt ist nicht korrekt!
C1
C2
Resolvente
Gleichzeitiges Streichen von mehr als 1 Literal ist nicht zulässig!
{A, B }
{¬A, ¬B }
= {L1 , L2 , L3 , . . . , Ln }
= {¬L1 , ¬L2 , K3 , . . . , Km }
{}
= {L3 , . . . , Ln , K3 , . . . , Km }
4 Logik
Dies ist kein korrekter Schritt, da sich die Klauseln nicht
widersprechen!
Wieso widersprechen sich die Klauseln nicht?
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-56 (323)
4.1.4 Resolution
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-57 (324)
4.1.4 Resolution
Aufgaben
Fortsetzung des Formel1-Beispiels
Beispiel 4.13 (Formel 1 – Resolution)
¬faehrt ∨ formel1
faehrt ∨ ¬geld
geld
¬formel1
¬faehrt
¬geld
faehrt
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.
{}
(1)
(2)
(3)
(4, neg. Behauptung)
1+4: (5)
2+5: (6)
2+3: (7)
3+6: (8)
Widerspruch gefunden.
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-58 (325)
4.1.5 Validierung der Resultate
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-59 (326)
4.1.5 Validierung der Resultate
Validieren des Resultats
Validieren des Resultats
faehrt → formel1
¬faehrt → ¬geld
geld
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
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-60 (327)
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: Φ |= φ.
wahr
unklar
als wahr gegeben
Bei Aussage (2) ist unklar, ob sie erfüllt wird.
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
(1)
(2)
(3)
(2) ist eine Implikation ist.
¬geld ist falsch, also muss ¬faehrt ebenso falsch sein.
Das passt zu den anderen Aussagen.
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-61 (328)
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 (329)
4.1.6 Resolution – Eigenschaften und Anwendungsscenarios
4 Logik
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-63 (330)
4.1.6 Resolution – Eigenschaften und Anwendungsscenarios
Widerspruchsbeweis
Tautologien
Wie beweist man, dass aus A die Formel A ∨ B folgt?
Zu beweisen: A ∨ B gilt, falls A gilt.
I
I
I
Welchen Informationsgehalt hat die Klausel A ∨ ¬A?
Die Behauptung wird negiert,
zur gegebenen Aussage A hinzugefügt und
anschließend ein Widerspruch abgeleitet.
Keinen!
Sie kann gelöscht werden!
{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
Folie 4-64 (331)
4.1.6 Resolution – Eigenschaften und Anwendungsscenarios
Theoretische Informatik
4.1 Aussagenlogik
Folie 4-65 (332)
4.1.6 Resolution – Eigenschaften und Anwendungsscenarios
Subsumption
Resolution als Beweistechnik
Widerspruchsbeweis Ziel wird negiert hinzugenommen. Widerspruch
suchen.
Welche Klausel hat einen höheren Informationsgehalt:
A ∨ B
4 Logik
„Falsch“-Beweis Beweis, dass eine gegebene Formel falsch ist. Nichts
negieren. Widerspruch mittels Resolution suchen.
oder
A ∨ B ∨ C ?
Direkter Beweis Man hat kein Ziel. Resolution anwenden, eventuell
bekommt man was vernünftiges raus.
Offensichtlich die Klausel A ∨ B.
Die zweite Klausel kann folglich gelöscht werden.
4 Logik
Aus der Unvollständigkeit der Resolution folgt, dass der direkte Beweis
meistens nicht funktionieren wird. Probieren darf man es natürlich
trotzdem.
Theoretische Informatik
4.2 Beispiele (Resolution)
Folie 4-66 (333)
4.2.1 Konzert-Beispiel
4 Logik
Theoretische Informatik
4.2 Beispiele (Resolution)
Folie 4-67 (334)
4.2.1 Konzert-Beispiel
Beispiel (Resolution)
Schritt 1: Umwandeln in AL
Seien folgende Aussagen gegeben:
Wenn X ein Konzert gibt, werden viele kommen, falls der
Eintrittspreis nicht zu hoch ist.
X → (billig → viele)
X → billig
Wenn X ein Konzert gibt, ist der Eintrittspreis nicht zu hoch.
Behauptung: X → viele
Wir möchten beweisen, dass dann gilt:
Wenn X ein Konzert gibt, dann kommen viele.
4 Logik
Theoretische Informatik
4.2 Beispiele (Resolution)
Folie 4-68 (335)
4.2.1 Konzert-Beispiel
4 Logik
Folie 4-69 (336)
4.2.1 Konzert-Beispiel
Schritt 2: Umwandeln in KNF
Schritt 3: Resolutionsbeweis
1
2
X → (billig → viele)
; ¬X ∨ ¬billig ∨ viele
3
negierte Behauptung:
¬(X → viele) ; ¬(¬X ∨ viele) ≡ X ∧ ¬viele
5
X → billig
Theoretische Informatik
4.2 Beispiele (Resolution)
; ¬X ∨ billig
4
6
7
8
¬X ∨ ¬billig ∨ viele
¬X ∨ billig
X
¬viele
¬X ∨ ¬billig
¬X
(1+4)
(2+5)
¬X ∨ viele
(1+2)
leere Klausel (Widerspruch)
Damit ist die Behauptung bewiesen.
(3+6)
4 Logik
Theoretische Informatik
4.2 Beispiele (Resolution)
Folie 4-70 (337)
4.2.2 Koalitions-Beispiel
Theoretische Informatik
4.2 Beispiele (Resolution)
Ein weiteres Beispiel
Erste Überlegungen:
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.“
Wir haben 3 Aussagen gegeben.
Ein Ziel haben wir nicht gegeben.
Da wir kein Ziel gegeben haben, können wir 2 Varianten versuchen:
„Entweder Angela oder ich werden an der Koalition
beteiligt sein.“
1
Wir stellen eine Vermutung auf, z.B. Rainer ist beteiligt.
2
Wir rechnen einfach mit den gegebenen Aussagen, also ohne
Ziel.
Wie sieht die Koalition aus?
4 Logik
Theoretische Informatik
4.2 Beispiele (Resolution)
Folie 4-71 (338)
4.2.2 Koalitions-Beispiel
Beispiel (Resolution)
Rainer:
4 Logik
Folie 4-72 (339)
4.2.2 Koalitions-Beispiel
4 Logik
Theoretische Informatik
4.2 Beispiele (Resolution)
Folie 4-73 (340)
4.2.2 Koalitions-Beispiel
KNF
Resolution
P ∨ A
Kein Ziel gegeben.
(R ∧ ¬P ) ∨ (¬R ∧ P )
Also einfach Resolution anwenden, ohne (neg.) Ziel.
Vielleicht bekommen wir was raus.
(R ∧ ¬A) ∨ (¬R ∧ A)
6 (2+5)
Durch Ausmultiplizieren entsteht:
1
2
3
4
5
P ∨ A
7 (6+1)
R ∨ P
9 (8+3)
A ∨ ¬P
A
¬R ∨ ¬P
8 (7+4)
¬R ∨ ¬A
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.
R ∨ A
Die anderen Klauseln sind Tautologien und können weggelassen
werden.
4 Logik
Theoretische Informatik
4.2 Beispiele (Resolution)
Folie 4-74 (341)
4.2.3 Auto-Beispiel
¬R
P
4 Logik
Theoretische Informatik
4.2 Beispiele (Resolution)
Folie 4-75 (342)
4.2.3 Auto-Beispiel
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.
B . . . Die Batterie ist in Ordnung.
3
Wenn die Zündung funktioniert und Benzin im Tank ist, dann wird
der Motor laufen.
Z . . . Die Zündung funktioniert.
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.
Zunächst wählen wir aussagenlogische Variablen:
S . . . Strom ist vorhanden.
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.
Wir möchten beweisen, dass die letzte Aussage aus den Aussagen
1-4 folgt.
4 Logik
Theoretische Informatik
4.2 Beispiele (Resolution)
Folie 4-76 (343)
4.2.3 Auto-Beispiel
Auto-Beispiel – AL-Formeln
4 Logik
Theoretische Informatik
4.2 Beispiele (Resolution)
Folie 4-77 (344)
4.2.3 Auto-Beispiel
Auto-Beispiel – KNF
Jetzt können wir die Aussagen aufschreiben.
1
2
3
4
Wenn die Batterie in Ordnung ist, dann gibt es Strom: B → S.
Wenn Strom vorhanden ist und die Zündkerzen in Ordnung sind,
dann funktioniert die Zündung: S ∧ K → Z .
Wenn die Zündung funktioniert und Benzin im Tank ist, dann wird
der Motor laufen: Z ∧ T → M.
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.
Nun bilden wir die KNF:
1
2
3
4
B → S
; ¬B ∨ S
S ∧ K → Z
; ¬S ∨ ¬K ∨ Z
M ∧ R → A
; ¬M ∨ ¬R ∨ A
Z ∧ T → M
; ¬Z ∨ ¬T ∨ M
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 Beispiele (Resolution)
Folie 4-78 (345)
4 Logik
Theoretische Informatik
4.3 Zusammenfassung (Aussagenlogik)
Folie 4-79 (346)
4.2.3 Auto-Beispiel
Auto-Beispiel – Resolution
¬B ∨ S
1
¬S ∨ ¬K ∨ Z
2
¬Z ∨ ¬T ∨ M
3
¬M ∨ ¬R ∨ A
4
B
5
6
K
7
T
8
R
9
¬A
Das sollten Sie wissen . . .
Resolution:
10
(1+5) S
11
(2+10) ¬K ∨ Z
12
13
14
15
16
17
18
Zusammenfassung 4.8 (Aussagenlogik)
Aussagenlogik, Umwandeln von Aussagen in die AL
(11+6) Z
Gültigkeit und Erfüllbarkeit
(12+3) ¬T ∨ M
Wahrheitswerttabellen
(13+7) M
Folgen und Ableiten, Inferenzregeln
(14+4) ¬R ∨ A
KNF
(1+2) ¬B ∨ ¬K ∨ Z
Resolution, Korrektheit und Widerlegungsvollständigkeit
(15+8) A
(17+9) Widerspruch
4 Logik
Theoretische Informatik
4.4 Aufgaben (Aussagenlogik)
Folie 4-80 (347)
Aufgaben
4 Logik
Theoretische Informatik
4.4 Aufgaben (Aussagenlogik)
Folie 4-81 (348)
Aufgaben
Aufgabe 4.6 (Übersetzen)
Aufgabe 4.7 (Übersetzen)
Übersetzen Sie folgende Aussagen in die aussagenlogische Sprache!
3 Personen wollen einen Ausflug unternehmen. Es bedeuten: A =
Anton fährt mit, B = Bruno fährt mit, C = Chris fährt mit.
Die Sonne scheint, aber es ist nicht heiß.
Was bedeutet die Formel ¬(¬A ∧ ¬B ∧ C ).
Erwin läuft von Wismar nach Gägelow, aber nicht nach Rostock.
Lösen Sie die Negation auf und übersetzen Sie das Resultat in
die Umgangssprache.
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.
Aufgabe 4.8 (Resolution)
Herbert will Informatik und Betriebswirtschaft studieren, es sei
denn, er geht nach Kaiserslautern.
Beweisen Sie mit Resolution, dass B gilt, falls
(B → (A ∨ C )) ∧ (B ∨ C ) ∧ (A → C ) ∧ ¬(¬B ∧ C ) gilt.
4 Logik
Theoretische Informatik
4.4 Aufgaben (Aussagenlogik)
Folie 4-82 (349)
Aufgaben
4 Logik
Theoretische Informatik
4.4 Aufgaben (Aussagenlogik)
Folie 4-83 (350)
Aufgaben
Aufgabe 4.9 (Übersetzen)
Formulieren Sie folgende Sätze sowie deren Negation:
Aufgabe 4.10 (Resolution)
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.
Ist der folgende Schluss korrekt? Beweisen Sie Ihre Vermutung mittels
Resolution.
Wenn es kalt ist und schneit, so zieht Uli seinen Mantel an. Aber Uli
zieht seinen Mantel nicht an. Folglich ist es nicht kalt, oder es schneit
nicht.
Wenn Jürgen Aktien hat, dann sind BMW-Aktien immer dabei.
Aufgabe 4.11 (Resolution)
Die Hautallergie verschwindet genau dann, wenn Olaf keine
Milch trinkt.
Beweisen Sie mit Resolution, dass die folgende Formel falsch ist:
(A ↔ (B → C )) ∧ (A ↔ B ) ∧ (A ↔ ¬C )
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
5 Komplexität
10. Juli 2016
Inhaltsverzeichnis
1
TI – Einführung
2
Grundlagen
3
Automatentheorie
4
Logik
5
Komplexität
6
Berechenbarkeit & Entscheidbarkeit
Theoretische Informatik
10. Juli 2016
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 (353)
Komplexität
5 Komplexität
Theoretische Informatik
5.1 Speicherplatz und Zeitaufwand
Folie 5-2 (354)
Speicherplatz und Zeitaufwand
Ein Reisender soll 20 Städte besuchen.
Program complexity grows until it exceeds the capability of
the programmer who must maintain it.
Arthur Bloch, Murphy’s Law, 1981
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
5 Komplexität
Theoretische Informatik
5.1 Speicherplatz und Zeitaufwand
Folie 5-3 (355)
Problemklassen
5 Komplexität
Theoretische Informatik
5.1 Speicherplatz und Zeitaufwand
Folie 5-4 (356)
Komplexität
Beispiel 5.1 (Komplexität)
unlösbar
Sortieren einer Liste von Namen (Länge n)
und
Suchen in der Liste zunächst den kleinsten Namen, 1 Durchlauf
lösbar
I
I
praktisch lösbar
praktisch unlösbar
Stellen diesen auf Position 1 (durch Tauschen)
und
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 (357)
Komplexität
5 Komplexität
Theoretische Informatik
5.1 Speicherplatz und Zeitaufwand
Folie 5-6 (358)
Komplexität
Beispiel 5.1 cont.
Wie hoch ist der Aufwand?
Welche Operationen zählen wir?
Wir zählen die Vergleiche, die (im schlimmsten Fall) nötig sind.
Definition 5.1 (Komplexität)
Sei M eine Turing-Maschine, t ∈ IN. Die Relation `tM ist definiert durch:
1. Durchlauf n-1
C `tM C 0 gdw. die TM in t Schritten von der Konfiguration C nach C 0
kommt.
2. Durchlauf n-2
3. Durchlauf n-3
...
Wir zählen, wie oft ein Konfigurationsübergang erfolgt.
n-1. Durchlauf 1
Der Aufwand ist also (Gaußsche Summenformel):
n−1
∑i=
i =1
n ∗ ( n − 1)
(5.1)
2
5 Komplexität
Theoretische Informatik
5.1 Speicherplatz und Zeitaufwand
Folie 5-7 (359)
Komplexität 1
5 Komplexität
Theoretische Informatik
5.1 Speicherplatz und Zeitaufwand
Komplexität 2
Komplexitätsmessung muss in Abhängigkeit der Problemgröße
erfolgen,
Entscheidbarkeit ist manchmal eine zu harte Forderung.
. . . bei TM also bezüglich der Länge der Eingabe (|w |).
Sei T : IN → IN, L ⊂ Σ∗0 , M = (K , Σ, δ, s, A) eine TM, Σ0 ⊂ Σ.
M semientscheidet L in der Zeit T , falls:
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
Folie 5-8 (360)
mit t ≤ T (|w |)
(5.2)
L heißt entscheidbar in der Zeit T , falls eine TM existiert, die L in der
Zeit T entscheidet.
Definition 5.3 (Komplexität)
(s, #w #) `tM (h, #Y#), gdw. w ∈ L mit t ≤ T (|w |)
(5.3)
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 (361)
Komplexität 3
5 Komplexität
Theoretische Informatik
5.1 Speicherplatz und Zeitaufwand
Folie 5-10 (362)
Beispiel
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 |)
Wir suchen eine TM, die
L = {w ∈ {a, b, c }∗ |w hat die gleiche Anzahl von a, b, c }
(5.4)
L heißt akzeptierbar in der Zeit T , falls eine TM existiert, die L in der
Zeit T akzeptiert.
entscheidet.
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
Folie 5-11 (363)
5 Komplexität
Theoretische Informatik
5.1 Speicherplatz und Zeitaufwand
Folie 5-12 (364)
Aufwand
Sei n die Länge der Eingabe.
1
Jeder Durchlauf (maximal n Symbole durchsuchen und zurück
auf das linke Ende) : 2n Schritte
2
Pro Tripel (a, b, c ) maximal 3 · 2n Schritte
3
maximal [n/3]↑ + 1 Tripel (Durchläufe)
4
Ende: Band löschen, Schreiben von Y / N : n + 2 Schritte
5
Also Aufwand maximal: ([n/3]↑ + 1) · 3(2n) + n + 2
2
Mit [n/3]↑ ≤ n+
erhält man: L ∈ TIME (2n2 + 11n + 2)
3
6
Abb. 45: Turing-Maschine, die L entscheidet
5 Komplexität
Theoretische Informatik
5.2 Komplexitätsklassen
Folie 5-13 (365)
Komplexitätsuntersuchungen
5 Komplexität
Theoretische Informatik
5.2 Komplexitätsklassen
Folie 5-14 (366)
Komplexität von Algorithmen
Wichtige Unterscheidung:
Wie hoch ist der Aufwand im:
polynomialer Aufwand
worst case analysis schlechtesten Fall
exponentieller Aufwand.
oder
Exponentieller Aufwand: Abschätzung enthält Term r n mit r > 1.
best case analysis besten Fall
Jedes Polynom wächst langsamer als r n , r > 1.
average case analysis Durchschnitt
nk +1 wächst schneller als nk .
Sind unsere Abschätzungen genau, d.h. scharf?
Also: Jede exponentielle Funktion wächst schneller als jedes
Polynom.
5 Komplexität
Theoretische Informatik
5.2 Komplexitätsklassen
Folie 5-15 (367)
Polynome
5 Komplexität
Theoretische Informatik
5.2 Komplexitätsklassen
Folie 5-16 (368)
Polynome
Beispiel 5.2 (Polynomwachstum 1)
1
· n3 − 3 · n und g (n) = 10 · n2 + 20 · n + 20.
Vergleichen f (n) = 1000
Erster Eindruck: g (n) wächst rasant.
Beispiel 5.2 cont.
Erstes Polynom f (n) wächst jedoch deutlich schneller.
8e+09
10000
8000
f(x)
g(x)
7e+09
f(x)
g(x)
6e+09
5e+09
6000
4e+09
3e+09
4000
2e+09
2000
1e+09
0
0
0
20
40
60
80
Abb. 46: Polynomvergleich f (n) und g (n)
100
0
5000
10000
15000
Abb. 47: 2. Polynomvergleich f (n) und g (n)
20000
5 Komplexität
Theoretische Informatik
5.2 Komplexitätsklassen
Folie 5-17 (369)
Polynome
5 Komplexität
Theoretische Informatik
5.2 Komplexitätsklassen
Folie 5-18 (370)
SPACE
Beispiel 5.3 (Polynomwachstum)
1
· n4 − n2 wächst schneller als
Das Polynom 10
1
Wann gilt: 10
· n4 − n2 > 100 · n3 − n2 ?
Dazu stellen wir die Ungleichung um:
100 · n3 − n2 .
SPACE(S) : Klasse aller TMs, deren Speicherbedarf durch S (|w |)
abgeschätzt werden kann.
1
10
1
10
· n4 > 100 · n3
· n > 100
n
> 1000
Ist n > 1000, dann ist das 1. Polynom garantiert größer als das 2.
Kein wesentlicher Unterschied zwischen
1
10
Quadratischer Aufwand
· n2 . . . und 700 · n2 . . ..
5 Komplexität
Theoretische Informatik
5.2 Komplexitätsklassen
Folie 5-19 (371)
Typische Komplexitätsklassen
5 Komplexität
Theoretische Informatik
5.2 Komplexitätsklassen
Typische Komplexitätsklassen
konstanter Aufwand
Beispiel 5.4 (Komplexitätsklassen)
log (n)
n
n
2
20
100
1000
n ∗ log (n)
n2
n3
en
5 Komplexität
Theoretische Informatik
5.2 Komplexitätsklassen
Folie 5-21 (373)
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
2, 43 ∗ 1018
9, 33 ∗ 10157
...
5 Komplexität
5.3
Theoretische Informatik
P und N P
Folie 5-22 (374)
P und N P
Komplexität und Kryptographie
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
Bemerkung 5.6 (Komplexität und Kryptografie)
Kryptographie nutzt Komplexität aus.
Kryptographische Verfahren verschlüsseln Informationen
x ; y = f (x ).
Berechnung der Umkehrfunktion
Komplexität de facto unmöglich.
Folie 5-20 (372)
f −1 (y )
polynomialem Aufwand
oder
exponentiellem Aufwand.
ist wegen hoher
Definition 5.7 (P )
P = ∪{TIME (nd ) : d > 0}
5 Komplexität
5.3
Theoretische Informatik
P und N P
Folie 5-23 (375)
5 Komplexität
5.3
Theoretische Informatik
P und N P
Folie 5-24 (376)
NP
NTIME
Definition 5.9 (N P )
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 |)
(5.5)
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 ).
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-25 (377)
N P -vollständige Probleme
5 Komplexität
5.3
Theoretische Informatik
P und N P
Folie 5-26 (378)
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.
; Ganzzahlige Optimierung
Man kann zeigen:
Travelling salesman problem
P =NP
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?
gdw.
die ganzzahlige Optimierung ist in P .
Hamilton-Pfad Gibt es in einem Graphen einen Hamilton-Pfad?
Solche Probleme, die typisch für N P sind, bezeichnet man als
N P -vollständig.
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
5.3
Theoretische Informatik
P und N P
Folie 5-27 (379)
PRIME
5 Komplexität
Theoretische Informatik
5.4 Zusammenfassung (Komplexität)
Folie 5-28 (380)
Das sollten Sie wissen . . .
Ist eine natürliche Zahl p eine Primzahl?
Einfacher Algorithmus: Ausprobieren
aller potentiellen Teiler: 2
p
. . . p − 1 (genauer nur bis ≤ p)
Zusammenfassung 5.10 (Komplexität)
Praktisch unlösbare Probleme
Betrachten für p eine 128-Bit-Zahl (n = 128).
Speicherplatz, Zeitbedarf
n
2n bzw. 2 2 mögliche Teiler: 264 ≈ 1.8 · 1019 Möglichkeiten
Bestimmung der relevanten Operation,
Quantifizieren/Abschätzen des Aufwands
Bei 109 Divisionen pro Sekunde: ca. 1.8 · 1010 Sekunden ≈ 570
Jahre
Komplexitätsklassen
Problem galt lange als N P -Problem.
P und N P
2002. Aagrawal, Kayal und Saxena finden polynomialen
Algorithmus.
5 Komplexität
Theoretische Informatik
5.5 Aufgaben (Komplexität)
Folie 5-29 (381)
Aufgaben
5 Komplexität
Theoretische Informatik
5.5 Aufgaben (Komplexität)
Folie 5-30 (382)
Aufgaben
Aufgabe 5.3 (Sortieren)
Eine Liste von Zahlen soll sortiert werden.
Aufgabe 5.1 (Aufwand)
Entwickeln Sie einen Sortieralgorithmus für Listen von Zahlen
oder greifen Sie auf einen Ihnen bekannten Algorithmus wie
Bubblesort oder Nachbarvertauschen zurück.
Bisher haben wir immer vom Aufwand einer Maschine (bzw. eines
Algorithmus) gesprochen. Wie würden Sie den Aufwand eines
Problems definieren (beispielsweise Tourenplanung)?
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.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!
Aufgabe 5.4 (Komplexität)
Untersuchen Sie die Turingmaschine aus Abbildung 45. Finden Sie
eine bessere Aufwandsabschätzung.
5 Komplexität
Theoretische Informatik
5.5 Aufgaben (Komplexität)
6 Berechenbarkeit & Entscheidbarkeit
Theoretische Informatik
Folie 5-31 (383)
10. Juli 2016
Aufgaben
Inhaltsverzeichnis
Aufgabe 5.5 (Komplexität – Wachstum der Polynome)
Prüfen Sie, ob das Polynom
tatsächlich das Polynom
1
1000
· n4 − 2000 · n3
1000 · n3 + 7000 · n2
„überholt“, d.h. dass es ab einem bestimmten n immer größer ist.
1
TI – Einführung
2
Grundlagen
3
Automatentheorie
4
Logik
5
Komplexität
6
Berechenbarkeit & Entscheidbarkeit
6 Berechenbarkeit & Entscheidbarkeit
Theoretische Informatik
6 Berechenbarkeit & Entscheidbarkeit
Theoretische Informatik
Folie 6-1 (386)
10. Juli 2016
Inhaltsverzeichnis – Kapitel 6
6
Berechenbarkeit & Entscheidbarkeit
Berechenbarkeit & Entscheidbarkeit
Grammatik-Berechenbarkeit
Gödelisierung
LOOP- und WHILE-Berechenbarkeit
Churchsche These
Aussagen über Turingmaschinen und unlösbare Probleme
Zusammenfassung (Berechenbarkeit)
Aufgaben (Berechenbarkeit)
6 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
Theoretische Informatik
6 Berechenbarkeit & Entscheidbarkeit
Theoretische Informatik
Folie 6-2 (387)
Arten der Nichtberechenbarkeit
Arten der Nichtberechenbarkeit – 2
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
Folie 6-3 (388)
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?
Theoretische Informatik
6 Berechenbarkeit & Entscheidbarkeit
Theoretische Informatik
Folie 6-4 (389)
Berechenbarkeit
Berechenbarkeitsbegriffe
Frage: Kann eine Funktion mit Hilfe eines Computers berechnet
werden?
Turing-Berechenbarkeit
Grammatik-Berechenbarkeit
Einführen verschiedener Berechenbarkeitsbegriffe
WHILE-Berechenbarkeit
Vergleich der Ausdrucksstärke
6 Berechenbarkeit & Entscheidbarkeit
Folie 6-5 (390)
Theoretische Informatik
6.1 Grammatik-Berechenbarkeit
Folie 6-6 (391)
Grammatik-Berechenbarkeit
6 Berechenbarkeit & Entscheidbarkeit
Theoretische Informatik
6.1 Grammatik-Berechenbarkeit
Folie 6-7 (392)
Grammatik-Berechenbarkeit
Beispiel 6.1 (Grammatik-Berechenbarkeit)
succ (+1) : IN → IN
Definition 6.1 (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.
Unsere Grammatik sieht wie folgt aus:
R:
0S
0C
0X
SC
→
→
→
→
C1
C0
C1
e
1S
1C
1X
SX
→
→
→
→
X0
C1
X0
1
S101S →G S10X 0 →G S1C10 →G SC110 →G 110
Wir wählen hier als Begrenzungszeichen x = y = S und x 0 = y 0 = e.
6 Berechenbarkeit & Entscheidbarkeit
Theoretische Informatik
6.2 Gödelisierung
Folie 6-8 (393)
Gödelisierung
6 Berechenbarkeit & Entscheidbarkeit
Theoretische Informatik
6.2 Gödelisierung
Folie 6-9 (394)
Gödelisierung – 2
Ziel: Kodierung von Zeichenketten durch Zahlen.
Beispiel 6.2 (Kodierung)
Sei Σ = {a, b, c },
Bisher: Verarbeitung von Zeichenketten
Wir möchten auch über Funktionen über natürlichen Zahlen
reden.
Kann man Zeichenketten und Zahlen 1-1 aufeinander
abbilden?
Zahlenbasis: B = |Σ| + 1 = 4
Weisen den Elementen des Alphabets (Σ) Zahlen zu:
a → 1,
b → 2,
c → 3.
Kodierung von bbcba :
Natürliche Zahlen als Zeichenketten: 6=iiiiii
44 · 2 + 43 · 2 + 42 · 3 + 41 · 2 + 40 · 1
Aufgabe 6.1 (Kodierung)
Gibt es hier Zahlen, zu denen es keine Zeichenkette gibt?
6 Berechenbarkeit & Entscheidbarkeit
Theoretische Informatik
6.3 LOOP- und WHILE-Berechenbarkeit
Folie 6-10 (395)
6 Berechenbarkeit & Entscheidbarkeit
Theoretische Informatik
6.3 LOOP- und WHILE-Berechenbarkeit
Folie 6-11 (396)
6.3.1 LOOP-Berechenbarkeit
LOOP- und WHILE-Berechenbarkeit
LOOP-Berechenbarkeit
Die Programmiersprache LOOP erlaubt folgende syntaktische
Elemente:
Viele Probleme lassen sich nur iterativ (oder rekursiv) lösen. Folglich
muss Iteration bei der Definition von Berechenbarkeit eine Rolle
spielen.
Variablen x1 , x2 , . . .
Konstante 0
Symbole := und ;
Operatoren succ und pred
Schlüsselwörter LOOP, DO, END
6 Berechenbarkeit & Entscheidbarkeit
Theoretische Informatik
6.3 LOOP- und WHILE-Berechenbarkeit
Folie 6-12 (397)
6.3.1 LOOP-Berechenbarkeit
6 Berechenbarkeit & Entscheidbarkeit
Theoretische Informatik
6.3 LOOP- und WHILE-Berechenbarkeit
Folie 6-13 (398)
6.3.1 LOOP-Berechenbarkeit
LOOP-Berechenbarkeit
LOOP-Berechenbarkeit
Folgende Programme sind erlaubt:
Ausgabevariable . . . x0
Wertzuweisung: (n ∈ IN):
I x := succ(x )
(= xj + 1)
i
j
I xi := pred(xj )
(= max(0, xj − 1))
x1 , . . . , xk . . . Eingabe-Variablen
Restliche Variablen . . . Hilfsvariablen, die beim Programmstart mit
0 belegt sind.
das leere Programm Λ
Komposition: Sind P1 und P2 LOOP-Programme, so auch P1 ; P2
(Hintereinanderausführen von P1 und P2 .)
P k . . . P ; . . . ; P, also das k-malige Ausführen von P
Ist P ein LOOP-Programm, so auch LOOP xi DO P END
(P wird xi -mal ausgeführt.)
LOOP ist eine Schleife, die xi -mal ausgeführt.
6 Berechenbarkeit & Entscheidbarkeit
6.3 LOOP- und WHILE-Berechenbarkeit
Theoretische Informatik
Folie 6-14 (399)
6.3.1 LOOP-Berechenbarkeit
LOOP-Berechenbarkeit
P 0 ist das leere Programm Λ.
6 Berechenbarkeit & Entscheidbarkeit
Theoretische Informatik
6.3 LOOP- und WHILE-Berechenbarkeit
Folie 6-15 (400)
6.3.1 LOOP-Berechenbarkeit
LOOP-Berechenbarkeit
LOOP-Sprache wirkt sehr simpel.
Wie bekommt man die natürlichen Zahlen?
Beispiel 6.3 (LOOP)
succ(0) = 1
Können wir die Addition als LOOP-Funktion programmieren?
Folgendes Programm berechnet die Addition x1 + x2 und gibt das
Resultat auf x0 zurück.
succ(succ(0)) = 2
x0 := x1 ; LOOP x2 DO x0 := succ(x0 ) END
Im folgenden dürfen wir also die Addition + auch als LOOP-Funktion
verwenden.
succ(succ(succ(0))) = 3
succ(succ(succ(succ(0)))) = 4
...
Geht IF-THEN in LOOP? Ja. Hier eine Implementierung
für: if (xi = 0) then P end :
xj := 1;
LOOP xi DO xj := 0 END;
LOOP xj DO P END;
6 Berechenbarkeit & Entscheidbarkeit
Theoretische Informatik
6.3 LOOP- und WHILE-Berechenbarkeit
Folie 6-16 (401)
6.3.2 WHILE-Programme
6 Berechenbarkeit & Entscheidbarkeit
Theoretische Informatik
6.3 LOOP- und WHILE-Berechenbarkeit
Folie 6-17 (402)
6.3.2 WHILE-Programme
WHILE-Programme
WHILE-Programme
Beobachtung: Nicht jede Funktion ist LOOP-berechenbar.
Beispiel 6.4 (Ackermannfunktion)
Da das LOOP-Konzept nicht ausreicht, erweitern wir die
LOOP-Programme zu WHILE-Programmen:
Die Ackermann-Funktion ist nicht LOOP-berechenbar.
ack (0, y )
ack (x + 1, 0)
ack (x + 1, y + 1)
Jedes LOOP-Programm ist auch ein WHILE-Programm.
= y +1
= ack (x , 1)
= ack (x , ack (x + 1, y ))
Ist P ein WHILE-Programm, dann auch
WHILE xi > 0 DO P END
In alternativer Schreibweise:
ack (x , y ) =

falls x = 0
 y +1
ack (x − 1, 1)
falls x > 0 und y = 0

ack (x − 1, ack (x , y − 1)) falls x , y > 0
Mit den WHILE-Programmen sind wir nun in der Leistungsklasse der
Turing-Maschinen.
(6.1)
6 Berechenbarkeit & Entscheidbarkeit
6.3 LOOP- und WHILE-Berechenbarkeit
Theoretische Informatik
Folie 6-18 (403)
6 Berechenbarkeit & Entscheidbarkeit
Theoretische Informatik
6.4 Churchsche These
Folie 6-19 (404)
6.3.2 WHILE-Programme
Aufgaben
Leistungskraft der Berechenbarkeitsbegriffe
1. Hälfte des 20. Jhdt.: etliche Berechenbarkeitsbegriffe
Welches Konzept war das stärkste?
; Immer wieder in der Leistungsklasse der TM.
Aufgabe 6.2 (LOOP)
Vorausgesetzt, dass die Addition LOOP-berechenbar ist, ist dann die
Multiplikation LOOP-berechenbar?
Satz 6.2 (Äquivalenz der Berechenbarkeitsbegriffe)
Jede Turing-berechenbare Funktion ist Grammatik-berechenbar.
f (n1 , n2 ) = n1 · n2
Jede Grammatik-berechenbare Funktion ist auch
WHILE-berechenbar.
Begründen Sie Ihre Aussage!
Jede WHILE-berechenbare Funktion ist auch
Turing-berechenbar.
Also: Alle 3 Berechenbarkeitsbegriffe sind äquivalent.
6 Berechenbarkeit & Entscheidbarkeit
6.4 Churchsche These
Theoretische Informatik
Folie 6-20 (405)
Churchsche These
6 Berechenbarkeit & Entscheidbarkeit
Theoretische Informatik
6.5 Aussagen über Turingmaschinen und unlösbare Probleme
Folie 6-21 (406)
Aussagen über Turing-Maschinen
Wir möchten Turing-Maschinen, die Aussagen über
Turing-Maschinen machen können.
Zu jeder intuitiv berechenbaren Funktion gibt es eine Turing-Maschine.
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.5 Aussagen über Turingmaschinen und unlösbare Probleme
Theoretische Informatik
Folie 6-22 (407)
Aussagen über Turing-Maschinen
6 Berechenbarkeit & Entscheidbarkeit
Theoretische Informatik
6.5 Aussagen über Turingmaschinen und unlösbare Probleme
Folie 6-23 (408)
Das Halteproblem
Existiert eine Turing-Maschine, die entscheidet, ob eine
Turing-Maschine TM’ bei der Eingabe einer Zeichenkette w anhält?
Satz 6.3 (Unentscheidbarkeit)
Hält TM’ bei Ein− TM
gabe von w an?
Es gibt keinen Algorithmus zur Entscheidung, ob eine beliebige
Turing-Maschine M eine (beliebige) Zeichenkette w akzeptiert.
TM’
Es gilt nicht, dass zu jeder Turing-Maschine M ein Algorithmus
existiert, der entscheidet, ob M eine (beliebige) Zeichenkette w
akzeptiert.
Eingabe
yes/no
Eingaben
w
Abb. 48: Halteproblem
Annahme: Es gibt eine solche TM. Diese TM berechnet f :
f (i , x ) =
1 falls die TM i bei Eingabe von x anhält
0 sonst
6 Berechenbarkeit & Entscheidbarkeit
Theoretische Informatik
6.5 Aussagen über Turingmaschinen und unlösbare Probleme
Folie 6-24 (409)
Das Halteproblem
; Wie verhält sich TM” bei der Eingabe von j?
berechnet f (v , v )
Würde TM” anhalten, so muss f (j , j ) = 1 gelten, d.h. TM” hält
nicht an.
Falls das Resultat = 0 ist, wird eine 0 ausgegeben und
angehalten,
Hält TM” nicht an, dann wäre f (j , j ) = 0, also hält TM” an.
sonst geht TM” in einen unendlichen Zyklus.
Widerspruch! Also: Annahme, dass f existiert, ist falsch.
Theoretische Informatik
6.5 Aussagen über Turingmaschinen und unlösbare Probleme
Folie 6-26 (411)
Unlösbare Probleme
6 Berechenbarkeit & Entscheidbarkeit
Theoretische Informatik
6.5 Aussagen über Turingmaschinen und unlösbare Probleme
Folie 6-27 (412)
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?
Sind 2 TMs äquivalent, d.h. leisten sie dasselbe?
Theoretische Informatik
6.5 Aussagen über Turingmaschinen und 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).
Sei eine TM gegeben. Ist die durch sie akzeptierte Sprache
regulär, ist sie kontext-frei, ist sie Turing-entscheidbar?
Folie 6-28 (413)
Die Busy-Beaver-Funktion
6 Berechenbarkeit & Entscheidbarkeit
Theoretische Informatik
6.5 Aussagen über Turingmaschinen und unlösbare Probleme
Folie 6-29 (414)
Weitere Begriffe zur Berechenbarkeit
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
Folie 6-25 (410)
Kodierung dieser TM” : j.
Eingabe: Zeichenkette v
6 Berechenbarkeit & Entscheidbarkeit
Theoretische Informatik
6.5 Aussagen über Turingmaschinen und unlösbare Probleme
Das Halteproblem
Konstruieren eine TM” :
6 Berechenbarkeit & Entscheidbarkeit
6 Berechenbarkeit & Entscheidbarkeit
Theoretische Informatik
6.5 Aussagen über Turingmaschinen und unlösbare Probleme
Folie 6-30 (415)
Semientscheidbarkeit – Beispiel
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.5 Aussagen über Turingmaschinen und unlösbare Probleme
Folie 6-31 (416)
Unentscheidbarkeit – diophantische Gleichungen
Beispiel 6.6 (Diophantische Gleichungen)
Beispiel 6.5 (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.
Wir betrachten das 10. Hilbertsche Problem, welches die Frage stellt,
ob man immer entscheiden kann, ob ein Gleichungssystem wie:
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
dies nicht entscheiden.
6 Berechenbarkeit & Entscheidbarkeit
Theoretische Informatik
6.5 Aussagen über Turingmaschinen und unlösbare Probleme
Folie 6-32 (417)
Sprachen und Berechenbarkeit
6 Berechenbarkeit & Entscheidbarkeit
6.5 Aussagen über Turingmaschinen und unlösbare Probleme
Theoretische Informatik
Folie 6-33 (418)
Sprachen und Berechenbarkeit
abzählbare Sprachen
Abzählbarkeit Elementares Kriterium: man kann die Menge abzählen.
Typ 0 aufzählbare Sprachen
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?
entscheidbare Sprachen
Typ 1 kontext−sensitive Sprachen
Typ 2
kontext−frei
Typ 3
regulär
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.
Abb. 49: Sprachhierarchie
6 Berechenbarkeit & Entscheidbarkeit
Theoretische Informatik
6.6 Zusammenfassung (Berechenbarkeit)
Folie 6-34 (419)
Das sollten Sie wissen . . .
Aufgabe 6.4 (Entscheidbarkeit)
Churche These
Ist jede endliche Menge Turing-entscheidbar? Begründen Sie Ihre
Aussage!
Lösbare/Unlösbare Probleme, Halteproblem
Theoretische Informatik
Folie 6-36 (421)
Aufgaben
Aufgabe 6.5 (Abgeschlossenheit)
Zeigen Sie, dass die Menge der Turing-entscheidbaren Sprachen
abgeschlossen ist bezüglich
Komplement-Bildung
Durchschnitt
Kleene star.
Skizzieren Sie dazu passende Turing-Maschinen!
Folie 6-35 (420)
Kodieren Sie Zeichenketten über Σ = {a, b, c , d , e} mittels
Gödelisierung!
Berechenbarkeitsmodelle: LOOP/WHILE, Grammatiken,
Turing-Berechenbarkeit
Vereinigung
Theoretische Informatik
Aufgabe 6.3 (Kodierung)
Gödelisierung
6.7 Aufgaben (Berechenbarkeit)
6.7 Aufgaben (Berechenbarkeit)
Aufgaben
Zusammenfassung 6.4 (Berechenbarkeit)
6 Berechenbarkeit & Entscheidbarkeit
6 Berechenbarkeit & Entscheidbarkeit
Herunterladen