Hidoku to siatka z niektórymi wstępnie wypełnionymi liczbami całkowitymi od 1 do . Celem jest znalezienie ścieżki kolejnych liczb całkowitych (od 1 do ) w siatce. Bardziej konkretnie, każda komórka siatki musi zawierać inną liczbę całkowitą od 1 do a każda komórka o wartości musi mieć sąsiednią komórkę o wartości (może być również ukośna).
Czy trudno jest zdecydować, czy dane Hidoku jest możliwe do rozwiązania? Jakiej redukcji można użyć?
Edycja: zgodnie z komentarzami podam trochę wyjaśnienia. Podana jest siatka komórek, niektóre z nich już zawierają wartości (liczby całkowite od 1 do n²). Musimy wypełnić wszystkie pozostałe komórki liczbami całkowitymi od 1 do , tak aby żadne dwie komórki nie miały tej samej wartości i aby każda komórka o wartości miała sąsiada o wartości . Oznacza to, że po wypełnieniu komórek musimy znaleźć ścieżkę . W siatce, która logicznie odwiedza każdą komórkę.
Przykładem Hidoku może być http://www.janko.at/Raetsel/Hidoku/018.c.gif . Rozwiązanym już Hidoku jest http://diepresse.com/images/uploads/3/f/7/586743/spectrumsommerraetsel_7august_hidoku_schwer_loesung20100810172340.gif , gdzie można zobaczyć ścieżkę, o której mówiłem.
Odpowiedzi:
Myślę, że jest -Complete: jak zauważony przez Raphael, cykl Hamiltona na wykresach siatki z otworami problemu jest NP-zupełny ( Alon Itai, Christos Papadimitriou, Jayme Luiz Szwarcfiter: Hamilton Ścieżki w siatce Wykresy SIAM J. Comput.. 11 (4): 676–686 (1982) ).NP
Biorąc pod uwagę wykres z dziurami, możesz łatwo zbudować równoważną grę Hidoku, w której początkowe ustalone komórki wypełniają wszystkie równe przekątne; puste nieparzyste przekątne tworzą niekierowany wykres, który jest równoważny z oryginalnym wykresem siatki G, a Hidoku ma rozwiązanie wtedy i tylko wtedy, gdy oryginalny wykres siatki ma ścieżkę hamiltonowską.G G
Ryc. 1: wykres siatki z dziurami i odpowiednikiem układanki Hidoku (niebieskie komórki reprezentują początkowe komórki o ustalonym numerze ( 1 to pierwsza, 144 to ostatnia), białe komórki to komórki, które gracz musi wypełnić, fioletowa linia wskazuje sekwencję początkowych ustalonych komórek numerowanych).12×12 1 144
Linie pomocnicze (wypełnione) można dodać do dolnej lub prawej strony, aby uzyskać kwadrat.
Kolejny przykład redukcji z wykresu siatki do układanki Hidoku: wykres siatki 6x4 jest osadzony na większej siatce 13x13; parzyste przekątne są wypełnione stałymi liczbami, a pozostałe wolne komórki są równoważne oryginalnemu wykresowi siatki.
Pełny obraz z transformacją można pobrać tutaj .
Kilka dodatkowych uwag do uzupełnienia odpowiedzi:
problem znany jest również jako Hidato ; plansza może mieć dowolny kształt (ale jako uogólnienie kwadratowej obudowy pozostaje twarda NP);
jak słusznie udowodnił Steven Stadnicki w swojej odpowiedzi, nie jest oczywiste, że problem tkwi w NP, jeśli początkowa częściowo wypełniona siatka nie jest podana jako tablica liczb całkowitych ale jest podana w zwięzłej reprezentacji; jednak wyraźnie widać w NP, czy tablica początkowa jest podana przy użyciu rozsądnej listy reprezentacji liczb całkowitych;n×n
Myślę, że oryginalne zasady gry mówią, że rozwiązanie powinno być unikalne ; więc problem występuje w USA (trudny w USA ) i prawdopodobnie nie będzie w NP.
Podsumowując, jeśli upuść unique rozwiązanie i określić początkową płytę z listą liczb gra jest N P -Complete.n2 NP
źródło
(Aby omówić podobne problemy, zobacz moje pytanie o złożoność zwięzłego Nurikabe na stronie cstheory.SE.)
źródło