Ist das N Queens Problem NP-schwer?

11

Das N-Queen-Problem ist folgendes:

Eingabe: N.

Ausgabe: Eine Platzierung von N "Königinnen" auf einem NXN-Schachbrett, so dass keine zwei Königinnen in derselben Zeile, Spalte oder Diagonale liegen.

Bei einer Google-Suche stellte ich fest, dass viele Folien von vielen Professoren behaupten, dies sei ein NP-schweres Problem (z. B. web.mst.edu/~ercal/387/slides/NP-Hard.ppt).

Ich konnte jedoch keinen Beweis finden (oder einen ableiten). Der Grund, warum ich diese Frage stelle, ist, dass ich denke, ich habe einen Algorithmus, der bestimmte Instanzen des Problems löst, dh mit N kein Vielfaches von 2 oder 3 (N ist die Anzahl der Königinnen). Verwandtes Problem - Können wir die Eingabegröße als betrachten? N (wobei N die Anzahl der Königinnen ist)? Oder nehmen wir die Eingabegröße als log (N), da die Zahl 'N' in log (N) Bits dargestellt werden kann?

Anshul Singhle
quelle
6
(1) Warum verwenden Sie sowohl N als auch n? Sind sie die gleiche Variable oder verschiedene Variablen? (2) Für jede ganze Zahl n mit Ausnahme von 2 und 3 gibt es eine Möglichkeit, n Königinnen auf die n × n-Tafel zu setzen, die die n-Königin-Bedingung erfüllen (siehe Wikipedia ), sodass ich nicht weiß, über welches Problem Sie wann sprechen Sie sagen: "Dies ist ein NP-hartes Problem."
Tsuyoshi Ito
3
Ich erinnere mich, dass es ein Härteergebnis gibt, wenn die Platine nicht unbedingt quadratisch ist: dh die Platinenform wird als Teil der Eingabe angegeben.
Sasho Nikolov
27
n×nn
2
Vielleicht ist das Zählen der Lösungen ein etwas interessanteres Problem (jenseits der # P-Klasse, wie in "Über die Härte des Zählens von Problemen vollständiger Abbildungen" bewiesen).
Marzio De Biasi
3
Siehe auch: dl.acm.org/citation.cfm?id=122322
Jeffε

Antworten:

8

Wie bereits erwähnt, lautet die Antwort auf diese Frage NEIN.

Referenzen: Ein polynomieller Zeitalgorithmus http://dl.acm.org/citation.cfm?id=101343 [mit freundlicher Genehmigung: vzn]

Eine weitere viel einfachere Technik: http://dl.acm.org/citation.cfm?id=122322 [mit freundlicher Genehmigung von Jeffe]

Anshul Singhle
quelle
Sie können diese Antwort akzeptieren, damit sie nicht immer wieder als unbeantwortet erscheint.
Suresh Venkat
11
Es ist nicht garantiert, dass der Polynom-Zeit-Algorithmus in der ersten Referenz eine Lösung ergibt. Ob der Algorithmus erfolgreich ist oder nicht, hängt von der zufällig ausgewählten Anfangskonfiguration ab, und die Autoren geben nur empirische Beweise dafür, dass eine polynomielle Anzahl von Versuchen erforderlich zu sein scheint, bis er erfolgreich ist.
Tsuyoshi Ito
4
Die zweite Referenz ist ebenfalls kein Beweis. Nur weil eine einzige realisierbare Lösung für n-Königinnen mit n = 500000 gefunden wird, heißt das nicht, dass es in P. ist (es macht es nur wahrscheinlicher)
Geoffrey De Smet
1

Tatsächlich hat sich gerade gezeigt, dass dies der Fall ist.

https://blogs.cs.st-andrews.ac.uk/csblog/2017/08/31/n-queens-completion-is-np-complete/ ]

Kasper
quelle
5
N
1
@ClementC. Da die ursprüngliche Frage nicht präzise genug ist, denke ich, dass Kasper einen Punkt hat, auch wenn seine Art, ihn zu formulieren, unvollständig sein könnte. Mit n zu entscheiden, ob eine Platzierung existiert, ist eindeutig in P, da das Problem immer Lösungen für n> 3 hat. Daher scheint das Problem der Vervollständigung von n-Königinnen (die Entscheidung, ob eine bestimmte Teillösung erweitert werden kann) ein natürliches Entscheidungsproblem zu sein, um die Komplexität des Problems zu verstehen.
Holf
3
@holf Das ist in der Tat ein gültiger Punkt, den Sie ansprechen , aber einer, den diese Antwort nicht einmal erwähnt (und den ein Leser durch das Lesen absolut nicht bekommen würde). Eine irreführende Antwort auf eine mehrdeutige Frage zu haben, ist nicht gerade optimal.
Clement C.