Berechenbarkeit - PowerPoint PPT Presentation

About This Presentation
Title:

Berechenbarkeit

Description:

Title: Objektorientierte Programmierung Last modified by: Klaus Becker Document presentation format: Bildschirmpr sentation Other titles: Arial Tahoma Wingdings ... – PowerPoint PPT presentation

Number of Views:52
Avg rating:3.0/5.0
Slides: 106
Provided by: informati70
Category:

less

Transcript and Presenter's Notes

Title: Berechenbarkeit


1
Berechenbarkeit
  • Klaus Becker
  • 2004

2
Die Möglichkeiten von Software
Herausgeber einer Software-Zeitschrift
Geben Sie einem Computer die richtige Software,
und er wird tun, was immer Sie wünschen. Die
Maschine selbst mag Grenzen haben, doch für die
Möglichkeiten von Software gibt es keine
Grenzen. (zitiert nach D. Harel Das Affenpuzzle
und weitere bad news aus der Computerwelt)
3
Teil 1
Berechenbarkeit als Problem
4
Grenzen von Software
Grundsatzfrage
Gibt es Grenzen für die Möglichkeiten von
Software?
Daten
Software
?
5
Der Kern von Software
Algorithmen der Kern von Software
Wo liegen die Grenzen algorithmisch gesteuerter
Systeme? Gibt es Grenzen des algorithmisch
Machbaren?
6
Die Suche nach Grenzen
Grundsatzfrage
Gibt es Grenzen für die Möglichkeiten von
Software?Gibt es Grenzen für die Möglichkeiten
von Algorithmen?
Möglichkeitsnachweis
Unmöglichkeitsnachweis
Man entwickelt einen Algorithmus und
implementiert die zugehörige Software.
Man muss zeigen, dass es keinen Algorithmus gibt,
der das gestellte Problem löst. D. h. Jeder
mögliche Algorithmus löst nicht das gestellte
Problem.
Vorgehensweise
Um Aussagen über alle möglichen Algorithmen zu
treffen, muss zunächst der Algorithmusbegriff
präzisiert werden.
7
Was ist ein Algorithmus ?
Einfache Frage viele Antworten
Aho, Hopcroft, Ullman Ein Algorithmus ist eine
endliche Folge von Instruktionen, die alle
eindeutig interpretierbar und mit endlichem
Aufwand in endlicher Zeit ausführbar sind.
Algorithmen enthalten Instruktionen zur
Formulierung von (beliebig vielen) Wiederholungen
anderer Instruktionen. Unabhängig von den Werten
der Eingangsgrößen endet ein Algorithmus stets
nach endlich vielen Instruktionsschritten. Ein
Programm ist dann ein Algorithmus, wenn für alle
möglichen Eingabewerte sichergestellt ist, dass
keine Instruktion unendlich oft wiederholt wird.
Kronsjö Ein Verfahren, beschrieben durch eine
endliche Menge von eindeutig interpretierbaren
Regeln, das eine endlich lange Folge von
Operationen zur Lösung eines Problems oder einer
speziellen Problemklasse beschreibt, wird
Algorithmus genannt. (http//www.swe.uni-linz.ac.
at/teaching/lva/ss02/algo1_vorlesung/hinweise.html
)
8
Was ist ein Algorithmus ?
Einfache Frage viele Antworten
Knuth Ein Algorithmus muss nach endlich vielen
Schritten enden. Jeder Schritt eines Algorithmus
muss exakt beschrieben sein die in ihm
verlangten Aktionen müssen präzise formuliert und
in jedem Falle eindeutig interpretierbar sein.
Ein Algorithmus hat keine, eine oder mehrere
Eingangsgrößen, d.h. Größen, die von ihm benutzt
und deren Werte vor Beginn seiner Ausführung
festgelegt werden müssen. Ein Algorithmus hat
eine oder mehrere Ergebnisgrößen, d.h. Größen,
deren Werte in Abhängigkeit von den
Eingangsgrößen während der Ausführung des
Algorithmus berechnet werden. Ein Algorithmus
muss so geartet sein, dass die in ihm verlangten
Aktionen im Prinzip von einem Menschen in
endlicher Zeit mit Papier und Bleistift
ausgeführt werden können. (http//www.swe.uni-linz
.ac.at/teaching/lva/ss02/algo1_vorlesung/hinweise.
html)
9
Was ist ein Algorithmus ?
Einfache Frage viele Antworten
Bauer, Goos Ein Algorithmus ist eine präzise,
d.h. in einer festgelegten Sprache abgefasste,
endliche Beschreibung eines allgemeinen
Verfahrens unter Verwendung ausführbarer
elementarer (Verarbeitungs-) Schritte.
Rechenberg Ein Algorithmus ist ein endliches
schrittweises Verfahren zur Berechnung gesuchter
aus gegebenen Größen, in dem jeder Schritt aus
einer Anzahl ausführbarer eindeutiger Operationen
und einer Angabe über den nächsten Schritt
besteht. (http//www.swe.uni-linz.ac.at/teaching/l
va/ss02/algo1_vorlesung/hinweise.html)
10
Der intuitive Algorithmusbegriff
Definition
Ein Algorithmus ist eine Folge von
Handlungsanweisungen zur Lösung eines Problems,
die folgende Anforderungen erfüllt -
Endlichkeit Die Anweisungsfolge ist durch einen
endlichen Text beschrieben. - Ausführbarkeit Die
Anweisungen sind für den Empfänger (Mensch oder
Maschine) verständlich formuliert und
ausführbar. - Eindeutigkeit An jeder Stelle ist
der Ablauf der Anweisungen eindeutig
festgelegt. - Allgemeinheit Die Anweisungen
besitzen Gültigkeit für die Lösung einer ganzen
Problemklasse, nicht nur für ein Einzelproblem.
(nach Gasper, Leiß, Spengler, Stimm Technische
und theoretische Informatik. bsv)
11
Unzulänglichkeit informeller Klärungen
Definition
Ein Algorithmus ist eine Folge von
Handlungsanweisungen zur Lösung eines Problems,
die folgende Anforderungen erfüllt -
Endlichkeit Die Anweisungsfolge ist durch einen
endlichen Text beschrieben. - Ausführbarkeit Die
Anweisungen sind für den Empfänger (Mensch oder
Maschine) verständlich formuliert und
ausführbar. - Eindeutigkeit An jeder Stelle ist
der Ablauf der Anweisungen eindeutig
festgelegt. - Allgemeinheit Die Anweisungen
besitzen Gültigkeit für die Lösung einer ganzen
Problemklasse, nicht nur für ein Einzelproblem.
Was heißt das?
Die oben aufgeführte Begriffsklärung ist keine
präzise Definition im mathematischen Sinne.
12
Ziel Präzisierung
Definition
Ein Algorithmus ist eine Folge von
Handlungsanweisungen zur Lösung eines Problems,
die folgende Anforderungen erfüllt -
Endlichkeit Die Anweisungsfolge ist durch einen
endlichen Text beschrieben. - Ausführbarkeit Die
Anweisungen sind für den Empfänger (Mensch oder
Maschine) verständlich formuliert und
ausführbar. - Eindeutigkeit An jeder Stelle
ist der Ablauf der Anweisungen eindeutig
festgelegt. - Allgemeinheit Die Anweisungen
besitzen Gültigkeit für die Lösung einer ganzen
Problemklasse, nicht nur für ein Einzelproblem.
Muss präzisiert werden
Ziel ist es, die informelle Begriffsklärung durch
eine präzise Definition im mathematischen Sinne
zu ersetzen.
13
Präzisierungsansätze
Grundschema eines algorithmisch gesteuerten
Systems
Eingaben
Prozessor
Anweisungen
Ausgaben
Präzisierungsansätze
Maschinenorientierter Ansatz Präzisierung des
Prozessors Zuordnungsorientierter Ansatz
Präzisierung der E/A-Zuordnungen Anweisungsorienti
erter Ansatz Präzisierung der zulässigen
Anweisungen
14
Grundidee Berechnungsmodelle
Präzisierung mit Berechnungsmodellen
Die Festlegung, was ein Algorithmus ist, bezieht
sich auf ein streng definiertes
Berechnungsmodell, das genau vorschreibt, was
unter ausführbar zu verstehen ist.
Grundlegende Schwierigkeit des Präzisierungsverfah
rens
Wird mit Hilfe des Berechnungsmodells wirklich
der intuitive Algorithmusbegriff adäquat erfasst?
15
Teil 2
Kara als Berechnungsmodell
16
Kara
  • Kara ist ein Marienkäfer.
  • Kara lebt in einer Welt mit
  • unbewegliche Baumstümpfen,
  • Pilzen, die Kara verschieben kann und
  • Kleeblättern, die Kara legen und aufnehmen kann.

Lit. Reichert / Nievergelt / Hartmann
Programmieren mit Kara, Springer-Verlag
2004.Software www.educeth.ch/karatojava
17
Kara
Kara hat Sensoren, mit denen er/sie die Umwelt
wahrnimmt
Kara versteht einige Befehle, die er/sie folgsam
ausführt
stehe ich vor einem Baumstumpf?
mache einen Schritt vorwärts!
drehe um 90 nach links!
ist links von mir ein Baumstumpf?
ist rechts von mir ein Baumstumpf?
drehe um 90 nach rechts!
stehe ich vor einem Pilz?
lege ein Kleeblatt hin!
stehe ich auf einem Kleeblatt?
nimm ein Kleeblatt auf!
18
Kara soll ein Problem lösen
Kara soll bis zum nächsten Baumstumpf, einmal um
ihn herum und anschließend zurück zum
Ausgangspunkt laufen.
AZ
...
ZZ
19
Kara-Algorithmus
Bedingung
Aktionen
Akt. Zustand
Neuer Zustand
markieren
hin
hin
nein
hin
hin
ja
zurück
...
zurück
nein
zurück
zurück
ja
stop
Vor Baum? nein / vorwärts
Auf Blatt? nein / vorwärts
Vor Baum? ja / links ...
Auf Blatt? ja / links links
/ Blatt hinlegen
mark.
hin
stop
zurück
20
Übung
Entwickeln Sie einen Kara-Algorithmus zur Lösung
des Problems
Kara sieht in Blickrichtung eine beliebig lange
Baumstumpfreihe.
AZ
Kara umläuft die Baumstümpfe und bleibt stehen.
ZZ
21
Übung
Entwickeln Sie einen Kara-Algorithmus zur Lösung
des Problems
Kara umläuft die Baumstumpfreihe und bleibt in
der Verlängerung seines Wegs stehen.
Kara sieht in Blickrichtung eine beliebig lange
vertikale Baumstumpfreihe.
ZZ
AZ
22
Übung
Gibt es einen Kara-Algorithmus zur Lösung des
Problems, bei dem Kara keine Blätter ablegen darf?
ZZ
AZ
23
Präzisierung des Algorithmusbegriffs
Von klaren Vorgaben zu präzisen
Begriffsdefinitionen
Sei A die Menge der Kara-Aktionen
A move, turnLeft, turnRight, putLeaf,
removeLeaf
Sei A die Menge der eingeschränkten
Kara-Aktionen
A move, turnLeft, turnRight
Sei B die Menge der Kara-Bedingungen
B treeFront, treeLeft, treeRight,
mushroomFront, onLeaf, not treeFront,
treeFront and (not onLeaf), ..., true
24
Präzisierung des Algorithmusbegriffs
Bedingung
Aktionen
Akt. Zustand
Neuer Zustand
markieren
hin
hin
nein
hin
hin
ja
zurück
...
Definition Ein Kara-Algorithmus ist eine Paar
(Z, F) bestehend aus einer endlichen Menge Z von
Zuständen, die einen ausgezeichneten Startzustand
enthält, und einer Funktion F, die die
Arbeitsweise von Kara wie folgt festlegt F
ordnet Zustands-Bedingungs-Kombinationen (z, b)
mit z?Z und b?B eine Aktionen-Zustands-Kombination
(a, z) zu, wobei a eine endliche (evtl. leere)
Folge von Aktionen aus A ist und z?Z den
Folgezustand darstellt. Ein Read-Only-Kara-Algorit
hmus ist ein Kara-Algorithmus, bei dem nur
Aktionen aus der eingeschränkten Menge
Avorkommen.
25
Zur Lösung des Baumumrundungsproblems
Von präzisen Begriffsdefinitionen zu
nachweisbaren Aussagen
Satz Es gibt einen Kara-Algorithmus, der das
vertikale Baumumrundungsproblem löst.
(Möglichkeits-) Beweis Der Beweis erfolgt
konstruktiv, indem man einen geeigneten
Kara-Algorithmus angibt. Grundidee Kara legt
beim Weg nach oben neben jeden Baumstumpf ein
Kleeblatt. Kara zählt auf diese Weise mit, an wie
vielen Baumstümpfen er/sie vorbeiläuft. Kara
transportiert anschließend jedes dieser
abgelegten Kleeblätter auf die andere Seite des
Baumstumpfs. Damit ist Kara in der Lage, die
gewünschte Endposition zu bestimmen.
26
Zur Lösung des Baumumrundungsproblems
Von präzisen Begriffsdefinitionen zu
nachweisbaren Aussagen
Satz Es gibt keinen Read-Only-Kara-Algorithmus,
der das vertikale Baumumrundungsproblem löst.
(Unmöglichkeits-) Beweis Der Beweis wird durch
Widerspruch geführt Man nimmt an, es gebe einen
solchen Algorithmus und führt diese Annahme zum
Widerspruch. Da das vertikale
Baumumrundungsproblem für Read-Only-Kara-Algorith
men strukturell ähnlich zum anbn-Spracherkennungs
-problem für endliche Automaten ist, kann der
Nachweis, dass es keinen Read-Only-Kara-Algorithmu
s gibt, der das vertikale Baumumrundungsproblem
löst, völlig analog zum anbn-Spracherkennungsprob
lem geführt werden.
27
Teil 3
Kara-Berechenbarkeit
28
Kara lernt rechnen
Im Folgenden betrachten wir eine spezielle Klasse
von Problemen, die Kara lösen soll. Es handelt
sich hier um Berechnungs-probleme, die Kara mit
Hilfe von Kleeblättern ausführen soll.
29
Übung
Entwickeln Sie einen Kara-Algorithmus zur
Addition
Kara steht vor zwei beliebig langen, durch eine
leere Zelle getrennte Blattreihen der Längen m
und n (die auch 0 sein können).
AZ
Kara hat eine Blattreihen der Länge mn erzeugt.
ZZ
30
Übung
Entwickeln Sie einen Kara-Algorithmus zur
Subtraktion
Kara steht vor zwei beliebig langen, durch eine
leere Zelle getrennte Blattreihen der Längen m
und n (die auch 0 sein können).
AZ
Falls m?n ist, hat Kara eine Blattreihe der Länge
m-n erzeugt.
ZZ
31
Übung
Entwickeln Sie einen Kara-Algorithmus zur
Subtraktion
Kara steht vor zwei beliebig langen, durch eine
leere Zelle getrennte Blattreihen der Längen m
und n (die auch 0 sein können).
AZ
Falls mltn ist, kommt Kara nicht mehr klar und
dreht sich ständig im Kreis herum.
ZZ
32
Übung
Entwickeln Sie einen Kara-Algorithmus zum
Verdoppeln
Kara steht vor einer beliebig langen Blattreihe
der Länge n (die auch 0 sein kann).
AZ
Kara hat eine Blattreihe der Länge 2n erzeugt.
ZZ
33
Übung
Entwickeln Sie einen Kara-Algorithmus zur
Multiplikation
Kara steht vor zwei beliebig langen, durch eine
leere Zelle getrennte Blattreihen der Längen m
und n (die auch 0 sein können).
AZ
Kara hat eine Blattreihe der Länge m?n erzeugt.
ZZ
34
Übung
Entwickeln Sie einen Kara-Algorithmus zur
Multiplikation
Kara steht vor zwei beliebig langen, durch eine
leere Zelle getrennte Blattreihen der Längen m
und n (die auch 0 sein können).
AZ
Kara hat eine Blattreihe der Länge m?n erzeugt,
ohne die Zellenreihe, in der die Blätter liegen,
zu verlassen.
ZZ
35
Berechnete Funktion
Vom informellen Begriff zur präzisen
Begriffsdefinition
Verdoppeln
Kara steht vor einer beliebig langen Blattreihe
der Länge n (die auch 0 sein kann).
AZ
Kara hat eine Blattreihe der Länge 2n erzeugt.
ZZ
Kara berechnet die Verdopplungsfunktion f N ? N
mit f(n) 2n.
36
Berechnete Funktion
Subtraktion
Kara steht vor zwei beliebig langen, durch eine
leere Zelle getrennte Blattreihen der Längen m
und n (die auch 0 sein können).
AZ
Falls mltn ist, kommt Kara nicht mehr klar und
dreht sich ständig im Kreis herum.
ZZ
Kara berechnet die Subtraktionsfunktion f N x N
? N mit
m-n falls m ? n
f(m,n)
undefiniert falls m lt n
37
Präzisierung von Berechenbarkeit
Definition Eine Funktion f N ? N heißt
Kara-berechenbar, gdw giltEs gibt einen
Kara-Algorithmus mit der folgenden
Eigenschaft AZ Kara steht vor einer Blattreihe
der Länge n. ZZ Fall 1 f(n) ist
definiert Kara hat eine Blattreihe der Länge
f(n) erzeugt und hält. Fall 2 f(n) ist
undefiniert Kara hält nicht.
Analog für f N x N x ... x N ? N
38
Berechenbarkeitsaussagen
  • Satz
  • Die folgenden Funktionen sind Kara-berechnenbar
  • f(n) 2n
  • f(m, n) m n
  • f(m, n) IF(m?n, m-n, ?)
  • f(m, n) m?n

Neue Fragen
Welche Funktionen sind Kara-berechnenbar, welche
evtl. nicht?
39
Teil 4
Turingmaschinen
40
Alan Turing
http//www.alanturing.net/
Alan Mathison Turing FRS OBE (born 23 June 1912
at 2 Warrington Crescent, London W9, died 7 June
1954 at his home in Wilmslow, Cheshire)
contributed to mathematics, cryptanalysis, logic,
philosophy, biology, and formatively to computer
science, cognitive science, Artificial
Intelligence and Artificial Life. Educated at
Sherborne School in Dorset, Turing went up to
King's College, Cambridge in October 1931 to read
Mathematics. He was elected a Fellow of King's in
March 1935, at the age of only 22. In the same
year he invented the abstract computing machines
- now known simply as Turing machines - on which
all subsequent stored-program digital computers
are modelled. ...
41
Turings Idee
Vom Rechnen zu den Computing maschines
Computing is normally done by writing certain
symbols on paper. We may suppose this paper is
divided into squares like a child's arithmetic
book. In elementary arithmetic the
two-dimensional character of the paper is
sometimes used.
3
6
?
2
7
7
2
2
5
2
9
7
2
(Alan Turing On Computable Numbers, with an
Application to the Entscheidungsproblem.
Proceedings of the London Mathematical Society
1936)
42
Turings Idee
Vom Rechnen zu den Computing maschines
Computing is normally done by writing certain
symbols on paper. We may suppose this paper is
divided into squares like a child's arithmetic
book. In elementary arithmetic the
two-dimensional character of the paper is
sometimes used. But such a use is always
avoidable, and I think that it will be agreed
that the two-dimensional character of paper is no
essential of computation. I assume then that the
computation is carried out on one-dimensional
paper, i.e. on a tape divided into squares. ...
6
?
2
7
3
2
5
2
7
2
(Alan Turing On Computable Numbers, with an
Application to the Entscheidungsproblem.
Proceedings of the London Mathematical Society
1936)
43
Turings Idee
Vom Rechnen zu den Computing maschines
The behaviour of the computer at any moment is
determined by the symbols which he is observing
and his state of mind at that moment. ... Let
us imagine the operations performed by the
computer to be split up into simple operations
which are so elementary that it is not easy to
imagine them further divided. ...
Ein-/Ausgabeband
6
?
2
7
3
Zustandsbasierte Verarbeitungseinheit
Schreib-/Lesekopf
q0
(Alan Turing On Computable Numbers, with an
Application to the Entscheidungsproblem.
Proceedings of the London Mathematical Society
1936)
44
Turingmaschine
Ein-/Ausgabeband
...
...
I
I
I
I
I
Zustandsbasierte Verarbeitungseinheit
Schreib-/Lesekopf
Turingmaschine
45
Turingmaschine
Zustandsübergang
Aktion
a b R
Geschriebenes Zeichen
Gelesenes Zeichen
Turingmaschinenaktionen
R ein Feld nach rechts L ein Feld nach
links S stopp
46
Beispiel
Berechnungsproblem Addition von Strichzahlen
AZ
I
I
I
I
I
z0
ZZ
I
I
I
I
I
S
Turingmaschine (dargestellt mit einem
Zustandsgraphen)
I I R
I I R
I I L
I I S
I R
L
I L
R
z0
z1
z2
z3
z4
47
Beispiel
Turingmaschine (dargestellt mit einem
Zustandsgraphen)
I I R
I I R
I I L
I I S
I R
L
I L
R
z0
z1
z2
z3
z4
Turingmaschine (dargestellt mit einer
Zustandstafel)
alter gelesenes geschrieb. Kopf- neuer
Zustand Zeichen Zeichen bewegung
Zustand Z0 I I R
Z0Z0 ' ' I R
Z1 Z1 I I R
Z1Z1 ' ' ' ' L
Z2 ...
48
Präzisierung
Definition Eine Turingmaschine ist ein Tupel T
(X, B, b, Z, z0, ?) bestehend aus - einer
endlichen, nichtleeren Menge X von
Eingabezeichen, - einer Menge B mit X ? B von
Bandzeichen,- einem speziellen Bandzeichen b ? B
\ X (Blank), - einer endlichen, nichtleeren
Menge Z von Zuständen,- einem Anfangszustand
z0?Z,- einer Überführungsfunktion ? Z x B ? B x
L, R, S x Z
alter gelesenes geschrieb. Kopf- neuer
Zustand Zeichen Zeichen bewegung
Zustand Z0 I I R
Z0Z0 ' ' I R
Z1 Z1 I I R
Z1Z1 ' ' ' ' L
Z2 ...
49
Übung
Berechnungsproblem Verdopplung von Strichzahlen
Entwickeln und testen Sie eine Turingmaschine zur
Verdopplung von Strichzahlen. Beschreiben Sie die
Turingmaschine mit einem Zustandsgraph und einer
Zustandstabelle. Zum Testen können Sie den
MPG-Turing-Simulator benutzen.
AZ
I
I
z0
ZZ
I
I
I
I
50
Präzisierung von Berechenbarkeit
Definition Eine Funktion f N ? N heißt
Turingmaschinen-berechenbar, gdw gilt Es gibt
eine Turingmaschine T mit der folgenden
Eigenschaft AZ Auf dem Band befindet sich n
dargestellt als Strichzahl. ZZ Fall 1 f(n)
ist definiert T hält und hat f(n) dargestellt
als Strichzahl erzeugt. Fall 2 f(n) ist
undefiniert T hält nicht.
I
I
z0
I
I
I
I
Analog für f N x N x ... x N ? N
51
Variation der Turingmaschine
Berechnungsproblem Verdopplung von Strichzahlen
AZ
I
I
I
I
z0
2-Band-Turingmaschine
ZZ
I
I
I
I
I
I
I
I
I
I
I
I
I IIRR
I I LS
I IIRR
LS
RS
SS
z0
z1
z2
z3
52
Variation der Turingmaschine
Berechnungsproblem Verdopplung von Strichzahlen
2-dimensionale Turingmaschine
53
Kara als Variation der Turingmaschine
Kara
2-dimensionale Turingmaschine
54
Übung
Lösen Sie das Verdopplungsproblem (oder das
Multiplikationsproblem) mit Hilfe einer
2-Band-Turingmaschine und mit Hilfe einer
zweidimensionalen Turingmaschine.
55
Äquivalenz von Turingmaschinenmodellen
Problem
Was leisten Mehr-Band-Turingmaschinen bzw.
zweidimensionale Turingmaschinen mehr als
Ein-Band-Turingmaschinen?
Satz Eine Funktion f N x N x ... x N ? N ist mit
einer Ein-Band-Turingmaschine berechenbar gdw
sie mit einer Zwei-Band-Turingmaschine
berechenbar ist gdw sie mit einer
Mehr-Band-Turingmaschine berechenbar ist.
56
Beweisidee
Simulation der Aktionen einer Zwei-Band-TM auf
einem Band
I
I
I
Vgl. U. Mayr Theoretische Informatik am PC.
(Programm Bsp-a5.tm)
z0
I
I

I

zi
I
I
I
z0
I
I
I

I

I
zj
57
Äquivalenz der Turingmaschinenmodelle
Problem
Was leisten Mehr-Band-Turingmaschinen bzw.
zweidimensionale Turingmaschinen mehr als
Ein-Band-Turingmaschinen?
Satz Eine Funktion f N x N x ... x N ? N ist mit
einer eindimensionalen (Ein-Band-) Turingmaschine
berechenbar gdw sie mit einer zweidimensionalen
Turingmaschine berechenbar ist.
58

59
Teil 5
Universelle Turingmaschine
60
Universelle Berechnungsmodelle
Computer sind programmierbar!
Daten
Computer alsprogrammierbaresSystem
Daten
Programm
Ein universelles Berechnungsmodell sollte in der
Lage sein, nicht nur Eingabedaten in einer ganz
bestimmten Weise zu verarbeiten, sondern
Eingabedaten nach einem beliebigen, ebenfalls
einzugebenden Verarbeitungsprogramm zu
verarbeiten.
61
Universelle Turingmaschine
Universelle Turingmaschine als Turingmaschinen-Int
erpreter
Eingabeband
UniverselleTuringmaschine
Ausgabeband
Turingmaschine
Eine universelle Turingmaschine besitzt die
Fähigkeit, beliebige andere Turingmaschinen zu
simulieren. Als Eingabe erhält sie die
Beschreibung der zu simulierenden Turingmaschine
und der Daten auf dem Eingabeband für diese
Turingmaschine.
62
Universelle Turingmaschine
Beispiel Invertieren einer 01-Zeichenkette
10110111
10R01R
UniverselleTuringmaschine
01001000
S
z1
z0
Eine universelle Turingmaschine besitzt die
Fähigkeit, beliebige andere Turingmaschinen zu
simulieren. Als Eingabe erhält sie die
Beschreibung der zu simulierenden Turingmaschine
und der Daten auf dem Eingabeband für diese
Turingmaschine.
63
Universelle Turingmaschine
Simulation von Ein-Band-Turingmaschinen mit einer
univers. TM
Aktueller Zustand
Kodierung der TM
10R01R
S
z1
z0
Ein-/Ausgabeband
Vgl. Turingkara Aufgaben Die universelle
Turingmaschine
64
Universelle Turingmaschine
Simulation von Ein-Band-Turingmaschinen mit einer
univers. TM.
Kodierung alter Zustand als Strichzahl1
Leerzeichen altes Zeichen neues Zeichen
Bewegung neuer Zustand als Strichzahl1
0
R
I
1



I

...
10
Kodierung der Turing-Tafel
10R01R
I
1
0

S
z0
z1
Ein-/Ausgabe-Band
Aktueller Zustand
Vgl. U. Mayr Theoretische Informatik am PC, S.
18 ff. Programm Bsp-206.tm
65
Übung
Testen Sie die universelle Turingmaschine der
Turing-Kara-Umgebung bzw. des MPG-Simulators.
Versuchen Sie insbesondere zu verstehen, wie
diese universelle Turingmaschine arbeitet. Sie
können auch die jeweils vorgegebene
Turingmaschine und Bandbelegung durch eine andere
ersetzen.
66
Universelle Turingmaschine
SatzEs gibt universelle Turingmaschinen.
Bemerkungen zum Beweis Die Existenz einer
universellen Turingmaschine zeigt man, indem man
eine TM konstruiert, die sich wie ein
Turingmaschinen-Interpreter verhält, d. h. diese
(zweidimensionale oder Mehr-Band-) Turingmaschine
simuliert das Verhalten einer beliebig
vorgegebenen Ein-Band-Turingmaschine bei einer
beliebig vorgegebenen Bandbelegung. Die
vorgegebene Turingmaschine und die vorgegebene
Bandbelegung müssen dabei geeignet kodiert
werden.
67
Teil 6
Registermaschinen
68
Präzisierung des Algorithmusbegriffs
Grundschema eines algorithmisch gesteuerten
Systems
Eingaben
Prozessor
Anweisungen
Ausgaben
Präzisierungsansätze
Maschinenorientierte Ansätze - Kara (mehr als
ein Spielzeug) - Turingmaschine (abstraktes
Rechnermodell) - Registermaschine (an realen
Rechnern orientiertes Modell)
69
Berechnungsmodell Registermaschine
An realen Rechnern orientiertes Berechnungsmodell
Register
Adresse
Befehl
Progr.zähler
0 JMP 4 1 DEC 1 2 INC 0 3 INC 2 4 TST
1gt 5 JMP 1 6 JMP 10 7 DEC 2 8 INC 0 9
TST 2 10 JMP 7 11 HLT
0 01 52 03 04 0..
Speicher (Registern)
Verarbeitungseinheit
70
Registermaschinenbefehle
Erhöhe Register i um 1.Gehe zu Zeile x1.
gt x INC i
Erniedrige Register i um 1.Gehe zu Zeile x1.
gt x DEC i
gt x JMP i
Gehe zu Zeile i.
Wenn Register i ungleich 0 ist, dann gehe zu
Zeile x1, sonst zu Zeile x2.
gt x TST i
gt x HLT
Beende die Bearbeitung.
71
Registermaschine in Aktion
gt 0 JMP 4 1 DEC 1 2 INC 0 3 INC 2 4 TST
1 5 JMP 1 6 JMP 10 7 DEC 2 8 INC 0 9
TST 2 10 JMP 7 11 HLT
0 01 52 03 04 0..
0 JMP 4 1 DEC 1 2 INC 0 3 INC 2gt 4 TST
1 5 JMP 1 6 JMP 10 7 DEC 2 8 INC 0 9
TST 2 10 JMP 7 11 HLT
0 01 52 03 04 0..
0 JMP 4 1 DEC 1 2 INC 0 3 INC 2 4 TST
1gt 5 JMP 1 6 JMP 10 7 DEC 2 8 INC 0 9
TST 2 10 JMP 7 11 HLT
0 01 52 03 04 0..
0 JMP 4gt 1 DEC 1 2 INC 0 3 INC 2 4 TST
1 5 JMP 1 6 JMP 10 7 DEC 2 8 INC 0 9
TST 2 10 JMP 7 11 HLT
0 01 52 03 04 0..
72
Verhaltensbeschreibung
gt 0 JMP 4 1 DEC 1 2 INC 0 3 INC 2 4 TST
1 5 JMP 1 6 JMP 10 7 DEC 2 8 INC 0 9
TST 2 10 JMP 7 11 HLT
0 01 n2 03 04 0..
0 2n1 02 03 04 0..
Zustand vorher
RM-Programm
Zustand nachher
Die Registermaschine berechnet die
Verdopplungsfunktion auf natürlichen Zahlen, d.
h. f N ? N mit f(n) 2n
73
Präzisierung von Berechenbarkeit
Definition Eine Funktion f N ? N heißt
Registermaschinen-berechenbar, gdw gilt Es gibt
eine Registermaschine mit der folgenden
Eigenschaft AZ Im Registern R1 befindet sich
der Ausgangswert. ZZ Fall 1 f(n) ist
definiert Die RM hält und in R0 befindet sich
der Ergebniswert. Fall 2 f(n) ist
undefiniert Die RM hält nicht.
0
n
0
0
...
...
...
f(n)
...
...
Analog für f N x N x ... x N ? N
74
Äquivalenzsatz
SatzEine Funktion f N x N x ... x N ? N ist
Turingmaschinen-berechenbar gdw sie
Registermaschinen-berechenbar ist.
Beweis Der Beweis wird konstruktiv geführt. Man
konstruiert mit Hilfe einer Turingmaschine einen
Registermaschinen-Interpreter und umgekehrt mit
Hilfe einer Registermaschine einen
Turingmaschinen-Interpreter.
75
Teil 7
LOOP- und WHILE-Programme
76
Präzisierung des Algorithmusbegriffs
Grundschema eines algorithmisch gesteuerten
Systems
Eingaben
Prozessor
Anweisungen
Ausgaben
Präzisierungsansätze
Anweisungsorientierte Ansätze - Die
Programmiersprache LOOP - Die
Programmiersprache WHILE - Die
Programmiersprachen Pascal, Delphi, Java,
...
77
LOOP-Programme
Bestandteile von LOOP-Programmen
Variablen x0 x1 x2 ... Konstanten 0 1 2
... Trennsymbole Operatoren
- Schlüsselwörter LOOP DO END
Aufbau eines LOOP-Programms
Jede Wertzuweisung der Form xi c oder xi xj
oder xi xj c ist ein LOOP-Programm. Falls P1
und P2 LOOP-Programme sind, dann ist auch die
Sequenz P1 P2 ein LOOP-Programm. Falls P ein
LOOP-Programm ist, dann ist auch LOOP xi DO P END
ein LOOP-Programm.
78
LOOP-Programme
Beispiel eines LOOP-Programms
x0 x1 LOOP x2 DO x0 x0 1 END
Ausführung der LOOP-Anweisung
Eine LOOP-Anweisung der Form LOOP xi DO P END
wird wie folgt ausgeführt Die LOOP-Anweisung P
wird sooft ausgeführt, wie der Wert der Variablen
xi zu Beginn beträgt.
Bedeutung eines LOOP-Programms
x0 ... x1 5 x2 3 x3 ... ... x0
x1 LOOP x2 DO x0 x0 1 END x0 8 x1
5 x2 3 x3 ... ...
Das Programm berechnet die Additionsfunktion auf
natürlichen Zahlen f(m, n) m n
79
WHILE-Programme
Bestandteile von WHILE-Programmen
Variablen x0 x1 x2 ... Konstanten 0 1 2
... Trennsymbole Operatoren
- Schlüsselwörter WHILE DO END
Aufbau eines WHILE-Programms
Jede Wertzuweisung der Form xi c oder xi xj
oder xi xj c ist ein WHILE-Programm. Falls
P1 und P2 WHILE-Programme sind, dann ist auch die
Sequenz P1 P2 ein WHILE-Programm. Falls P ein
WHILE-Programm ist, dann ist auch WHILE xi ? 0 DO
P END ein WHILE-Programm.
80
WHILE-Programme
Beispiel eines WHILE-Programms
x0 x1 WHILE x2 ? 0 DO x0 x0 1 x2 x2
- 1 END
Ausführung der WHILE-Anweisung
Eine WHILE-Anweisung der Form WHILE xi ? 0 DO P
END wird wie folgt ausgeführt Das WHILE-Programm
P wird solange ausgeführt, wie der Wert der
Variablen xi ungleich Null ist.
Bedeutung eines WHILE-Programms
Das Programm berechnet die Additionsfunktion auf
natürlichen Zahlen f(m, n) m n
x0 0 x1 5 x2 3 x3 0 ... x0
x1 WHILE x2 ? 0 DO x0 x0 1 x2 x2 - 1
END x0 8 x1 5 x2 0 x3 0 ...
81
Präzisierung von Berechenbarkeit
Definition Eine Funktion f N ? N heißt
LOOP-/WHILE-berechenbar, gdw gilt Es gibt ein
LOOP-/WHILE-Programm mit der Eigenschaft AZ Die
Variable x1 enthält den Ausgangswert x0
0 x1 n x2 0 x3 0 ... ZZ Fall
1 f(n) ist definiert Die Ausführung des
Programms endet und x0 enthält den
Ergebniswert. x0 f(n) x1 ... x2
... x3 ... ... Fall 2 f(n) ist
undefiniert Die Ausführung des Programms endet
nicht.
Analog für f N x N x ... x N ? N
82
Übung
  • Aufgabe 1
  • Entwickeln Sie ein LOOP-Programm / WHILE-Programm
    zur Berechnung der Verdopplungsfunktion /
    Multiplikationsfunktion.
  • Aufgabe 2
  • Welche Funktion wird durch das folgende
    WHILE-Programm berechnet?
  • x0 x1
  • WHILE x2 ? 0 DO x0 x0 1 END
  • Aufgabe 3
  • Gibt es Funktionen, die mit keinem LOOP-Programm
    berechnet werden können?

83
Unterschied LOOP-WHILE
Unterschied LOOP-berechenbar - WHILE-berechenbar
Die Ausführung jedes LOOP-Programms endet immer.
Ein WHILE-Programm kann dagegen eine
Endlosschleife enthalten.
x0 x1 WHILE x2 ? 0 DO x0 x0 1 END
Das gezeigte WHILE-Programm berechnet die
Funktion f N ? N mit f(m, n) IF(n0, m, ?).
SatzEs gibt Funktionen f N x N x ... x N ? N,
die WHILE-berechenbar, aber nicht
LOOP-berechenbar sind.
84
Äquivalenzsatz
SatzEine Funktion f N x N x ... x N ? N ist
WHILE-berechenbar gdw sie Registermaschinen-berech
enbar ist.
Beweis Der Beweis wird konstruktiv geführt. Man
konstruiert zu jeder Registermaschine ein
entsprechendes WHILE-Programm und umgekehrt zu
jedem WHILE-Programm eine entsprechende
Registermaschine.
85
Teil 8
Rekursive Funktionen
86
Rekursive Funktionen
Grundschema eines algorithmisch gesteuerten
Systems
Eingaben
Prozessor
Anweisungen
Ausgaben
Grundidee
Man beschreibt die berechenbaren E/A-Zuordnungen
wie folgt Einige einfache Grundfunktionen
werden als berechenbar erklärt. Des weiteren
werden einige einfache Konstruktionsprinzipien
angegeben, die beschreiben, wie man aus
berechenbaren Funktionen weitere berechenbare
Funktionen erhält. Die zentrale
Konstruktionsoperation ist die dabei die
Rekursion.
87
Rekursives Berechnungsschema
Beispiel Addition natürlicher Zahlen
add(x,0) x add(x,s(y)) s(add(x,y))
Bemerkungen
Die Nachfolgerfunktion s N ? N, die jeder
natürlichen Zahl ihren direkten Nachfolger
zuordnet, wird als gegebene berechenbare Funktion
betrachtet. Die Funktion add N x N ? N, die je
zwei natürlichen Zahlen ihre Summe zuordnen soll,
wird rekursiv festgelegt - Zunächst wird der
Rekursionsanfang addiere zur Zahl x die Zahl 0
festgelegt. - Anschließend wird der Fall
addiere zur Zahl x den Nachfolger s(y) einer
Zahl y auf den Fall addiere zu x die Zahl y
rekursiv reduziert. Bei der Festlegung werden
hier die Konstruktionsoperationen Rekursion und
Funktionskomposion und die Grundfunktion s
benutzt.
88
Rekursives Berechnungsschema
Beispiel Addition natürlicher Zahlen
add(x,0) x add(x,s(y)) s(add(x,y))
Berechnung rekursiv festgelegter Funktionen
add(3,2) s(add(3,1)) s(s(add(3,0)))
s(s(3)) s(4) 5
gtadd(3,2) gtadd(3,1) gtadd(3,0) ltadd(3,0)3
ltadd(3,1)4 ltadd(3,2)5
89
Übung
Entwickeln Sie rekursive Berechnungsschemata für
die folgenden Funktionen. Benutzen Sie nur die
vorgegebene Nachfolgerfunktion s und bereits
definierte Funktionen (wie add).
mult(x, y)
Beschreibt die übliche Multiplikation natürlicher
Zahlen
fakt(x)
Beschreibt die Fakultätsfunktionf(0) 1, f(1)
1, f(2) 21, f(3) 321, ...
exp(x, y)
Beschreibt die Potenzbildung für natürliche
Zahlen, d. h.exp(2, 3) 23
90
Übung
Untersuchen Sie die folgenden rekursiven
Berechnungsschemata und beschreiben Sie die
jeweils berechneten Funktionen.
test(0)1test(s(x))0 pred(0)0pred(s(x))x subt
r(x,0)xsubtr(x,s(y))pred(subtr(x,y)) absdiff(x,
y)add(subtr(x,y),subtr(y,x)) equal(x,y)test(absd
iff(x,y))
91
Übung
Welche Berechnungsschemata sind korrekt, sinnvoll?
subtr2(x, 0) xsubtr2(0, y) ysubtr2(s(x),
s(y)) subtr2(x, y) subtr3(x, 0) xsubtr3(0,
y) ysubtr3(x, y) subtr3(s(x), s(y)) add2(x,
0) xadd2(x,y) add(s(x),pred(y)))
92
Primitive Rekursion
Rekursive Problemreduktionen
add(x,s(y)) s(add(x,y)) add2(x,y)
add2(s(x),pred(y))) subtr(x,s(y))pred(subtr(x,y))
subtr2(s(x), s(y)) subtr2(x, y) subtr3(x, y)
subtr3(s(x), s(y))
Primitives Reduktionsschema
add(x,s(y)) s(add(x,y)) f(x1,...,xn,s(y))
h(x1,...,xn,y,f(x1,...,xn,y))
In einem Schritt wird nur ein Argument um 1
reduziert.
93
Primitive Rekursion
Primitives Reduktionsschema
add(x,0) x add(x,s(y)) s(add(x,y))
Formalisierung
f(x1,...,xn,0) g(x1,...,xn) f(x1,...,xn,s(y))
h(x1,...,xn,y,f(x1,...,xn,y))
Rekursionsanfang Die Funktion f kommt nicht auf
der rechten Seite vor. Rekursionsschritt Die
Funktion f kommt auf der rechten Seite vor, aber
nur ein Argument wird um 1 reduziert.
94
Primitiv rekursive Funktionen
Definition Eine Funktion f N x ... x N ? N
heißt primitiv rekursiv, gdw gilt Die Funktion f
lässt sich mit Hilfe der Nachfolgerfunktion s als
Grundfunktion sowie Funktionskomposition und
primitiver Rekursion als Konstruktionsoperationen
berechnen.
  • Satz
  • Die folgenden Funktionen sind primitiv rekursiv
  • f(m, n) m n
  • f(m, n) IF(m?n, m-n, 0)
  • f(m, n) m?n
  • ...

95
Übung
Testen Sie das folgende rekursive
Berechnungsschemata zur sogenannten
Ackermann-Funktion. Was beobachtet man, wenn die
Parameter (insbesondere der zweite) nicht sehr
klein gewählt werden?
Ack(0,y)s(y) Ack(s(x),0)Ack(x,1) Ack(s(x),s(y))
Ack(x,Ack(s(x),y))
96
Ackermannfunktion
Rekursive Definition
Ack(0,y)s(y) Ack(s(x),0)Ack(x,1) Ack(s(x),s(y))
Ack(x,Ack(s(x),y))
BeachteEs handelt sich hier nicht um ein
primitiv rekursives Rekursionsschema.
SatzDie Ackermann-Funktion ist nicht primitiv
rekursiv.
Man muss zeigen, dass die Ackermannfunktion sich
nicht mit Hilfe eines primitiv rekursiven
Rekursionsschemas darstellen lässt. Zum Beweis
zeigt man, dass die Ackermann-Funktion schneller
wächst als jede primitiv rekursive Funktion.
97
Übung
Wir betrachten die folgende informell definierte
Funktion. Berechnen Sie f(5, 2) und f(2, 5).
Beschreiben Sie das Verhalten der Funktion f.
f(x, y) das kleinste z mit yzx
98
Partiell rekursive Funktionen
Definition Eine Funktion f N x ... x N ? N
heißt partiell rekursiv, gdw gilt Die Funktion
f lässt sich mit Hilfe der Nachfolgerfunktion s
als Grundfunktion sowie Funktionskomposition,
primitiver Rekursion und dem das
kleinste-Operator als Konstruktionsoperationen
berechnen.
SatzDie Ackermann-Funktion ist partiell rekursiv.
Beweis siehe Fachliteratur
99
Äquivalenzsatz
Satz Eine Funktion f N x N x ... x N ? N ist
primitiv rekursiv gdw sie LOOP-berechenbar ist.
Eine Funktion f N x N x ... x N ? N ist
partiell rekursiv gdw sie WHILE-berechenbar ist.
Beweis siehe Fachliteratur
100

101
Teil 9
Church-Turing-These
102
Berechnungsmodelle
Grundschema eines algorithmisch gesteuerten
Systems
Eingaben
Prozessor
Anweisungen
Ausgaben
Präzisierungsansätze
Maschinenorientierter Ansatz Turingmaschine,
Registermaschine Zuordnungsorientierter Ansatz
partiell rekursive Funktion Anweisungsorientierter
Ansatz WHILE, Pascal, Delphi, C, Java, ...
103
Äquivalenzsatz
Satz Gegeben ist eine Funktion f N x N x ... x N
? N. Die folgenden Aussagen sind äquivalent - f
ist Turingmaschinen-berechenbar. - f ist
Registermaschinen-berechenbar. - f ist
WHILE-berechenbar, - f ist partiell rekursiv. -
f ist Pascal-berechenbar. - ...
Bem. Alle Ansätze zur Präzisierung führen auf
dieselbe Klasse berechenbarer Funktionen.
104
Church-Turing-These
These Die Klasse der im intuitiven Sinn
berechenbaren Funktion ist genau die Klasse der
Turingmaschinen-berechenbaren Funktionen bzw. die
Klasse der partiell rekursiven Funktionen bzw.
die Klasse der WHILE-berechenbaren Funktionen
bzw. ...
105
Literaturhinweise
Gasper, Leiß, Spengler, Stimm Technische und
theoretische Informatik. Bayerischer
Schulbuch-Verlag 1992. U. Mayr Theoretische
Informatik am PC. SIL-Studienmaterial Band 142,
Speyer 1994. Reichert, Nievergelt, Hartmann
Programmieren mit Kara. Springer-Verlag 2004. D.
Harel Das Affenpuzzle und weitere bad news aus
der Computerwelt. Springer-Verlag 2002. U.
Schöning Theoretische Informatik kurzgefasst.
Spektrum Akademischer Verlag 2001.
Write a Comment
User Comments (0)
About PowerShow.com