Я буду использовать числа, начиная с а не с , так как я нахожу это более естественным.01
Вот два класса проблем, которые мы можем решить таким образом:
Функции в TFNP (то есть, однозначные общие задачи поиска NP)
(Это обобщает пример с односторонними перестановками. В качестве особого случая он включает решение проблем из .)UP∩coUP
Установка состоит в том, что у нас есть предикат полиномиального времени и такой многочлен , что для каждого длины существует уникальный длины такой, что выполнено. Вычислительная задача при заданном найти .R(x,y)p(n)xnym=p(n)R(x,y)xy
Теперь я предполагаю, что wlog четный, так что . Алгоритм состоит в том, чтобы генерировать равномерно случайный и выводитьm2m≡1(mod3)y∈[0,2m)
R ( x , y )y (как решение задачи поиска) if ;R(x,y)
y−y′ (как случайный элемент ), если и ;{0,1,2}y−y′∈{1,2}R(x,y′)
ymod3 (как случайный элемент ), если нет решает .{0,1,2}y′∈{y,y−1,y−2}R(x,y′)
Если бы не было решения проблемы поиска, случайного выбора дали бы и раза, и раза (еще один). Однако, если решает проблему поиска, мы работаем с элементами (которые охватывают все три класса вычетов), так что они производят только вычеты и , что выравнивает преимущество . (Здесь я предполагаю, что .)2m12 (2m−1)/30 (2m+2)/3yy,y+1,y+2120y<2m−2
PPA- задачи поиска3
Удобный способ определить PPA- - это задачи поиска NP, многие из которых сводятся к следующим типам задач. У нас есть фиксированная функция полиномиального времени и полином , так что для любого входа длины индуцированное отображение ограничено входами длины является функцией удовлетворяющей для каждого . Задача состоит в том, чтобы при заданном найти точку фиксирования из : .3f(x,y)p(n)xnfx(y)=f(x,y)ym=p(n)fx:[0,2m)→[0,2m)fx(fx(fx(y)))=yyxyfxfx(y)=y
Мы можем решить эту проблему следующим образом: при заданном длины мы генерируем случайное число длины и выводимxnym=p(n)
y если это точка ;fx
в противном случае , и являются различными элементами. Мы можем пометить их как с , и вывести такой, что .yfx(y)fx(fx(y)){y,fx(y),fx(fx(y))}={y0,y1,y2}y0<y1<y2i∈{0,1,2}y=yi
Из определений ясно, что это дает равномерное распределение на , так как точки без фиксирования входят в тройки.{0,1,2}y
Позвольте мне показать для записи эквивалентность вышеупомянутой проблемы с полной проблемой Пападимитриу для PPA- , так как этот класс в основном игнорируется в литературе. Проблема упоминается в Buss, Johnson: «Пропозициональные доказательства и сокращения между задачами поиска NP», но они не устанавливают эквивалентность. Для PPA аналогичная проблема (Одинокая) дана в работах Бима, Кука, Эдмондса, Импальяццо и Питасси: «Относительная сложность задач поиска NP». Существует ничего особенного , аргумент ниже работ с учетом необходимых изменений для любого нечетного простого.33
Предложение: Следующие задачи поиска NP являются многократными многозначными, сводимыми друг к другу:
Для заданной цепи, представляющей двудольный неориентированный граф и вершину , степень которой не делится на , найдите другую такую вершину.(A∪B,E)u∈A∪B3
Для заданной схемы, представляющей ориентированный граф , и вершины которой степень степени (т. Степень вне минус степень в) не делится на , найдите другую такую вершину.(V,E)u∈V3
Для заданной схемы, вычисляющей функцию такую что , найдите точку фиксации .f:[0,2n)→[0,2n)f3=idf
Доказательство:
1≤p2 очевиден, так как достаточно направить ребра слева направо.
2≤p1 . Сначала построим взвешенный двудольный граф. Пусть и - копии : , . Для каждого исходного ребра мы помещаем ребро веса и ребро веса . Это делает равным степени баланса в исходном графе. Если - заданная вершина баланса , мы добавляем дополнительное ребро весаABVA={xA:x∈V}B={xB:x∈V}x→y{xA,yB}1{xB,yA}−1deg(xA)=−deg(xB)xub≢0(mod3){uA,uB}b, так что и . будет нашей выбранной вершиной.deg(uA)=2b≢0(mod3)deg(uB)=0uA
Чтобы сделать граф простым невзвешенным неориентированным графом, мы сначала уменьшаем все веса по модулю и отбрасываем все ребра веса . Это оставляет только ребра весов и . Последний можно заменить подходящими гаджетами. Например, вместо ребра с весом мы добавляем новые вершины , для , с ребрами , , , , : это делает30122{xA,yB}wAizBii=0,…,3{xA,yB}{xA,zBi}{wAi,yB}{wAi,zBi}{wAi,zB(i+1)mod4}deg(wAi)=deg(zBi)=3, И вносит свой вклад к и .5≡2(mod3)xAyB
3≤p2 : для простоты предположим, что четно так, что . Построим ориентированный граф на следующим образом:n2n≡1(mod3)V=[0,2n)
Мы включаем ребра и для каждого .3x+1→3x3x+2→3xx<2n/3−1
Если является орбитой без фиксированной точки , мы включаем ребра и .x0<x1<x2fx0→x1x0→x2
Выбранная вершина будет . Первое предложение баланс или к каждой вершине . Аналогичным образом, второе предложение баланс или к вершинам, которые не являются точками фиксации. Таким образом, предполагая, что уже не является точкой фиксации, она действительно является неуравновешенной по модулю , а любая другая неуравновешенная вершина по модулю является точкой фиксации из .u=2n−11−2≡1(mod3)≠u−12≡−1(mod3)u33f
1≤p3 : Можно считать, что с четным , а заданная вершина имеет степень .A=B=[0,2n)nu∈A≡2(mod3)
Мы можем эффективно пометить ребра, инцидентные с вершиной как , где . Таким образом, становится подмножеством , которое мы отождествляем с . Определим функцию на следующим образом.y∈B(y,j)j<deg(y)E[0,2n)×[0,2n)[0,22n)f[0,2n)×[0,2n)
На дополнении к : для каждого и такого, что , мы делаем , , . Кроме того, , , для . Это оставляет точку и точки для каждого , степень которого не делится на .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
На : для каждого мы фиксируем эффективное перечисление его инцидентных ребер , где . Мы положили , , для . Это оставляет точек для каждой вершины , степень которой не делится на .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
Поскольку , два его инцидентных ребра были ; мы превращаем их в еще один цикл, используя в качестве третьей точки. Остальные точки оставлены как фиксированные точки . По построению любой из них приведет к решению (1).deg(u)≡2(mod3)f(2n−1,2n−1)f