31.01.2014 Aufrufe

Skriptes - Uni Bremen - Universität Bremen

Skriptes - Uni Bremen - Universität Bremen

Skriptes - Uni Bremen - Universität Bremen

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Berechenbarkeit<br />

versteht. Zunächst gibt es scheinbar sehr viele Kandidaten für das zugrunde gelegte Berechnungsmodell:<br />

Eine Programmiersprache? Welche der vielen Sprachen ist geeignet?<br />

Imperativ, funktional, objektorientiert? Verwendet man ein hardwarenahes Modell, wie<br />

etwa das Modell eines Mikroprozessors? Oder ein abstraktes mathematisches Modell?<br />

Es stellt sich heraus, dass ein geeignetes Berechnungsmodell folgende Eigenschaften erfüllen<br />

sollte:<br />

1) es sollte einfach sein, damit formale Beweise erleichtert werden (z.B. nicht die<br />

Programmiersprache Java),<br />

2) es sollte berechnungsuniversell sein, d.h. alle intuitiv berechenbaren Funktionen<br />

können damit berechnet werden (bzw. alle intuitiv entscheidbaren Mengen<br />

entschieden werden können)—also keine endlichen Automaten, denn deren Berechnungsstärke<br />

ist viel zu schwach.<br />

Wir werden drei Berechnungsmodelle betrachten:<br />

• Turingmaschinen als besonders einfaches aber dennoch berechnungsuniverselles<br />

Modell<br />

• WHILE-Programme als Abstraktion imperativer Programmiersprachen (im Prinzip<br />

handelt es sich um eine möglichst einfache, aber immernoch berechnungsuniverselle<br />

solche Sprache)<br />

• µ-rekursive Funktionen als funktionsbasiertes, mathematisches Berechnungsmodell.<br />

Es gibt noch eine Vielzahl anderer Modelle: Registermaschinen, GOTO-Programme, k-<br />

Zählermaschinen mit k ≥ 2, Java-Programme, usw. Es hat sich aber interessanterweise<br />

herausgestellt, dass all diese vollkommen unterschiedlichen Modelle äquivalent sind, d.h.<br />

dieselbe Klasse von Funktionen berechnen (bzw. Problemen entscheiden). Zudem ist es<br />

bisher niemandem gelungen, ein formales Berechnungsmodell zu finden, das<br />

• realistisch erscheint (also im Prinzip in der wirklichen Welt realisierbar ist),<br />

• Funktionen berechnen kann, die in den oben genannten Modellen nicht berechenbar<br />

sind.<br />

Aus diesen beiden Gründen geht man davon aus, dass die genannten Modelle genau den<br />

intuitiven Berechenbarkeitsbegriff formalisieren. Diese Überzeugung nennt man die:<br />

Church-Turing-These:<br />

Die (intuitiv) berechenbaren Funktionen sind genau die mit Turingmaschinen (und damit<br />

mit WHILE-, Java-Programmen, Registermaschinen, ...) berechenbaren Funktionen.<br />

Man könnte die These äquivalent auch für Entscheidungsprobleme formulieren. Man<br />

spricht hier von einer These und nicht von einem Satz, da es nicht möglich ist, diese<br />

Aussage formal zu beweisen. Dies liegt daran, dass der intuitive Berechenbarkeitsbegriff<br />

ja nicht formal definierbar ist. Es gibt aber gute Indizien, die für die Richtigkeit der<br />

These sprechen, insbesondere die große Vielzahl existierender Berechnungsmodelle, die<br />

sich als äquivalent herausgestellt haben.<br />

88

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!