105
Berechenbarkeit Berechenbarkeit Klaus Becker 2004

Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

Embed Size (px)

Citation preview

Page 1: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

BerechenbarkeitBerechenbarkeit

Klaus Becker2004

Page 2: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

2

KB

Bere

chen

bark

eit

Die Möglichkeiten von Software Die Möglichkeiten von Software

„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)

Herausgeber einer Software-Zeitschrift:Herausgeber einer Software-Zeitschrift:

Page 3: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

3

KB

Bere

chen

bark

eit

Teil 1 Teil 1

Berechenbarkeit als Problem

Page 4: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

4

KB

Bere

chen

bark

eit

Grenzen von SoftwareGrenzen von Software

Daten

?

Software

Grundsatzfrage:Grundsatzfrage:

Gibt es Grenzen für die Möglichkeiten von Software?

Page 5: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

5

KB

Bere

chen

bark

eit

Der Kern von SoftwareDer Kern von Software

Algorithmen – der Kern von Software: Algorithmen – der Kern von Software:

binaeres_suchen (wonach)

links:= Anfang

rechts:= Ende

Wiederhole bis gefunden

oder links > rechts

Berechne mittlere Position

zwischen links und rechts

wonach < wert(pos)ja nein

rechts:= pos -1

wonach > wert(pos)ja nein

links:= pos +1

lineare_suche (wonach)

Wiederhole bis gefunden oder alles durchlaufen

wert[pos]=wonachja nein

gefunden!

merke pos

Gehe zur

nächsten pos

Wo liegen die Grenzen algorithmisch gesteuerter Systeme?

Gibt es Grenzen des algorithmisch Machbaren?

Page 6: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

6

KB

Bere

chen

bark

eit

Die Suche nach GrenzenDie Suche nach Grenzen

Grundsatzfrage:Grundsatzfrage:

Gibt es Grenzen für die Möglichkeiten von Software?Gibt es Grenzen für die Möglichkeiten von Algorithmen?

Vorgehensweise:Vorgehensweise:

Um Aussagen über alle möglichen Algorithmen zu treffen, muss zunächst der Algorithmusbegriff präzisiert werden.

Möglichkeitsnachweis:Möglichkeitsnachweis:

Man entwickelt einen Algorithmus und implementiert die zugehörige Software.

Unmöglichkeitsnachweis:Unmöglichkeitsnachweis:

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.

Page 7: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

7

KB

Bere

chen

bark

eit

Was ist ein Algorithmus ?Was ist ein Algorithmus ?

Einfache Frage – viele Antworten: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)

Page 8: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

8

KB

Bere

chen

bark

eit

Was ist ein Algorithmus ?Was ist ein Algorithmus ?

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)

Einfache Frage – viele Antworten:Einfache Frage – viele Antworten:

Page 9: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

9

KB

Bere

chen

bark

eit

Was ist ein Algorithmus ?Was ist ein Algorithmus ?

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/lva/ss02/algo1_vorlesung/hinweise.html)

Einfache Frage – viele Antworten:Einfache Frage – viele Antworten:

Page 10: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

10

KB

Bere

chen

bark

eit

Der intuitive AlgorithmusbegriffDer intuitive Algorithmusbegriff

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.

„Definition:“„Definition:“

(nach Gasper, Leiß, Spengler, Stimm: Technische und theoretische Informatik. bsv)

Page 11: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

11

KB

Bere

chen

bark

eit

Unzulänglichkeit informeller KlärungenUnzulänglichkeit informeller Klärungen

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.

„Definition:“„Definition:“

Die oben aufgeführte Begriffsklärung ist keine präzise Definition im mathematischen Sinne.Die oben aufgeführte Begriffsklärung ist keine präzise Definition im mathematischen Sinne.

Was heißt das?

Page 12: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

12

KB

Bere

chen

bark

eit

Ziel: PräzisierungZiel: Präzisierung

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.

„Definition:“„Definition:“

Ziel ist es, die informelle Begriffsklärung durch eine präzise Definition im mathematischen Sinne zu ersetzen.Ziel ist es, die informelle Begriffsklärung durch eine präzise Definition im mathematischen Sinne zu ersetzen.

Muss präzisiert werden

Page 13: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

13

KB

Bere

chen

bark

eit

PräzisierungsansätzePräzisierungsansätze

“Prozessor”Anweisungen

Eingaben

Ausgaben

Grundschema eines algorithmisch gesteuerten SystemsGrundschema eines algorithmisch gesteuerten Systems

Präzisierungsansätze:Präzisierungsansätze:

Maschinenorientierter Ansatz: Präzisierung des Prozessors

Zuordnungsorientierter Ansatz: Präzisierung der E/A-Zuordnungen

Anweisungsorientierter Ansatz: Präzisierung der zulässigen Anweisungen

Page 14: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

14

KB

Bere

chen

bark

eit

Grundidee: BerechnungsmodelleGrundidee: Berechnungsmodelle

Präzisierung mit BerechnungsmodellenPrä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äzisierungsverfahrensGrundlegende Schwierigkeit des Präzisierungsverfahrens

Wird mit Hilfe des Berechnungsmodells wirklich der intuitive Algorithmusbegriff adäquat erfasst?

Page 15: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

15

KB

Bere

chen

bark

eit

Teil 2 Teil 2

Kara als Berechnungsmodell

Page 16: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

16

KB

Bere

chen

bark

eit

KaraKara

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

Page 17: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

17

KB

Bere

chen

bark

eit

KaraKara

Kara hat Sensoren, mit denen er/sie die Umwelt wahrnimmt:

stehe ich vor einem Baumstumpf?

ist links von mir ein Baumstumpf?

ist rechts von mir ein Baumstumpf?

stehe ich vor einem Pilz?

stehe ich auf einem Kleeblatt?

Kara versteht einige Befehle,die er/sie folgsam ausführt:

mache einen Schrittvorwärts!

drehe um 90° nach links!

drehe um 90° nach rechts!

lege ein Kleeblatt hin!

nimm ein Kleeblatt auf!

Page 18: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

18

KB

Bere

chen

bark

eit

Kara soll ein Problem lösenKara 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:

Page 19: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

19

KB

Bere

chen

bark

eit

Kara-AlgorithmusKara-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

mark. hin stop/ Blatt hinlegen

Vor Baum? nein / vorwärts

Vor Baum? ja / links; ...

zurück

Auf Blatt? nein / vorwärts

Auf Blatt? ja / links; links

Page 20: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

20

KB

Bere

chen

bark

eit

Entwickeln Sie einen Kara-Algorithmus zur Lösung des Problems:

ÜbungÜbung

AZ: Kara sieht in Blickrichtung eine beliebig lange Baumstumpfreihe.

ZZ: Kara umläuft die Baumstümpfe und bleibt stehen.

Page 21: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

21

KB

Bere

chen

bark

eit

Entwickeln Sie einen Kara-Algorithmus zur Lösung des Problems:

ÜbungÜbung

AZ: Kara sieht in Blickrichtung eine beliebig lange vertikale Baumstumpfreihe.

ZZ: Kara umläuft die Baumstumpfreihe und bleibt in der Verlängerung seines Wegs stehen.

Page 22: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

22

KB

Bere

chen

bark

eit

Gibt es einen Kara-Algorithmus zur Lösung des Problems, bei dem Kara keine Blätter ablegen darf?

ÜbungÜbung

AZ: ZZ:

Page 23: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

23

KB

Bere

chen

bark

eit

Präzisierung des AlgorithmusbegriffsPräzisierung des Algorithmusbegriffs

Von klaren Vorgaben zu präzisen BegriffsdefinitionenVon klaren Vorgaben zu präzisen Begriffsdefinitionen

Sei A die Menge der Kara-Aktionen:

Sei B die Menge der Kara-Bedingungen:

B = {treeFront, treeLeft, treeRight, mushroomFront, onLeaf, not treeFront, treeFront and (not onLeaf), ..., true}

A = {move, turnLeft, turnRight, putLeaf, removeLeaf}Sei A´ die Menge der eingeschränkten Kara-Aktionen: A´ = {move, turnLeft, turnRight}

Page 24: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

24

KB

Bere

chen

bark

eit

Präzisierung des AlgorithmusbegriffsPrä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 zZ und bB 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-Algorithmus ist ein Kara-Algorithmus, bei dem nur Aktionen aus der eingeschränkten Menge A´vorkommen.

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 zZ und bB 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-Algorithmus ist ein Kara-Algorithmus, bei dem nur Aktionen aus der eingeschränkten Menge A´vorkommen.

Page 25: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

25

KB

Bere

chen

bark

eit

Zur Lösung des Zur Lösung des BaumumrundungsproblemsBaumumrundungsproblems

Von präzisen Begriffsdefinitionen zu nachweisbaren AussagenVon präzisen Begriffsdefinitionen zu nachweisbaren Aussagen

(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.

Satz:Es gibt einen Kara-Algorithmus, der das „vertikale Baumumrundungsproblem“ löst.

Satz:Es gibt einen Kara-Algorithmus, der das „vertikale Baumumrundungsproblem“ löst.

Page 26: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

26

KB

Bere

chen

bark

eit

(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-Algorithmen strukturell ähnlich zum „anbn-Spracherkennungs-problem“ für endliche Automaten ist, kann der Nachweis, dass es keinen Read-Only-Kara-Algorithmus gibt, der das „vertikale Baumumrundungsproblem“ löst, völlig analog zum „anbn-Spracherkennungsproblem“ geführt werden.

Zur Lösung des Zur Lösung des BaumumrundungsproblemsBaumumrundungsproblems

Von präzisen Begriffsdefinitionen zu nachweisbaren AussagenVon präzisen Begriffsdefinitionen zu nachweisbaren Aussagen

Satz:Es gibt keinen Read-Only-Kara-Algorithmus, der das „vertikale Baumumrundungsproblem“ löst.

Satz:Es gibt keinen Read-Only-Kara-Algorithmus, der das „vertikale Baumumrundungsproblem“ löst.

Page 27: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

27

KB

Bere

chen

bark

eit

Teil 3 Teil 3

Kara-Berechenbarkeit

Page 28: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

28

KB

Bere

chen

bark

eit

Kara lernt rechnen 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.

Page 29: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

29

KB

Bere

chen

bark

eitÜbungÜbung

Entwickeln Sie einen Kara-Algorithmus zur Addition:

AZ: Kara steht vor zwei beliebig langen, durch eine leere Zelle getrennte Blattreihen der Längen m und n (die auch 0 sein können).

ZZ: Kara hat eine Blattreihen der Länge m+n erzeugt.

Page 30: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

30

KB

Bere

chen

bark

eitÜbungÜbung

Entwickeln Sie einen Kara-Algorithmus zur Subtraktion:

AZ: Kara steht vor zwei beliebig langen, durch eine leere Zelle getrennte Blattreihen der Längen m und n (die auch 0 sein können).

ZZ: Falls mn ist, hat Kara eine Blattreihe der Länge m-n erzeugt.

Page 31: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

31

KB

Bere

chen

bark

eitÜbungÜbung

Entwickeln Sie einen Kara-Algorithmus zur Subtraktion:

AZ: Kara steht vor zwei beliebig langen, durch eine leere Zelle getrennte Blattreihen der Längen m und n (die auch 0 sein können).

ZZ: Falls m<n ist, kommt Kara nicht mehr klar und dreht sich ständig im Kreis herum.

Page 32: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

32

KB

Bere

chen

bark

eitÜbungÜbung

Entwickeln Sie einen Kara-Algorithmus zum Verdoppeln:

AZ: Kara steht vor einer beliebig langen Blattreihe der Länge n (die auch 0 sein kann).

ZZ: Kara hat eine Blattreihe der Länge 2n erzeugt.

Page 33: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

33

KB

Bere

chen

bark

eitÜbungÜbung

Entwickeln Sie einen Kara-Algorithmus zur Multiplikation:

AZ: Kara steht vor zwei beliebig langen, durch eine leere Zelle getrennte Blattreihen der Längen m und n (die auch 0 sein können).

ZZ: Kara hat eine Blattreihe der Länge mn erzeugt.

Page 34: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

34

KB

Bere

chen

bark

eitÜbungÜbung

Entwickeln Sie einen Kara-Algorithmus zur Multiplikation:

AZ: Kara steht vor zwei beliebig langen, durch eine leere Zelle getrennte Blattreihen der Längen m und n (die auch 0 sein können).

ZZ: Kara hat eine Blattreihe der Länge mn erzeugt, ohne die Zellenreihe, in der die Blätter liegen, zu verlassen.

Page 35: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

35

KB

Bere

chen

bark

eit

Berechnete FunktionBerechnete Funktion

Vom informellen Begriff zur präzisen BegriffsdefinitionVom informellen Begriff zur präzisen Begriffsdefinition

Verdoppeln:

AZ: Kara steht vor einer beliebig langen Blattreihe der Länge n (die auch 0 sein kann).

ZZ: Kara hat eine Blattreihe der Länge 2n erzeugt.

Kara berechnet die Verdopplungsfunktion f: N N mit f(n) = 2n.

Page 36: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

36

KB

Bere

chen

bark

eit

Berechnete FunktionBerechnete Funktion

Kara berechnet die Subtraktionsfunktion f: N x N N mit:

Subtraktion:

AZ: Kara steht vor zwei beliebig langen, durch eine leere Zelle getrennte Blattreihen der Längen m und n (die auch 0 sein können).

ZZ: Falls m<n ist, kommt Kara nicht mehr klar und dreht sich ständig im Kreis herum.

f(m,n) = m-n falls m n

undefiniert falls m < n

Page 37: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

37

KB

Bere

chen

bark

eit

Definition: Eine Funktion f: N N heißt Kara-berechenbar, gdw gilt:Es 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.

Definition: Eine Funktion f: N N heißt Kara-berechenbar, gdw gilt:Es 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.

Präzisierung von BerechenbarkeitPräzisierung von Berechenbarkeit

Analog für f: N x N x ... x N N

Page 38: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

38

KB

Bere

chen

bark

eit

BerechenbarkeitsaussagenBerechenbarkeitsaussagen

Neue FragenNeue Fragen

Welche Funktionen sind Kara-berechnenbar, welche evtl. nicht?

Satz:Die folgenden Funktionen sind Kara-berechnenbar:• f(n) = 2n• f(m, n) = m + n• f(m, n) = IF(mn, m-n, )• f(m, n) = mn

Satz:Die folgenden Funktionen sind Kara-berechnenbar:• f(n) = 2n• f(m, n) = m + n• f(m, n) = IF(mn, m-n, )• f(m, n) = mn

Page 39: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

39

KB

Bere

chen

bark

eit

Teil 4 Teil 4

Turingmaschinen

Page 40: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

40

KB

Bere

chen

bark

eit

Alan TuringAlan 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. ...

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. ...

Page 41: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

41

KB

Bere

chen

bark

eit

Turings IdeeTurings Idee

Vom Rechnen zu den „Computing maschines“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)

Page 42: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

42

KB

Bere

chen

bark

eit

Turings IdeeTurings Idee

Vom Rechnen zu den „Computing maschines“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 73

(Alan Turing: On Computable Numbers, with an Application to the Entscheidungsproblem. Proceedings of the London Mathematical Society 1936)

2 5 2 7 2

Page 43: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

43

KB

Bere

chen

bark

eit

Turings IdeeTurings Idee

Vom Rechnen zu den „Computing maschines“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. ...“

6 2 73

(Alan Turing: On Computable Numbers, with an Application to the Entscheidungsproblem. Proceedings of the London Mathematical Society 1936)

q0

Ein-/Ausgabeband

Schreib-/Lesekopf

Zustandsbasierte

Verarbeitungseinheit

Page 44: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

44

KB

Bere

chen

bark

eit

TuringmaschineTuringmaschine

...I I I I I

...

Turingmaschine

Ein-/Ausgabeband

Schreib-/Lesekopf

Zustandsbasierte

Verarbeitungseinheit

Page 45: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

45

KB

Bere

chen

bark

eit

TuringmaschineTuringmaschine

Turingmaschinenaktionen:Turingmaschinenaktionen:

R ein Feld nach rechts

L ein Feld nach links

S stopp

Zustandsübergang:Zustandsübergang:

a ; b ; R

Geschriebenes Zeichen

Aktion

Gelesenes Zeichen

Page 46: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

46

KB

Bere

chen

bark

eitBeispielBeispiel

Turingmaschine (dargestellt mit einem Zustandsgraphen):Turingmaschine (dargestellt mit einem Zustandsgraphen):

AZ:

Berechnungsproblem: Addition von „Strichzahlen“Berechnungsproblem: Addition von „Strichzahlen“

I II II

ZZ: I I I II

z0

S

z0

I; I; R

; I; Rz1

; ; L

I; I; R

z2

I; ; Lz3

; ; R

I; I; L

z4

I; I; S

Page 47: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

47

KB

Bere

chen

bark

eitBeispielBeispiel

Turingmaschine (dargestellt mit einem Zustandsgraphen):Turingmaschine (dargestellt mit einem Zustandsgraphen):

z0

I; I; R

; I; Rz1

; ; L

I; I; R

z2

I; ; Lz3

; ; R

I; I; L

z4

I; I; S

Turingmaschine (dargestellt mit einer Zustandstafel):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

...

Page 48: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

48

KB

Bere

chen

bark

eit

PräzisierungPrä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 z0Z,- einer Überführungsfunktion : Z x B B x {L, R, S} x Z

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 z0Z,- 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

...

Page 49: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

49

KB

Bere

chen

bark

eitÜbungÜbung

AZ:

Berechnungsproblem: Verdopplung von „Strichzahlen“Berechnungsproblem: Verdopplung von „Strichzahlen“

II

ZZ: I I II

z0

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.

Page 50: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

50

KB

Bere

chen

bark

eit

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.

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.

Präzisierung von BerechenbarkeitPräzisierung von Berechenbarkeit

Analog für f: N x N x ... x N N

II

z0

II II

Page 51: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

51

KB

Bere

chen

bark

eit

Variation der TuringmaschineVariation der Turingmaschine

AZ: I I II

ZZ: I I II

z0

I I II I I II

Berechnungsproblem: Verdopplung von „Strichzahlen“Berechnungsproblem: Verdopplung von „Strichzahlen“

z0

I ;II;RR

; ;LSz1

; ;RS

I ;I ;LS

z2

; ;SSz3

I ;II;RR

2-Band-Turingmaschine

Page 52: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

52

KB

Bere

chen

bark

eit

Variation der TuringmaschineVariation der Turingmaschine

Berechnungsproblem: Verdopplung von „Strichzahlen“Berechnungsproblem: Verdopplung von „Strichzahlen“

2-dimensionale Turingmaschine

Page 53: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

53

KB

Bere

chen

bark

eit

Kara als Variation der TuringmaschineKara als Variation der Turingmaschine

2-dimensionale Turingmaschine

Kara

Page 54: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

54

KB

Bere

chen

bark

eitÜbungÜbung

Lösen Sie das Verdopplungsproblem (oder das Multiplikationsproblem) mit Hilfe einer 2-Band-Turingmaschine und mit Hilfe einer zweidimensionalen Turingmaschine.

Page 55: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

55

KB

Bere

chen

bark

eit

Äquivalenz von Äquivalenz von TuringmaschinenmodellenTuringmaschinenmodellen

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.

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.

Problem Problem

Was leisten Mehr-Band-Turingmaschinen bzw. zweidimensionale Turingmaschinen mehr als Ein-Band-Turingmaschinen?

Page 56: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

56

KB

Bere

chen

bark

eit

BeweisideeBeweisidee

z0

I II

I

Simulation der Aktionen einer Zwei-Band-TM auf einem BandSimulation der Aktionen einer Zwei-Band-TM auf einem Band

z0

I II

I I*I *

I I*I *I

zi

zj

Vgl.: U. Mayr: Theoretische Informatik am PC. (Programm: Bsp-a5.tm)

Page 57: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

57

KB

Bere

chen

bark

eit

Äquivalenz der Äquivalenz der TuringmaschinenmodelleTuringmaschinenmodelle

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.

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.

Problem Problem

Was leisten Mehr-Band-Turingmaschinen bzw. zweidimensionale Turingmaschinen mehr als Ein-Band-Turingmaschinen?

Page 58: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

58

KB

Bere

chen

bark

eit

Page 59: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

59

KB

Bere

chen

bark

eit

Teil 5 Teil 5

Universelle Turingmaschine

Page 60: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

60

KB

Bere

chen

bark

eit

Universelle BerechnungsmodelleUniverselle Berechnungsmodelle

Computer sind programmierbar! Computer sind programmierbar!

Daten

Programm

Daten

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.

Computer alsprogrammierbar

esSystem

Page 61: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

61

KB

Bere

chen

bark

eit

Universelle TuringmaschineUniverselle TuringmaschineUniverselle Turingmaschine als Turingmaschinen-InterpreterUniverselle Turingmaschine als Turingmaschinen-Interpreter

Eingabeband

Turingmaschine

Ausgabeband

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.

UniverselleTuringmaschine

Page 62: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

62

KB

Bere

chen

bark

eit

Universelle TuringmaschineUniverselle Turingmaschine

Beispiel: Invertieren einer 01-ZeichenketteBeispiel: Invertieren einer 01-Zeichenkette

10110111#

01001000#

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.

UniverselleTuringmaschine

z1

1;0;R0;1;R

#;#;Sz0

Page 63: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

63

KB

Bere

chen

bark

eit

Universelle TuringmaschineUniverselle TuringmaschineSimulation von Ein-Band-Turingmaschinen mit einer univers. TMSimulation von Ein-Band-Turingmaschinen mit einer univers. TM

Kodierung der TM

Ein-/Ausgabeband

Vgl.: Turingkara – Aufgaben: Die universelle Turingmaschine

Aktueller Zustand

z1

1;0;R0;1;R

#;#;Sz0

Page 64: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

64

KB

Bere

chen

bark

eit

Universelle TuringmaschineUniverselle TuringmaschineSimulation von Ein-Band-Turingmaschinen mit einer univers. TM.Simulation von Ein-Band-Turingmaschinen mit einer univers. TM.

Vgl.: U. Mayr: Theoretische Informatik am PC, S. 18 ff. Programm: Bsp-206.tm

0 R I1 * I * ...

I

1 0 #

10#

z0

1;0;R0;1;R

#;#;Sz1

Ein-/Ausgabe-BandAktueller Zustand

Kodierung der Turing-Tafel

Kodierung: alter Zustand als Strichzahl+1; Leerzeichen; altes Zeichen; neues Zeichen; Bewegung; neuer Zustand als Strichzahl+1

Page 65: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

65

KB

Bere

chen

bark

eitÜbungÜ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.

Page 66: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

66

KB

Bere

chen

bark

eit

Universelle TuringmaschineUniverselle Turingmaschine

SatzEs gibt universelle Turingmaschinen.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.

Page 67: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

67

KB

Bere

chen

bark

eit

Teil 6Teil 6

Registermaschinen

Page 68: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

68

KB

Bere

chen

bark

eit

Präzisierung des Algorithmusbegriffs Präzisierung des Algorithmusbegriffs

“Prozessor”Anweisungen

Eingaben

Ausgaben

Grundschema eines algorithmisch gesteuerten SystemsGrundschema eines algorithmisch gesteuerten Systems

Präzisierungsansätze:Präzisierungsansätze:

Maschinenorientierte Ansätze:

- Kara („mehr als ein Spielzeug“)

- Turingmaschine („abstraktes Rechnermodell“)

- Registermaschine („an realen Rechnern orientiertes Modell“)

Page 69: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

69

KB

Bere

chen

bark

eit

Berechnungsmodell Berechnungsmodell „Registermaschine“„Registermaschine“

An realen Rechnern orientiertes Berechnungsmodell An realen Rechnern orientiertes Berechnungsmodell

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..

Speicher (Registern)

RegisterAdresse BefehlProgr.zähler

Verarbeitungseinheit

Page 70: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

70

KB

Bere

chen

bark

eit

RegistermaschinenbefehleRegistermaschinenbefehle

> x INC i Erhöhe Register i um 1.Gehe zu Zeile x+1.

> x DEC i Erniedrige Register i um 1.Gehe zu Zeile x+1.

> x JMP i Gehe zu Zeile i.

> x TST iWenn Register i ungleich 0 ist, dann gehe zu Zeile x+1, sonst zu Zeile x+2.

> x HLT Beende die Bearbeitung.

Page 71: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

71

KB

Bere

chen

bark

eit

Registermaschine in AktionRegistermaschine in Aktion> 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 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 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 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..

Page 72: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

72

KB

Bere

chen

bark

eit

VerhaltensbeschreibungVerhaltensbeschreibung

0: 01: n2: 03: 04: 0..

Zustand vorher

RM-Programm

0: 2n1: 02: 03: 04: 0..

Zustand nachher

Die Registermaschine berechnet die Verdopplungsfunktion auf natürlichen Zahlen, d. h.:

f: N N mit f(n) = 2n

> 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

Page 73: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

73

KB

Bere

chen

bark

eit

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.

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.

Präzisierung von BerechenbarkeitPräzisierung von Berechenbarkeit

Analog für f: N x N x ... x N N

0 n 0 0 ...

... ...f(n)

... ...

Page 74: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

74

KB

Bere

chen

bark

eit

ÄquivalenzsatzÄquivalenzsatz

SatzEine Funktion f: N x N x ... x N N ist Turingmaschinen-berechenbar gdw sie Registermaschinen-berechenbar ist.

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.

Page 75: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

75

KB

Bere

chen

bark

eit

Teil 7 Teil 7

LOOP- und WHILE-Programme

Page 76: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

76

KB

Bere

chen

bark

eit

Präzisierung des Algorithmusbegriffs Präzisierung des Algorithmusbegriffs

“Prozessor”Anweisungen

Eingaben

Ausgaben

Grundschema eines algorithmisch gesteuerten SystemsGrundschema eines algorithmisch gesteuerten Systems

Präzisierungsansätze:Präzisierungsansätze:

Anweisungsorientierte Ansätze:

- Die Programmiersprache „LOOP“

- Die Programmiersprache „WHILE“

- Die Programmiersprachen „Pascal“, „Delphi“, „Java“, ...

Page 77: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

77

KB

Bere

chen

bark

eit

LOOP-Programme LOOP-Programme

Bestandteile von LOOP-ProgrammenBestandteile von LOOP-Programmen

Variablen: x0 x1 x2 ...

Konstanten: 0 1 2 ...

Trennsymbole: ; :=

Operatoren: + -

Schlüsselwörter: LOOP DO END

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.

Aufbau eines LOOP-ProgrammsAufbau eines LOOP-Programms

Page 78: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

78

KB

Bere

chen

bark

eit

LOOP-Programme LOOP-Programme

Ausführung der LOOP-AnweisungAusfü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.

x0 := x1;

LOOP x2 DO x0 := x0 + 1 END

Beispiel eines LOOP-ProgrammsBeispiel 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: [...]; ... }

Bedeutung eines LOOP-ProgrammsBedeutung eines LOOP-Programms

Das Programm berechnet die Additionsfunktion auf natürlichen Zahlen: f(m, n) = m + n

Page 79: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

79

KB

Bere

chen

bark

eit

WHILE-Programme WHILE-Programme

Bestandteile von WHILE-ProgrammenBestandteile von WHILE-Programmen

Variablen: x0 x1 x2 ...

Konstanten: 0 1 2 ...

Trennsymbole: ; :=

Operatoren: + -

Schlüsselwörter: WHILE DO END

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.

Aufbau eines WHILE-ProgrammsAufbau eines WHILE-Programms

Page 80: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

80

KB

Bere

chen

bark

eit

WHILE-Programme WHILE-Programme

Ausführung der WHILE-AnweisungAusfü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.

x0 := x1;

WHILE x2 0 DO x0 := x0 + 1; x2 := x2 - 1 END

Beispiel eines WHILE-ProgrammsBeispiel eines WHILE-Programms

{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]; ... }

Bedeutung eines WHILE-ProgrammsBedeutung eines WHILE-Programms

Das Programm berechnet die Additionsfunktion auf natürlichen Zahlen: f(m, n) = m + n

Page 81: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

81

KB

Bere

chen

bark

eit

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.

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.

Präzisierung von BerechenbarkeitPräzisierung von Berechenbarkeit

Analog für f: N x N x ... x N N

Page 82: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

82

KB

Bere

chen

bark

eitÜbung Übung

Aufgabe 1Entwickeln Sie ein LOOP-Programm / WHILE-Programm zur Berechnung der Verdopplungsfunktion / Multiplikationsfunktion.

Aufgabe 2Welche Funktion wird durch das folgende WHILE-Programm berechnet?

x0 := x1;

WHILE x2 0 DO x0 := x0 + 1 END

Aufgabe 3Gibt es Funktionen, die mit keinem LOOP-Programm berechnet werden können?

Page 83: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

83

KB

Bere

chen

bark

eit

Unterschied LOOP-WHILEUnterschied LOOP-WHILE

Die Ausführung jedes LOOP-Programms endet immer. Ein WHILE-Programm kann dagegen eine Endlosschleife enthalten.

Unterschied: LOOP-berechenbar - WHILE-berechenbarUnterschied: LOOP-berechenbar - WHILE-berechenbar

x0 := x1;

WHILE x2 0 DO x0 := x0 + 1 END

SatzEs gibt Funktionen f: N x N x ... x N N, die WHILE-berechenbar, aber nicht LOOP-berechenbar sind.

SatzEs gibt Funktionen f: N x N x ... x N N, die WHILE-berechenbar, aber nicht LOOP-berechenbar sind.

Das gezeigte WHILE-Programm berechnet die Funktion f: N N mit f(m, n) = IF(n=0, m, ).

Page 84: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

84

KB

Bere

chen

bark

eit

ÄquivalenzsatzÄquivalenzsatz

SatzEine Funktion f: N x N x ... x N N ist WHILE-berechenbar gdw sie Registermaschinen-berechenbar ist.

SatzEine Funktion f: N x N x ... x N N ist WHILE-berechenbar gdw sie Registermaschinen-berechenbar 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.

Page 85: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

85

KB

Bere

chen

bark

eit

Teil 8 Teil 8

Rekursive Funktionen

Page 86: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

86

KB

Bere

chen

bark

eit

Rekursive FunktionenRekursive Funktionen

Grundschema eines algorithmisch gesteuerten SystemsGrundschema eines algorithmisch gesteuerten Systems

“Prozessor”Anweisungen

Eingaben

Ausgaben

Grundidee: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.

Page 87: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

87

KB

Bere

chen

bark

eit

Rekursives BerechnungsschemaRekursives Berechnungsschema

Beispiel: Addition natürlicher ZahlenBeispiel: Addition natürlicher Zahlen

add(x,0) = x

add(x,s(y))= s(add(x,y))

Bemerkungen: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.

Page 88: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

88

KB

Bere

chen

bark

eit

Rekursives BerechnungsschemaRekursives Berechnungsschema

Beispiel: Addition natürlicher ZahlenBeispiel: Addition natürlicher Zahlen

add(x,0) = x

add(x,s(y))= s(add(x,y))

Berechnung rekursiv festgelegter FunktionenBerechnung rekursiv festgelegter Funktionen

add(3,2)

= s(add(3,1))

= s(s(add(3,0)))

= s(s(3))

= s(4)

= 5

>add(3,2)

>add(3,1)

>add(3,0)

<add(3,0)=3

<add(3,1)=4

<add(3,2)=5

Page 89: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

89

KB

Bere

chen

bark

eitÜbungÜ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ätsfunktion:f(0) = 1, f(1) = 1, f(2) = 2*1, f(3) = 3*2*1, ...

exp(x, y) Beschreibt die Potenzbildung für natürliche Zahlen, d. h.:exp(2, 3) = 23

Page 90: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

90

KB

Bere

chen

bark

eitÜbungÜ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

subtr(x,0)=xsubtr(x,s(y))=pred(subtr(x,y))

absdiff(x,y)=add(subtr(x,y),subtr(y,x))

equal(x,y)=test(absdiff(x,y))

Page 91: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

91

KB

Bere

chen

bark

eitÜbungÜ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)))

Page 92: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

92

KB

Bere

chen

bark

eit

Primitive RekursionPrimitive Rekursion

Rekursive Problemreduktionen: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: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.

Page 93: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

93

KB

Bere

chen

bark

eit

Primitive RekursionPrimitive Rekursion

Primitives Reduktionsschema:Primitives Reduktionsschema:

add(x,0) = x

add(x,s(y))= s(add(x,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.

FormalisierungFormalisierung

f(x1,...,xn,0) = g(x1,...,xn)

f(x1,...,xn,s(y)) = h(x1,...,xn,y,f(x1,...,xn,y))

Page 94: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

94

KB

Bere

chen

bark

eit

Primitiv rekursive FunktionenPrimitiv rekursive Funktionen

SatzDie folgenden Funktionen sind primitiv rekursiv:• f(m, n) = m + n• f(m, n) = IF(mn, m-n, 0)• f(m, n) = mn• ...

SatzDie folgenden Funktionen sind primitiv rekursiv:• f(m, n) = m + n• f(m, n) = IF(mn, m-n, 0)• f(m, n) = mn• ...

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.

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.

Page 95: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

95

KB

Bere

chen

bark

eitÜbungÜbung

Ack(0,y)=s(y)

Ack(s(x),0)=Ack(x,1)

Ack(s(x),s(y))=Ack(x,Ack(s(x),y))

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?

Page 96: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

96

KB

Bere

chen

bark

eit

AckermannfunktionAckermannfunktion

Rekursive Definition: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))

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.

SatzDie Ackermann-Funktion ist nicht primitiv rekursiv.SatzDie Ackermann-Funktion ist nicht primitiv rekursiv.

Beachte:Es handelt sich hier nicht um ein primitiv rekursives Rekursionsschema.

Page 97: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

97

KB

Bere

chen

bark

eitÜbungÜbung

f(x, y) = „das kleinste z mit y+z=x“

Wir betrachten die folgende informell definierte Funktion. Berechnen Sie f(5, 2) und f(2, 5). Beschreiben Sie das Verhalten der Funktion f.

Page 98: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

98

KB

Bere

chen

bark

eit

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.

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.

Partiell rekursive FunktionenPartiell rekursive Funktionen

Beweis: siehe Fachliteratur

SatzDie Ackermann-Funktion ist partiell rekursiv.SatzDie Ackermann-Funktion ist partiell rekursiv.

Page 99: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

99

KB

Bere

chen

bark

eit

ÄquivalenzsatzÄ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.

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

Page 100: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

100

KB

Bere

chen

bark

eit

Page 101: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

101

KB

Bere

chen

bark

eit

Teil 9 Teil 9

Church-Turing-These

Page 102: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

102

KB

Bere

chen

bark

eit

BerechnungsmodelleBerechnungsmodelle

Grundschema eines algorithmisch gesteuerten SystemsGrundschema eines algorithmisch gesteuerten Systems

“Prozessor”Anweisungen

Eingaben

Ausgaben

Präzisierungsansätze:Präzisierungsansätze:

Maschinenorientierter Ansatz: Turingmaschine, Registermaschine

Zuordnungsorientierter Ansatz: partiell rekursive Funktion

Anweisungsorientierter Ansatz: WHILE, Pascal, Delphi, C, Java, ...

Page 103: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

103

KB

Bere

chen

bark

eit

ÄquivalenzsatzÄ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.

- ...

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.

Page 104: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

104

KB

Bere

chen

bark

eit

Church-Turing-TheseChurch-Turing-TheseThese

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. ...

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. ...

Page 105: Berechenbarkeit Klaus Becker 2004. KB Berechenbarkeit 2 Die Möglichkeiten von Software Geben Sie einem Computer die richtige Software, und er wird tun,

105

KB

Bere

chen

bark

eit

LiteraturhinweiseLiteraturhinweise

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.