Le problème des N Queens est-il difficile à NP?

11

Le problème de la N-reine est le suivant:

Entrée: N

Sortie: Un placement de N "reines" sur un échiquier NXN de telle sorte qu'il n'y ait pas deux reines sur la même ligne, colonne ou diagonale.

En effectuant une recherche Google à ce sujet, j'ai constaté que de nombreuses diapositives de nombreux professeurs affirment qu'il s'agit d'un problème NP-difficile (par exemple, web.mst.edu/~ercal/387/slides/NP-Hard.ppt).

Cependant, je n'ai pas pu trouver de preuve (ou en tirer une). La raison pour laquelle je pose cette question est parce que je pense avoir un algorithme qui résout certains cas du problème, c'est-à-dire avec N pas un multiple de 2 ou 3 (N est le nombre de reines) Problème lié - Pouvons-nous considérer que la taille d'entrée est N (où N est le nombre de reines)? Ou considérons-nous que la taille d'entrée est log (N), puisque le nombre 'N' peut être représenté en bits log (N)?

Anshul Singhle
la source
6
(1) Pourquoi utilisez-vous à la fois N et n? S'agit-il de la même variable ou de variables différentes? (2) Pour chaque entier n sauf 2 et 3, il existe un moyen de mettre n reines sur le tableau n × n satisfaisant à la condition n-reine (voir Wikipedia ), donc je ne sais pas de quel problème vous parlez quand vous dites "c'est un problème NP-difficile."
Tsuyoshi Ito
3
Je rappelle qu'il y a un résultat de dureté lorsque la carte n'est pas nécessairement carrée: c'est-à-dire que la forme de la carte est donnée dans le cadre de l'entrée.
Sasho Nikolov
27
n×nn
2
Le comptage des solutions est peut-être un problème un peu plus intéressant (au-delà de la classe #P comme le prouve "Sur la dureté des problèmes de comptage des mappages complets").
Marzio De Biasi
3
Voir aussi: dl.acm.org/citation.cfm?id=122322
Jeffε

Réponses:

8

Comme indiqué, la réponse à cette question est NON.

Références: Un algorithme de temps polynomial http://dl.acm.org/citation.cfm?id=101343 [avec la permission de vzn]

Une autre technique beaucoup plus simple: http://dl.acm.org/citation.cfm?id=122322 [avec la permission de Jeffe]

Anshul Singhle
la source
vous pourriez envisager d'accepter cette réponse afin qu'elle ne réapparaisse pas comme sans réponse.
Suresh Venkat
11
L'algorithme polynomial dans la première référence n'est pas garanti pour produire une solution. La réussite ou non de l'algorithme dépend de la configuration initiale, qui est choisie au hasard, et les auteurs ne fournissent que des preuves empiriques qu'il semble nécessiter un nombre polynomial d'essais jusqu'à ce qu'il réussisse.
Tsuyoshi Ito
4
La deuxième référence n'est pas non plus une preuve. Le fait qu'une seule solution possible aux n-reines avec n = 500000 soit trouvée ne signifie pas qu'elle est en P. (Cela la rend plus probable)
Geoffrey De Smet
1

En fait, cela vient d’être démontré.

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

Kasper
la source
5
N
1
@ClementC. En fait, comme la question d'origine n'est pas assez précise, je pense que Kasper a raison, même si sa façon de la formuler peut être incomplète. Décider, étant donné n, s'il existe un placement est clairement dans P car le problème a toujours des solutions pour n> 3. Ainsi, le problème d'achèvement des n-reines (décider si l'on peut étendre une solution partielle donnée) semble un problème de décision naturel à examiner pour comprendre la complexité du problème.
holf
3
@holf C'est en effet un argument valable que vous soulevez , mais que cette réponse ne mentionne même pas (et qu'un lecteur n'obtiendrait absolument pas en le lisant). Avoir une réponse trompeuse à une question ambiguë n'est pas exactement optimal.
Clement C.