O problema clássico de rainhas pergunta, dado um número inteiro positivo , se existe uma matriz de números inteiros que satisfazem as seguintes condições:n Q [ 1 .. n ]
- i para todos os
- i ≠ j para todos os
- i ≠ j para todos os
- i ≠ j para todos os
Cada número inteiro representa a posição de uma rainha do th linha de uma tabuleiro de xadrez; as restrições codificam o requisito de que nenhuma rainha ataca qualquer outra rainha. É fácil provar que não há soluções quando ou , e soluções de forma fechada são conhecidas por todos os outros valores de . Assim, como um problema de decisão , o problema das rainhas é completamente trivial.i n × n n = 2 n = 3 n n
O algoritmo de backtracking padrão para construir uma solução rainhas coloca especulativamente rainhas em um prefixo das linhas e determina recursivamente se existe um posicionamento legal de rainhas nas linhas restantes. O subproblema recursivo pode ser formalizado da seguinte maneira:
- Dado um número inteiro e uma matriz de números inteiros, é um prefixo de uma matriz que descreve uma solução para o problema das rainhas?P [ 1 .. k ] P Q [ 1 .. n ] n
Esse problema de decisão mais geral é difícil para o NP?
Sabe-se que várias questões próximas são difíceis de NP, incluindo a conclusão do quadrado latino [ Colbourn 1984 ], a conclusão do Sudoku [ Yato e Seta 2002 ] e uma generalização diferente de raens [ Martin 2007 ], mas essa questão específica parece ter escapado qualquer atenção séria.
Questões relacionadas com cstheory.se: