Algoritmo aleatorizado para 3SAT

8

Existe un algoritmo aleatorio muy simple que, dado un 3SAT, produce una asignación que satisface al menos 7/8 de las cláusulas (en expectativa): elija una asignación aleatoria. Una asignación aleatoria satisface cada cláusula con probabilidad 7/8, por lo que la linealidad de la expectativa muestra que la fracción esperada de cláusulas satisfechas por una asignación aleatoria es 7/8.

¿Se puede hacer esto de manera determinista? Si es así, ¿por qué nos interesa el algoritmo aleatorio?

Yuval Filmus
fuente

Respuestas:

6

El algoritmo de asignación aleatoria puede ser aleatorizado (hecho determinista) usando el método de expectativas condicionales.

Deje que la instancia de 3SAT consista en las cláusulas . Durante el algoritmo asignaremos valores a las variables. La puntuación de una cláusula se define de la siguiente manera:C1,,CmC

  • Si está satisfecho, entonces su puntaje es 1.C
  • Si C no está satisfecho y tiene k literales sin asignar, entonces su puntaje es 12k .

Inicialmente, el puntaje de cada cláusula es , por lo que el puntaje total es . Ahora asignamos valores a las variables en orden. Supongamos que hemos asignado valores a las variables , y la puntuación total actual es . Sea la puntuación total si asignamos los valores (respectivamente) a . que para cualquier cláusula , y así . En efecto:123=7/8(7/8)mx1,,xnx1,,xi1S=S(C1)++S(Cm)S0,S10,1xiS0(C)+S1(C)=2S(C)CS0+S1=2S

  • Si está satisfecho (solo dado ) o no contiene entonces .Cx1,,xi1xiS0(C)+S1(C)=2S(C)
  • Suponga que contiene literales no asignados, incluido . Entonces , y . Por tanto, CkxiS(C)=12kS0(C)=12(k1)S1(C)=1
    S0(C)+S1(C)=[122k]+1=2(12k)=2S(C).
  • Un argumento similar funciona cuando contiene . Cx¯i

Como , o (posiblemente ambos). Por lo tanto hay una cierta asignación a de tal manera que después de la asignación, la nueva puntuación es de al menos .S0+S1=2SS0SS1SSS

El puntaje inicial es el algoritmo asegura que el puntaje nunca disminuya. Al final, el puntaje de una cláusula es 1 si se cumple y caso contrario. Por lo tanto, la asignación final satisface al menos cláusulas.(7/8)mC120=0(7/8)m

Dado que existe un algoritmo determinista, ¿por qué nos interesa el aleatorio? Hay varias razones:

  1. El algoritmo aleatorio es mucho más simple.
  2. El algoritmo aleatorio es potencialmente más rápido.
  3. El algoritmo aleatorizado se puede convertir en uno determinista utilizando el método de expectativas condicionales; Podemos considerarlo como una receta para construir un algoritmo determinista.

En términos más generales, se conjetura que cada algoritmo de polytime aleatorizado para un problema de decisión puede ser aleatorizado (esta es la conjetura ). Los algoritmos aleatorios seguirán siendo interesantes por todas las razones enumeradas anteriormente.P=BPP

Yuval Filmus
fuente