Beruflich Dokumente
Kultur Dokumente
Richard Göbel
1
Fragestellungen
2
Turingmaschine – das einfachste
Maschinenmodell
3
Turingmaschine – ein einfaches Maschinenmodell
Arbeitsband
Schreib/Lesekopf
Zustand
Bedingungsteil Aktionsteil
alter Zustand Zeichen Kopf neuer Zustand Aktion
6
Aufwand für das Inkrementieren einer Binärzahl
_ Alternative Maschinenmodelle ermögliche eine genauere Analyse der Komplexität von Aufgabenstellungen
_ Beispiel: Random Access Machine (RAM)
_ Die Turingmaschine reicht aber trotzdem für gröbere Analysen (zum Beispiel polynomialer vs. exponentieller
Zeitaufwand)
7
Random Access Machine
Eingabeband Ausgabeband
Eingabezeiger Ausgabezeiger
Programm Speicher
1. Akkumulator 1.
2. 2.
3. 3.
4. 4.
Befehlszähler
Zentrale
Recheneinheit
8
Befehle der RAM
• c Zeichen (Character)
• i Position im Speicher
• p Befehlsnummer (Position)
• v Wert (Value)
9
Lesen einer binären Zahl
1. dload 0 8. store 1
2. store 1 9. load 2
3. read 10. if ‘0’ then 3
4. if ‘#’ then 15 11. dload 1
5. store 2 12. add 1
6. load 1 13. store 1
7. add 1 14. goto 3
15. end
10
Schreiben einer binären Zahl
11
Kann die Turingmaschine noch weiter vereinfacht warden?
Arbeitsband Arbeitsband
streichen
Schreib/Lesekopf
Zustand
Bedingungsteil Aktionsteil
Eingabezeichen statt Ausgabezeichen
alter Zustand Zeichen Kopf
Eingabezeichen neuer Zustand Aktion
Ausgabezeichen
Kopfzeichen lesen statt Aktion
13
Endlicher Automat – Führende Nullen unterdrücken
Bedingung Aktion
1/1 S1 1 S2 1
S2 0 S2 0
0/0 S2 1/1
S2 1 S2 1
14
Vergleich endlicher Automat und Turimgmaschine
15
Mächtigkeit eines Maschinenmodells
16
Aufgabenstellung als Funktion
_ Ein Maschinenmodell mit einem Programm definiert eine Funktion f auf der Menge von Zeichenketten
f : A* Pf A*
F = { fp | p Pf }
_ Bemerkung
_ Nicht jede Funktion terminiert für jede Eingabe
_ Viele Funktionen sind also nur partiell definiert
_ Achtung: In der Mathematik muss eine Funktion in der Regel total sein!
17
Methoden für den Vergleich von Maschinen
_ Finde für jedes Programm der Maschine A ein äquivalentes Programm der Maschine B
_ Zwei Programme sind äquivalent, wenn sie für jede Eingabe dieselbe Ausgabe liefern
Berücksichtigt auch
w, v A*: g(w, pg) = v f(w, pf) = v Eingaben, die keine
_ In diesem Fall wäre B mindestens so mächtig wie A Ausgaben liefern.
_ Simuliere die Maschine A auf der Maschine B
_ Ordne jedem Speicher auf Maschine A entsprechenden Speicher auf Maschine B zu
_ Definiere Sequenzen von Befehlen auf Maschine B für jeden Befehl auf Maschine A
18
Ergebnisse der Vergleiche
_ Der endliche Automat hat eine geringere Mächtigkeit als die Turingmaschine
_ Beispiel geklammerter Ausdruck, Klammerstruktur korrekt?
19
Folgerungen
_ Die Turingmaschine (RAM, etc.) scheint bezüglich der Mächtigkeit maximal zu sein.
_ Die Turingmaschine scheint ein Modell für die Informationsverarbeitung an sich zu sein!
_ Church-Turing-These (1936):
Jede im intuitiven Sinne berechenbare Funktion ist Turing-berechenbar.
20
Existieren vielleicht auch unlösbare Aufgabenstellungen?
21
Beispiel einer Eingabe für die RAM
1 r e a d ; 2 i f 1 t h e n 2 ;
3 w r i t e 0 ; 4 e n d ; / 1 /
22
Programm U für das Halteproblem - Analyse
23
Menge aller Funktionen
24
Menge aller denkbaren Programme
25
Vergleich der Mengen
26
Gruppen unlösbarer Probleme
27
Beispiel für verschiedene unlösbare Probleme
28
Schwierige Probleme
29
Diskussion –was wird gemessen?
30
Übung schwierige Aufgabenstellungen
31
Ansatz - Zielsetzung
32
Ober- und Untergrenze einer Aufgabenstellung bestimmen
33
Erfüllbarkeit logischer Ausdrücke
34
Rucksackproblem
35
Hamiltonkreis
_ Problem des Handlungsreisenden: Finde den kürzesten Hamiltonkreis für einen Graphen mit gewichteten Kanten
36
Transformation - 3SAT mod. Rucksackproblem
37
Transformation - Themen
38
Ergebnisse
39
Übung Transformation von Aufgabenstellungen
40
Diskussion
41
Zwei bekannte Klassen
Zeitaufwand für die Lösung einer Aufgabenstellung wird durch ein Polygon begrenzt:
Rechenoperation wie Addition und Subtraktion
Sortieren
...
42
Nichtdeterministische Turingmaschine
43
Klassen von Aufgabenstellungen - Begriffe
_ NP-Vollständigkeit – Wikipedia
_ NP-Schwere – Wikipedia
44
Komplexitätsskala
NP-hard
Exponentieller
NP-complete
Zeitaufwand
Polynomialer P
Zeitaufwand
Linearer Zeitaufwand
45
Bedeutung für die Praxis
_ Vermeide
_ unlösbare Probleme
_ NP-schwere Probleme
_ Ändere ggf. die Spezifikation . . .
_ . . . oder finde einen einfach zu lösenden Spezialfall
46
Merkmale schwieriger Aufgabenstellungen
47