Zum Inhalt springen

Berechenbarkeitstheorie

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 26. Juni 2003 um 04:13 Uhr durch 213.157.9.212 (Diskussion). Sie kann sich erheblich von der aktuellen Version unterscheiden.


Die Berechenbarkeitstheorie ist ein Teilgebiet der theoretischen Informatik, der sich mit dem Begriff der Berechenbarkeit befasst, insbesondere welche Probleme mit Hilfe einer Maschine (genauer: eines mathematischen Modelles einer Maschine) lösbar sind.

Die folgenden Hauptfragen werden gestellt:

Welche Art Aufgaben kann eine Turingmaschine lösen?

Nicht alle Aufgaben können gelöst werden. Ein unentscheidbares Problem ist eines, das nicht durch einen Algorithmus gelöst werden kann, auch wenn unbeschränkt Zeit und Geld zur Verfügung steht. Man kennt viele unentscheidbare Aufgaben.
Z.B. kann das Entscheidungsproblem nicht gelöst werden: Gegeben ist eine Aussage der Prädikatenlogik erster Ordnung. Aufgabe ist es zu entscheiden, ob die Aussage allgemein gültig ist. Church und Turing haben unabhängig nachgewiesen, dass diese Aufgabe nicht gelöst werden kann.

Ein weiteres Problem ist das Halteproblem: Gegeben ist ein Programm und dessen Eingabe. Die Aufgabe ist es zu entscheiden, ob das Programm mit der gegebenen Eingabe zum Stillstand kommt oder nicht. Turing bewies, dass dies unentscheidbar ist.


Welche anderen Maschinen sind gleich leistungsfähig wie Turingmaschinen?

....

Maschinen, die gleich leistungsfähig wie Turingmaschinen sind:


Welche Aufgaben können durch weniger leistungsfähige Maschinen gelöst werden?

Die Chomsky-Hierarchie beschreibt diejenigen formalen Sprachen die durch vier Klassen von Algorithmen erkannt werden können. Sie alle setzten einen nichtdeterministischen endlichen Automaten voraus mit einem Speicher.

Wenn der Speicher unendlich groß ist, dann entspricht die Situation der Turingmaschine.
Wenn der Speicher proportional zur Größe der Eingabezeichenkette ist, dann können kontext-abhängige Sprachen erkannt werden.
Wenn der Speicher nur einen Stapel umfasst, dann können kontextfreie Sprachen erkannt werden.
Wenn die Maschine keinen Speicher hat, dann können nur Sprachen, die durch reguläre Ausdrücke definiert sind, erkannt werden.