05.08.2013 Aufrufe

Praktische Grenzen der Berechenbarkeit - Informatik

Praktische Grenzen der Berechenbarkeit - Informatik

Praktische Grenzen der Berechenbarkeit - Informatik

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.

komplexität tbin(n) <strong>der</strong> binären Suche im ungünstigsten Fall<br />

tbin(n) = 3 + ⌈log 2 n⌉ · (3 + 2)<br />

= 5 · ⌈log 2 n⌉ + 3<br />

tbin ∈ O(log 2 n)<br />

Auch hier mache man sich die Unterschiede <strong>der</strong> beiden Algorithmen mit Zahlen<br />

deutlich — an dieser Stelle auch am Beispiel des Telefonbuchs:<br />

Beispiel 3. Sucht man in einem 1000–seitigen Telefonbuch sequentiell, so muss<br />

man unter (ungünstigen) Umständen alle 1000 Seiten <strong>der</strong> Reihe nach aufschlagen.<br />

Mit binärer Suche hat man nach spätestens zehn Versuchen die passende Seite gefunden.<br />

Für die berechneten Komplexitäten <strong>der</strong> angegebenen Algorithmen erhält<br />

man folgende Werte:<br />

Sequentielle Suche: tseq(1000) = 4002<br />

Binäre Suche: tbin(1000) = 53 .<br />

Ausführliche Beschreibungen verschiedener Sortier– und Suchalgorithmen sowie<br />

präzise Berechnungen des jeweiligen Aufwandes hat Knuth zusammengetragen<br />

(Knuth 1973a).<br />

Zur Abschätzung <strong>der</strong> Zeitkomplexität eines rekursiven Algorithmus betrachten<br />

wir das Problem <strong>der</strong> Türme von Hanoi: In <strong>der</strong> vereinfachten Version gibt es<br />

drei Stäbe A, B und C, auf die drei unterschiedlich große runde Scheiben gesteckt<br />

werden können. Die Ausgangssituation besteht darin, dass alle drei Scheiben <strong>der</strong><br />

Größe nach geordnet — die größte ganz unten — auf Stab A liegen. Man soll nun<br />

die Scheiben in <strong>der</strong>selben Anordnung auf B platzieren, wobei folgende Regeln zu<br />

beachten sind:<br />

— Es darf immer nur eine Scheibe bewegt werden.<br />

— Es darf nie eine Scheibe auf einer kleineren liegen.<br />

Eine Lösung dieser Aufgabe ist schnell gefunden:<br />

A → B, A → C, B → C, A → B, C → A, C → B, A → B .<br />

In <strong>der</strong> ursprünglichen Version des Problems ging es aber um 64 Scheiben. Eine<br />

Lösung für diese Aufgabe aufzuschreiben, ist schlicht unmöglich. In obiger Notation<br />

wäre die Zeile 1, 8 · 10 14 km lang — knapp das Fünfmilliardenfache des<br />

Erdumfangs. Dennoch ist es möglich, allgemein für n Scheiben eine einfache rekursive<br />

Strategie anzugeben, für <strong>der</strong>en Anwendung wir den Zeitbedarf bestimmen<br />

können:<br />

— Bewege n − 1 Scheiben von A nach C.<br />

— Bewege eine Scheibe von A nach B.<br />

— Bewege n − 1 Scheiben von C nach B.<br />

11

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!