Я буду використовувати цифри, починаючи з а не від , оскільки я вважаю це набагато природніше.0 101
Ось два класи проблем, які ми можемо вирішити таким чином:
Функції в TFNP (тобто однозначні загальні проблеми пошуку NP)
(Це узагальнює приклад з односторонніми перестановками. Він включає як окремі випадки вирішення проблем із .)U P ∩ c o U PUP∩coUP
Установка полягає в тому, що у нас є предикат полінома-часу і поліном такий що для кожного довжини існує унікальна довжина така, що має місце. Обчислювальне завдання задано , знайдіть .R ( x , y ) p ( n ) x n y m = p ( n ) R ( x , y ) x yR(x,y)p(n)xnym=p(n)R(x,y)xy
Тепер я припустимо wlog, що є парним, так що . Алгоритм полягає у формуванні рівномірно випадкових та виведеннім 2 м ≡ 1m( мод3 ) y ∈ [ 0 , 2 м )2m≡1(mod3)y∈[0,2m)
y R ( x , y )y (як рішення задачі пошуку), якщо ;R(x,y)
y - y ′ { 0 , 1 , 2 } y - y ′ ∈ { 1 , 2 } R ( x , y ′ )y−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 (як випадковий елемент ), якщо ні вирішує .{0,1,2}y′∈{y,y−1,y−2}R(x,y′)
Якби не було вирішення проблеми пошуку, випадковий вибір дав би і рази, а рази (ще один). Однак, якщо вирішує задачу пошуку, ми об'єдналися з елементами (які потрапляють у всі три класи залишків), щоб вони створювали лише залишки і , що вирівнює перевагу . (Я припускаю, що тут wlog, що .)2 m 1 2 ( 2 m - 1 ) / 3 0 ( 2 m + 2 ) / 3 y y , y + 1 , y + 2 1 2 0 y < 2 m - 22m12 (2m−1)/30 (2m+2)/3yy,y+1,y+2120y<2m−2
PPA - проблеми пошуку33
Зручним способом визначення PPA- є такі, як проблеми пошуку NP, багато з яких зводяться до таких типів проблем. Ми маємо фіксовану функцію полінома-часу і поліном , так що для будь-якого входу довжини індуковане відображення обмежене входами довжиною - це функція задовольняє для кожного . Завдання, задане , знайде точку у : .3 f ( x , y ) p ( n ) x n f x ( y ) = f ( x , y ) y m = p ( n ) f x : [ 0 , 2 m ) → [ 0 , 2 m ) f x ( f x ( f x ( y ) ) )3f(x,y)p(n)xnfx(y)=f(x,y)ym=p(n)fx:[0,2m)→[0,2m)= y y x y f x f x ( y ) = yfx(fx(fx(y)))=yyxyfxfx(y)=y
Ми можемо вирішити це таким чином у питанні наступним чином: задаючи довжини , ми генеруємо випадковий довжини і виводимоx n y m = p ( n )xnym=p(n)
y f xy якщо це фіксація ;fx
в іншому випадку , і є різними елементами. Ми можемо позначити їх як з , і вивести такий, що .y f x ( y ) f x ( f x ( 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 , 2yfx(y)fx(fx(y)){y,fx(y),fx(fx(y))}={y0,y1,y2}y0<y1<y2} y = y ii∈{0,1,2}y=yi
З визначень видно, що це дає рівномірний розподіл на , оскільки нефіксований у тричі.{ 0 , 1 , 2 } у{0,1,2}y
Дозвольте мені показати для запису еквівалентність вищезазначеної проблеми з повною проблемою Пападімітріу щодо PPA- , оскільки цей клас в літературі переважно нехтується. Проблему згадують у Buss, Johnson: "Пропозиційні докази та скорочення між проблемами пошуку NP", але вони не заявляють про еквівалентність. Для PPA подібна проблема (LONELY) наведена у Beame, Cook, Edmonds, Impagliazzo та Pitassi: "Відносна складність проблем пошуку NP". Існує нічого особливого , аргумент нижче робіт з урахуванням необхідних змін для будь-якого непарного простого.3 333
Пропозиція: Наступні проблеми пошуку NP багаторазово зводяться один до одного:
Давши схему, що представляє двосторонній непрямий графік та вершину , ступінь якої не ділиться на , знайдіть іншу вершину.( A ∪ B , E ) u ∈ A ∪ B 3(A∪B,E)u∈A∪B3
Враховуючи схему, що представляє спрямований графік , і вершину , баланс ступеня (тобто ступінь мінус у градусі) не ділиться на , знайдіть іншу вершину.( V , E ) u ∈ V 3(V,E)u∈V3
Дано схему, що обчислює функцію така, що , знайдіть фіксовану точку .f : [ 0 , 2 n ) → [ 0 , 2 n ) f 3 = i d ff:[0,2n)→[0,2n)f3=idf
Доказ:
1 ≤ p 21≤p2 очевидний, оскільки достатньо направити краї зліва направо.
2 ≤ p 1 A B2≤p1 : Спочатку побудуємо зважений двосторонній графік. Нехай і - копії : , . Для кожного початкового ребра вкладаємо край вагою , а край вагою . Це робить рівним градусному балансу у вихідному графіку. Якщо - задана вершина балансу , додамо додатковий край вагиAB V A = { x A : x ∈ V } B = { x B : x ∈ V } x → y { x A , y B } 1 { x B , y A } - 1 град ( x A ) = - deg ( x B ) x uVA={xA:x∈V}B={xB:x∈V}x→y{xA,yB}1{xB,yA}−1deg(xA)=−deg(xB)xub ≢ 0( мод3 ) { u A , u B } b deg ( u A ) = 2 b ≢ 0b≢0(mod3){uA,uB}b, так що , а . - наша обрана вершина.( мод3 ) deg ( u B ) = 0 u Adeg(uA)=2b≢0(mod3)deg(uB)=0uA
Для того, щоб зробити графік звичайним невагомим непрямим графіком, спочатку зменшуємо всі ваги по модулю і опускаємо всі краї ваги . При цьому залишаються лише краї ваг і . Останні можна замінити відповідними пристосуваннями. Наприклад, замість ваги- ребра , ми нові вершини , для , з ребрами , , , , : це робить3 0 1 2 2 { x A , y B } w A i z B i30122{xA,yB}wAizBi 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 ii=0,…,3{xA,yB}{xA,zBi}{wAi,yB}{wAi,zBi}, z B ( i + 1 ) mod 4 } deg ( w A i ) = deg ( z B i ) = 3 5 ≡ 2{wAi,zB(i+1)mod4}deg(wAi)=deg(zBi)=3, І вносить свій внесок до й .( мод3 ) x A y B5≡2(mod3)xAyB
3 ≤ p 2 n 2 n ≡ 13≤p2 : Дозвольте припустити, що для простоти рівно, що . Побудуємо спрямований графік на наступним чином:n( мод3 ) V = [ 0 , 2 n )2n≡1(mod3)V=[0,2n)
ребра і для кожного .3 x + 1 → 3 x 3 x + 2 → 3 x x < 2 n / 3 - 13x+1→3x3x+2→3xx<2n/3−1
Якщо - орбіта нефіксованої точки , ми включаємо ребра і .x 0 < x 1 < x 2 f x 0 → x 1 x 0 → x 2x0<x1<x2fx0→x1x0→x2
Вибрана вершина буде . Перший пункт вносить баланс або до кожної вершини . Аналогічно, другий пункт вносить баланс або у вершини, які не є . Таким чином, якщо припустимо, що вже не є точкою фіксації, це дійсно неврівноважений модуль , а будь-який інший вершинний незбалансований модуль є фіксованою точкою .u = 2 n - 1 1 - 2 ≡ 1u=2n−11( мод3 ) ≠ u - 1 2 ≡ - 1−2≡1(mod3)≠u−1( мод3 ) u 3 3 f2≡−1(mod3)u33f
1 ≤ p 3 A = B = [ 0 , 2 n ) n u ∈ A ≡ 21≤p3 : Можна вважати, що з парним, а дана вершина має ступінь .A=B=[0,2n)nu∈A( мод3 )≡2(mod3)
Ми можемо ефективно позначити ребра, що падають з вершиною як , де . Таким чином, стає підмножиною , яку ми ототожнюємо з . Визначимо функцію на наступним чином.y ∈ B ( y , j ) j < deg ( y ) E [ 0 , 2 n ) × [ 0 , 2 n ) [ 0 , 2 2 n ) f [ 0 , 2 n ) × [ 0 , 2 n )y∈B(y,j)j<deg(y)E[0,2n)×[0,2n)[0,22n)f[0,2n)×[0,2n)
На доповнення : для кожного , і такого, що , складемо , , . Також , , для . Це виключає точку і точки для кожного , ступінь якої не ділиться на .Е у - 1E ∈ B j deg ( y ) ≤ 3 j < 2 n - 1 f ( y , 3 j ) = ( y , 3 j + 1 ) f ( y , 3 j + 1 ) = ( y , 3 j + 2 ) f ( y , 3 j + 2 ) =y∈Bjdeg(y)≤3j<2n−1f(y,3j)=(y,3j+1)f(y,3j+1)=(y,3j+2)( y , 3 j ) f ( 3 i , 2 n - 1 ) = ( 3 i + 1 , 2 n - 1 ) f ( 3 i + 1 , 2 n - 1 ) = ( 3 i + 2 , 2 n - 1 ) f ( 3 i + 2 , 2 nf(y,3j+2)=(y,3j)f(3i,2n−1)=(3i+1,2n−1)f(3i+1,2n−1)=(3i+2,2n−1) ) = ( 3 i , 2 n - 1 ) 3 i < 2 n - 1 ( 2 n - 1 , 2 n - 1 ) 3 - ( deg ( y ) mod 3 ) ( y , i ) y ∈ B 3f(3i+2,2n−1)=(3i,2n−1)3i<2n−1(2n−1,2n−1)3−(deg(y)mod3)(y,i)y∈B3
На : для кожного ми фіксуємо ефективне перерахування його падаючих ребер , де . Покладемо , , для . Це залишає точки для кожної вершини , ступінь якої не ділиться на .E x ∈ A ( y 0 , j 1 , j 3 i + 1 ) = ( y 3Ex∈A 0 ) , … , ( y d - 1 , j d - 1 ) d = deg ( x ) f ( y 3 i , j 3 i ) = ( y 3 i + 1 , j 3 i + 1 ) f ( y 3 i +(y0,j0),…,(yd−1,jd−1)d=deg(x)f(y3i,j3i)=(y3i+1,j3i+1) i + 2 , j 3 i + 2 )f( y 3 i + 2 , j 3 i + 2 )=( y 3 i , j 3 i )i<⌊d / 3⌋deg(x)mod3x∈f(y3i+1,j3i+1)=(y3i+2,j3i+2)f(y3i+2,j3i+2)=(y3i,j3i)i<⌊d/3⌋deg(x)mod3А 3x∈A3
Оскільки , два його ребра, що падають, були залишені; ми робимо їх ще одним циклом використовуючи як третю точку. Решта точок залишаються як точки фіксування . Будуючи будь-який з них, це дасть змогу вирішити (1).deg ( u ) ≡ 2( мод3 ) f ( 2deg(u)≡2(mod3)f n - 1 , 2 n - 1 ) f(2n−1,2n−1)f