Gottes Algorithmus

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 7. Oktober 2009 um 17:43 Uhr durch Wiegels (Diskussion | Beiträge) (Rechtschreibung, Typografie). Sie kann sich erheblich von der aktuellen Version unterscheiden.
Zur Navigation springen Zur Suche springen

Gottes Algorithmus ist ein Begriff aus Diskussionen über die Lösung des Zauberwürfels. Er kann auch auf andere Probleme der Kombinatorik und Spieltheorie bezogen werden. Er bezeichnet jeden Algorithmus, der eine Lösung mit kleinstmöglichster Anzahl von Schritten oder Zügen produziert. Ein allwissendes Wesen wüsste einen optimalen Weg von jeder möglichen Konfiguration.

Anwendungsbereich und Definition

Der Begriff bezieht sich auf Puzzle, die eine endliche Anzahl von „Konfigurationen“ annehmen können, mit einer eher kleinen, wohldefinierten Menge an „Zügen“, die Transformationen zwischen Konfigurationen darstellen. Ein Puzzle lösen heißt, eine oder mehrere bestimmte spezifische „Endkonfigurationen“ (von endlicher Anzahl) von irgeneiner willkürlichen Startkonfiguration zu erreichen, durch die Anwendung einer Sequenz von Zügen.

Auf einige gut bekannte Puzzle trifft die Beschreibung zu, z.B. Mechanische Geduldspiele wie den Zauberwürfel, Türme von Hanoi und das 15-Puzzle. Auch Solitaire zählt dazu, ebenso viele Logik-Puzzle wie das Problem der Missionare und Kannibalen. Ihnen gemeinsam ist die mathematische Modellierbarkeit als gerichteter Graph, wobei die Konfigurationen zu Punkten und die Züge zu Pfeilen werden.

Ein Algorithmus gilt als lösend, wenn er aus dem Input einer willkürlichen Anfangskonfiguration einen Output in Form einer Zugsequenz, die die Wunschkonfiguration herstellt, generiert, falls das Puzzle von dieser Anfangskonfiguration lösbar ist, und ansonsten die Unmöglichkeit einer Lösung ausgibt. Eine Lösung ist optimal, wenn die Sequenz von Zügen so kurz wie möglich ist. Ein Gottes-Algorithmus löst ein Puzzle immer optimal.

Ein echter „Gottes-Algorithmus“ soll auch praktikabel sein, d.h. nicht außergewöhnlich viel Speicherplatz oder Zeit benötigen. So würde eine riesige Lookup-Tabelle, indiziert für alle Startkonfigurationen, Lösungen sehr schnell ausgeben, aber viel zu viel Speicherplatz belegen.

Anstatt nach einer vollständigen Lösung zu fragen, kann man auch nach dem besten ersten Einzelzug nach der Startkonfiguration fragen. Ein Algorithmus für einzelne Züge kann in einen Algorithmus für die Gesamtlösung transformiert werden, indem man ihn bis zur Schlusskonfiguration wiederholt. Umgekehrt kann so auch der Algorithmus für die Gesamtlösung in Algorithmen für Einzelzüge zerlegt werden.

Beispiele

Für das N-Puzzle, ein generalisiertes 15-Puzzle, ist das Problem einer Lösung als NP-schwer bekannt. Unbekannt ist jedoch, ob ein praktischer Gottes-Algorithmus existiert.[1]

Für die Türme von Hanoi gibt es einen Gottes-Algorithmus für beliebig viele Scheiben.[2]

Eine Endspieldatenbank im Schach findet einen Gottes-Algorithmus für den kürzesten Weg zum schachmatt.

Es ist unbekannt, ob ein praktischer Algorithmus Gottes für den Zauberwürfel existiert; siehe Optimale Lösungen des Zauberwürfels.

Einzelnachweise

  1. Richard E. Korf, „Finding optimal solutions to Rubik's Cube using pattern databases“, Proc. Nat. Conf. on Artificial Intelligence (AAAI-97), Providence, Rhode Island, Jul 1997, S. 700–705.
  2. Carlos Rueda, „An optimal solution to the Towers of Hanoi Puzzle“. [1]

Literatur

  • David Joyner, Adventures in Group Theory. Johns Hopkins University Press (2002), ISBN 0-8018-6947-1.

Siehe auch