74
Grundlagen der Informatik Kapitel 19 Harald Krottmaier Sven Havemann

Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

  • Upload
    lamlien

  • View
    219

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

Grundlagen der Informatik

Kapitel 19

Harald Krottmaier

Sven Havemann

Page 2: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

WS2007 2

Agenda

• Begriffe

• Turingmaschine – Beispiele

• Berechenbarkeit – Hilfsmittel

– Beispiele

Page 3: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

WS2007 3

Motivation

• Sind Computer „allmächtig“?

• Präziser: Ist alles von einem

Computer berechenbar?

Page 4: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

WS2007 4

1937…

• Alan Turing – Engl. Mathematiker, Gigant!

• Berechnung von Funktionen:

• Partielle Funktion: Nur eine Teilmenge aller möglichen Eingaben wird akzeptiert:

Page 5: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

WS2007 5

Berechenbare Funktion

• “Eine Funktion heißt berechenbar,

wenn ein Algorithmus gefunden

werden kann, der die Funktion

berechnet.”

– Eine Funktion ist eine Abbildung

– Ein Algorithmus ist eine endliche

Berechnungsvorschrift

Page 6: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

WS2007 6

Bsp. Berechenbare Funktion

• f(n) = 2n

• g(n) = (4n) * 0.5

• f und g sind gleiche Funktionen,

aber mit unterschiedlichen

Berechnungsvorschriften

• h(n)=100/(n-1) ist partielle

Funktion, undefiniert für n=1

Page 7: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

Eine nicht berechenbare

Funktion

• Sei f(i,j) eine Funktion, die alle

möglichen Folgen natürlicher Zahlen

enthält, also f(i,j) { 0,..,9 }

– Eigentlich Liste von Ziffernfolgen!

• f(i): i-te Folge, entspricht den

nichtabbrechenden Dezimalzahlen

zwischen 0.0 und unter 1.0

– 0 . 9 1 3 9 1 3 0 1 3 2 9 7 2 3 2 3 4 …

WS2007 7

Page 8: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

Eine nicht berechenbare

Funktion

• Konstruiere nun eine neue Funktion

die sich von jeder Funktion in der

Liste unterscheidet:

– g(j) sei 0 wenn f(j,j) 0

– g(j) sei 1 wenn f(j,j) = 0

• g unterscheidet sich von allen

Funktionen in der Liste!

• Also enthält f nicht alle Folgen! WS2007 8

Page 9: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

WS2007 9

Nicht berechenbare

Funktionen

• Diagonalverfahren nach Cantor (1873)

• Georg Cantor: Begründer der

Mengenlehre

– Gigant!

Page 10: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

WS2007 10

Bsp.: Diagonalverfahren

Page 11: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

WS2007 11

Nicht durch Algorithmus

berechenbare Funktionen

• Potenzmenge P(IN) – Das ist die Menge aller möglichen

Teilmengen von IN

– Es gibt mehr Teilmengen als es Elemente von IN gibt

• P(IN) ist überabzählbar

• Die Menge aller Funktionen f: IN IN ist auch überabzählbar

Page 12: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

WS2007 12

Wieviele Algorithmen gibt es?

• Ein Algorithmus besteht aus einem

endlichen Wort aus ∑*

• Es gibt nur abzählbar viele Algorithmen!

– Wirklich? Wie zählt man sie ab??

• Es gibt daher auch nur abzählbar viele

berechenbare Funktionen!

• Es gibt also sehr viele Funktionen, die

nicht durch einen Algorithmus berechnet

werden können!

Page 13: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

WS2007 13

Die Church'sche These

• "Die Klasse der Turing-berechenbaren Funktionen ist genau die Klasse der intuitiv berechenbaren Funktionen."

• Die Church´sche These ist nicht beweisbar – Problem: "intuitiv berechenbar.."

• Satz: "Die Menge der berechenbaren Funktionen ist die Menge aller Funktionen, die sich mit einer Turingmaschine berechnen lassen."

Page 14: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

WS2007 14

Berechenbarkeitskonzepte

Page 15: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

WS2007 15

Die Turingmaschine

• Alan Turing: allgemeines Konzept einer „rechnenden Maschine" – unbegrenztes Arbeitsband, in Felder unterteilt

– Lese-/Schreib-Kopf an aktueller Position

– Maschine selbst hat endlich viele Zustände

– Maschine kann Zeichen in Arbeitsfeld lesen und abhängig vom aktuellen Zustand

• Neues Zeichen in Arbeitsfeld schreiben

• Nach rechts oder links gehen und dann

• In einen neuen Zustand übergehen

Page 16: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

WS2007 16

Die Turingmaschine formal

7-Tupel:

Page 17: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

WS2007 17

Wichtiger Satz in der

Informatik:

• Jedes Problem, das überhaupt

maschinell lösbar ist, kann auch von

einer Turingmaschine gelöst werden

• Problem nur im Einzelfall: Finde die

richtige Überführungsfunktion….

– (schreibe das richtige C-Programm)

Page 18: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

WS2007 18

Bsp Turingmaschine:

Paritätsprüfung

• Ungerade Anzahl von Strichen (I, III,

IIIII, ...) akzeptieren, sonst nicht!

– Leere Bandfelder enthalten ein #

• Zustandsgraph:

Page 19: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

WS2007 19

Tätigkeit der Turingmaschine:

• Liste von 5-Tupeln: – Aktueller Zustand aus Z

– Eingabezeichen aus Σ Γ

– Ausgabezeichen aus Γ

– Kopfbewegung aus {L,N,R}

– Folgezustand aus Z

• Praktischerweise als Tabelle

angeben, „Turingtabelle“

Page 20: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

WS2007 20

Für Paritätsprüfungsbeispiel:

• Braucht drei 5-Tupel, Schreibweise:

– 1I#R2 „liest die Maschine in Zustand 1 ein I, so schreibt

sie ein #, geht nach rechts und geht in Zustand 2“

– 2I#R1

– 2##N3

• Zustand 1: gerade, 2: ungerade Anz

• Zustand 3: Maschine hat ungerade

Anzahl von "I" gelesen.

Page 21: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

WS2007 21

Page 22: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

WS2007 22

Bsp.: Duale Addition von 1

• z.B.

– Eingabe: #1100#

– Ausgabe: #1101#

• oder:

– Eingabe: #11011#

– Ausgabe: #11100#

Page 23: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

Turingmaschine: Binärinkrement

WS2007 23

Page 24: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

WS2007 24

Bsp.: Erkennen einer Sprache

• Wörter aus der formalen Sprache

L={anbncn | n≥0} werden akzeptiert

– abc

– aabbcc

– aaabbbccc

– aaaabbbbcccc

– ...

Page 25: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

L={anbncn | n≥0}

WS2007 25

„Finde den Fehler“

Page 26: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

Weitere Ideen…

• Verdopplungsmaschine:

Aus n Strichen mache 2n Striche

• Multipliziermaschine:

aus III#IIII mache xxx#IIII#IIIIIIIIIIII

– Mit x-en mitzählen, wie oft schon addiert

worden ist

• Unterprogramme: Sub-Tabellen…

– Sequenzielle Ausführung von TMs

WS2007 26

Page 27: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

WS2007 27

Viele Varianten von TMs...

• Varianten von Turingmaschinen:

– mehrere Eingabebänder

– einseitig begrenztes Band

– Grosses Eingabealphabet

– …

• Aber: Alle TMs sind gleichwertig!

– jedes Alphabet lässt sich beispielsweise

auf {#, 0, 1} reduzieren

Page 28: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

WS2007 28

Turing-berechenbare Funktionen

• Partielle Funktion f: INk IN berechnen – Argumente (n1, n2, ..., nk) auf Band kodieren

z.B. als #n1# n2# ... #nk#

– L/S-Kopf ganz links, dann starte TM

• Wenn TM anhält: – Ergebnis ist ab dem Zeichen unter dem L/S-

Kopf ablesbar

– Wird Eingabe akzeptiert, ist das Ergebnis f (n1, n2, ..., nk), sonst:

• TM hält nicht an oder

• unter L/S-Kopf ist keine Zahl

Page 29: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

Registermaschine

• Speicher

– Datenspeicher

– Programmspeicher

• Prozessor

– Akkumulator

– Befehlsregister

– Befehlszähler

• Ein/Ausgabe-Einheit WS2007 29

Page 30: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

Registermaschine

WS2007 30

Page 31: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

WS2007 31

Registermaschine

• Einfaches, abstrahiertes Modell

eines von-Neumann-Rechners

• RM kann alles berechnen, was auch

ein realer Rechner berechnen kann.

• RM kann TM simulieren!

• TM kann RM simulieren!

• Äquivalente Berechnungsmodelle

Page 32: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

WS2007 32

Modell-Sprachen

• Einfache modellhafte Sprachen:

– GOTO-Sprache

– WHILE-Sprache

– LOOP-Sprache

• Satz: Jede Turing-berechenbare

Funktion ist auch GOTO und

WHILE-berechenbar

– LOOP ist schwächer…

Page 33: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

WS2007 33

GOTO-Programmiersprache

• Wie RM, aber statt Registern Variablennamen, und einfache Syntax:

• Jede numerierte Zeile enthält entweder – Zuweisung eines berechneten Terms an eine

Variable

• x := 2*a + 4*b

– Bedingten oder unbedingten Sprungbefehl

• IF bedingung GOTO zeile

• GOTO zeile

Page 34: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

WS2007 34

GOTO: Addition

• Addition zweier natürlicher Zahlen

x = a + b wenn Prozessor nur succ

und nicht + beherrscht:

Page 35: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

WS2007 35

WHILE-Programmiersprache

• Programm besteht aus einem von:

– Zuweisung

– bedingte Anweisung

– WHILE-Schleife

– Sequenz von

Programmen

Page 36: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

WS2007 36

WHILE-Sprache: Addition

• x = a + b

Page 37: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

WS2007 37

WHILE-Sprache: Multiplikation

• e = a * b

Page 38: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

WS2007 38

WHILE durch GOTO

• WHILE-Schleife wird durch

bedingten Sprung nachgebildet

Page 39: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

GOTO durch WHILE

WS2007 39

Page 40: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

WS2007 40

Kleene'sches Theorem

• Äquivalent: Jedes GOTO-Programm

lässt sich in ein WHILE-Programm

umwandeln und umgekehrt

• Kleene'sches

Normalformentheorem:

"Jede berechenbare Funktion kann

mit einer einzigen WHILE-Schleife

programmiert werden."

Page 41: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

WS2007 41

LOOP-Programme

• auch FOR-Programme genannt…

• WHILE-Schleife durch FOR-Schleife

ersetzt, aber: Durchlaufanzahl fest!

Page 42: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

WS2007 42

Eigenschaften LOOP-Prog.

• Endlicher Durchlauf aller Schleifen

– Schleifenvariable i darf im Body der

Schleife nicht geändert werden!

• Konsequenz:

– LOOP-Programme terminieren immer!

– Start-/Endwert ist immer angegeben

• LOOP nicht so mächtig wie WHILE

– Kein TM-Simulator mit LOOP möglich

Page 43: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

WS2007 43

Primitive Rekursion

• Funktion durch Rekursion berechnet,

kommt ohne Zuweisung/Schleifen aus

– z.B. in funktionalen Programmiersprachen

• Definition Primitive Rekursion:

Page 44: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

WS2007 44

Primitive Rekursion

• Erlaubt sind dazu noch:

– Funktions-Komposition

– Vertauschen von Argumentpositionen

– Projektion

• Eine Funktion heisst primitiv rekursiv,

wenn sie aus 0, succ() und den

Projektionen von Verkettung und

primitiver Rekursion gebildet werden

kann

Page 45: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

WS2007 45

Primitive Rekursion

• Projektion: pk,i : INk → IN

ist definiert durch pk,i(x1,…, xk) = xi

• Verkettung: Ist f n-stellige und g1,…, gn

k-stellige Funktion, so ist die Verkettung f ◦ (g1,…, gn) : IN

k → IN definiert durch:

(f ◦ (g1,…, gn))(x1,…, xk) = f (g1(x1,…, xk),…, gn(x1,…, xk))

Page 46: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

Bsp.: Primitive Rekursion

WS2007 46

Page 47: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

Bsp. LOOP-Programm

WS2007 47

Page 48: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

WS2007 48

Primitive Rekursion als

LOOP-Programm

• Satz: Jede primitiv-rekursive Funktion ist

LOOP-berechenbar

• Jede „vernünftig“ total berechenbare

Funktion ist primitiv rekursiv, wobei

„vernünftig“ bedeutet, dass man die

maximal möglichen Schleifendurchläufe

vorab bestimmen kann.

• Das ist weniger als TM-Berechenbarkeit!

Page 49: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

WS2007 49

µ-Rekursion

• Es gibt Probleme, die sich nicht

mehr primitiv-rekursiv lösen lassen

• z.B. Suchprobleme: Suche für (k+1)-

stellige Funktion f das kleinste z, für

das f(z, x1, ..., xk) = true ist

• Argument wird beim rekursiven

Aufruf nicht kleiner, sondern größer!

Page 50: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

µ-Rekursion

• Mögliches Problem: Suche bricht

niemals ab – z.B. wenn es kein z

gibt, für das f true liefert

WS2007 50

Page 51: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

WS2007 51

µ-Rekursion versus

WHILE-berechenbar

• Beide Klassen stimmen überein:

• Alle µ-rekursiven Funktionen sind

WHILE-berechenbar (und damit auch

GOTO- und Turing-berechenbar)

• Nach Kleene kommt man mit einer

einzigen WHILE-Schleife aus!

• Also gilt:

Jede berechenbare Funktion lässt sich

als µ-rekursive Funktion schreiben

Page 52: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

WS2007 52

µ-Rekursion durch WHILE

• Ziemlich offensichtlich:

Page 53: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

WS2007 53

Bisher:

• Jede LOOP-berechenbare Funktion ist

total (d.h., terminiert immer!)

• Jede total berechenbare Funktion, für die

mit LOOP-Programmen eine

Abschätzung der max. möglichen

Schleifendurchläufe möglich ist, ist auch

LOOP-berechenbar.

• LOOP-berechenbare Funktion sind

genau die primitiv rekursiven Funktionen.

Page 54: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

WS2007 54

Frage:

• Ist jede total berechenbare Funktion

immer durch ein LOOP-Programm

berechenbar?

Page 55: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

WS2007 55

Ackermann-Funktion

• totale, berechenbare Funktion

• nicht primitiv rekursiv!

• [Ackermann-Péter]

• = m+1 wenn n=0

a(m,n) = a(n-1,1) wenn m=0

= a(n-1,a(n,m-1)) sonst

Page 56: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

Ackermann-Funktion

• Wächst sehr stark an

• Kann von keiner primitiv rekursiven

Funktion nach oben beschränkt

werden

WS2007 56

Page 57: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

Ackermann-Funktion

• Verallgemeinerung der

Grundrechenarten:

– a(0,y) = y+1

– a(1,y) = y+2

– a(2,y) = 2y + 3

– a(3,y) = 2y+3-3

– a(4,y) = 2X-3 wobei X=2^…^2 mit

„Turmhöhe“ y+2

WS2007 57

Page 58: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

Unlösbare Probleme

Page 59: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

WS2007 59

Prinzipiell unlösbare Probleme

• Ein Algorithmus kann angegeben

werden, aber ein Computer kann

das Problem nicht lösen.

• Probleme, die niemals durch

menschliche Erfindungskraft und

technisch-wissenschaftlichen

Fortschritt zu lösen sein werden

Page 60: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

WS2007 60

Entscheidbare Menge

• „Eine Menge M heißt rekursiv

entscheidbar oder entscheidbar,

wenn es einen Algorithmus gibt, der

nach endlicher Zeit terminiert und

entscheidet, ob die Eingabe zur

Menge gehört oder nicht."

Page 61: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

WS2007 61

Bsp: Entscheidbare Menge:

Goldbach-Vermutung

• "Jede gerade Zahl größer als 2 kann

als Summe zweier Primzahlen

geschrieben werden.„

– Nun als „Goldbach-Eigenschaft“

• [für alle Zahlen bis 1018 überprüft...]

• [Satz von Euklid: es gibt unendlich

viele Primzahlen...]

Page 62: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

WS2007 62

Semi-entscheidbare Menge

• Frage: Element in Menge?

– Ja

– Nein

• Eine der beiden Antworten muss in

endlicher Zeit gegeben werden

– Die andere darf unendlich dauern…

Page 63: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

WS2007 63

Bsp. (3n+1)-Problem

• „Collatz-Folge“

• Startzahl heißt "wundersam", wenn Folge mit Zahl 1 endet

• Startzahl 6: Folge 3, 10, 5, 16, 8, 4, 2, 1

• Folge kann sehr, sehr lang werden!

• Wundersamkeit ist semi-entscheidbar!

Page 64: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

WS2007 64

Bsp. "Game of Life"

• Drei Regeln:

– Geburt: Tote Zelle wird lebendig, wenn

3 der 8 Nachbarn leben

– Überbevölkerung: Zelle stirbt, wenn 4

oder mehr Nachbarn leben

– Vereinsamung: Zelle stirbt, wenn sie

weniger als 2 lebende Nachbarn hat

• Semi-entscheidbar?

Page 65: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

WS2007 65

Das Halteproblem

• "Gibt es ein Programm, das als

Eingabe den Quelltext eines zweiten

Programms sowie dessen

Eingabewerte erhält, und dann

entscheiden kann, ob das zweite

Programm terminiert, d.h. nicht

endlos weiterläuft?"

Page 66: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

WS2007 66

Halteproblem

• Angenommen, es gibt so eine Fkt:

Page 67: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

WS2007 67

Halteproblem

• Dann kann man ein fiese Funktion

test() bauen, die nur dann nicht

terminiert, wenn haltetest JA gibt:

Page 68: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

Halteproblem

• Wende nun test auf sich selber an,

also berechne test(test)

– haltetest(test,test) liefert JA weil

test(test) terminiert: Aber dann kann das

WHILE in test() nicht terminieren! –

Widerspruch.

– haltetest(test,test) liefert NEIN: Dann

terminiert das WHILE sofort –

Widerspruch.

WS2007 68

Page 69: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

WS2007 69

Halteproblem

• Beide Fälle führen zum Widerspruch,

es gibt aber nur die beiden Fälle, also

kann es die Funktion haltetest nicht

geben!

• Halteproblem semi-entscheidbar:

TM simulieren und JA ausgeben,

wenn sie anhält.

Page 70: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

Konsequenzen des

Halteproblems

• „In jedem System, das Turing-

mächtig ist, lassen sich Aussagen

formulieren, die weder bewiesen

noch widerlegt werden können.

Solche Systeme sind grundsätzlich

unvollständig“

• Die Arithmetik ist solch ein System.

WS2007 70

Page 71: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

Konsequenzen des

Halteproblems

• Auswirkung auf die

Software-Entwicklung:

• Es kann kein Computerprogramm

geben, das generell überprüft, ob

andere Computerprogramme für alle

Eingaben das korrekte Ergebnis

liefern

WS2007 71

Page 72: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

WS2007 72

Zusammenfassung

• Turingmaschine

– Simulator ausprobieren!

• GOTO, WHILE, LOOP

• Unlösbare Probleme

Page 73: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

WS2007 73

Organisatorisches...

• Prüfung

– Termine

– Prüfungsfragen

Page 74: Grundlagen der Informatik - student.tugraz.at€¦ · WS2007 5 Berechenbare Funktion •“Eine Funktion heißt berechenbar, wenn ein Algorithmus gefunden werden kann, der die Funktion

WS2007 74

Quellen

• "Grundlagen der Informatik", Herold,

Lurz, Wohlrab; Pearson Studium

• Wikipedia