O problema do N Queens é NP-difícil?

11

O problema da rainha N é o seguinte:

Entrada: N

Saída: Um posicionamento de N "rainhas" em um tabuleiro de xadrez NXN, de modo que não haja duas rainhas na mesma linha, coluna ou diagonal.

Ao fazer uma pesquisa no google, descobri que muitos slides de muitos professores afirmam que esse é um problema do NP-Hard. (Por exemplo, web.mst.edu/~ercal/387/slides/NP-Hard.ppt)

No entanto, não consegui encontrar uma prova (ou obter uma). A razão pela qual faço essa pergunta é porque acho que tenho um algoritmo que resolve certas instâncias do problema, ou seja, com N não um múltiplo de 2 ou 3 (N é o número de rainhas). Problema relacionado - Podemos considerar o tamanho da entrada como N (onde N é o número de rainhas)? Ou consideramos o tamanho da entrada como log (N), já que o número 'N' pode ser representado nos bits de log (N)?

Anshul Singhle
fonte
6
(1) Por que você usa N e n? Eles são a mesma variável ou variáveis ​​diferentes? (2) Para todo número inteiro n, exceto 2 e 3, existe uma maneira de colocar n rainhas na placa n × n que satisfaçam a condição n-queen (consulte Wikipedia ), então não sei de que problema você está falando quando você diz "este é um problema difícil de NP".
Tsuyoshi Ito
3
Lembro que há um resultado de dureza quando a placa não é necessariamente quadrada: ou seja, a forma da placa é fornecida como parte da entrada.
Sasho Nikolov 21/09/12
27
Não pode haver uma prova de completude do NP para o tabuleiro de xadrez , porque esse problema tem uma entrada unária ... ou seja, existe apenas uma entrada para o tamanho , enquanto a testemunha precisa de uma descrição de tamanho polinomial. O teorema de Mahaney diz que mostrar que um problema como esse é NP-completo implicaria que P = NP. Você precisa de formas engraçadas de placas para que o problema seja NP-completo. nn×nn
quer
2
Talvez contar a solução seja um problema um pouco mais interessante (além da classe #P, como provado em "Sobre a dureza de contar problemas de mapeamentos completos").
Marzio De Biasi
3
Veja também: dl.acm.org/citation.cfm?id=122322
Jeffε

Respostas:

8

Como afirmado, a resposta a esta pergunta é NÃO.

Referências: Um algoritmo de tempo polinomial http://dl.acm.org/citation.cfm?id=101343 [cortesia: vzn]

Outra técnica muito mais simples: http://dl.acm.org/citation.cfm?id=122322 [cortesia: Jeffe]

Anshul Singhle
fonte
considere aceitar esta resposta para que ela não reapareça como sem resposta.
Suresh Venkat
11
Não é garantido que o algoritmo de tempo polinomial na primeira referência produza uma solução. O êxito ou não do algoritmo depende da configuração inicial, que é escolhida aleatoriamente, e os autores apenas fornecem evidências empíricas de que parece levar um número polinomial de tentativas até que seja bem-sucedido.
Tsuyoshi Ito
4
A segunda referência também não é uma prova. Só porque uma única solução viável para n-queens com n = 500000 for encontrado, não significa que ele está em P. (Ele apenas torna mais provável)
Geoffrey De Smet
1

Na verdade, isso acabou de ser demonstrado.

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

Kasper
fonte
5
N
11
@ClementC. Na verdade, como a pergunta original não é precisa o suficiente, acho que Kasper tem razão, mesmo que sua maneira de afirmar isso seja incompleta. Decidir, dado n, se existe um posicionamento, está claramente em P, pois o problema sempre tem soluções para n> 3. Portanto, o problema de conclusão das n-rainhas (decidir se é possível estender uma determinada solução parcial) parece um problema de decisão natural para entender a complexidade do problema.
holf 02/09
3
@holf Esse é realmente um argumento válido que você faz, mas que essa resposta nem sequer menciona (e que o leitor absolutamente não entenderia ao lê-la). Ter uma resposta enganosa para uma pergunta ambígua não é exatamente o ideal.
Clement C.