Decyzja, czy NC

27

Chciałbym zapytać o szczególny przypadek pytania „ Decyzja, czy dany obwód NC 0 oblicza permutację ” QiCheng, na który nie udzielono odpowiedzi.

Obwód boolowski nazywa się obwodem NC 0 k , jeżeli każda bramka wyjściowa syntaktycznie zależy od co najwyżej k bramek wejściowych. (Mówimy, że bramka wyjściowa g syntaktycznie zależy od bramki wejściowej g ′, gdy w obwodzie jest skierowana ścieżka od g ′ do g, widziana jako ukierunkowany wykres acykliczny.)

We wspomnianym pytaniu QiCheng zapytał o złożoność następującego problemu, w którym k jest stałą:

Przykład : NC- 0 k obwód z n -bitowe wejście i n wyjściu bitowych.
Pytanie : Czy dany obwód oblicza permutację na {0, 1} n ? Innymi słowy, czy funkcja obliczana przez obwód jest wstrząsiem z {0, 1} n do {0, 1} n ?

Jak Kaveh skomentował to pytanie, łatwo zauważyć, że problem dotyczy coNP. W odpowiedzi wykazałem, że problem jest kompletny coNP dla k = 5 i że występuje w P dla k = 2.

Pytanie . Jaka jest złożoność dla k = 3?

Wyjaśnienie z 29 maja 2013 r . : „Permutacja na {0, 1} n ” oznacza bijectywne mapowanie od {0, 1} n do siebie. Innymi słowy, problem dotyczy tego, czy każdy n- bitowy ciąg jest wyjściem danego obwodu dla jakiegoś n- bitowego ciągu wejściowego.

Tsuyoshi Ito
źródło
1
Notatka osobista: kiedy opublikowałem odpowiedź na pytanie QiCheng, zrobiłem to tylko dlatego, że problem wyglądał interesująco, bez żadnej konkretnej aplikacji. Kilka miesięcy później znalazłem się w sytuacji, w której musiałem wytłumaczyć komuś, że podjęcie decyzji, czy dany program oblicza permutację, nie jest wcale trywialne. Dzięki pytaniu QiCheng miałem doskonały przykład (co za zbieg okoliczności!). Potem bardziej zainteresowałem się przypadkami k = 3 i k = 4. Podejrzewam, że przypadek k = 3 jest już zakończony coNP, ale nie byłem w stanie udowodnić żadnej z tych metod.
Tsuyoshi Ito
ten problem wydaje się być szczególnym przypadkiem problemu Pigeonhole Circuit zdefiniowanego przez Papadimitriou ( sciencedirect.com/science/article/pii/S0022000005800637 ), który jest kompletny dla PPP w odniesieniu do redukcji czasu między problemami wyszukiwania.
Marcos Villagra,
@Marcos Villagra: Dziękuję za komentarz, ale obawiam się, że mówiąc „szczególny przypadek” znacząco zmieniasz definicję problemu obwodu gołębia. Ważną właściwością problemu Pigeonhole Circuit jest to, że jest to całkowity problem z wyszukiwaniem, podczas gdy aktualny problem (postrzegany jako problem z wyszukiwaniem dwóch danych wejściowych, które dają takie same dane wyjściowe) nie jest całkowitym problemem z wyszukiwaniem.
Tsuyoshi Ito

Odpowiedzi:

3

Ten problem z jest trudny coNP (a zatem coNP-zupełny).k=3

Aby to udowodnić, zredukuję z 3-SAT do uzupełnienia tego problemu (czy dla danego obwodu obwód ma funkcję nie-bijectywną).NC30

Najpierw wstępna definicja, która będzie pomocna:

Definiujemy wykres oznaczony jako wykres ukierunkowany, którego niektóre krawędzie są oznaczone literałami, z tą właściwością, że każdy wierzchołek ma albo jedną nieznakowaną krawędź wejściową, jedną oznaczoną krawędź wejściową lub dwie nieznakowane krawędzie przychodzące.

Redukcja

Załóżmy, że mamy wzór 3-SAT składający się z m klauzul, z których każda zawiera trzy literały. Pierwszym krokiem jest zbudowanie oznaczonego wykresu G z ϕ . Ten wykres z etykietą zawiera jedną kopię następującego gadżetu (przepraszam za okropny schemat) dla każdej klauzuli w ϕ . Trzy krawędzie oznaczone L1, L2 i L3 są zamiast tego oznaczone literałami w klauzuli.ϕmGϕϕ

   |
   |               |
   |               |
   |               O<-----\
   |               ^      |
   |               |      |
   |               |      |
   |        /----->O      |
   |        |      ^      |
   |        |      |      |
   |        |      |      |
   |        O      O      O
   |        ^      ^      ^
   |        |      |      |
   |        |L1    |L2    |L3
   |        |      |      |
   |        O      O      O
   |        ^      ^      ^
   |        |      |      |
   |        |      |      |
   |        \------O------/
   |               ^
   |               |
   |               |
   |               O
   |               ^
   |               |
   |

Gadżety (po jednym dla każdej klauzuli) są ułożone w jednym dużym cyklu, a dół jednego gadżetu łączy się z górą następnego.

Zauważ, że taki układ gadżetów faktycznie tworzy wykres z etykietą (każdy wierzchołek ma stopień 1 lub 2 z tylko krawędziami prowadzącymi do etykietowania wierzchołków stopnia 1).

Na podstawie wzoru i oznaczonego wykresu G (który został skonstruowany z ϕ ) konstruujemy następnie obwód N C 0 3 (zakończy to redukcję). Liczba wejść i wyjść z tego układu jest brak + V , gdzie n oznacza liczbę zmiennych cp a v jest liczbą wierzchołków G . Jedno wejście i jedno wyjście jest przypisana do każdej zmiennej w cp i każdego wierzchołka w G . Jeśli x jest jakąś zmienną w ϕϕGϕNC30n+vnϕvGϕGxϕwtedy będziemy odnosić się do bitów wejściowych i wyjściowych związanych z jako x i n i x o u t . Ponadto, jeśli l jest literałem przy l = x, wówczas definiujemy l i n = x i n, a jeśli l jest literałem przy l = ¬ x, to definiujemy l i n = ¬ x i n . Wreszcie, jeśli v jest jakimś wierzchołkiem w Gxxinxoutll=xlin=xinll=¬xlin=¬xinvGnastępnie będzie odnosić się do bitów wejściowych i wyjściowych związane z jak V i n i V O U ţ .vvinvout

Istnieją cztery typy bitów wyjściowych:

1) Dla każdej zmiennej in ϕ , x o u t = x i n . Zauważ, że to wyjście zależy tylko od jednego bitu wejściowego.xϕxout=xin

v(u,v)vout=vinuin

v(u,v)lvout=vin(uinlin)linxinxl

v(u,v)(w,v)vout=vin(uinwin)

NC30

ϕ

ϕ

ϕG

ϕG

NC30

Rozważ cztery typy bitów wyjściowych:

xϕxout=xinxin

v(u,v)vout=vinuinGvout=vinuin=00=0vout=vinuin=11=0

v(u,v)lvout=vin(uinl)lvinvout=vin(uinl)=vin(uin0)=vin=0lvin(u,v)uuin=1uin=vinlvout=vin(uinl)=vin(uin1)=vinuin=vinvin=0

v(u,v)(w,v)vout=vin(uinwin)

vuwvout=vin(uinwin)=0(00)=0uinuin=L1winwin=L2vinvin=L1L2vout=vin(uinwin)=(L1L2)(L1L2)=0

vuwvout=vin(uinwin)=0(00)=0uinuin=L1L2winwin=L3vin=1vout=vin(uinwin)=1((L1L2)L3)=1(L1L2L3)=11=0(L1L2L3)=1

NC30

ϕ

ϕNC30

xinxϕx

SvGvin

Poniżej udowodnimy następujące lematy:

SS

SS

SGSS

(L1L2L3)(u,v)Lvout=vin(uinL)L=0vout=vin(uinL)=vin(uin0)=vin0=vinvinvSS

SNC30

Pozostało tylko udowodnić lematy.

GSSvout=vinXXvSXvin=voutXvS

SS

Michaił Rudoy
źródło
-1

Nie odpowiedź, której autor szukał, zobacz komentarze wyjaśniające, co to jest „permutacja” w tym kontekście.

Wykreśliłem rozmiar minimalnego dominującego zestawu dla digraphu włączenia grupy monogenicznej permutacji: https://oeis.org/A186202

Wszystko, co musisz zrobić, to przetestować jednego członka każdego rozkładu podstawowego.

Dla każdego pierwszego cyklu powinno wystarczyć zakodowanie elementów jako (10101010 ...), a następnie (01010101 ..)?

------ Wyjaśnienie ------ Celem tego podejścia jest modelowanie twoich przypadków testowych jako wykreślnika. Jeśli jeden udany przypadek testowy implikuje inny udany przypadek testowy, wystarczy przetestować tylko minimalny zestaw dominujący tego wykresu przestrzeni testowej. W obszarze permutacji OEIS A186202 to maksimum, które musisz przetestować, aby wykryć nietrywialną podgrupę lub udowodnić, że nie istnieje; ta liczba jest wciąż duża, ale znacznie mniejsza niż n !.

--Musing-- Używając n-1 zer i 1 jeden w iteracjach możesz wykryć stałą permutację, której szukasz. Następnie w O (n {(n-1) \ wybierz (k-1)} (2 ^ (k-1)) możesz przetestować, czy każdy zestaw zmiennych (k-1) nie wpływa na każdy indeks losowania Ponieważ skoro k jest ustalone, to jest wielomianowe. Czy czegoś brakuje?

Chad Brewbaker
źródło
Hmm Nie jestem pewien, czy (01) *, (10) * jest wystarczające. Może być konieczne wypróbowanie wszystkich konfiguracji 2 ^ p dla każdego cyklu głównego.
Chad Brewbaker
2
(2n)!n11
2
C:{0,1}n{0,1}nx,x{0,1}nC(x)=C(x)xxCpermutuje (tasuje / reorganizuje / ponownie porządkuje) bity wejściowe. Czy widzisz różnicę? Podejrzewam, że odpowiedziałeś na niewłaściwe pytanie.
DW
2
Dziękuję za próbę pomocy, ale jak wyjaśnił DW, obawiam się, że pytanie, na które odpowiedziałeś, jest inne niż zadane. „Permutacja na {0,1} ^ n” oznacza funkcję podwójną od {0,1} ^ n do siebie i nie oznacza przestawienia n bitów.
Tsuyoshi Ito
3
Chad, czy mógłbyś usunąć tę odpowiedź lub przynajmniej dodać notatkę na górze, że to nie odpowiada na pytanie Tsuyoshi?
Kaveh