Oto problem:
W niektórych komórkach mamy kwadrat z niektórymi liczbami od 1..N. Trzeba ustalić, czy można go ukończyć na magiczny kwadrat.
Przykłady:
2 _ 6 2 7 6
_ 5 1 >>> 9 5 1
4 3 _ 4 3 8
7 _ _
9 _ _ >>> NO SOLUTION
8 _ _
Czy ten problem NP-jest kompletny? Jeśli tak, jak mogę to udowodnić?
cc.complexity-theory
np-hardness
np
puzzles
levanovd
źródło
źródło
Odpowiedzi:
Wypełnianie częściowo wypełnionego łacińskiego kwadratu jest NP-Complete. „Złożoność wykonywania częściowych kwadratów łacińskich” Charles J. Colbourn. Discrete Applied Mathematics, tom 8, wydanie 1, kwiecień 1984, strony 25-30 http://dx.doi.org/10.1016/0166-218X(84)90075-1
Czy problem kwadratu łacińskiego można przekształcić w zagadnienie magicznego kwadratu za pomocą arytmetyki modułowej? Moja intuicja mówi „tak”, ale reszta mojego mózgu mówi „Wróć do oceniania!”
źródło
To pytanie składa się z dwóch części: po pierwsze, czy problem dotyczy NP, a po drugie, czy NP jest trudny?
W pierwszej części mam pozytywną odpowiedź z nieoczywistym dowodem. (Podziękowania dla Suresha za wskazanie wcześniejszego błędu.)
Rozważ następujący sposób sformalizowania pytania jako problemu decyzyjnego:
Jeśli dodamy ograniczenie, że każda z liczb całkowitych musi wystąpić dokładnie raz na magicznym kwadracie, wówczas wynikający z tego problem decyzyjny ZAKOŃCZENIE KWADRATU MAGICZNEGO jest oczywiście w NP. Definicja magicznym placu w 1911 roku Encyclopaedia Britannica , po Euler ma tego ograniczenia; w przeciwieństwie do tego, artykuł z Wikipedii używa obecnie terminologii „normalny magiczny kwadrat” i rezerwuje „magiczny kwadrat” dla nieograniczonej wersji.1,2,…,n2
Z przez siatki, przynajmniej numery muszą być podane, w przeciwnym razie odpowiedź brzmi trywialnie „TAK” dla nieograniczonego wersji. Można zatem założyć, że rozmiar danych wejściowych wymaga w tym przypadku więcej niż bitów. W normalnej wersji możliwe jest, że istnieją dane wejściowe, które wymagają kilku bitów, ale nie mają rozwiązania; aby uniknąć takich komplikacji, określiłem, że jest podany unarnie.n n n n n
Argument wykorzystuje ograniczenie możliwego rozmiaru liczb całkowitych pojawiających się w rozwiązaniach. W normalnym przypadku granica ta jest oczywiście , ale w ogólnym przypadku nie jest z góry oczywiste, że taka granica istnieje. Okazuje się, że istnieje wykładnicza granica.n2
Pojawiło się to również jako Twierdzenie 4.7 w:
Cipu ogłosił niedawno asymptotycznie lepszą granicę . (Zauważ, że najmniejsze możliwe ograniczenie to ). Argument opiera się na ograniczeniu na wyznaczniku macierzy, ze względu na Waldiego.2n 2n−1
Jeszcze niedawno Freitas, Friedland i Porta wykazali, że granica , jako następstwo ich bardziej ogólnego Twierdzenia 1.1.2n−1
Daje to:
Oznacza to, że można użyć spacji aby odgadnąć rozwiązanie do granicy, a następnie sprawdzić w czasie czy jest to rozwiązanie. Dokładny wielomian zależy od tego, czy do wyznaczenia używa się wyniku Tyszki, czy Cipu, oraz od tego, jak wyraża się układ diofantyczny równań reprezentujących magiczny kwadrat. W obu przypadkach liczba zmiennych wymaganych w układzie diofantynowym w postaci przedstawionej przez Tyszkę wynosi nie więcej niż . Osiąga się to za pomocą zmiennych dla sum częściowych dla każdego rzędu, kolumny i przekątnej oraz dużej zmiennej łącznej łączącej je razem. Poza samym kwadratem magicznym wymagana jest kolejna wielomianowa liczba zmiennych dla liczb w kwadracie: liczba wymagającaO(N4) O(N8) n2+2(n+1)(n−2)+1=3n2−2n−3 n−2 m bitów można przedstawić za pomocą zmiennych pośrednich .O(m2)
W przypadku drugiej części pytania, o ile mogę stwierdzić, każda wersja ZAKOŃCZENIA MAGICZNEGO KWADRATU powinna być NP-trudna, ale nie mam obniżek. Warto zauważyć, że istnieją procedury konstruowania normalnych magicznych kwadratów o dowolnie dużych rozmiarach; co więcej, liczba normalnych magicznych kwadratów wydaje się rosnąć superpolomicznie z (patrz OEIS A006052 ), więc podstawowy język nie wydaje się być rzadki.n
Korzystając z ograniczeń Papadimitriou w rozwiązaniach wystąpienia INTEGEROWEGO PROGRAMOWANIA LINIOWEGO, można również pokazać, że wersja, w której wszystkie liczby muszą być nieujemne, jest również w NP.
Wiązania tworzące magiczny kwadrat można wyrazić jako program liniowy za pomocą , ze zmiennymi i nierówności. Daje to nieco większą granicę niż granica powyżej, gdzie dozwolone są liczby ujemne, ale certyfikat wciąż ma wielkość wielomianową. (Podziękowania dla Tony Tan za wskazanie wyniku Papadimitriou.)s = n 2 + 1 r = 2 n + 2a=1 s=n2+1 r=2n+2
źródło