Będę używał liczb zaczynających się od zamiast , ponieważ uważam, że jest to bardziej naturalne.0 101
Oto dwie klasy problemów, które możemy rozwiązać w ten sposób:
Funkcje w TFNP (tzn. Problemy z wyszukiwaniem NP o wartości pojedynczej wartości)
(Uogólnia to przykład za pomocą permutacji jednokierunkowych. Obejmuje on w szczególny sposób problemy decyzyjne z .)U P ∩ c o U PUP∩coUP
Konfiguracja polega na tym, że mamy predykat czasu wielomianowego i wielomian taki, że dla każdego długości istnieje unikalne długości takie, że trzyma. Zadaniem obliczeniowym jest, biorąc , znaleźć .R ( x , y ) p ( n )R(x,y)p(n) x n y m = p ( n ) R ( x , y ) x yxnym=p(n)R(x,y)xy
Teraz założę, że wlog, że jest parzyste, więc . Algorytm polega na generowaniu równomiernie losowego i wynikum 2 m ≡ 1m( mod3 ) y ∈ [ 0 , 2 m )2m≡1(mod3)y∈[0,2m)
y R ( x , y )y (jako rozwiązanie problemu wyszukiwania), jeśli ;R(x,y)
y - y ′ { 0 ,y−y′ (jako losowy element ), jeśli , i ; 1 , 2 } y - y ′ ∈ { 1 , 2 } R ( x , y ′ ){0,1,2}y−y′∈{1,2}R(x,y′)
y mod 3 { 0 , 1 , 2 } y ′ ∈ { y , y - 1 , y - 2 } R ( x , y ′ )ymod3 (jako losowy element ), jeśli nie rozwiązuje .{0,1,2}y′∈ { y, y- 1 , y−2}R(x,y′)
Gdyby nie było rozwiązania problemu wyszukiwania, losowe wybory dałyby i razy, a razy (jeszcze jeden). Jeśli jednak rozwiązuje problem wyszukiwania, majstrowaliśmy przy elementach (które uderzyły we wszystkie trzy klasy reszt), tak że wytwarzają tylko reszty i , co wyrównuje przewagę . (Zakładam tutaj wlog, że .)2 m 1 22m12 ( 2 m - 1 ) / 3 0 ( 2 m +(2m−1)/30 2 ) / 3 y y(2m+2)/3y , r + 1 , y + 2 1 2 0 r < 2 m - 2y,y+1,y+2120y<2m−2
Problemy z wyszukiwaniem PPA-3)3
Wygodnym sposobem na zdefiniowanie PPA- jest to, że jako problemy z wyszukiwaniem NP wielu można zredukować do następujących rodzajów problemów. Mamy stałą funkcję czasu wielomianowego i wielomian , tak że dla dowolnego wejścia długości indukowane odwzorowanie ograniczone do danych wejściowych długości jest funkcją spełniającą dla każdego . Zadanie to jest, biorąc pod uwagę , znaleźć fixpoint z : .3 f ( x , y ) p ( n ) x n3f(x,y)p(n)xn f x ( y ) = f ( x , y ) y mfx(y)=f(x,y)y = p ( n ) f x : [ 0 , 2 m ) → [ 0 , 2 m ) f x ( f x ( f x ( y ) ) )m=p(n)fx:[0,2m)→[0,2m)= y y x y f x f x ( y ) = yfx(fx(fx(y)))=yyxyfxfx(y)=y
Możemy rozwiązać to w następujący sposób: zadając długości , generujemy losowe długości i wyprowadzamyx n y m = p ( n )xnym=p(n)
y f xy jeśli jest to punkt ;fx
w przeciwnym razie , i są odrębnymi elementami. Możemy oznaczyć je jako pomocą , a dane wyjściowe takie, że .y f x ( y ) f x ( f x ( y ) )yfx(y)fx(fx(y)) { y , f x ( y ) , f x ( f x ( y ) ) } = { y 0 , y 1 , y 2 } y 0 < y 1 < y 2 i ∈ { 0 , 1 , 2{y,fx(y),fx(fx(y))}={y0,y1,y2}y0<y1<y2} y = y jai∈{0,1,2}y=yi
To wynika z definicji, co daje równomierne rozprowadzenie w , ponieważ nie fixpoint „y pochodzi z trójek.{ 0 , 1 , 2 } y{0,1,2}y
Pokażę dla zapisu, że powyższy problem jest równoważny z kompletnym problemem Papadimitriou dla PPA- , ponieważ klasa ta jest w większości pomijana w literaturze. Problem wspomniano w Buss, Johnson: „Dowody zdań i redukcje między problemami wyszukiwania NP”, ale nie podają równoważności. W przypadku PPA podobny problem (LONELY) podano w Beame, Cook, Edmonds, Impagliazzo i Pitassi: „Względna złożoność problemów wyszukiwania NP”. Nie ma nic specjalnego w , poniższy argument działa mutatis mutandis na każdą nieparzystą liczbę pierwszą.3 333
Twierdzenie: Następujące problemy z wyszukiwaniem NP są wielokrotnie wielokrotne redukowane względem siebie:
Biorąc pod uwagę obwód reprezentujący dwudzielny niekierowany wykres i wierzchołek którego stopnia nie można podzielić przez , znajdź inny taki wierzchołek.( A ∪ B , E ) u ∈ A ∪ B 3(A∪B,E)u∈A∪B3
Biorąc pod uwagę obwód reprezentujący ukierunkowany wykres i wierzchołek którego bilans stopni (tj. Out-stop minus in-stop) nie jest podzielny przez , znajdź inny taki wierzchołek.( V , E ) u ∈ V 3(V,E)u∈V3
Biorąc pod uwagę obwód obliczający funkcję tak, że , znajdź punkt stały .f : [ 0 , 2 n ) → [ 0 , 2 n ) f 3 = i d ff:[0,2n)→[0,2n)f3=idf
Dowód:
1 ≤ p 21≤p2 jest oczywiste, ponieważ wystarczy skierować krawędzie od lewej do prawej.
2 ≤ p 1 A B V A = { x A : x ∈ V } B = { x B : x ∈ V } x → y { x A , y B } 1 { x B , y A } - 1 stopień ( x A ) = - deg ( x B ) x u2≤p1 : Najpierw stwórzmy ważony wykres dwustronny. Niech i będą kopiami : , . Dla każdej oryginalnej krawędzi wstawiamy krawędź o wadze i krawędź o wadze . To sprawia, że równa się równowadze stopni na oryginalnym wykresie. Jeśli jest danym wierzchołkiem równowagi , dodajemy dodatkową krawędź o masieABVA={xA:x∈V}B={xB:x∈V}x→y{xA,yB}1{xB,yA}−1deg(xA)=−deg(xB)xub ≢ 0( mod3 ) { u A , u B } b deg ( u A ) = 2 b ≢ 0b≢0(mod3){uA,uB}b, więc , a . będzie naszym wybranym wierzchołkiem.( mod3 ) deg ( u B ) = 0 u Adeg(uA)=2b≢0(mod3)deg(uB)=0uA
Aby wykres był zwykłym nieważonym wykresem niekierowanym, najpierw zmniejszamy wszystkie wagi modulo i upuszczamy wszystkie krawędzie o wadze . Pozostawia to tylko krawędzie odważników i . Te ostatnie można zastąpić odpowiednimi gadżetami. Na przykład, zamiast ważenia krawędzi , uwzględniamy nowe wierzchołki , dla , z krawędziami , , , , : to powoduje, że3 0 1 2 2 { x A , y B } w A i z B i i = 0 , … , 3 { x A , y B } { x A , z B i } { w A i , y B } { w A i , z B i } { w A i30122{xA,yB}wAizBii=0,…,3{xA,yB}{xA,zBi}{wAi,yB}{wAi,zBi} , z B ( i + 1 ) mod 4 }deg(w A i )=deg(z B i )=35≡2{wAi,zB(i+1)mod4}deg(wAi)=deg(zBi)=3I przyczynia do a .( mod3 ) x A i B5≡2(mod3)xAyB
3 ≤ p 23≤p2 : Załóżmy, że dla uproszczenia jest nawet tak, że . Konstruujemy ukierunkowany wykres na w następujący sposób:n 2 n ≡ 1n( mod3 ) V = [ 0 , 2 n )2n≡1(mod3)V=[0,2n)
Uwzględniamy krawędzie i dla każdego .3x+1→3x3x+1→3x3x+2→3x3x+2→3xx<2n/3−1x<2n/3−1
Jeśli jest orbitą nie będącą punktem stałym , uwzględniamy krawędzie od i .x0<x1<x2x0<x1<x2ffx0→x1x0→x1x0→x2x0→x2
Wybrany wierzchołek będzie . Pierwsza klauzula przyczynia się do równowagi lub do każdego wierzchołka . Podobnie druga klauzula przyczynia się do równowagi lub do wierzchołków, które nie są . Zatem, zakładając, że nie jest już punktem stałym, to rzeczywiście jest to niezrównoważony moduł , a każdy inny niewyważony wierzchołek modułu jest punktem stałym .u=2n−1u=2n−111−2≡1(mod3)−2≡1(mod3)≠u≠u−1−12≡−1(mod3)2≡−1(mod3)uu333f
1≤p3 : Możemy założyć, że z parzystą, a dany wierzchołek ma stopień .A=B=[0,2n)nu∈A≡2(mod3)
Możemy skutecznie oznaczać krawędzie występujące wierzchołkiem jako , gdzie . W ten sposób staje się podzbiorem , które utożsamiamy z . Definiujemy funkcję na w następujący sposób.y∈B(y,j)j<deg(y)E[0,2n)×[0,2n)[0,22n)f[0,2n)×[0,2n)
Na dopełnieniu : dla każdego i tak, że , tworzymy , , . Również , , dla . to punkt i punkty dla każdego którego stopnia nie można podzielić przez .Ey∈Bjdeg(y)≤3j<2n−1f(y,3j)=(y,3j+1)f(y,3j+1)=(y,3j+2)f(y,3j+2)=(y,3j)f(3i,2n−1)=(3i+1,2n−1)f(3i+1,2n−1)=(3i+2,2n−1)f(3i+2,2n−1)=(3i,2n−1)3i<2n−1(2n−1,2n−1)3−(deg(y)mod3)(y,i)y∈B3
W : dla każdego naprawiamy wydajne wyliczanie jego krawędzi incydentów , gdzie . Kładziemy , , dla . Zrezygnowano punktów dla każdego wierzchołka , którego stopnia nie jest podzielna przez .Ex∈A(y0,j0),…,(yd−1,jd−1)d=deg(x)f(y3i,j3i)=(y3i+1,j3i+1)f(y3i+1,j3i+1)=(y3i+2,j3i+2)f(y3i+2,j3i+2)=(y3i,j3i)i<⌊d/3⌋deg(x)mod3x∈A3
Odkąd , dwie z jego krawędzi zdarzeń zostały pominięte; przekształcamy je w kolejny cykl , używając jako trzeciego punktu. Pozostałe punkty pozostają jako punkty stałe . Z założenia każdy z nich da rozwiązanie (1).deg(u)≡2(mod3)f(2n−1,2n−1)f