![]() Abb. 1: Zugmöglichkeiten des Springers
Hm, eine gute Frage, wird jetzt der geneigte Leser denken.
Man kann sie innerhalb von ein paar Minuten selbst lösen,
schließlich ist ein Schachbrett nun nicht so gewaltig groß. ![]() Abb. 2: Eine formschöne Lösung für ein 8x8-Brett
Wie jedoch kann man einen Weg auf größeren
Schachbrettern finden? Ein normaler Mensch würde
jetzt sagen:"Gar nicht, weil ein Schachbrett
immer nur 8x8 Felder hat." Richtig! Doch wie es halt so ist
im Leben, Mathematiker sind manchmal nicht normal, und
so ging man an, auch einen Weg für ein 10x10-Brett,
ein 100x100-Brett und gar ein unendlich großes Brett zu finden. Wie gesagt, Euler war Schweizer, und Schweizer gelten im Allgemeinen als sehr gewissenhaft und ebenso langsam. Vielleicht gilt dieses auch für die Lösung von schweizerischen Problemen, jedenfalls konnte das Springerproblem in den nächsten 200 Jahren nicht gelöst werden. Vielleicht lag das auch daran, daß es zu der Klasse der schwierigsten Informatikprobleme gehört und deshalb nach dem irischen Mathematiker R. W. Hamilton (1805-1865) als Hamilton-Wege-Problem bezeichnet wird. Allgemein gilt für Hamiltonwege, daß es nur Algorithmen gibt, deren Berechnungslaufzeit exponentiell mit der Anzahl der zu besuchenden Knoten - hier: Felder - wächst. Das Springerproblem ist nun aber ein Spezialfall, und daher stellt sich die Frage, ob es nicht doch einen effizienteren Algorithmus gibt. Das Verfahren findet immer einer Lösung - wenn es sie denn gibt. Zu beachten ist dabei nur ein kleiner Schönheitsfehler: Es dauert, nicht Jahre, sondern Jahrhunderte. Jedenfalls für Bretter mit einer Seitenlänge größer als zehn. |
| Feldgröße | 5x5 | 6x6 | 7x7 | 8x8 | 9x9 | 10x10 |
| Laufzeit (in Sek) | 21 | 609 | 38.954 | Tage | Monate | Jahre |
Zur Implementierung siehe Prog.Pas. Nachdenklich blickte Tanja zu mir, ich zu Hussein und der auf das fast leere Schachbrett. "Das müßte zu lösen sein!" rief die Dame in der Runde. "Ja, nur wie?" fragten wir uns und dachten ein wenig nach. Um genau zu sein, wir dachten knapp zweieinhalb Jahre über das Problem nach, das Euler in so kurzer Zeit ersonnen hatte. Dieses ist beispielsweise dann der Fall, wenn ein Feld oder eine Gruppe von Feldern nicht mehr erreichbar ist (vgl. Abb. 3 und 4). ![]() Abb. 3: Lücke ![]() Abb. 4: Das gekennzeichnete Feld ist nicht mehr erreichbar
1. Beutel 1 ist leer. (In Beutel 1 werden all die Felder geworfen, die mit dem Feld, auf dem der Springer gerade steht (aktuelles Feld), verbunden sind). 2. Beutel 2 ist leer. 3. Die von dem aktuellen Feld aus erreichbaren und freien Felder werden in Beutel 1 geworfen, das aktuelle Feld selbst kommt in Beutel 2. 4. Solange Beutel 1 nicht leer ist, wiederhole folgende drei Schritte: 4.1 Nimm ein Feld aus Beutel 1. 4.2 Werfe die Nachfolger dieses Feldes, sofern sie a) frei und b) noch nicht in Beutel 1 oder Beutel 2 sind, in Beutel 1. 4.3 Werfe danach das Feld in Beutel 2. 5. Zähle nun die Felder in Beutel 2 und vergleiche sie mit der Anzahl der noch freie Felder. Sind die beiden Zahlen nicht gleich, so existiert ein Feld oder mehrere Felder, die nicht mehr erreicht werden können. Die Suche kann auch dann abgebrochen werden, wenn mehr als ein Feld nur noch über ein anderes Feld aus erreichbar ist (Abb. 5 und 6). Denn dann müssen diese Felder Zielfelder sein, das heißt, wenn man sie erreicht hat, kann man von ihnen aus nirgendwo mehr hinspringen. Eine Lösung mit mehr als einem Endfeld ist aber gar nicht denkbar. In den folgenden Abbildungen symbolisieren die Knoten die noch freien Felder, die Kanten die Sprungmöglichkeit zwischen den freien Feldern. ![]() Abb. 5: Drei Endfelder ![]() Abb. 6: Die beiden Felder links oben sind Endfelder Während von daußen leichter Regen gegen die Fenster prasselte, waren wir froh, dieses Verfahren entwickelt zu haben. Jedoch waren wir nicht die ersten, die auf diese Idee kamen. Bereits im Jahre 1823 veröffentlichte H. C. Warnsdorf diese Regel, womit wir wieder sehen, daß dieses Problem doch schon in so manchem Mathematikerhirn steckte. Nur - wie machten es die Römer? Anstatt ins sonnige Italien zu fahren, dachten wir wieder nach und erinnerten uns an lang zurückliegende Lateinstunden: Divide et impera! Teile und herrsche! Wir mußten die großen Felder in viele kleine zerlegen. Also holten wir eine Säge und werkelten munter drauflos. Natürlich war es eine virtuelle Säge. Und endlich packte jemand an, der wußte, wie man eine Säge halten muß: Prof. Dr. Ingo Wegener von der Uni Dortmund. Die sägende Idee war folgende: Von einem beliebigen Brett läßt sich ein Streifen der Breite 5 abschneiden. Die 5x5-Bretter lassen sich so lösen, daß man in das nächste 5x5-Brett springen kann. Übrig bleiben dann nur L-förmige Bretter und ein Brett der Größe 6x6 bis 9x9, von denen man aber auch zeigen kann, daß es hierfür eine Lösung gibt. Man kann nämlich nacheinander die Bretter von außen nach innen und damit das gesamte Brett füllen. ![]() Abb. 7: Beispiel für das L-Verfahren Damit läßt sich beweisen, daß es für beliebige nxn-Bretter eine Lösung gibt. Gilt das denn auch eine für beliebige nxm-Bretter mit beliebigem Start- und Zielfeld? Grundlage für die Lösung ist folgende Überlegung: Jede natürliche Zahl, die großer ist als 17, läßt sich in die Zahlen 6, 7 und 8 zerlegen. Mit anderen Worten: Wir zerlegen jedes beliebig große Brett in Bretter der Größen 6x6, 6x7, 6x8, 7x7, 7x8 und 8x8. Diese kleinen Bretter können nun mit den oben genannten Verfahren recht flott berechnet werden. Das einzige größere Problem war nun nur noch zu zeigen, daß man die Bretter so aneinander legen kann, daß der Springer immer in das nächste Brett hüpfen und nacheinander alle Bretter besuchen kann. Das erste Problem - also, daß Start- und Zielfeld immer so gewählt werden können, daß der Springer von einem Brett in das nächste hüpfen kann, konnten wir durch die oben beschriebenen Algorithmen lösen. Das zweite, also einen Weg durch die Teilbretter zu finden, war etwas komplizierter. Der Weg zu der Lösung führte über eine andere Schachfigur: Den König. Denn im Grunde stellten die kleinen Bretter nur Felder eines großen Brettes dar, die nacheinander mit den Zugmöglichkeiten des Königs besucht werden müssen. Der Weg des Königs ist nun aber trivial, so daß wir uns mit Riesenschritten dem Beweis genähert hatten, daß es für jedes beliebig große Brett eine Lösung gab.
Man teilt das Brett in 9 Bereiche. Es gibt nun insgesamt 9 Fälle, die unterschieden werden müßen (die anderen kann man durch Drehen und Spiegeln herleiten). Jeder Bereich kann gelöst werden; s und z bezeichnen das Teilbrett in dem das Start- bzw. Zielfeld liegt:
![]() (Drücken Sie auf den jeweiligen Fall, um sich die Grafik im Normalformat anzusehen.) Alle Fälle sind lösbar, also läßt sich für den König immer eine Lösung finden. Nebenbei bemerkt, kann es - da das Verfahren parallelisierbar ist - keinen schnelleren Algorithmus als unseren für eine Lösung geben. Den Beweis finde ich sehr schön, möchte hier aber auf die mathematischen Feinheiten verzichten. ![]() Abb. 8: Beispiel für den Königsalgorithmus Und kaum hatten wir es gelöst, da brachen die Wolken über Wermelskirchen entzwei, und die ersten Strahlen der Sonne berührten die Erde. Ok, das ist natürlich ein Märchen; nicht ohne Grund hat Wermelskirchen die größte Trinkwassertalsperre der Welt. ![]() Abb. 9: Gruppenbild mit Dame: Tanja Hindrichs, Hussein Morsy und Axel Conrad Hier können Sie sich noch ein Programm, das alles genauer erklärt, herunterladen. W. Ahrens (1979): Mathematische Spiele, Wiss. Buchgesellschaft, Kapitel 7. L. Euler (1766): Memories de Berlin 1759 M.R. Gary & D.B. Johnson (1979): Computers and intractability: A guide to the theory of NP-completeness; H. W. Freeman M. Kraichik (1966): Mathematical recreations, chapter 11, The problem of the Knight, Allen and Unwin, London P.M. Roget (1840): Philosophical Magazine 3, Vol XVI, S. 305 B.R. Stonebridge (1986): The Knight's Tour of a Chessboard; Mathematical Spectrum 86/87 No. 3 P. 83f; mit Anmerkung von Engelhaupt in Mathematical Spectrum 88/89 No. 1 P. 24 Vondermode (1771): L'histoire de l'Academie des sciences, S. 566ff H. C. Warnsdorf (1823): Des Rösselssprung einfachste und allgemeinste Lösung, Schmalkanden
P.S.: Sie waren Besucher Nummer
in diesem Monat. Diese Seite wurde im Dezember 1999 anläßlich eines
Vortrages an der HTW-Zittau/Görlitz bei
Prof. Dr. Christian Wagenknecht
überarbeitet.
Der Autor, Axel Conrad (e-mail: ac@axel-conrad.de) hat schon einige Vorträge an Universitäten und Schulen über das Thema gehalten und freut sich immer über weitere Einladungen. |
Zu meiner
Homepage.