• Keine Ergebnisse gefunden

Berechenbarkeit und Entscheidbarkeit

4. Eigenschaften von Algorithmen 67

4.2. Berechenbarkeit und Entscheidbarkeit

4.2.1. Existenz nichtberechenbarer Funktionen

Wir gehen der Frage nach, welche Funktionen sich ¨uberhaupt durch Algorithmen

— applikative, imperative oder andere — berechnen lassen.

Gibt es z.B. Funktionen, die sich nicht durch irgendeinen Algorithmus berech-nen lassen?

Daß dies tats ¨achlich der Fall sein muß, l ¨aßt sich unschwer einsehen. Wir be-nutzen hierzu nur eine — sicherlich unabdingbare — Eigenschaft eines jeden Algo-rithmus, n ¨amlich:

4.2. Berechenbarkeit und Entscheidbarkeit Jeder Algorithmus l ¨aßt sich durch einen endlichen Text

¨

uber einem festen, endlichen Alphabet beschreiben.

SeiA = fa1

;:::;a

n

g ein Alphabet mit der alphabetischen Ordnunga1

< a

2

<

::: < a

n. Mit A bezeichnen wir die Menge der Texte (Zeichenketten, endlichen Folgen, Worte) ¨uberA:

Hierbei istder leere Text der L¨ange 0.

Wir k¨onnenA nun auflisten, und zwar

1. der L ¨ange nach. Zu jeder L ¨ange l gibt esnl verschiedene Texte ¨uber A, also endlich viele.

2. lexikographisch innerhalb der Texte gleicher L ¨ange:

b

Hierdurch ist eine Ordnung aufAeindeutig bestimmt, so daß wir von dem ersten, zweiten, dritten, etc. Text ¨uberA (gem ¨aß dieser Ordnung) reden k¨onnen. Daraus folgt:

Satz 4.1 A ist abz ¨ahlbar. 2

Da es nicht mehr berechenbare Funktionen als sie berechnende Algorithmen und nicht mehr Algorithmen als sie beschreibende Texte geben kann, gilt offenbar folgende Aussage:

Satz 4.2 Die Menge der berechenbaren Funktionen ist abz ¨ahlbar. 2 Betrachten wir nun speziell einstellige Funktionen auf Z, f : Z ! Z. Wie bewiesen, gibt es nur abz ¨ahlbar viele berechenbare solche Funktionen. Funktionen insgesamt gibt es jedoch weit mehr, wie der folgende Satz zeigt:

Satz 4.3 Die Menge F = ff j f : Z ! Zg der einstelligen Funktionen auf Z

¨

uberabz ¨ahlbar.

Beweis: Wir nehmen an, F sei abz ¨ahlbar, so daß wir nun alle f 2 F auflisten k¨onnen,F = ff0

4. Eigenschaften von Algorithmen Dann ist f ¨ur i = 1;2;:::g(i) 6= fi

(i), also ist f ¨ur i = 1;2;::: immer g 6= fi. g kommt demnach in der obigen Folge nicht vor. Offensichtlich istgaber eine einstel-lige Funktion aufZund m ¨ußte somit in der obigen Folge aller dieser Funktionen vorkommen. Der Widerspruch l¨aßt sich nur l ¨osen, wenn wir die Annahme

fallen-lassen,F sei abz ¨ahlbar. 2

Berechenbare Funktionen sind also unter allen Funktionen genauso “seltene”

Ausnahmen wie ganze (oder nat ¨urliche oder rationale) Zahlen unter den reellen.

Bemerkung 4.5 Die obige Beweismethode ist unter dem Namen “Cantorsches Dia-gonalverfahren” bekannt. Auf ¨ahnliche Weise hat Cantor erstmals bewiesen, daß die reellen Zahlen ¨uberabz ¨ahlbar sind.

Nachdem wie wissen, daß berechenbare Funktionen eher seltene Ausnahmen sind, ist die Frage naheliegend, ob sich nicht-berechenbare Funktionen konkret angeben lassen. Um zu beweisen, daß eine gegebene Funktion berechenbar ist, braucht man nur einen Algorithmus anzugeben, der sie berechnet. So schwie-rig dies in Einzelfall sein mag, so ist es doch prinzipiell schwieschwie-riger zubeweisen, daß eine gegebene Funktion nicht berechenbar ist. Die erfordert n¨amlich eine Be-weisf ¨uhrung, ¨uber alle denkbaren und m¨oglichen Algorithmen!

Derartige Ergebnisse ¨uber Algorithmen lassen sich nur gewinnen, wenn man den Begriff des Algorithmus mit hinreichender mathematischer Genauigkeit defi-niert, wie dies am Anfang dieses Kapitels geschah.

4.2.2. Konkrete Nicht-berechenbare Funktionen

Nun kehren wir zu dem Problem zur ¨uck, eine nicht berechenbare Funktion konkret anzugeben. Wir benutzen dazu ein beliebiges Algorithmenmodell, welches folgen-den Kriterien gen ¨ugt:

1. Berechnet werden partielle Funktionen f : A ! A uber einem festen Al-¨ phabetA.

2. Auch die Algorithmen selbst lassen sich als Text ¨uberAdarstellen.

Damit k ¨onnen Algorithmentexte wiederum als Eingaben f ¨ur Algorithmen genom-men werden!

Bemerkung 4.6 Z.B. lassen sich Markov-Algorithmen leicht als Text ¨uber einem geeigneten AlphabetA codieren. Codierungen von Algorithmen durch nat ¨urliche Zahlen gehen auf K. G ¨odel (1931) zur ¨uck. Man spricht von “G¨odelisierung”. 2 Definition 4.9 Sei x 2 A. Dann bezeichnet 'x die vom Algorithmus mit Text

x berechnete Funktion. Ist x kein sinnvoller Algorithmentext, so sei 'x ¨uberall undefiniert.

4.2. Berechenbarkeit und Entscheidbarkeit Definition 4.10 Seif : A !A eine partielle Funktion. Dann ist

domf := fx2A

jf(x)ist definiertg

der Urbildbereich vonf (“domain”). 2

Nun sind wir endlich in der Lage, eine nicht berechenbare Funktion konkret anzugeben. Dazu seia2Aein fest gew ¨ahlter Buchstabe.

Satz 4.4 Die (totale) Funktionh: A ! A,

h(x) = (

; fallsx2dom'x

a sonst (4.1)

ist nicht berechenbar. 2

Die obige Funktionhist mathematischer Ausdruck eines recht anschaulichen Pro-blems, des sog. Halteproblems. h entscheidet durch die Ausgabe oder a, ob x 2

dom '

x ist oder nicht. Nun bedeutet x 2 dom 'x, daß'x

(y) definiert ist, und das heißt, daß der Algorithmus mit Text x bei Eingabe vony irgendwann anh ¨alt. Die Funktionhdr ¨uckt also die Frage aus:

“H ¨alt ein Algorithmus irgendwann an, wenn man ihm seinen eigenen Text eingibt?”

4.2.3. Das Halteproblem

Entscheidungsprobleme, derern Entscheidungsfunktion nicht berechenbar ist, nennt man nicht entscheidbar. Es gibt eine große F ¨ulle nicht entscheidbarer Probleme.

Das Problemx 2dom'x ist ein spezielles Halteproblem, auch Selbstanwendungs-problem genannt. Das allgemeine HalteSelbstanwendungs-problem isty2dom'x, also:

“H ¨alt Algorithmusxbei der Eingabe vony?”

Korollar 4.5 Das allgemeine Halteproblem ist nicht entscheidbar.

Beweis: G ¨abe es einen Entscheidungsalgorithmus f ¨ur y 2 dom 'x, so k¨onnte

man damit auch speziellx2dom'xentscheiden. 2

Bemerkung 4.7 So einfach dieser Beweis ist, er zeigt das typische Grundmuster, n ¨amlich “Reduktion auf ein als nicht entscheidbar bewiesenes Problem”. Fast alle Nicht-Entscheidbarkeits-Beweise sind so konstruiert: “W¨are das (neue) Problem Y entscheibar, so auch das (alte) Problem X”. Das Halteproblem spielt hierbei die Rolle einer Wurzel, auf die letzten Endes alle Nicht-Entscheidbarkeits-Probleme

reduziert werden. 2

4. Eigenschaften von Algorithmen

Wegen der grundlegenden Bedeutung des Halteproblems f ¨ur die Theorie der Ent-scheidbarkeit wollen wir zun ¨achst einen “anschaulichen” Beweis f ¨ur seine Nicht-Entscheidbarkeit liefern.

Angenommen, wir h ¨atten eine Maschine (Algorithmus) STOP mit zwei Einga-ben, n ¨amlich einem Algorithmentext x und einer Eingabe y f ¨ur x, sowie zwei Aus-gaben:

JA: x stoppt bei Eingabe von y

NEIN: x stoppt nicht bei Eingabe von y Graphisch dargestellt:

STOP x

y NEIN

JA

Mit dieser Maschine STOP k ¨onnten wir dann eine neue Maschine SELTSAM konstruieren:

STOP x

x NEIN

JA SELTSAM

x

OK

Bei Eingabe von x wird getestet, ob x bei Eingabe von x stoppt. Im JA-Fall wird in eine Endlosschleife gegangen, die nie anh ¨alt. Im NEIN-Fall h ¨alt SELTSAM an mit der Anzeige OK.

Nun geben wir SELTSAM als Eingabe f ¨ur sich selbst ein und fragen:

H ¨alt SELTSAM bei der Eingabe von SELTSAM?

1. Wenn ja, so wird der JA-Ausgang von STOP angelaufen und SELTSAM ger ¨at in die Endlosschleife, h ¨alt also nicht. Widerspruch!

2. Wenn nein, so wird der NEIN-Ausgang von STOP angelaufen und SELTSAM stoppt mit OK. Widerspruch!

Diese Widerspr ¨uche folgen aus der Annahme, daß eine STOP-Maschine exi-stiert, was daher verneint werden muß.

4.2. Berechenbarkeit und Entscheidbarkeit Beweis 4.6 Mathematischer Beweis von Satz 4.4: Wir nehmen an,hsei berechen-bar, dann ist aufgrund der Church’schen These auch die Funktiong: A!A

g(x) = (

'

x

(x)a; fallsh(x) =

sonst

berechenbar. Nun ist sicherlichg(x) 6='x

(x)f ¨ur allex 2A. Dagberechenbar ist, gibt es eine Algorithmus mit einem Texty2A, dergberechnet, d.h. es istg='y. Damit folgt nun:

'

y

(y) = g(y) 6= '

y (y)

Dies ist offenbar ein Widerspruch, der sich nur dadurch l¨osen l ¨aßt, daß wir die

Annahme aufgeben,hsei berechenbar. 2

Bemerkung 4.8 Dies ist wiederum ein Diagonalbeweis.

4.2.4. Nicht-entscheidbare Probleme

Das Halteproblem ist ein Beispiel f ¨ur ein semantisches Problem von Algorithmen, n ¨amlich ein Problem der Art:

Kann man anhand eines Programmtextes (Syntax) entscheiden, ob die berechnete Funktion (Semantik) eine bestimmte Eigenschaft hat?

Beim Halteproblem ist dies die Eigenschaft, ob die berechnete Funktion an ei-ner bestimmten Stelle definiert ist. Wie steht es nun mit anderen semantischen Eigenschaften von Algorithmen?

Aus einem tiefliegenden Satz der Algorithmentheorie (Satz von Rice) folgt die folgende bemerkenswerte Aussage:

Jede nicht triviale semantische Eigenschaft von Algorithmen ist nicht-entscheidbar!

Dabei ist eine Eigenschaft genau dann trivial, wenn entweder jede oder keine berechnete Funktion sie hat. Nichttriviale semantische Eigenschaften sind dem-nach solche, die manche berechneten Funktionen haben und manche nicht.

Nicht entscheidbar sind also u.a. folgende Probleme:

1. Ist die berechnete Funktion total? ¨uberall undefiniert? injektiv? surjektiv?

bijektiv? etc. etc.

2. Berechnen zwei gegebene Algorithmen dieselbe Funktion?

3. Ist ein gegebener Algorithmus korrekt, d.h. berechnet er die gegebene (gew¨ unsch-te) Funktion?

4. Eigenschaften von Algorithmen

Diese Ergebnisse bedeuten nicht, daß man solche Fragen nicht im Einzelfall ent-scheiden k¨onnte! Dies ist durchaus m ¨oglich. So behandeln wir z.B. im n ¨achsten Abschnitt das Problem, die Korrektheit von Algorithmen nachzuweisen. Es ist je-doch prinzipiell unm ¨oglich, eine allgemeine Methode hierf ¨ur zu finden, also z.B.

einen Algorithmus, der die Korrektheit aller Algorithmen nachweist (und damit auch seine eigene!).

4.2.5. Post’sches Korrespondenzproblem

Ein besonders einfaches und verbl ¨uffendes nicht-entscheidbares Problem ist das Post’sche Korrespondenzproblem (E. Post): Gegeben seien ein AlphabetAund zwei gleichlange Listen von Worten ¨uberA:

= (

fg und n 1. Das Problem besteht darin, eine

“Korrespondenz” zu finden, d.h. eine endliche Folge(i1

;i

Dieses Post’sche Korrespondenzproblem besitzt eine L¨osung, n ¨amlich (2,1,1,3):

10111:1:1:10 = 10:111:111:0

2

Beispiel 4.14

A = f0;1g = (10; 011; 101)

= (101; 11; 011)

Dieses Post’sche Korrespondenzproblem besitzt keine L¨osung. G ¨abe es n ¨amlich eine, so m ¨ußte sie mit 1 anfangen: