Damenproblem

Acht-Damen-Problem
  a b c d e f g h  
8 8
7 7
6 6
5 5
4 4
3 3
2 2
1 1
  a b c d e f g h  
eine der Lösungen

Das Damenproblem ist eine schachmathematische Aufgabe. Es sollen jeweils acht Damen auf einem Schachbrett so aufgestellt werden, dass keine zwei Damen einander gemäß ihren in den Schachregeln definierten Zugmöglichkeiten schlagen können. Die Figurenfarbe wird dabei ignoriert, und es wird angenommen, dass jede Figur jede andere angreifen könnte. Solcherart auf dem Schachbrett angeordnete Figuren werden auch als „unabhängig“ bezeichnet.[1] Für Damen heißt dies konkret und anders ausgedrückt: Es dürfen keine zwei Damen auf derselben Reihe, Linie oder Diagonale stehen.

Im Mittelpunkt steht beim Damenproblem die Frage nach der Anzahl der möglichen Lösungen. Im Falle des klassischen 8 × 8 {\displaystyle 8\times 8} -Schachbretts gibt es 92 {\displaystyle 92} verschiedene Möglichkeiten, die Damen entsprechend aufzustellen. Betrachtet man Lösungen als gleich, die sich durch Spiegelung oder Drehung des Brettes auseinander ergeben, verbleiben noch 12 {\displaystyle 12}  Basis-Lösungen.

Das Problem kann auf quadratische Schachbretter beliebiger Größe verallgemeinert werden: Dann gilt es, n {\displaystyle n} unabhängige Damen auf einem Brett von n × n {\displaystyle n\times n} Feldern zu positionieren (mit n {\displaystyle n} als Parameter aus den natürlichen Zahlen).

Geschichte

Erstmals formuliert wurde das Damenproblem von dem bayerischen Schachmeister Max Bezzel. In der Berliner Schachzeitung fragte er 1848 nach der Anzahl der möglichen Lösungen. Als erster nannte 1850 der Zahnarzt Franz Nauck in der Leipziger Illustrirten Zeitung die korrekte Zahl 92 {\displaystyle 92} . 1874 bewies der englische Mathematiker James Whitbread Lee Glaisher, dass es nicht mehr Lösungen geben kann.[2] Damit war das ursprüngliche Problem vollständig gelöst. Auch Carl Friedrich Gauß zeigte Interesse an dem Problem, weshalb es irrtümlich häufig auf ihn zurückgeführt wird; er hatte indessen nur 72 {\displaystyle 72} der Lösungen gefunden.[3]

Nauck verallgemeinerte die Problemstellung und fragte, auf wie viele verschiedene Arten n {\displaystyle n} Damen auf einem n × n {\displaystyle n\times n} -Schachbrett aufgestellt werden können.

Acht-Damen-Problem
Symmetrische, eindeutige Lösung
  a b c d e f g h  
8 8
7 7
6 6
5 5
4 4
3 3
2 2
1 1
  a b c d e f g h  

Diese Art sorgt für 92 {\displaystyle 92} statt 96 {\displaystyle 96} verschiedene Lösungen (basierend auf 12 {\displaystyle 12} eindeutigen Lösungen)

Im Jahre 1992 fanden Demirörs, Rafraf und Tanik eine Äquivalenz zwischen magischen Quadraten und Damenproblemen.[4]

Das Damenproblem tauchte auch in den Computerspielen The 7th Guest und The Whispered World auf. Im Nintendo DS Titel Professor Layton und das geheimnisvolle Dorf muss es vom Spieler in unterschiedlicher Form sogar mehrfach gelöst werden.

Anzahl der Lösungen im klassischen Damenproblem

Das klassische Problem mit acht Damen auf einem 8 × 8 {\displaystyle 8\times 8} -Brett hat 92 {\displaystyle 92} verschiedene Lösungen. Wenn man solche, die durch Drehen oder Spiegeln des Brettes aufeinander abgebildet werden, nur einfach zählt, bleiben 12 {\displaystyle 12} eindeutige Lösungen übrig (die unterschiedlichen Farben der Felder werden nicht beachtet). Da es für jede dieser reduzierten Lösungen vier Spiegelungen (an Diagonalen, Horizontale und Vertikale durch die Brettmitte) und drei Rotationen ( 90 {\displaystyle 90^{\circ }} , 180 {\displaystyle 180^{\circ }} , 270 {\displaystyle 270^{\circ }} ) gibt, könnte man eine Gesamtzahl von 8 × 12 = 96 {\displaystyle 8\times 12=96} Lösungen vermuten. Da aber eine der Lösungen (siehe Diagramm) bei einer Drehung um 180 {\displaystyle 180^{\circ }} in sich selbst übergeht, und die Spiegelung an der Horizontalen dasselbe ergibt wie die Spiegelung an der Vertikalen und die Drehung um 90 {\displaystyle 90^{\circ }} dasselbe ergibt, wie die Drehung um 270 {\displaystyle 270^{\circ }} und die Spiegelung an der einen Diagonalen dasselbe ergibt, wie die Spiegelung an der anderen Diagonalen, lassen sich aus dieser nicht 7 neue Lösungen konstruieren, sondern nur 3; also 4 weniger. Es ergeben sich insgesamt 92 {\displaystyle 92} Lösungen.

Anzahl der Lösungen im verallgemeinerten Damenproblem

Das verallgemeinerte Damenproblem verlangt, n {\displaystyle n} Damen auf einem Brett von n × n {\displaystyle n\times n} Feldern so zu positionieren, dass sie einander nicht diagonal, senkrecht und waagerecht gegenüber stehen.

Anzahl der Lösungen bis zur Brettgröße 27 × 27

Die folgende Tabelle führt die Anzahl der eindeutigen Lösungen und die der gesamten Lösungen bis zur Brettgröße 27 × 27 {\displaystyle 27\times 27} auf:

n {\displaystyle {\boldsymbol {n}}} 1 {\displaystyle 1} 2 {\displaystyle 2} 3 {\displaystyle 3} 4 {\displaystyle 4} 5 {\displaystyle 5} 6 {\displaystyle 6} 7 {\displaystyle 7} 8 {\displaystyle 8} 9 {\displaystyle 9} 10 {\displaystyle 10} 11 {\displaystyle 11} 12 {\displaystyle 12} 13 {\displaystyle 13} 14 {\displaystyle 14} 15 {\displaystyle 15} 16 {\displaystyle 16} 17 {\displaystyle 17} 18 {\displaystyle 18}
eindeutig {\displaystyle {\textbf {eindeutig}}} 1 {\displaystyle 1} 0 {\displaystyle 0} 0 {\displaystyle 0} 1 {\displaystyle 1} 2 {\displaystyle 2} 1 {\displaystyle 1} 6 {\displaystyle 6} 12 {\displaystyle 12} 46 {\displaystyle 46} 92 {\displaystyle 92} 341 {\displaystyle 341} 1.787 {\displaystyle 1.787} 9.233 {\displaystyle 9.233} 45.752 {\displaystyle 45.752} 285.053 {\displaystyle 285.053} 1.846.955 {\displaystyle 1.846.955} 11.977.939 {\displaystyle 11.977.939} 83.263.591 {\displaystyle 83.263.591}
insgesamt {\displaystyle {\textbf {insgesamt}}} 1 {\displaystyle 1} 0 {\displaystyle 0} 0 {\displaystyle 0} 2 {\displaystyle 2} 10 {\displaystyle 10} 4 {\displaystyle 4} 40 {\displaystyle 40} 92 {\displaystyle 92} 352 {\displaystyle 352} 724 {\displaystyle 724} 2.680 {\displaystyle 2.680} 14.200 {\displaystyle 14.200} 73.712 {\displaystyle 73.712} 365.596 {\displaystyle 365.596} 2.279.184 {\displaystyle 2.279.184} 14.772.512 {\displaystyle 14.772.512} 95.815.104 {\displaystyle 95.815.104} 666.090.624 {\displaystyle 666.090.624}
n {\displaystyle {\boldsymbol {n}}} 19 {\displaystyle 19} 20 {\displaystyle 20} 21 {\displaystyle 21} 22 {\displaystyle 22} 23 {\displaystyle 23} 24 {\displaystyle 24}
eindeutig {\displaystyle {\textbf {eindeutig}}} 621.012.754 {\displaystyle 621.012.754} 4.878.666.808 {\displaystyle 4.878.666.808} 39.333.324.973 {\displaystyle 39.333.324.973} 336.376.244.042 {\displaystyle 336.376.244.042} 3.029.242.658.210 {\displaystyle 3.029.242.658.210} 28.439.272.956.934 {\displaystyle 28.439.272.956.934}
insgesamt {\displaystyle {\textbf {insgesamt}}} 4.968.057.848 {\displaystyle 4.968.057.848} 39.029.188.884 {\displaystyle 39.029.188.884} 314.666.222.712 {\displaystyle 314.666.222.712} 2.691.008.701.644 {\displaystyle 2.691.008.701.644} 24.233.937.684.440 {\displaystyle 24.233.937.684.440} 227.514.171.973.736 {\displaystyle 227.514.171.973.736}
n {\displaystyle {\boldsymbol {n}}} 25  (errechnet 2005) {\displaystyle 25{\text{ (errechnet 2005)}}} 26  (errechnet 2009) {\displaystyle 26{\text{ (errechnet 2009)}}} 27  (errechnet 2016) {\displaystyle 27{\text{ (errechnet 2016)}}}
eindeutig {\displaystyle {\textbf {eindeutig}}} 275.986.683.743.434 {\displaystyle 275.986.683.743.434} 2.789.712.466.510.289 {\displaystyle 2.789.712.466.510.289} 29.363.495.934.315.694 {\displaystyle 29.363.495.934.315.694}
insgesamt {\displaystyle {\textbf {insgesamt}}} 2.207.893.435.808.352 {\displaystyle 2.207.893.435.808.352} 22.317.699.616.364.044 {\displaystyle 22.317.699.616.364.044} 234.907.967.154.122.528 {\displaystyle 234.907.967.154.122.528}

Die zuvor bekannte, aber nicht überprüfte Lösungszahl für n = 12 {\displaystyle n=12} wurde 1969 unabhängig voneinander von Torbjörn Lindelöf und Bernd Schwarzkopf per Computeranalysen bestätigt. Lindelöf errechnete dabei auch die Größen von n = 13 {\displaystyle n=13} und n = 14 {\displaystyle n=14} .[5] 1970 errechnete Lindelöf die Zahl für n = 15 {\displaystyle n=15} mit der Bemerkung, dass Computer die 50- bis 100-fache der zu dieser Zeit üblichen Rechenkapazität für größere Schachbretter benötigen.[6]

Die Lösungszahl für n = 26 {\displaystyle n=26} wurde am 11. Juli 2009 vom Queens@TUD-Projekt[7] mit FPGA-Lösern bestimmt und am 30. August 2009 vom MC#-Projekt[8] auf zwei russischen Superrechnern der damals aktuellen TOP500-Liste bestätigt. Nach mehr als 7 Jahren folgte am 19. September 2016 die Lösungszahl für n = 27 {\displaystyle n=27} .[9] Diese konnte in einem Nachfolgeprojekt[10] unter Ausnutzung weiterer Problemsymmetrien und der gesteigerten technischen Leistungsfähigkeit wieder mit Hilfe von FPGA-Lösern berechnet werden. Die Bestätigung dieser Zahl durch ein zweites unabhängiges Projekt steht noch aus.

Allgemein lässt sich feststellen, dass die Anzahl der Lösungen etwas schneller als exponentiell mit der Brettgröße anwächst. Interessanterweise gibt es auf dem 2 × 2 {\displaystyle 2\times 2} -Brett sowie auf dem 6 × 6 {\displaystyle 6\times 6} -Brett weniger Lösungen als auf dem jeweils kleineren Brett.

Anzahl der Lösungen für große n

Eine obere Schranke für die Lösungsanzahl D ( n ) {\displaystyle D(n)} des Damenproblems auf einem n × n {\displaystyle n\times n} -Brett ist n ! {\displaystyle n!}  . Dies ist die Anzahl von Lösungen für n {\displaystyle n} einander nicht bedrohende Türme. Die Aufstellungen voneinander nicht bedrohenden Damen (für n > 1 {\displaystyle n>1} ) sind eine echte Teilmenge hiervon.

Die asymptotische Form von D ( n ) {\displaystyle D(n)} ist nicht bekannt. Rivin u. a. stellen die Vermutung auf, dass

lim n log D ( n ) n log n = β > 0 {\displaystyle \lim _{n\to \infty }{\frac {\log {D(n)}}{n\log {n}}}=\beta >0} ist.[11]

Aus den bekannten Gliedern der Folge lässt sich für große n {\displaystyle n} folgende Näherungsformel abschätzen:[12]

D ( n ) c n 1 × n ! {\displaystyle D(n)\,\approx \,c^{n-1}\times n!}  mit  c = 243 625 0,388 8 {\displaystyle c={\frac {243}{625}}\approx 0{,}3888} .

Algorithmen zur Lösungssuche

Das Damenproblem ist ein gutes Beispiel für ein einfach zu formulierendes Problem mit nicht-trivialen Lösungen. Eine Reihe von Programmiertechniken ist geeignet, alle Lösungen zu erzeugen. Klassisch ist rekursives Backtracking; dieses ist besonders einfach zu realisieren mit logischer Programmierung. Eine weitere Möglichkeit sind genetische Algorithmen.

Derartige Ansätze sind wesentlich effizienter als ein naiver Brute-Force-Algorithmus, der (im 8 × 8 {\displaystyle 8\times 8} -Fall) alle 64 × 63 × 62 × 61 × 60 × 59 × 58 × 57 {\displaystyle 64\times 63\times 62\times 61\times 60\times 59\times 58\times 57} ( < 64 8 = 2 48 {\displaystyle <64^{8}=2^{48}} ) möglichen Positionierungen der acht Damen durchprobiert und dabei alle Stellungen ausfiltert, in denen jeweils zwei Damen einander schlagen könnten. Dieser Algorithmus erzeugt mehrfach die gleichen Lösungen, wenn Permutationen der Damen gleiche Felder besetzen.

Ein etwas effizienterer Brute-Force-Algorithmus platziert nacheinander in jeder Reihe nur eine Dame und reduziert dadurch die Komplexität auf 8 8 = 2 24 {\displaystyle 8^{8}=2^{24}} mögliche Stellungen.

Rekursives Backtracking

Animation des rekursiven Backtracking-Algorithmus

Das Damenproblem kann durch einen rekursiven Algorithmus effizient gelöst werden, indem das Problem mit n {\displaystyle n} Damen so aufgefasst wird, dass es gilt, zu jeder Lösung mit n 1 {\displaystyle n-1} Damen eine weitere Dame hinzuzufügen. Letztendlich lässt sich jedes Damenproblem damit auf ein Problem mit 0 {\displaystyle 0} Damen zurückführen, was nichts anderes als ein leeres Schachbrett ist.

Das folgende Python-Programm findet alle Lösungen des n {\displaystyle n} -Damen-Problems mit Hilfe eines rekursiven Algorithmus. Ein n × n {\displaystyle n\times n} -Brett wird dabei rekursiv auf kleinere Bretter mit geringerer Anzahl an Reihen, n × ( n 1 ) , n × ( n 2 ) , {\displaystyle n\times (n-1),n\times (n-2),\dots } reduziert. Das Programm nutzt direkt aus, dass keine zwei Damen in der gleichen Reihe stehen. Außerdem wird benutzt, dass eine Lösung mit n 1 {\displaystyle n-1} Damen auf einem n × ( n 1 ) {\displaystyle n\times (n-1)} -Brett auf jeden Fall eine Lösung mit n 2 {\displaystyle n-2} Damen auf einem n × ( n 2 ) {\displaystyle n\times (n-2)} -Brett enthalten muss. In anderen Worten, wenn man die untere (oder obere) Reihe der Teillösung eines n × ( n 1 ) {\displaystyle n\times (n-1)} -Bretts entfernt, bleiben n 2 {\displaystyle n-2} Damen auf einem n × ( n 2 ) {\displaystyle n\times (n-2)} -Brett übrig, die wiederum eine Teillösung auf dem n × ( n 2 ) {\displaystyle n\times (n-2)} -Brett darstellen.

Der Algorithmus konstruiert also alle Lösungen aus den Lösungen eines jeweils kleineren Brettes. Da sichergestellt wird, dass die Teillösungen auf den kleinen Brettern konfliktfrei sind, spart dieser Algorithmus das Überprüfen vieler Stellungen. Insgesamt werden für das 8 × 8 {\displaystyle 8\times 8} -Brett nur 15.720 {\displaystyle 15.720} Stellungen überprüft.[13]

# Erzeuge eine Liste von Lösungen auf einem Brett mit Reihen und Spalten.
# Eine Lösung wird durch eine Liste der Spaltenpositionen,
# indiziert durch die Reihennummer, angegeben.
# Die Indizes beginnen mit Null.
def damenproblem(reihen, spalten):
    if reihen <= 0:
        return [[]] # keine Dame zu setzen; leeres Brett ist Lösung
    else:
        return eine_dame_dazu(reihen - 1, spalten, damenproblem(reihen - 1, spalten))

# Probiere alle Spalten, in denen für eine gegebene Teillösung
# eine Dame in "neue_reihe" gestellt werden kann.
# Wenn kein Konflikt mit der Teillösung auftritt,
# ist eine neue Lösung des um eine Reihe erweiterten
# Bretts gefunden.
def eine_dame_dazu(neue_reihe, spalten, vorherige_loesungen):
    neue_loesungen = []
    for loesung in vorherige_loesungen:
        # Versuche, eine Dame in jeder Spalte von neue_reihe einzufügen.
        for neue_spalte in range(spalten):
            # print('Versuch: %s in Reihe %s' % (neue_spalte, neue_reihe))
            if kein_konflikt(neue_reihe, neue_spalte, loesung):
                # Kein Konflikte, also ist dieser Versuch eine Lösung.
                neue_loesungen.append(loesung + [neue_spalte])
    return neue_loesungen

# Kann eine Dame an die Position "neue_spalte"/"neue_reihe" gestellt werden,
# ohne dass sie eine der schon stehenden Damen schlagen kann?
def kein_konflikt(neue_reihe, neue_spalte, loesung):
    # Stelle sicher, dass die neue Dame mit keiner der existierenden
    # Damen auf einer Spalte oder Diagonalen steht.
    for reihe in range(neue_reihe):
        if (loesung[reihe]         == neue_spalte              or  # gleiche Spalte
            loesung[reihe] + reihe == neue_spalte + neue_reihe or  # gleiche Diagonale
            loesung[reihe] - reihe == neue_spalte - neue_reihe):   # gleiche Diagonale
                return False
    return True

for loesung in damenproblem(8, 8):
    print(loesung)

Durch die Verwendung einer Koroutine kann der Algorithmus etwas vereinfacht werden. Das folgende Programm ist eine Übersetzung der Lösung von Niklaus Wirth in die Programmiersprache Python, verzichtet jedoch auf die im Original verwendete Indexarithmetik und verwendet stattdessen einfache Listen. An die Stelle der Prozedur tritt hier ein Generator: eine spezielle Form einer Koroutine, durch die ein Iterator erzeugt wird.[14]

def queens(n: int, i: int, a: list, b: list, c: list):
    if i < n:
        for j in range(n):
            if j not in a and i + j not in b and i - j not in c:
                yield from queens(n, i + 1, a + [j], b + [i + j], c + [i - j])
    else:
        yield a


for solution in queens(8, 0, [], [], []):
    print(solution)

Constraintprogrammierung

Die Constraintprogrammierung über endliche Bereiche kann eine Aufgabe wie das Damenproblem sehr kompakt formulieren. Das folgende Prolog-Programm (in GNU Prolog) findet schnell eine Lösung auch für große Schachbretter.

 /* Dieses Prädikat erzeugt eine Liste, die eine einzige Lösung darstellt.
    Es ist sichergestellt, dass jeder Wert zwischen 1 und N genau einmal auftritt. */

 n_damen(N,Ls) :- length(Ls,N),
                fd_domain(Ls,1,N),
                fd_all_different(Ls),
                constraint_damen(Ls),
                fd_labeling(Ls,[variable_method(random)]).

 /* Dieses Prädikat stellt sicher,
    dass alle Stellungen die Lösungsbedingungen erfuellen */

 constraint_damen([]).
 constraint_damen([X|Xs]) :- nicht_schlagen(X,Xs,1), constraint_damen(Xs).

 /* Mit diesem Prädikat wird sichergestellt,
    dass zwei Damen nicht auf einer Diagonalen stehen */

 nicht_schlagen(_,[],_).
 nicht_schlagen(X,[Y|Xs],N) :- X#\=Y+N, X#\=Y-N, T#=N+1, nicht_schlagen(X,Xs,T).

Explizite Lösung

a b c d e f
6 a6 b6 c6 d6 e6 f6 6
5 a5 b5 c5 d5 e5 f5 5
4 a4 b4 c4 d4 e4 f4 4
3 a3 b3 c3 d3 e3 f3 3
2 a2 b2 c2 d2 e2 f2 2
1 a1 b1 c1 d1 e1 f1 1
a b c d e f
Konstruktionsvorschrift für gerades n {\displaystyle n} , das bei Division durch 6 {\displaystyle 6} nicht den Rest 2 {\displaystyle 2} ergibt

Eine Konstruktionsvorschrift für eine spezielle Lösung mit beliebig großem n wurde erstmals 1874 von Emil Pauls angegeben.[15][16][17] Hierdurch wurde also insbesondere bewiesen, dass das Damenproblem für beliebiges n > 3 {\displaystyle n>3} mindestens eine Lösung besitzt.

Für gerade n {\displaystyle n} , die bei Division mit 6 {\displaystyle 6} den Rest 0 {\displaystyle 0} oder 4 {\displaystyle 4} ergeben, starte man in der zweiten Spalte der obersten Zeile und platziere eine Dame. Platziere die folgenden Damen jeweils zwei Spalten rechts und eine Zeile unter der vorigen, bis n 2 {\displaystyle \textstyle {\frac {n}{2}}} Zeilen gefüllt sind. Die Zeilen der unteren Bretthälfte erhält man aus der Spiegelung der oberen Damen am Mittelpunkt des Bretts.

Für gerade n {\displaystyle n} , die bei Division mit 6 {\displaystyle 6} den Rest 2 {\displaystyle 2} ergeben (darunter das normale Schachbrett mit n = 8 {\displaystyle n=8} ) führt diese Vorschrift nicht zu einer gültigen Lösung. Für diesen Fall lässt sich eine alternative, etwas komplizierte Konstruktionsvorschrift angeben.[17][18]

Andere Methoden

Ein iterativer Reparaturalgorithmus beginnt mit einer beliebigen Stellung der Damen auf dem Brett. Es zählt dann die Anzahl der Konflikte, und versucht, durch Umpositionieren der Damen die Anzahl der Konflikte zu reduzieren. Effizient ist etwa, die Dame mit den meisten Konflikten senkrecht auf die Position zu verschieben, auf der die geringste Anzahl von Konflikten auftritt. Mit dieser Methode kann das 1.000.000 {\displaystyle 1.000.000} -Damen-Problem ausgehend von einer „vernünftigen“ Versuchsposition gelöst werden. Derart große Bretter lassen sich mit expliziten Konstruktionsalgorithmen nicht lösen (triviale Lösungen ausgenommen); allerdings kann ein solcher Iterationsalgorithmus nicht mit Sicherheit eine Lösung finden.

Verwandte Problemstellungen

Andere Figuren

Das Problem kann auch für andere Schachfiguren (König, Läufer, Springer, Turm) formuliert werden.

Eine weitere Verallgemeinerung des Problems stellt das n {\displaystyle n} -Superdamen-Problem dar. Superdamen dürfen wie Damen und Springer ziehen. Es ist nicht klar, wer Superdamen oder das n {\displaystyle n} -Superdamen-Problem erfunden hat. In Mathematische Knobeleien (Vieweg-Verlag, 1973) erwähnt Martin Gardner eine Schachvariation, in der mit einer Superdame gespielt wird. Gardner nennt diese Figur dort Maharadscha. Andere kennen sie als Amazone.

Auch die Frage, auf wie viele Arten sich n {\displaystyle n} Superdamen auf einem n × n {\displaystyle n\times n} -Schachbrett bedrohungsfrei platzieren lassen, wurde untersucht:[19]

n {\displaystyle {\boldsymbol {n}}} L o ¨ s u n g e n {\displaystyle \mathbf {L{\ddot {o}}sungen} } n {\displaystyle {\boldsymbol {n}}} L o ¨ s u n g e n {\displaystyle \mathbf {L{\ddot {o}}sungen} } n {\displaystyle {\boldsymbol {n}}} L o ¨ s u n g e n {\displaystyle \mathbf {L{\ddot {o}}sungen} } n {\displaystyle {\boldsymbol {n}}} L o ¨ s u n g e n {\displaystyle \mathbf {L{\ddot {o}}sungen} } n {\displaystyle {\boldsymbol {n}}} L o ¨ s u n g e n {\displaystyle \mathbf {L{\ddot {o}}sungen} } n {\displaystyle {\boldsymbol {n}}} L o ¨ s u n g e n {\displaystyle \mathbf {L{\ddot {o}}sungen} }
1 {\displaystyle 1} 1 {\displaystyle 1} 6 {\displaystyle 6} 0 {\displaystyle 0} 11 {\displaystyle 11} 44 {\displaystyle 44} 16 {\displaystyle 16} 202.900 {\displaystyle 202.900} 21 {\displaystyle 21} 3.977.841.852 {\displaystyle 3.977.841.852} 26 {\displaystyle 26} 286.022.102.245.804 {\displaystyle 286.022.102.245.804}
2 {\displaystyle 2} 0 {\displaystyle 0} 7 {\displaystyle 7} 0 {\displaystyle 0} 12 {\displaystyle 12} 156 {\displaystyle 156} 17 {\displaystyle 17} 1.330.622 {\displaystyle 1.330.622} 22 {\displaystyle 22} 34.092.182.276 {\displaystyle 34.092.182.276}
3 {\displaystyle 3} 0 {\displaystyle 0} 8 {\displaystyle 8} 0 {\displaystyle 0} 13 {\displaystyle 13} 1.876 {\displaystyle 1.876} 18 {\displaystyle 18} 8.924.976 {\displaystyle 8.924.976} 23 {\displaystyle 23} 306.819.842.212 {\displaystyle 306.819.842.212}
4 {\displaystyle 4} 0 {\displaystyle 0} 9 {\displaystyle 9} 0 {\displaystyle 0} 14 {\displaystyle 14} 5.180 {\displaystyle 5.180} 19 {\displaystyle 19} 64.492.432 {\displaystyle 64.492.432} 24 {\displaystyle 24} 2.883.202.816.808 {\displaystyle 2.883.202.816.808}
5 {\displaystyle 5} 0 {\displaystyle 0} 10 {\displaystyle 10} 4 {\displaystyle 4} 15 {\displaystyle 15} 32.516 {\displaystyle 32.516} 20 {\displaystyle 20} 495.864.256 {\displaystyle 495.864.256} 25 {\displaystyle 25} 28.144.109.776.812 {\displaystyle 28.144.109.776.812}

Seit 2001 existiert auch für das n {\displaystyle n} -Superdamen-Problem eine explizite Lösung von Frank Schwellinger.

Angemerkt sei, dass das Springerproblem nicht die analoge Aufgabe für Springer ist, sondern eine Springerwanderung über das ganze Schachbrett.

Andere Brettgeometrie

George Pólya betrachtete das Damenproblem auf einem torusförmigen Brett. Er bewies, dass genau dann mindestens eine Lösung existiert, wenn n {\displaystyle n} zu 6 {\displaystyle 6} teilerfremd ist, also weder durch 2 {\displaystyle 2} noch durch 3 {\displaystyle 3} teilbar ist. Auch dreidimensionale Verallgemeinerungen wurden untersucht[20].

Andere Aufgabenstellungen

Damen und Bauer(n)
  a b c d e f g h  
8 8
7 7
6 6
5 5
4 4
3 3
2 2
1 1
  a b c d e f g h  
Neun Damen und ein Bauer

Für ein n × n {\displaystyle n\times n} -Schachbrett bestimme man die Dominanzzahl, das ist die Mindestzahl an Damen, die ausreicht, jedes Feld des Brettes zu beherrschen. Auf dem 8 × 8 {\displaystyle 8\times 8} -Brett reichen fünf Damen aus. Dafür gibt es 4.860 {\displaystyle 4.860} Lösungen (etwa b7, d5, e4, f3, h1).[21]

Das Neun-Damen-Problem verlangt, auf einem 8 × 8 {\displaystyle 8\times 8} -Brett neun Damen und einen Bauern derart unterzubringen, dass die Damen einander nicht beobachten können, also keine direkte waagerechte, senkrechte oder diagonale Sichtlinie zueinander haben. Dieses Problem kann wiederum auf beliebige Brettgröße und eine höhere Anzahl von Bauern verallgemeinert werden.

Das Problem n {\displaystyle n} -Damen-Vervollständigung fragt, ob es für ein n × n {\displaystyle n\times n} -Brett, auf dem schon einige Damen stehen möglich ist, das Damenproblem durch Hinzufügen von Damen zu lösen. Dieses Problem ist NP- und #P-vollständig[22].

Siehe auch

Literatur

  • John J. Watkins: Across the Board: The Mathematics of Chess Problems. Princeton University Press, Princeton 2004, ISBN 0-691-11503-6.

Weblinks

Wiktionary: Damenproblem – Bedeutungserklärungen, Wortherkunft, Synonyme, Übersetzungen
  • Eric W. Weisstein: Queens Problem, MathWorld (englisch)
  • Allgemeine Methode n Königinnen mit Implementierung in Java, (spanisch)
  • Berechnung der Lösungen für verschiedene Brettgrößen in JavaScript auf ArsTechnica.de
  • Walter Kosters: n-Queens bibliography (Literaturliste), Universiteit Leiden (englisch)
  • Lösungen in mehr als 100 verschiedenen Programmiersprachen: N-queens problem auf rosettacode.org
  • Jeff Somers N-Queen-Quellcode (englisch; sehr gut beschrieben)
  • Takakens N-Queen-Quellcode. Ca. 4-mal schneller als Jeff Somers Code

Einzelnachweise

  1. Jewgeni Gik: Schach und Mathematik. Reinhard Becker Verlag, 1986, ISBN 3-930640-37-6.
  2. Evgeni J. Gik: Schach und Mathematik. Verlag Deutsch Harri GmbH, ISBN 3-87144-987-3.
  3. Klaus Menzel (Hrsg.): Algorithmen: Vom Problem zum Programm. Springer-Verlag, 2013, ISBN 978-3-322-91373-9, S. 106 (128 S., eingeschränkte Vorschau in der Google-Buchsuche). 
  4. Onur Demirörs, Nader Rafraf, Murat Tanik: Obtaining n {\displaystyle n} -queens solutions from magic squares and constructing magic squares from n {\displaystyle n} -queens Solutions. In: Journal of Recreational Mathematics. Nr. 24, 1992, ISSN 0022-412X, S. 272–280. 
  5. Karl Fabel: Das n {\displaystyle n} -Damen-Problem. In: Die Schwalbe. Heft 1, Oktober 1969, S. 20.
  6. Karl Fabel: Das n {\displaystyle n} -Damen-Problem. In: Die Schwalbe. Heft 5, September 1970, S. 146.
  7. 26-Damen-Problem gelöst auf heise.de, 19. Juli 2009
  8. MC#-Projekt (Memento vom 1. März 2012 im Internet Archive)
  9. heise online: Zahlen, bitte! Das 27-Damen-Problem ist gelöst. In: heise online. Abgerufen am 27. September 2016. 
  10. preusser/q27. In: GitHub. Abgerufen am 20. September 2016. 
  11. I. Rivin, I. Vardi, P. Zimmermann: The n {\displaystyle n} -Queens Problem. In: The American Mathematical Monthly. Band 101, 1994, S. 629–639.
  12. Folge A000170 in OEIS
  13. GeeksforGeeks: N Queen Problem | Backtracking-3
  14. Niklaus Wirth: Algorithmen und Datenstrukturen, Oberon-Version 2004, Korrektur 2012, S. 114–118. (online; PDF)
  15. Emil Pauls: Das Maximalproblem der Damen auf dem Schachbrete I. Studie aus dem Gebiete des mathematischen Schachs. In: Deutsche Schachzeitung. 29. Jahrgang, Nr. 5. Leipzig Mai 1874, S. 129–134 (Digitalisat in der Google-Buchsuche). 
  16. Emil Pauls: Das Maximalproblem der Damen auf dem Schachbrete (II. Schluss.). Studie aus dem Gebiete des mathematischen Schachs. In: Deutsche Schachzeitung. 29. Jahrgang, Nr. 9. Leipzig September 1874, S. 257–267 (Digitalisat in der Google-Buchsuche). 
  17. a b W. Ahrens: Mathematische Unterhaltungen und Spiele Band 1. Leipzig, 1901, S. 114–156. Digitalisat
  18. Hoffman u. a.: Construction for the Solutions of the m {\displaystyle m} Queens Problem. In: Mathematics Magazine, Band XX, 1969, S. 66–72. PDF (Memento vom 8. November 2016 im Internet Archive)
  19. Folge A051223 in OEIS
  20. Martin S. Pearson: Queens On A Chessboard – Beyond The 2nd Dimension. (php) Abgerufen am 27. Januar 2020 (englisch). 
  21. Alfred Diel: Das Spiel der Könige. Bamberger Schachverlag 1983, ISBN 3-923113-03-X, S. 114.
  22. Ian P. Gent, Christopher Jefferson, Peter Nightingale: Complexity of n-Queens Completion. In: Journal of Artificial Intelligence Research. Band 59, 2017 (york.ac.uk [PDF]). 
Dieser Artikel wurde am 20. September 2005 in dieser Version in die Liste der lesenswerten Artikel aufgenommen.