Theoretische Informatik Wintersemester 2004/05 - fbi.h

Werbung
Theoretische Informatik
Theoretische Informatik
Wintersemester 2004/05
Steffen Lange
1
Theoretische Informatik
Einordnung/Motivation
Theoretische Informatik
Logik
Berechnungstheorie
formale Sprachen/Automatentheorie
Komplexitätstheorie
2
Theoretische Informatik
Einordnung/Motivation
Berechnungstheorie
Welcherart Probleme sind überhaupt mit Hilfe eines
Computers lösbar?
Von welchen Problemen sollte man die Finger lassen?
...
Geben Sie einem Computer die richtige Software und er wird
tun, was immer Sie wünschen. Die Maschine selbst mag ihre
Grenzen haben, doch für die Möglichkeiten von Software gibt
es keine Grenzen.
Time-Magazine, 1984
3
Theoretische Informatik
Einordnung/Motivation
Vortrag von David Hilbert auf dem Internationalen
Mathematikerkongreß 1900 in Paris
Problem Nr. 10: Eine diophantische Gleichung mit irgendwelchen
Unbekannten und mit ganzen rationalen Zahlenkoeffizienten sei
vorgelegt: “Man soll ein Verfahren angeben, nach welchem sich
mittels einer endlichen Anzahl von Operationen entscheiden läßt,
ob diese Gleichung in den ganzen Zahlen lösbar ist.”
4
Theoretische Informatik
Einordnung/Motivation
Es gibt keinen Algorithmus, der folgendes leistet:
ƒ
der Algorithmus akzeptiert als Eingabe eine Beschreibung einer
diophantischen Gleichung mit irgendwelchen Unbekannten und mit
ganzen rationalen Zahlenkoeffizienten
ƒ
falls diese Gleichung eine Lösung in den ganzen Zahlen hat, so liefert
der Algorithmus das Resultat „ja“
ƒ
andernfalls liefert der Algorithmus das Resultat „nein“
5
Theoretische Informatik
Einordnung/Motivation
gegeben:
ƒ
ƒ
Beschreibung von endlich vielen Fliesentypen (Quadrate
unterteilt in vier farbige Dreiecke)
beliebig viele Fliesen jedes Typs
Frage: Kann man die unendliche Ebene mit Fliesen dieser Typen
kacheln?
Randbedingung
ƒ
ƒ
Fliesen haben eine feste Orientierung
Farben aneinanderstoßender Fliesen müssen
übereinstimmen
6
Theoretische Informatik
Einordnung/Motivation
Fliesentypen, mit denen es klappt
7
Theoretische Informatik
Einordnung/Motivation
Fliesentypen, mit denen es nicht klappt
8
Theoretische Informatik
Einordnung/Motivation
Es gibt keinen Algorithmus, der folgendes leistet:
ƒ
der Algorithmus akzeptiert als Eingabe eine Beschreibung von
endlich vielen Fliesentypen
ƒ
falls sich die unendliche Fläche mit Fliesen dieser Typen kacheln
läßt, so liefert der Algorithmus das Resultat „ja“
ƒ
andernfalls liefert der Algorithmus das Resultat „nein“
9
Theoretische Informatik
Einordnung/Motivation
Collatz Problem: Wird für jedes n ≥1 die Zahl 1 ausgegeben?
int n;
cin >> n;
while( n!= 1 )
if ( n%2==0 ) n = n/2; else n = 3n+1;
cout << n;
10
Theoretische Informatik
Einordnung/Motivation
Collatz Problem: Wird für jedes n ≥1 die Zahl 1 ausgegeben?
int n;
cin >> n;
while( n!= 1 )
if ( n%2==0 ) n = n/2; else n = 3n+1;
cout << n;
Bisher ist keine Antwort auf diese Frage bekannt!!!
11
Theoretische Informatik
Einordnung/Motivation
Komplexitätstheorie
... Einschränkung auf lösbare Probleme
Anhand welcher Kriterien beurteilt man die Güte von Algorithmen
zur Lösung eines Problems?
Wie gut können Algorithmen zur Lösung eines Problems sein?
Kann man einem Problem ansehen, ob es einen effizienten
Algorithmus zu seiner Lösung gibt?
...
12
Theoretische Informatik
Einordnung/Motivation
Problem 1
Input: Eine Straßenkarte mit Enfernungsangaben an Straßenabschnitten,
zwei Städte A und B auf der Karte.
Output: Eine “Reiseroute” minimaler Länge, die von A nach B geht und
die durch jede Stadt genau einmal führt.
Problem 2
Input: Eine Straßenkarte mit Enfernungsangaben an Straßenabschnitten,
zwei Städte A und B auf der Karte.
Output: Eine “Reiseroute” minimaler Länge, die von A nach B geht.
13
Theoretische Informatik
Anstelle einer Motivation …
6
a
3
b
4
10
A
9
10
4
c
7
5
9
B
4
2
7
e
d
4
14
Theoretische Informatik
Anstelle einer Motivation …
6
a
3
b
4
10
A
9
10
4
c
7
5
9
B
4
2
7
e
d
4
15
Problem 1
Theoretische Informatik
Anstelle einer Motivation …
6
a
3
b
4
10
A
9
10
4
c
7
5
9
B
4
2
7
e
d
4
16
Problem 2
Theoretische Informatik
Anstelle einer Motivation …
6
a
3
b
4
10
A
9
10
4
c
7
5
9
B
4
2
7
e
d
4
weiß: ein kürzester Weg von A zu diesem Knoten wurde
bereits gefunden
17
Problem 2
Theoretische Informatik
Anstelle einer Motivation …
6
a
3
b
4
10
A
9
10
4
c
7
5
9
B
4
2
7
e
d
4
weiß: ein kürzester Weg von A zu diesem Knoten wurde
bereits gefunden
18
Problem 2
Theoretische Informatik
Anstelle einer Motivation …
6
a
3
b
4
10
A
9
10
4
c
7
5
9
B
4
2
7
e
d
4
weiß: ein kürzester Weg von A zu diesem Knoten wurde
bereits gefunden
19
Problem 2
Theoretische Informatik
Anstelle einer Motivation …
6
a
3
b
4
10
A
9
10
4
c
7
5
9
B
4
2
7
e
d
4
weiß: ein kürzester Weg von A zu diesem Knoten wurde
bereits gefunden
20
Problem 2
Theoretische Informatik
Anstelle einer Motivation …
6
a
3
b
4
10
A
9
10
4
c
7
5
9
B
4
2
7
e
d
4
weiß: ein kürzester Weg von A zu diesem Knoten wurde
bereits gefunden
21
Problem 2
Theoretische Informatik
Anstelle einer Motivation …
6
a
3
b
4
10
A
9
10
4
c
7
5
9
B
4
2
7
e
d
4
weiß: ein kürzester Weg von A zu diesem Knoten wurde
bereits gefunden
22
Problem 2
Theoretische Informatik
Anstelle einer Motivation …
Problem 2
Ein kürzester Weg von A nach B kann in O(n2) vielen Schritten
gefunden werden.
Problem 1
Ein Algorithmus, der auf der Idee basiert, mittels “Durchprobieren” zum
Ziel zu kommen, benötigt O(n!) (* = O(2poly(n)) *) viele Schritte. Ein
besserer Algorithmus ist bisher nicht bekannt.
n = Anzahl der Städte
23
Theoretische Informatik
Anstelle einer Motivation …
Arbeitszeit eines Rechners mit 106 Op/sec
n = Anzahl der Städte
24
Theoretische Informatik
Anstelle einer Motivation …
Problemgröße, die in einer Stunde bewältigt
werden kann
n = Anzahl der Städte
25
Theoretische Informatik
Einordnung/Motivation
formale Sprachen/Automatentheorie
„Kommunikation“ Mensch <-> Maschine
höhere Programmiersprache
Maschinensprache
Aufgabe: Transformation eines Programms in einer höheren
Programmiersprache in ein „äquivalentes“ Programm in
Maschinensprache
26
Theoretische Informatik
Einordnung/Motivation
Quellprogramm
lexikalische Analyse
Folge von Tokens
syntaktische Analyse
Ableitungsbaum
semantische Analyse und
Codegenerierung
Zielprogramm
Codeoptimierung
optimiertes Zielprogramm
27
Theoretische Informatik
Einordnung/Motivation
präzise Beschreibung der zur Verfügung stehenden Ausdrucksmittel
Was kann benutzen werden?
Was muß übersetzt (akzeptiert) werden?
28
Theoretische Informatik
Einordnung/Motivation
Beispiel: als zulässige Bezeichner kommen Zeichenketten in
Frage, die nur aus Nullen und Einsen bestehen und mit drei
Einsen enden
Aufgabe: Maschine soll erkennen, ob ein verwendeter
Bezeichner zulässig ist
Fall 1: nur endlich viele Bezeichner
Æ Tabelle
Fall 2: unendlich viele Bezeichner
Æ Algorithmus
kommt eigentlich nicht vor !!!
29
Theoretische Informatik
Einordnung/Motivation
Beispiel: als zulässige Bezeichner kommen Zeichenketten in
Frage, die nur aus Nullen und Einsen bestehen und mit drei
Einsen enden
Aufgabe: Maschine soll erkennen, ob ein verwendeter
Bezeichner zulässig ist
Fall 1: nur endlich viele Bezeichner
Æ Tabelle
nicht immer praktikabel !!!
Fall 2: unendlich viele Bezeichner
Æ Algorithmus
30
Theoretische Informatik
Gliederung der Vorlesung
0. Grundbegriffe
1. Formale Sprachen/Automatentheorie
1.1. Grammatiken
1.2. Reguläre Sprachen
1.3. Kontext-freie Sprachen
2. Berechnungstheorie
2.1. Entscheidungsprobleme
2.2. Turing-Maschinen (TM)
2.3. Die Churchsche These
2.4. Unentscheidbarkeit
3. Komplexitätstheorie
3.1. Nicht-deterministische TM
3.1 Komplexitätsmaße
3.2. Das P=NP? Problem
31
Theoretische Informatik
Organisatorisches
•
Vorlesung
•
wöchentlich (zwei- bzw. vierstündig)
•
Folien im Netz
http://www.fbi.fh-darmstadt.de/~slange
•
Übung
•
14-tägig (zweistündig; erste Übungen in der nächsten
Woche; Übungsgruppeneinteilung siehe oben)
•
Sprechstunde
•
wöchentlich (Dienstag 13:00 – 14:00 Uhr, D15, 207a)
32
Theoretische Informatik
Literatur
•
•
•
•
J.E. Hopcroft, J.E. Ullmann, Einführung in die Automatentheorie,
formale Sprachen und Komplexitätstheorie, Addison-Wesley, Bonn,
1990.
U. Schöning, Theoretische Informatik – kurz gefaßt, Spektrum
Akademischer Verlag, Heidelberg, 1997.
Alexander Asteroth, Christel Baier, Theoretische Informatik, Perason
Studium, München, 2002
Ulrich Hedtstück, Einführung in die Theoretische Informatik,
Oldenburg Verlag, München, 2000
33
Herunterladen