Czy możemy szybko wygenerować idealnie jednolicie mod 3 lub rozwiązać problem NP?


13

Szczerze mówiąc, nie wiem zbyt wiele o tym, jak generowana jest liczba losowa (komentarze są mile widziane!), Ale załóżmy następujący model teoretyczny: Możemy uzyskać liczby całkowite jednolicie losowe z a naszym celem jest wyprowadza liczbę całkowitą jednolicie losową z [1,3].[ 1 , 2 n ][1,2n]

Oto proste rozwiązanie, którego oczekiwany czas działania jest wielomianowy. Odrzuć (i prawdopodobnie także ) z aby liczba pozostałych liczb całkowitych była podzielna przez , abyśmy mogli wziąć z wygenerowanej liczby całkowitej. Jeśli otrzymamy odrzucony numer, generujemy kolejny numer, dopóki nie otrzymamy odrzuconego numeru.2 n 2n2 n - 1 2n1[ 1 , 2 n ] [1,2n]3 3mod 3mod3

Ale co, jeśli chcemy zakończyć z pewnością w czasie wielomianowym? Z powodu problemów z podzielnością problem staje się nierozwiązywalny. Zastanawiam się jednak, czy możemy rozwiązać następujące problemy.

Załóżmy, że możemy generować liczby całkowite jednolicie losowe z [ 1 , 2 n ][1,2n] i otrzymujemy trudny obliczeniowo problem. Naszym celem jest wyprowadzenie liczby całkowitej równomiernie losowej z [1,3] lub rozwiązanie trudnego problemu.

W tym przypadku trudnym problemem może być faktoring liczby całkowitej, rozwiązanie instancji SAT lub coś podobnego. Na przykład możemy zdekodować permutację jednokierunkową w następujący sposób, jeśli otrzymamy (i załóżmy, że jest parzyste): Jeśli dla naszego losowego ciągu , to weź , jeśli , to weź . Wreszcie, jeśli , to skończymy, ponieważ . (Jeśli jest nieparzyste, to działa coś podobnego, wystarczy sprawdzić również, czy i odjąć jeśli .)f f ( x ) n f ( r ) < f ( x ) f ( r ) mod 3 f ( r ) >ff(x)nf(r)<f(x)f(r)mod3 f ( x ) f ( r ) - 1 mod 3 f ( r ) = f ( x ) r = x n f ( r + 1 ) = f ( xf(r)>f(x)f(r)1mod3f(r)=f(x)r=xn) 2 f ( r ) > f ( x )f(r+1)=f(x)2f(r)>f(x)

Podsumowanie odpowiedzi. Emil Jeřábek pokazał, że jeśli nie będziemy w stanie generować idealnie jednorodnie, możemy rozwiązać każdy pojedynczy problem wyszukiwania z TFNP, a także z PPA-3. Z drugiej strony, daniello pokazało, że nie możemy rozwiązać problemów NP-zupełnych w powyższy sposób, chyba że NP = co-NP.


@Tayfun Jeśli jest parzyste, potrzebujemy aby można było podzielić przez , jeśli jest nieparzyste, wtedy potrzebujemy aby można było podzielić przez . Byłbym szczęśliwy, gdybyś sprecyzował, o której części powinienem być bardziej konkretny. n 2 n - 1 3 n 2 n - 2 3n2n13n2n23
domotorp

(1) Możesz uogólnić przykład, stosując jednokierunkowe permutacje do rozwiązywania funkcji (jednowartościowych) w TFNP. (2) Możesz rozwiązać dowolne problemy z wyszukiwaniem PPA-3.
Emil Jeřábek

@Emil (1): Jak? (2): Myślałem również, że może to być odpowiednia klasa złożoności, ale nie rozumiem, dlaczego moglibyśmy rozwiązać takie problemy.
domotorp

Spróbuję napisać to jako odpowiedź później. Przy okazji, pytanie jest interesujące, nie wiem o co chodzi z tymi wszystkimi głosami negatywnymi.
Emil Jeřábek

2
Downvotes są dziwaczne. To bardzo fajne pytanie! I nie widzę w tym nic niejasnego.
Sasho Nikolov

Odpowiedzi:


6

Jako odpowiedź na odpowiedź domotorp uważam, że możemy rozwiązać problemy z wyszukiwaniem NP, spełniając następujące ograniczenia:

  1. liczba rozwiązań jest znana i niepodzielna przez ; lub,3)3

  2. liczba rozwiązań jest wielomianowo ograniczona (ale nie znana z góry).

W przypadku 1. możemy zastosować proste wypełnienie, aby zredukować do następującego przypadku:

  • Rozwiązania pochodzą z , gdzie jest parzyste.[ 0 , 2 m - 1 ) m[0,2m1)m

  • Liczbę rozwiązań spełnia .s s 1s( mod3 )s1(mod3)

  • Wszelkie dwa rozwiązania są w odległości co najmniej od siebie. (Powiedz, że wszystkie są podzielne przez ).4 444

Zauważ, że . Tak więc, możemy rozwiązać ten problem, wybierając losowo , a przy użyciu protokołu podobny jak w mojej odpowiedzi na unikalnych rozwiązań jeśli (w wyniku podziału on krótszy o jeden dla każdego rozwiązania ), i wyprowadzanie jeśli .3 2 m - s a [ 0 , 2 m ) a [ 0 , 2 m32msa[0,2m) - s ) { 0 , 1 , 2 } 0 s 0 a [ 2 m - s , 2 m )a[0,2ms){0,1,2}0s0a[2ms,2m)

Dla 2. załóżmy najpierw, że liczba rozwiązań jest znana . Jak w /cstheory//a/37546 , niech będzie największą potęgą dzielącą , tak że . Rozważmy problem wyszukiwania, którego rozwiązaniami są sekwencje tak że , a każdy jest rozwiązaniem pierwotnego problemu. Z jednej strony pierwotny problem sprowadza się do nowego. Z drugiej strony liczba rozwiązań nowego problemu wynosi , tzn. Nie dzieli się przezs p ( n ) 3 k 3 s 3 ( ssp(n)3k3s3 k )y0,,y3(s3k) 3 k - 1 y0<y1<<y 3 k - 1 yi ( sy0,,y3k1y0<y1<<y3k1yi3 k )3(s3k)3i znany. Tak więc skończymy o 1.

Teraz, jeśli liczba rozwiązań jest ograniczona przez , ale nie jest znana, uruchamiamy protokół powyżej razy ( ) równolegle dla każdego możliwego wyboru i:p ( n ) 2 2 p ( n ) 1 s 2 p(n)22p(n)1s2

  • jeśli którykolwiek z wątków zwróci rozwiązanie pierwotnego problemu, jeden taki przekazujemy do wyniku;

  • jeśli wszystkie wątki zwracają elementy , wyprowadzamy .r 1 , , r 2 {0,1,2}(r1+r2++r 2 )mod3r1,,r2{0,1,2}(r1+r2++r2)mod3

Uwarunkowane drugim zdarzeniem, jest równomiernie rozłożone w ponieważ jest prawdziwą liczbą rozwiązań pierwotnego problemu, podczas gdy inne są niezależne od , stąd cała suma jest również równomiernie rozłożona .r s { 0 , 1 , 2 } s r i r srs{0,1,2}srirs


Powszechnym uogólnieniem 1 i 2 jest to, że liczba rozwiązań pochodzi z listy liczb obliczalnych w czasie wielomianowym, tak że największa potęga dzieląca dowolne z nich jest wielomianowo ograniczona. 3)3
Emil Jeřábek

Przy okazji, czy znasz jakieś nieskomplikowane problemy, w których można udowodnić, że liczba rozwiązań jest podzielna przez jakąś potęgę wielobiegunową ? Przez kompozyt rozumiem coś w rodzaju wzięcia bezpośredniego produktu z niektórych problemów, w których liczbę rozwiązań można podzielić przez - problemy z kompozytem można łatwo rozwiązać w powyższy sposób. 3 333
domotorp

Wydaje mi się, że można udowodnić, że istnieje wyrocznia, pod którą pewna superminomiczna moc 3 problemów nie może zostać rozwiązana w powyższy sposób.
domotorp

@domotorp To ciekawe, zastanawiałem się nad możliwością, że jakiś argument Valiant – Vazirani może zostać wykorzystany do rozwiązania dowolnych problemów TFNP. W każdym razie charakterystyka jest wciąż niepełna. Jestem szczególnie niezadowolony z powodu ograniczenia w tej odpowiedzi, że liczba rozwiązań jest znana lub przynajmniej pochodzi z listy konstruowanej w czasie wielomianowym. Po pierwsze, klasa takich problemów jest najwyraźniej nieporównywalna z PPA-3 z mojej drugiej odpowiedzi, więc dobrze byłoby mieć konstrukcję, która uogólnia oba. AFAICS, jedyną górną granicą jest to, że każdy problem do rozwiązania ...
Emil Jeřábek

... w powyższy sposób można zredukować do problemu TFNP, którego liczba rozwiązań wynosi moduł (ale nie jest znany). Nie jest dla mnie jasne, czy można oczekiwać, że jest to odpowiednia klasa, czy też w końcu potrzebne są jakieś dodatkowe ograniczenia. 1 313
Emil Jeřábek

10

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:

  1. 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 PUPcoUP

    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 m1m( mod3 ) y [ 0 , 2 m )2m1(mod3)y[0,2m)

    • y R ( x , y )y (jako rozwiązanie problemu wyszukiwania), jeśli ;R(x,y)

    • y - y { 0 ,yy (jako losowy element ), jeśli , i ; 1 , 2 } y - y { 1 , 2 } R ( x , y ){0,1,2}yy{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 , y2}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 +(2m1)/30 2 ) / 3 y y(2m+2)/3y , r + 1 , y + 2 1 2 0 r < 2 m - 2y,y+1,y+2120y<2m2

  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:

  1. 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(AB,E)uAB3

  2. 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)uV3

  3. 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 21p2 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 u2p1 : 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:xV}B={xB:xV}xy{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 )=352{wAi,zB(i+1)mod4}deg(wAi)=deg(zBi)=3I przyczynia do a .( mod3 ) x A i B52(mod3)xAyB

3 p 23p2 : Załóżmy, że dla uproszczenia jest nawet tak, że . Konstruujemy ukierunkowany wykres na w następujący sposób:n 2 n1n( mod3 ) V = [ 0 , 2 n )2n1(mod3)V=[0,2n)

  • Uwzględniamy krawędzie i dla każdego .3x+13x3x+13x3x+23x3x+23xx<2n/31x<2n/31

  • Jeśli jest orbitą nie będącą punktem stałym , uwzględniamy krawędzie od i .x0<x1<x2x0<x1<x2ffx0x1x0x1x0x2x0x2

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=2n1u=2n11121(mod3)21(mod3)uu1121(mod3)21(mod3)uu333f

1p3 : Możemy założyć, że z parzystą, a dany wierzchołek ma stopień .A=B=[0,2n)nuA2(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.yB(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 .EyBjdeg(y)3j<2n1f(y,3j)=(y,3j+1)f(y,3j+1)=(y,3j+2)f(y,3j+2)=(y,3j)f(3i,2n1)=(3i+1,2n1)f(3i+1,2n1)=(3i+2,2n1)f(3i+2,2n1)=(3i,2n1)3i<2n1(2n1,2n1)3(deg(y)mod3)(y,i)yB3

  • 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 .ExA(y0,j0),,(yd1,jd1)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/3deg(x)mod3xA3

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(2n1,2n1)f


1
Oba rozwiązania są poprawne, ale mam problem z definicjami klas. W definicji TFNP zwykle wymagane jest przynajmniej jedno rozwiązanie, podczas gdy chcesz dokładnie jedno, którym byłby TFUP. PPA-3 jest pierwotnie zdefiniowany z wprowadzeniem dwuczęściowego grafu i danego wierzchołka, którego stopień nie jest równy 3, i musimy znaleźć inny taki wierzchołek. Twój przykład z jest oczywiście w tej klasie, ale dlaczego jest kompletny? (To może być dobrze znane, ale dla mnie nowe).f
domotorp

1
(1) Podkreśliłem bardzo wyraźnie, że wynik nie dotyczy arbitralnych problemów z wyszukiwaniem TFNP, ale tylko funkcji. Naprawdę nie wiem, jak to wyjaśnić. (2) Tak, jest to równoważne ze zwykłą definicją PPA-3. To nie powinno być trudne do pokazania.
Emil Jeřábek

(1) Przepraszam, tutaj moje zamieszanie było tylko językowe; w swoim oryginalnym komentarzu rzeczywiście podkreśliłeś wartość pojedynczą, ale w swojej odpowiedzi napisałeś tylko funkcje TFNP, a następnie dodałeś w nawiasie „tj.”, co jest równoważne, o ile wiem. Myślę, że łatwiej byłoby zrozumieć, jeśli w odpowiedzi napisałeś również „funkcje TFNP o jednej wartości”.
domotorp

(2) Ta równoważność byłaby bardzo zaskakująca. Przy podobnej sztuczce, której użyłeś w (1), oznaczałoby to, że USAT jest w PPA-3, prawda? Spodziewałbym się, że bardziej prawdopodobne jest, że mój problem dotyczy jakiegoś TFNP, którego liczba rozwiązań wynosi 1 lub 2 mod 3 dla każdego (i musimy wiedzieć, które). Btw, twoje rozwiązanie dla (1) już sugeruje, że FullFactoring można rozwiązać, co było moją pierwotną motywacją. n
domotorp

Funkcje jednowartościowe. To właśnie oznacza funkcja. Spróbuję poszukać rzeczy na PPA-3. Nie rozumiem jednak, w jaki sposób obejmowałoby to USAT. Konstrukcja w (1) nie wytwarza wielomianu przy , a przynajmniej go nie widzę: dla oczywistego wyboru nie można obliczyć bez rozwiązania problemu wyszukiwania w pierwszej kolejności. ff3=idf(2m1)
Emil Jeřábek

7

Jeśli potrafisz idealnie wygenerować mod LUB rozwiązać SAT (lub jakikolwiek inny problem NP-zupełny), to . W szczególności rozważ idealny generator / solver, gdy otrzymasz formułę SAT .3NP=coNPϕ

Niech będzie maksymalną liczbą losowych bitów generowanych przez generator na wejściach o rozmiarze . Ponieważ generator działa w czasie wielomianowym, jest wielomianem. Ponieważ nie jest podzielne przez , musi istnieć pewna sekwencja co najwyżej rzutów monetą, która sprawi, że generator wygeneruje (poprawną) odpowiedź dla . Zatem jeśli jest niezadowalająca, istnieje zestaw podrzucanych monet, które powodują, że generator mówi, że jest niezadowalająca. Jeśli jest zadowalające, generator nigdy nie będzie błędnie twierdził, że(n)n(n)2(n)3(n)ϕϕϕϕϕjest niezadowalający, bez względu na monety. Wykazaliśmy zatem, że język niezadowalających wzorów znajduje się w , co oznacza, że . UNSATNPNP=coNP


2
Innymi słowy: wszystko, co możemy rozwiązać w ten sposób, można zredukować do problemu TFNP. Więc zamiast NP powinniśmy szukać podklas TFNP.
Emil Jeřábek

Tak, chociaż nie jestem pewien, czy wyjątkowość jest konieczna, czy można uciec od czegoś znacznie słabszego.
daniello

1
Wyjątkowość czego?
Emil Jeřábek

„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 pozostaje. Zadaniem obliczeniowym jest, biorąc , znaleźć . " Mam wrażenie, że liczba „s nie jest podzielna przez mogłoby być za mało. [Właśnie zauważyłem nową odpowiedź domotorp]R(x,y)p(n)xn ym=p(n)R(x,y)xyy3
daniello

3
Cóż, pierwsza część mojej odpowiedzi dotyczy problemów wyszukiwania z unikalnym rozwiązaniem, ale to oczywiście nie jest konieczne. Już druga część mojej odpowiedzi dotyczy problemów wyszukiwania z potencjalnie wieloma rozwiązaniami. To, co rozumiem przez mój komentarz powyżej, to prosta obserwacja, że ​​jeśli jest randomizowanym algorytmem wieloczasowym, który albo generuje jednolicie losowy element , albo rozwiązuje problem , to „ biorąc pod uwagę , oblicz ciąg losowych bitów, które sprawiają, że rozwiązuje ”jest problemem TFNP, a można do niego zredukować. Nie dotyczy to wyjątkowości. A(x){0,1,2}SxASS
Emil Jeřábek

4

Oto więc rozszerzenie argumentu Emila, które pokazuje, że problemy z wyszukiwaniem, w których liczba rozwiązań wynosi 1, 2 lub 4 (nie musimy wiedzieć, które) można rozwiązać w powyższy sposób. Podaję to jako odpowiedź, ponieważ jest to zbyt długo na komentarz i mam nadzieję, że ktoś mądrzejszy ode mnie może udowodnić, że w rzeczywistości liczba rozwiązań może być czymś niepodzielnym przez 3.

Powiedz, że losowy ciąg jest zbliżony do rozwiązania (tj. Do dla którego utrzymuje), jeśli jeden z , lub utrzymuje. (Dla prostoty, załóżmy, że i , nie są rozwiązaniami) w roztworze Emila, było wystarczające do wytworzenia losowy ciąg i wyjściowe poza tym, że lokalnie skrzypacz wokół w roztworach; Nie wchodzę w szczegóły, zobacz jego odpowiedź. Wystarczy nam, że jeśli jest blisko rozwiązania, możemy zabić dowolną liczbęryR(x,y)R(x,r)R(x,r+1)R(x,r+2)y=0y=1rrmod3rmod3przez ewentualne wyjście rozwiązania tak, że dla reszty r funkcja r mod 3 daje idealnie jednolitą liczbę mod 3 .

Załóżmy teraz, że liczba rozwiązań wynosi 1 lub 2 dla dowolnego x . Generujemy dwa losowe ciągi o długości n : r 1 i r 2 . Jeśli przynajmniej jedno z nich nie jest bliskie rozwiązaniu, wyprowadzamy r 1 + r 2 mod 3 . Dla uproszczenia załóżmy, że n jest nawet tak, że mamy dodatkowe 0, jeśli właśnie to zrobiliśmy, a także załóżmy, że jeśli są dwa rozwiązania, są daleko. Jeśli oba r 1 i r 2 są zbliżone do tego samego rozwiązania, bawimy się, aby zabić 0. Jeśli r 1 i r2 są bliskie różnym rozwiązaniom, wtedy jeśli r 1 < r 2 , bawimy się, aby zabić 1, a jeśli r 1 > r 2 , bawimy się, aby zabić 2. W ten sposób, jeśli jest tylko jeden rozwiązanie, zabijamy dokładnie jedno 0, a jeśli są dwa rozwiązania, zabijamy dwa 0, i jeden 1 i jeden 2.

Ten argument nie może być rozszerzony na 3 rozwiązania, ale może dotyczyć 4, i odtąd będę bardzo szkicowy. Wygeneruj cztery losowe ciągi, r 1 , r 2 , r 3 , r 4 i wyślij r 1 + r 2 + r 3 + r 4 mod 3, chyba że wszystkie są blisko rozwiązania. Ponownie załóżmy, że jest dodatkowe 0, a rozwiązania są zawsze daleko. W przypadku wszystkich r I „s są zbliżone do tego samego rozwiązania, możemy bawić się, aby zabić 0. Jeśli trzy z r I„s są zbliżone do tego samego rozwiązania, które jest mniejsze niż w roztworze, do którego czwarty R i jest blisko, możemy pobawić się wokół zabić 1. W przypadku trzech z R I ” s są blisko tego samego rozwiązania, które jest większe niż rozwiązaniem, które czwarty R i jest blisko, możemy pobawić się wokół zabić 2. Jeżeli wszystkie R i „s są zbliżone do innego rozwiązania, możemy zabić trzy 0-tych. Poprawność jednego i dwóch rozwiązań jest podobna do poprzedniego przypadku. W przypadku czterech rozwiązań zauważmy, że zabijamy cztery + trzy 0, sześć 1 i sześć 2.

Myślę, że rozumowanie ostatniego akapitu można rozszerzyć na dowolną ograniczoną liczbę rozwiązań, których nie da się podzielić przez 3 za pomocą algebry. Bardziej interesujące pytanie dotyczy tego, czy istnieje protokół działający dla dowolnej liczby rozwiązań.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.