Um Hidoku é uma grade com alguns números inteiros pré-preenchidos de 1 a . O objetivo é encontrar um caminho de números inteiros sucessivos (de 1 a ) na grade. Mais concreto, cada célula da grade deve conter um número inteiro diferente de 1 a e cada célula com valor deve ter uma célula vizinha com valor (também pode ser na diagonal).n 2 n 2 n 2 z ≠ n 2 z + 1
É NP difícil decidir se um Hidoku é solucionável? Que redução poderia ser usada?
Edit: de acordo com os comentários, dou um pequeno esclarecimento. Dada a grade de células, algumas delas já contêm valores (números inteiros de 1 a n²). Devemos preencher todas as células restantes com números inteiros de 1 a , de modo que não haja duas células com o mesmo valor e que cada célula com valor tenha um vizinho com valor z + 1 . Ou seja, depois de preencher as células, devemos encontrar o caminho 1, 2, 3, \ cdots, n ^ 2 . Na grade, que visita logicamente cada célula. z ≠ n ² z + 1 1 , 2 , 3 , ⋯ , n 2
Um exemplo de um Hidoku seria http://www.janko.at/Raetsel/Hidoku/018.c.gif . Um Hidoku já resolvido é http://diepresse.com/images/uploads/3/f/7/586743/spectrumsommerraetsel_7august_hidoku_schwer_loesung20100810172340.gif , onde você pode ver o caminho ao qual eu estava me referindo.
Respostas:
Penso que é -completo: como notado por Raphael, ciclo hamiltoniano em gráficos de grelha com furos problema é NP-completo ( Alon Itai, Christos Papadimitriou, Jayme Luiz Szwarcfiter: Hamilton Caminhos em grade Gráficos SIAM J. Comput.. 11 (4): 676-686 (1982) ).N P
Assim, dado um gráfico de grade com furos, você pode facilmente criar um jogo Hidoku equivalente, onde as células fixas iniciais preenchem todas as diagonais pares; as diagonais ímpares vazias formam um gráfico não direcionado equivalente ao gráfico de grade original G e o Hidoku tem uma solução se e somente se o gráfico de grade original tiver um caminho hamiltoniano.G G
Figura 1: um gráfico de grade com furos e o quebra-cabeça equivalente Hidoku (células azuis representam as células numeradas fixas iniciais ( 1 é a primeira, 144 é a última), células brancas são as células que o jogador deve preencher, linha roxa indica a sequência das células numeradas fixas iniciais).12 × 12 1 1 144
Linhas auxiliares (preenchidas) podem ser adicionadas ao lado inferior ou direito para torná-lo um quadrado.
Outro exemplo de redução de um gráfico de grade para um quebra-cabeça Hidoku: o gráfico de grade 6x4 é incorporado em uma grade 13x13 maior; as diagonais pares são preenchidas com números fixos e as células livres restantes são equivalentes ao gráfico de grade original.
A imagem completa com a transformação pode ser baixada aqui .
Algumas notas adicionais para completar a resposta:
o problema também é conhecido como Hidato ; a placa pode ter uma forma arbitrária (mas, como generalização da caixa quadrada, ela permanece NP-hard);
como corretamente evidenciado por Steven Stadnicki em sua resposta não é óbvio que o problema está em NP se a grade inicial parcialmente preenchido não é dado como um array de inteiros, mas é dada em alguns sucinta representação; no entanto, é claramente em NP se o quadro inicial é fornecido usando a lista razoável de representação de números inteiros;n × n
Eu acho que as regras originais do jogo dizem que a solução deve ser única ; então o problema está nos EUA (difícil nos EUA ) e é improvável que esteja no NP.
fonte
(Para uma discussão de questões semelhantes, veja minha pergunta sobre a complexidade de um sucinto Nurikabe no site cstheory.SE.)
fonte