Usaré números a partir de lugar de , ya que me parece mucho más natural.101
Aquí hay dos clases de problemas que podemos resolver de esta manera:
Funciones en TFNP (es decir, problemas de búsqueda de NP total de un solo valor)
(Esto generaliza el ejemplo con permutaciones unidireccionales. Incluye como un caso especial problemas de decisión de ).UP∩coUP
La configuración es que tenemos un predicado de tiempo polinómico , y un polinomio tal que para cada de longitud , existe un único de longitud tal que mantiene. La tarea computacional es, dado , encontrar .p ( n ) x n y m = p ( n ) R ( x , y ) x yR(x,y)p(n)xnym=p(n)R(x,y)xy
Ahora, supondré wlog que es par, de modo que . El algoritmo es generar una uniformemente aleatoria y generar2 m ≡ 1my ∈ [ 0 , 2 m )2m≡1(mod3)y∈[0,2m)
R ( x , y )y (como solución del problema de búsqueda) si ;R(x,y)
{ 0 , 1 , 2 } y - y ′ ∈ { 1 , 2 } R ( x , y ′ )y−y′ (como un elemento aleatorio de ) si , y ;{0,1,2}y−y′∈{1,2}R(x,y′)
{ 0 , 1 , 2 } y ′ ∈ { y , y - 1 , y - 2 } R ( x , y ′ )ymod3 (como un elemento aleatorio de ) si no resuelve .{0,1,2}y′∈{y,y−1,y−2}R(x,y′)
Si no hubiera solución del problema de búsqueda, las opciones aleatorias de darían y veces, y veces (una más). Sin embargo, si resuelve el problema de búsqueda, modificamos los elementos (que alcanzan las tres clases de residuos) para que solo produzcan los residuos y , lo que iguala la ventaja de . (Asumo aquí wlog que .) 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- problemas de búsqueda3
Una forma conveniente de definir PPA- es que los problemas de búsqueda de NP son muchos reducibles al siguiente tipo de problemas. Tenemos una función de tiempo polinomial fijo y un polinomio , de modo que para cualquier entrada de longitud , el mapeo inducido restringido a las entradas de longitud es una función satisface para cada . La tarea es, dada , encontrar un punto fijo de : .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 x y f x f x ( y ) = yfx(fx(fx(y)))=yyxyfxfx(y)=y
Podemos resolver esto de la siguiente manera en la pregunta: dado de longitud , generamos una aleatoria de longitud , y la salidan y m = p ( n )xnym=p(n)
f xy si es un punto fijo de ;fx
de lo contrario, , y son elementos distintos. Podemos etiquetarlos como con , y la salida tal que .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<y2y = y ii∈{0,1,2}y=yi
Se desprende de las definiciones que esto da una distribución uniforme en , como el no-punto fijo 's vienen en triples.y{0,1,2}y
Permítanme mostrar para el registro la equivalencia del problema anterior con el problema completo de Papadimitriou para PPA- , ya que esta clase se descuida principalmente en la literatura. El problema se menciona en Buss, Johnson: "Pruebas proposicionales y reducciones entre los problemas de búsqueda de NP", pero no indican la equivalencia. Para PPA, un problema similar (SOLO) se da en Beame, Cook, Edmonds, Impagliazzo y Pitassi: "La relativa complejidad de los problemas de búsqueda de NP". No hay nada especial en , el argumento a continuación funciona mutatis mutandis para cualquier primo impar.333
Propuesta: Los siguientes problemas de búsqueda de NP son politemporales muchos-uno reducibles entre sí:
Dado un circuito que representa un gráfico bipartito no dirigido y un vértice cuyo grado no es divisible por , encuentre otro vértice.u ∈ A ∪ B 3(A∪B,E)u∈A∪B3
Dado un circuito que representa un gráfico dirigido , y un vértice cuyo balance de grados (es decir, out-degree menos in-degree) no es divisible por , encuentre otro vértice.u ∈ V 3(V,E)u∈V3
Dado un circuito que computa una función tal que , encuentre un punto fijo de .f 3 = i d ff:[0,2n)→[0,2n)f3=idf
Prueba:
1≤p2 es obvio, ya que es suficiente para dirigir los bordes de izquierda a derecha.
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 deg ( x A ) = - grados ( x B ) x u2≤p1 : Primero, construyamos un gráfico bipartito ponderado. Sean y copias de : , . Para cada borde original , colocamos un borde de peso , y un borde de peso . Esto hace que igual al balance de grados de en el gráfico original. Si es el vértice de equilibrio dado , agregamos un borde adicional de pesoABVA={xA:x∈V}B={xB:x∈V}x→y{xA,yB}1{xB,yA}−1deg(xA)=−deg(xB)xu{ u A , u B } b deg ( u A ) = 2 b ≢ 0b≢0(mod3){uA,uB}b, de modo que y . será nuestro vértice elegido.grados ( u B ) = 0 u Adeg(uA)=2b≢0(mod3)deg(uB)=0uA
Para hacer que el gráfico sea un gráfico simple no ponderado no direccionado, primero reducimos todos los pesos módulo y soltamos todos los bordes de peso . Esto deja solo bordes de los pesos y . Este último puede ser reemplazado con dispositivos adecuados. Por ejemplo, en lugar de un borde de peso- , incluimos nuevos vértices , para , con bordes , , , , : esto hace que0 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}deg ( w A i ) = deg ( z B i ) = 3 5 ≡ 2{wAi,zB(i+1)mod4}deg(wAi)=deg(zBi)=3, Y contribuye a y .x A y B5≡2(mod3)xAyB
n 2 n ≡ 13≤p2 : Permítanme suponer que la simplicidad es par para que . Construimos un gráfico dirigido en siguiente manera:nV = [ 0 , 2 n )2n≡1(mod3)V=[0,2n)
Incluimos aristas y para cada .3 x + 2 → 3 x x < 2 n / 3 - 13x+1→3x3x+2→3xx<2n/3−1
Si es una órbita no fija de , incluimos los bordes y . f x 0 → x 1 x 0 → x 2x0<x1<x2fx0→x1x0→x2
El vértice elegido será . La primera cláusula aporta el equilibrio o a cada vértice . Del mismo modo, la segunda cláusula contribuye al equilibrio o a los vértices que no son puntos fijos. Por lo tanto, suponiendo que no es ya un punto fijo, de hecho es un módulo no balanceado , y cualquier otro módulo no balanceado de vértice es un punto fijo de .1 - 2 ≡ 1u=2n−11≠ u - 1 2 ≡ - 1−2≡1(mod3)≠u−1u 3 3 f2≡−1(mod3)u33f
A = B = [ 0 , 2 n ) n u ∈ A ≡ 21≤p3 : podemos suponer que con par, y el vértice dado tiene grado .A=B=[0,2n)nu∈A≡2(mod3)
Podemos etiquetar eficientemente los bordes incidentes con un vértice como , donde . De esta manera, convierte en un subconjunto de , que identificamos con . Definimos una función en siguiente manera.( 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)
En el complemento de : para cada , tal que , hacemos , , . Además, , , para . Esto excluye el punto y puntos para cada cuyo grado no es divisible por .y ∈ 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 ) =Ey∈Bjdeg(y)≤3j<2n−1f(y,3j)=(y,3j+1)f(y,3j+1)=(y,3j+2)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 ( 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
En : para cada , arreglamos una enumeración eficiente de sus bordes incidentes , donde . Ponemos , , para . Esto deja fuera puntos para cada vértice cuyo grado no es divisible por .x ∈ A ( y 0 , j 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 +Ex∈A(y0,j0),…,(yd−1,jd−1)d=deg(x)f(y3i,j3i)=(y3i+1,j3i+1)f( y 3 i + 2 , j 3 i + 2 )=( y 3 i , j 3 i )i<⌊d / 3⌋grados(x)mod3x∈f(y3i+1,j3i+1)=(y3i+2,j3i+2)f(y3i+2,j3i+2)=(y3i,j3i)i<⌊d/3⌋deg(x)mod33x∈A3
Desde , dos de sus bordes incidentes quedaron fuera; los convertimos en otro ciclo usando como tercer punto. Los puntos restantes se dejan como puntos de fijación de . Por construcción, cualquiera de ellos dará lugar a una solución de (1).f ( 2 n - 1 , 2 n - 1 ) fdeg(u)≡2(mod3)f(2n−1,2n−1)f