11.10.2013 Aufrufe

Algorithmen und Datenstrukturen Vorlesungsskript WS/SS 99-00

Algorithmen und Datenstrukturen Vorlesungsskript WS/SS 99-00

Algorithmen und Datenstrukturen Vorlesungsskript WS/SS 99-00

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.

4. Eigenschaften von <strong>Algorithmen</strong><br />

Dann ist für , also ist für immer . <br />

kommt demnach in der obigen Folge nicht vor. Offensichtlich ist aber eine einstellige<br />

Funktion auf <strong>und</strong> müßte somit in der obigen Folge aller dieser Funktionen<br />

vorkommen. Der Widerspruch läßt sich nur lösen, wenn wir die Annahme fallenlassen,<br />

sei abzählbar.<br />

Berechenbare Funktionen sind also unter allen Funktionen genauso “seltene”<br />

Ausnahmen wie ganze (oder natürliche oder rationale) Zahlen unter den reellen.<br />

Bemerkung 4.5 Die obige Beweismethode ist unter dem Namen “Cantorsches Diagonalverfahren”<br />

bekannt. Auf ähnliche Weise hat Cantor erstmals bewiesen, daß<br />

die reellen Zahlen überabzählbar sind.<br />

Nachdem wie wissen, daß berechenbare Funktionen eher seltene Ausnahmen<br />

sind, ist die Frage naheliegend, ob sich nicht-berechenbare Funktionen konkret<br />

angeben lassen. Um zu beweisen, daß eine gegebene Funktion berechenbar ist,<br />

braucht man nur einen Algorithmus anzugeben, der sie berechnet. So schwierig<br />

dies in Einzelfall sein mag, so ist es doch prinzipiell schwieriger zubeweisen,<br />

daß eine gegebene Funktion nicht berechenbar ist. Die erfordert nämlich eine Beweisführung,<br />

über alle denkbaren <strong>und</strong> möglichen <strong>Algorithmen</strong>!<br />

Derartige Ergebnisse über <strong>Algorithmen</strong> lassen sich nur gewinnen, wenn man<br />

den Begriff des Algorithmus mit hinreichender mathematischer Genauigkeit definiert,<br />

wie dies am Anfang dieses Kapitels geschah.<br />

4.2.2. Konkrete Nicht-berechenbare Funktionen<br />

Nun kehren wir zu dem Problem zurück, eine nicht berechenbare Funktion konkret<br />

anzugeben. Wir benutzen dazu ein beliebiges <strong>Algorithmen</strong>modell, welches folgenden<br />

Kriterien genügt:<br />

1. Berechnet werden partielle Funktionen £ £ über einem festen Alphabet<br />

.<br />

2. Auch die <strong>Algorithmen</strong> selbst lassen sich als Text über darstellen.<br />

Damit können <strong>Algorithmen</strong>texte wiederum als Eingaben für <strong>Algorithmen</strong> genommen<br />

werden!<br />

Bemerkung 4.6 Z.B. lassen sich Markov-<strong>Algorithmen</strong> leicht als Text über einem<br />

geeigneten Alphabet codieren. Codierungen von <strong>Algorithmen</strong> durch natürliche<br />

Zahlen gehen auf K. Gödel (1931) zurück. Man spricht von “Gödelisierung”.<br />

Definition 4.9 Sei Ü £ . Dann bezeichnet Ü die vom Algorithmus mit Text<br />

Ü berechnete Funktion. Ist Ü kein sinnvoller <strong>Algorithmen</strong>text, so sei Ü überall<br />

<strong>und</strong>efiniert.<br />

84

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!