Encontrei as seguintes dúvidas sobre a complexidade das Torres de Hanói , sobre as quais gostaria de seus comentários.
Está em NP? Resposta da tentativa: Suponha que Peggy (provador) resolva o problema e o envie a Victor (verificador). Victor pode ver facilmente que o estado final da solução está correto (em tempo linear), mas ele não terá outra opção a não ser passar por cada um dos movimentos de Peggy para garantir que ela não faça um movimento ilegal. Como Peggy precisa fazer no mínimo 2 ^ | discos | - 1 jogada (provável), Victor também tem que seguir o exemplo. Assim, Victor não tem verificação de tempo polinomial (a definição de NP) e, portanto, não pode estar em NP.
Está no PSPACE ? Parece que sim, mas não consigo pensar em como estender o raciocínio acima.
É PSPACE completo? Parece que não, mas tenho apenas uma vaga idéia. O Planejamento automatizado, do qual ToH é uma instância específica, é completo no PSPACE. Eu acho que o Planejamento tem instâncias muito mais difíceis que o ToH.
Atualizado : Input = , o número de discos; Saída = configuração do disco em cada etapa. Depois de atualizar isso, percebi que esse formato de entrada / saída não se encaixa em um problema de decisão. Não tenho certeza da formalização correta para capturar as noções de NP, PSPACE etc. para esse tipo de problema.
Atualização # 2 : Após os comentários de Kaveh e Jeff, sou forçado a tornar o problema mais preciso:
Seja a entrada o par de entradas que é o número de discos. Se a sequência de movimentos executados pelos discos for anotada no formato (número do disco, de peg, para peg) (número de disco, de peg, para peg) ... desde o primeiro movimento até o por último, e codificado em binário, gera o bit.
Deixe-me saber se preciso ser mais específico sobre a codificação. Suponho que o comentário de Kaveh se aplique neste caso?
Respostas:
Não, o problema que você descreveu é realmente bastante fácil. A razão de alto nível é que o índice tem aproximadamente n bits de comprimento, para que possamos gastar tempo polinomial em n .Eu n n
Considere o seguinte problema relacionado: Dados dois números e k , descreva o k- ésimo movimento na solução do quebra-cabeça n- disco. O tamanho da entrada é lg n + lg k < n + lg k , mas, na verdade, apenas o bit menos significativo de n importa. Portanto, mesmo que lg k seja significativamente menor que n , podemos resolver esse problema no polinômio do tempo em O ( log k ) .n k k n lgn + lgk < n + lgk n lgk n O ( logk )
Suponha que os discos sejam numerados de a qualquer que seja em ordem crescente de tamanho, e os pinos são numerados 0 = origem, 1 = destino e 2 = sobressalentes. Escreva k = ( 2 p + 1 ) ⋅ 2 d para alguns números inteiros p e d . Em seguida, no turn k :0 0 k = ( 2 p + 1 ) ⋅ 2d p d k
Podemos calcular facilmente e d no tempo O ( log k ) fazendo um loop pela representação binária de k do bit menos significativo para cima. É isso aí.p d O ( logk ) k
Agora, suponha que você realmente queira o bit na sequência de saída, em que i faz parte da entrada em vez de k . Se cada turno for codificado usando o mesmo número de bits - especificamente, lg ( n + 1 ) bits para o número do disco, 2 bits para o from-peg e 2 bits para o to-peg -, basta calcular o k é o movimento, onde k = ⌊ i / ( lg ( n + 1 ) + 4 ) ⌋Eu Eu k lg( n + 1 ) 2 2 k k = ⌊ i / ( lg( n + 1 ) + 4 ) ⌋ e extraia o bit apropriado. (Observe que é linear no tamanho da entrada, pois precisamos saber n para determinar a saída.)lg( n + 1 ) + 4 n
Por outro lado, se estivermos usando uma representação de tamanho variável para os números de disco, podemos encontrar o número de movimentação em tempo polinomial por pesquisa binária. Precisamos saber o número total de voltas necessárias para mover os m discos superiores , para todos os m ≤ k , mas isso é dado pela recorrência M ( m ) = 2 M ( m - 1 ) + ( \ bits para registrar o movimento disco m ) que podemos avaliar em tempo polinomial por programação dinâmica. Os detalhes restantes são deixados como um exercício chato para o leitor.k m m ≤ k
(Suponho que cometi pelo menos um erro de paridade ou de um por um, mas espero que a ideia principal seja clara.)
fonte