Cálculo de cualquier información sobre Max-3SAT


26

Para una fórmula 3CNF dejó sea el máximo número de cláusulas satisfechos en cualquier asignación a . Se sabe que Max-3SAT es difícil de aproximar (sujeto a P ≠ NP), es decir, no existe un algoritmo de polytime cuya entrada es una fórmula 3CNF , y cuya salida es el número tal que está dentro de un factor multiplicativo de , donde es una constante positiva absoluta.doCM ( C ) M(C)C CC CM M M ( C ) M(C)1 + c 1+cM M c > 0c>0

Creo que también es NP-difícil calcular para cualquier módulo constante p . Me pregunto si la siguiente generalización común de estos dos hechos es cierta: no existe un algoritmo de polytime cuya entrada es una fórmula C de 3CNF con N cláusulas, y una cadena de bits de aviso \ log_2 NB , y cuya salida es M (C) . Aquí B es una constante absoluta. En palabras simples, no existe un algoritmo que calcule B bits de información de M (C) .M ( C ) mod p M(C)modpp pC CN Nlog 2 N - B log2NBM ( C ) M(C)B BB BM ( C )M(C)

Pido disculpas si la pregunta tiene una respuesta bien conocida, porque no soy un teórico de la complejidad por cierto.


1
Por lo general, un "consejo" solo puede depender de la longitud de la entrada. Creo que su intención es que un "consejo" aquí puede depender de la entrada en sí. No conozco una terminología estándar para esta noción.
Tsuyoshi Ito

99
Es una pregunta muy interesante. Para confirmar que es realmente difícil de calcular, se puede observar que la prueba del teorema de Cook produce una fórmula variable que es satisfactoria o tal que . M ( C ) mod p M(C)modpm mF FM ( F ) = m - 1M(F)=m1
Luca Trevisan

16
La pregunta se puede replantear de la siguiente manera: ¿puede haber un algoritmo de tiempo polinómico que, dada una fórmula 3CNF con variables, arroje una lista de números modo que uno de esos números sea ? FFmmm/2Bm/2BM(F)M(F)
Luca Trevisan

2
Sí, debería haber sido el número de cláusulas en el comentario anterior. mm
Luca Trevisan

99
que es equivalente, porque si usted tiene un algoritmo tal como se describe en el puesto, a continuación, puede ejecutar el algoritmo en cada uno de los 2 log 2 m - B = m / 2 B2log2mB=m/2B cadena asesoramiento posible, obtener el mayor número (o menos si hay colisiones) respuestas, y una de ellas es correcta. Si tiene un algoritmo como en mi comentario anterior, log 2 m - Blog2mB bits de asesoramiento son suficientes para especificar que la respuesta correcta es la ii -ésima mayor de las salidas del algoritmo, para algunos . ii
Luca Trevisan

Respuestas:


14

Aquí hay un argumento de que si pudieras resolver Max 3SAT en una instancia de la cláusula m dada una cantidad constante de consejos, la jerarquía polinómica colapsaría.

Solucione un problema NP-completo L. Del teorema de Cook, conocemos una transformación f () de entradas x para L en fórmulas 3SAT f (x), de modo que

1) si x LxL entonces M ( f ( x ) ) = mM(f(x))=m

2) si x LxL entonces M ( f ( x ) ) = m - 1M(f(x))=m1

donde mm es el número de cláusulas en f ( x )f(x) .

También tenemos un teorema de Kadin, que dice que, si se le dan kk entradas x 1 , ... , x kx1,,xk de un problema NP-completo, tiene un algoritmo de tiempo polinomial que realiza consultas k - 1k1 a un oráculo NP y determina el respuesta correcta a los problemas kk NP x i? Lxi?L , entonces la jerarquía polinómica se colapsa.

Supongamos que tenemos un algoritmo que resuelve Max SAT en las entradas de la cláusula m con k consejos. Usaremos el resultado de Hastad para construir un algoritmo como en la premisa del teorema de Kadin.

Empezar desde el K = 2 k + 1 entradas x 1 , ... , x K a problema L . Aplica el teorema de Cook a cada uno de ellos. Después de cierta normalización (que se puede hacer asignando pesos a las cláusulas, o duplicándolas si no queremos usar pesos), construimos K fórmulas F 1 , ... , F K donde, para un cierto m :K=2k+1x1,,xKLKF1,,FKm

1) M ( F 1 ) = m - 1 si x 1L y M ( F 1 ) = m - 2 de lo contrarioM(F1)=m1x1LM(F1)=m2

2) M ( F 2 ) = m ( m - 1 ) si x 2L y M ( F 2 ) = m ( m - 2 ) de lo contrarioM(F2)=m(m1)x2LM(F2)=m(m2)

...

k) M ( F K ) = m K - 1( m - 1 ) si x KL y M ( F K ) = m K - 1( m - 2 ) de lo contrarioM(FK)=mK1(m1)xKLM(FK)=mK1(m2)

Ahora toma la unión de las fórmulas, las cuales fueron construidas sobre conjuntos disjuntos de variables, y lo llaman F . Entonces tenemos M ( F ) = M ( F 1 ) + + M ( F k ) , y podemos "leer" la respuesta a los problemas de K x i? L observando la representación base m de M ( F ) . Si podemos calcular M ( F ) dado kFM(F)=M(F1)++M(Fk)Kxi?LmM(F)M(F)kconsejos, significa que podemos encontrar 2 k valores de manera que uno de ellos sea M ( F ) . Entonces podemos preguntarle de forma no adaptativa a un oráculo NP si M ( F ) n i para cada uno de los valores candidatos n 1 , ... , n 2 k generamos. Por lo tanto, hemos podido resolver 2 k + 1 instancias de problemas NP-completos haciendo 2 k consultas no adaptativas a un oráculo NP, lo que implica que la jerarquía polinómica se colapsa.2kM(F)M(F)nin1,,n2k2k+12k

Usando el teorema de Hastad en lugar del teorema de Cook, es posible empujar el tamaño de F a O ( 1 ) km en lugar de m k , por lo que es posible empujar k para registrar m , y la cantidad de bits de consejos para registrar log m . Comprender lo que sucede cuando se le da un bit de consejo log m - O ( 1 ) parece realmente difícil.FO(1)kmmkklogmloglogmlogmO(1)


Editado para agregar: Krentel ( The Complexity of Optimization Problems . J. Comput. Syst. Sci. 36 (3): 490-509 (1988) ) demostró que calcular el valor del óptimo del problema de la camarilla máxima está completo para F P N P [ O ( l o g n ) ] , la clase de funciones computables en tiempo polinomial con consultas O ( l o g n ) a un oráculo NP. La integridad está bajo "reducciones de una consulta", en la cual la función f es reducible a la función g si se puede escribir f ( x ) = rFPNP[O(logn)]O(logn)1 ( g ( r 2 ( x ) ) para el tiempo polinomio computable r 1 y r 2 . Presumiblemente, el mismo es cierto para Max Clique. Ahora, si Max Clique tenía un algoritmo de tiempo polinómico que produce una lista de m o ( 1 ) posible valores, estaría en F P N P [ o ( l o g n ) ] , porque podría usar la búsqueda binaria para encontrar el óptimo con una cantidad de consultas que es el registro del tamaño de la lista.f(x)=r1(g(r2(x))r1r2mo(1)FPNP[o(logn)]

Ahora, si tenemos F P N P [ O ( l o g n ) ] = F P N P [ o ( l o g n ) ] definitivamente tendríamos P N P [ O ( l o g n ) ] = P N P [ o ( l o g n ) ]FPNP[O(logn)]=FPNP[o(logn)]PNP[O(logn)]=PNP[o(logn)], que es el caso especial para problemas de decisión, y eso se conoce, por los resultados de Wagner (que mejora un resultado de Kadin que se aplica a un número constante de consultas), para colapsar la jerarquía polinómica. Pero creo que podría saberse que F P N P [ O ( l o g n ) ] = F P N P [ o ( l o g n ) ]FPNP[O(logn)]=FPNP[o(logn)] implicaría realmente P = NP. Pero, en cualquier caso, los resultados de Krentel y Kadin-Wagner deberían ser suficientes para dar otra prueba del resultado de Andy Drucker. Ahora me pregunto si es realmente la misma prueba, es decir, si el resultado Fortnow-Van Melkebeek funciona, explícita o implícitamente, a través de un argumento de "simulación de consultas NP con menos consultas NP".

Una buena encuesta que explica lo que está sucediendo con los problemas de optimización y las clases de consulta acotadas:

http://www.csee.umbc.edu/~chang/papers/bqabh/npfsat.pdf


8

Me gustaría indicar una razón por la cual es difícil demostrar la dureza NP de este problema.

En un comentario sobre la pregunta, Luca Trevisan dio una buena manera de reformular el problema: ¿Se puede resolver el siguiente problema en tiempo polinómico para cada k constante ? Dada una fórmula C de CNF con cláusulas m , genera como máximo m / k enteros para que uno de ellos sea igual a M ( C ). Aquí k está relacionado con B por k = 2 B .

Sin embargo, exijamos más. A saber, consideramos el siguiente problema: dada una fórmula C de CNF , genera dos enteros para que uno de ellos sea igual a M ( C ). Denotamos este problema por Π. El problema Π es al menos tan difícil como el problema original, por lo que si el problema original es NP-hard, Π también debe ser NP-hard.

Tenga en cuenta que Π es un problema de relación. Uno de los tipos más simples de reducciones que pueden usarse para reducir algún problema L a un problema de relación Π es una reducción de Levin en tiempo polinomial, que es un caso especial de una reducción de Turing en tiempo polinomial donde la reducción llama al oráculo para Π solo una vez.

Afirmamos que P Π [1] = P. Obviamente, esto implica que NP⊈P Π [1] a menos que P = NP, es decir, Π no es NP-duro bajo la reducibilidad de Levin en tiempo polinómico a menos que P = NP.

Prueba . Deje L ∈P Π [1] , o en otras palabras, existe una reducción de Levin de L a Π. Esto significa que existe un par ( f , g ) de una función computable de tiempo polinomial f : {0,1} * → {0,1} * que asigna cada instancia x del problema L a alguna fórmula CNF f ( x ) y un predicado computable de tiempo polinómico g : {0,1} * × ℕ × ℕ → {0,1} tal que g ( x , i , j ) = L( x ) si i o j es igual a M ( f ( x )). (Aquí L ( x ) = 1 si x es una instancia de sí de L y L ( x ) = 0 si x es una instancia de no).

Construimos un algoritmo de tiempo polinómico para L a partir de esto de la siguiente manera. Deje x ser una entrada.

  1. Deje C = f ( x ), y dejar que m sea el número de cláusulas en C .
  2. Encuentre uno i ∈ {0, ..., m } de modo que el valor g ( x , i , j ) sea constante independientemente de j ∈ {0, ..., m }.
  3. Salida de esta constante g ( x , i , 0).

En el paso 2, tal i siempre existe porque i = M ( f ( x )) satisface la condición. Además, este algoritmo no puede generar una respuesta incorrecta porque g ( x , i , M ( f ( x ))) debe ser la respuesta correcta. Por lo tanto, este algoritmo resuelve L correctamente. QED .

Si no me equivoco, se puede usar la misma idea para demostrar que P Π [ k ( n )] ⊆DTIME [ n O ( k ( n )) ]. Esto implica que NP⊈P Π [ k ] para cualquier constante k a menos que P = NP y que NP⊈P Π [polylog] a menos que NP⊆DTIME [2 polylog ]. Sin embargo, esta idea por sí sola no parece descartar la posibilidad de que Π sea NP-duro bajo la reducibilidad de Turing en tiempo polinómico.


1
¿Podría proporcionar un enlace a la respuesta de Dana?
Mohammad Al-Turkistany

@turkistany: había eliminado su respuesta después de que publiqué la primera revisión de esta respuesta. Acabo de eliminar una referencia de esta respuesta.
Tsuyoshi Ito

8

Creo que podemos mostrar:

Reclamación. Hay un valor 0 < c < 1 tal que lo siguiente es verdadero. Supongamos que hay un algoritmo de tiempo poli determinista que, dada una m -clause 3-SAT ejemplo φ , da salida a una lista de S de en la mayoría de m c valores, tal que M ( φ ) S ; entonces la jerarquía polinómica se colapsa.0<c<1mϕSmcM(ϕ)S

La prueba utiliza los resultados de Fortnow y Santhanam sobre la inviabilidad de la compresión de instancias de su documento http://www.cs.uchicago.edu/~fortnow/papers/compress.pdf

Específicamente, al ver su prueba de Thm 3.1, creo que uno puede extraer lo siguiente (volveré a verificar esto pronto):

"Teorema" [FS]. Hay enteros 0 < d < d, de modo que lo siguiente es verdadero. Supongamos que en el tiempo polivinílico determinista, uno puede transformar un OR de n d fórmulas booleanas (cada una de longitud n , y en conjuntos variables disjuntos) en un OR de n d fórmulas (de nuevo variable-disjunta y de longitud n ) , preservando la satisfacción / insatisfacción de la OR. Entonces N Pc o N P / p o l y la jerarquía polinómica se colapsa.0<d<dndnndnNPcoNP/poly

La prueba de nuestra afirmación será una reducción de la tarea de compresión OR mencionada en el teorema [FS] anterior, al problema de la computación en lista M ( ϕ ) . Suponga que ψ 1 , ... , ψ n d es una lista de fórmulas cuyo OR queremos comprimir.M(ϕ)ψ1,,ψnd

Primer paso: definir un circuito de tamaño polinómico Γ en cadenas de entrada ( v , y 1 , ... , y n d ) . Aquí la cadena y i codifica una asignación a ψ i , y v { 0 , 1 } d log n + 1 codifica un número entre 0 y n d .Γ(v,y1,,ynd)yiψiv{0,1}dlogn+10nd

Tenemos Γ aceptar iff v = 0 , o ψ v ( y v ) = 1 .Γv=0ψv(yv)=1

Ahora dejemos que M ( Γ ) denote el valor máximo v , de modo que el circuito restringido Γ ( v , , ... , ) sea ​​satisfactoria. (Esta cantidad es siempre al menos 0).M(Γ)vΓ(v,,,)

Supongamos que podemos producir eficientemente una lista S de posibles valores para M ( Γ ) . Entonces la afirmación es que en nuestra lista ψ 1 , ... , ψ n d , podemos tirar todo ψ i para el cual i S ; la lista resultante contiene una fórmula satisfactoria si la original lo hizo. Espero que esto quede claro por inspección.SM(Γ)ψ1,,ψndψiiS

Conclusión: no podemos producir de manera confiable una lista S de n d posibles valores para M ( Γ ) , a menos que la jerarquía poli se colapse.SndM(Γ)

Segundo paso: reducimos del problema de la computación en lista M ( Γ ) al problema de la computación en lista M ( ϕ ) para las instancias 3-SAT ϕ .M(Γ)M(ϕ)ϕ

Para hacer esto, primero ejecutamos la reducción de Cook en Γ para obtener una instancia de 3-SAT ϕ 1 de tamaño m = p o l y ( n d ) . ϕ 1 tiene el mismo conjunto de variables que Γ , junto con algunas variables auxiliares. Lo más importante para nuestros propósitos, ϕ 1 ( v , ) es satisfactoria si f Γ ( v , ) es satisfactoria.Γϕ1m=poly(nd)ϕ1Γϕ1(v,)Γ(v,)

Llamamos a ϕ 1 las 'fuertes restricciones'. Le damos a cada una de estas restricciones un peso de 2 m (agregando restricciones duplicadas).ϕ12m

Luego agregamos un conjunto de 'restricciones débiles' ϕ 2 que agregan una preferencia para que el índice v (definido en el paso 1) sea lo más alto posible. Hay una restricción para cada bit v t de v , a saber [ v t = 1 ] . Dejamos que el t -ésimo bit más significativo de v tenga una restricción de peso m / 2 t - 1 . Dado que v es de longitud d log n + 1 , estos pesos pueden hacerse integrales (solo necesitamos rellenar para dejar que mϕ2vvtv[vt=1]tvm/2t1vdlogn+1m ser un poder de 2).

Finalmente, dejemos que ϕ = ϕ 1ϕ 2 sea ​​el resultado de nuestra reducción.ϕ=ϕ1ϕ2

Para analizar ϕ , deje que ( v , z ) sea ​​el conjunto variable de ϕ , con v como antes. Primero tenga en cuenta que dada cualquier asignación a ( v , z ) , se puede inferir el valor de v de la cantidad N ( v , z ) = (peso total de las restricciones ϕ satisfechas por v , z ). Esto se desprende del diseño jerárquico de los pesos de restricción (de manera similar a una técnica de la respuesta de Luca). Del mismo modo, el valor máximo alcanzable Mϕ(v,z)ϕv(v,z)vN(v,z)=ϕv,z
( ϕ ) se logra mediante un ajuste ( v , z ) que satisface todas las restricciones fuertes, y donde (sujeto a esto) v es lo más grande posible. Esta v es el índice más grande para el cual Γ ( v , ) es satisfactoria, es decir, M ( Γ ) . (Tenga en cuenta que siempre es posible, estableciendo v = all-0, para satisfacer todas las restricciones fuertes, ya que en ese caso Γ ( v , ) es satisfactoria).M(ϕ)(v,z)vv

Se deduce que, si se nos da una lista S de posibles valores de M ( ϕ ) , podemos derivar una lista de | S | posibles valores de M ( Γ ) . Por lo tanto no podemos tener | S | n d 'a menos que la poli jerarquía se colapse. Esto da la Reclamación, ya que n d ' = m Ω ( 1 ) .

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.