Berechenbarkeit
Definition
In der Berechenbarkeitstheorie ist eine berechenbare
Funktion als eine Funktion definiert, die von einem
mechanischen Rechengerät (z.b. Computer) gelöst werden kann.
Diese Definition dient der präzisen Festlegung der Eigenschaften
eines Algorithmus und als Grundlage für die
Definition formaler Systeme zur Schlussfolgerung über
die Berechenbarkeit von Problemen.
Ein solcher Algorithmus muss folgende
Eigenschaften erfüllen:
- Der Algorithmus besteht aus einer endlichen Menge einfacher und
präziser Instruktionen.
- Der Algorithmus terminiert immer nach einer endlichen Anzahl von
Schritten.
- Die Ausführung des Algorithmus erfordert neben dem Verständnis
der Instruktionen keine weitere Intelligenz.
- Der Algorithmus kann im Prinzip von einem Menschen allein mit
Stift und Papier ausgeführt werden.
Für die Beschreibung solcher Algorithmen wurden diverse Formalismen
entwickelt:
- Rekursive Funktionen
- Turing Maschinen
- λ-Kalkulus
- Registermaschinen
- Kombinatorische Logik
- Markov Algorithmen
- ...
All diese Formalismen besitzen bewiesenermaßen die gleiche
Ausdruckskraft. Jeder Algorithmus, der durch einen Formalismus
beschrieben werden kann, lässt sich ebenfalls in allen anderen
Formalismen beschreiben.
Turing Maschinen
Die Turing Maschine, der wohl bekannteste
Formalismus zur Beschreinung und Ausführung von Algorithmen, wurde in
den 1930er Jahren von Alan M. Turing entwickelt.
Die Turing Maschine kann als ein minimaler Computer angesehen
werden und besteht aus vier Komponenten:
- Einem Speicherband, bestehend aus
Speicherzellen, die jeweils einen Wert eines endlichen Alphabets
aufnehmen können. Das Alphabet besteht aus einem speziellen
Leer Symbol und ein oder mehr weiteren Symbolen.
Das Speicherband dehnt sich endlos in beide Richtungen aus. Eine
Turing Maschine hat also immer ausreichend Speicherplatz zur
Verfügung.
- Einem Kopf oder Zeiger, der
Werte vom Speicherband lesen und darauf schreiben kann. Der Kopf
kann Zellenweise nach links oder rechts bewegt werden.
- Ein Zustandsregister, dass den aktuellen
Zustand der Turing Maschine speichert. Die Anzahl unterschiedlicher
Zustände ist endlich und es gibt immer einen speziellen Zustand
Start.
- Eine Übergangsfunktion oder
Übergangstabelle, die für den aktuellen Zustand und
den Inhalt der aktuelle Speicherzelle, einen neuen
Speicherzellenwert, die Bewegungsrichtung für den Kopf und den
Folgezustand angibt. Die Maschine hält an, wenn die
Übergangstabelle keinen Eintrag für die aktuelle Kombination von
Zustand und Speicherwert besitzt.
Aufbau einer Turing Maschine
Anmerkung: Alle Komponenten einer Turing Maschine
sind endlich. Auch das Speicherband ist nicht endlos, sondern enthält
nur mindestens so viele Speicherzellen, wie für die Ausführung des
Algorithmus notwendig sind.
Trotz ihres minimalen Aufbaus ist die Turing Maschine erstaunlich
ausdrucksstark. Jeder konventionelle Algorithmus (d.h. jedes auf
einem Computer umsetzbare Programm) kann ebenso auf einer Turing
Maschine umgesetzt werden.