Pregunta

No es difícil ver que se sentó para una fórmula CNF con $ n $ variables y un número constante de cláusulas se puede resolver en el tiempo polinomio. Por otro lado, no es difícil ver que una fórmula CNF con $ n $ variables y $ O (n) $ Las cláusulas son suficientes para la dureza NP (considere, por ejemplo, las instancias de SAT asociadas con la fórmula natural para 3-Colorabilidad, aplicadas a gráficos planos).

Podríamos definir esto formalmente como $ \ texto {cnfsat} -f- \ texto {cláuses} $ , una familia de problemas parametrizados por una función $ f $ , en qué casos son fórmulas en CNF de modo que si tienen $ n $ variables, entonces tienen en La mayoría de $ f (n) $ cláusulas. Basado en esto, lo que me gustaría saber es cuál es la función más pequeña $ g $ de tal manera que sabemos que existe $ F \ IN O (G) $ de tal manera que $ \ texto {cnfsat} -f- \ texto {CLAUSES} $ ya es NP-HARD. Sabemos que g= 1 (número constante de cláusulas) no funciona, y $ g= n $ (número lineal de cláusulas) funciona.

¿Qué pasa con $ g=log n $ ? ¿Hay un algoritmo simple para CNFSAT sobre las fórmulas que tienen $ o (\ lg \ lg n) $ clauses?

¿Fue útil?

Solución

Límite inferior. para $ g \ le c \ cdot \ sqrt {\ log n} $ Existe un algoritmo de tiempo polinomial . La idea es la siguiente: si algunas cláusulas tienen demasiadas variables, entonces debería ser trivial para seleccionar alguna variable para satisfacer esta cláusula, sin lastimar las cláusulas con pocas variables. Repetimos lo siguiente:

Encuentre la cláusula con el número más pequeño de variables. Deje que $ x_1, \ ldots, x_k $ sean las variables que participan en esta cláusula.

  • si $ k> g $ , entonces toda la fórmula es satisfactoria (procesamos las cláusulas una por una y seleccione una variable que no seleccionamos antes).
  • de lo contrario, eliminamos la cláusula. También eliminamos $ x_1, \ ldots, x_k $ de todas las demás cláusulas.

Ahora, tenemos que satisfacer las cláusulas eliminadas. Dado que en la mayoría de los $ g $ cláusulas y cada una de ellas introduce en la mayoría $ g $ nuevas variables, Significa que hay como máximo $ g ^ 2= C ^ 2 \ CDOT \ LOG N $ variables en general. Por lo tanto, hay en la mayoría de $ n ^ {c ^ 2} $ combinaciones variables, y podemos utilizar la fuerza bruta.

Límite superior condicional. está casi apretado en el siguiente sentido. asume que el límite inferior en el sat con $ n $ variables y $ \ ge c \ CDOT N $ cláusulas (para algunos $ C $ , por ejemplo, procedentes de $ 3 $ -coloring ) es $ \ alfa ^ n $ ( $ \ alfa \ in (1, 2] $ ). Tenga en cuenta que el mismo límite inferior se mantiene después de nuestra transformación (ya que podemos aplicarlo antes de cualquier algoritmo). Por lo tanto, si hay al menos $ \ log ^ {1+ \ epsilon} n n $ cláusulas, pueden tener $ \ frac {\ log ^ {1+ \ epsilon} n} C $ variables y el límite inferior para correr el tiempo para correr Nuestro problema es

$$ \ alfa ^ {\ frac {\ log ^ {1+ \ epsilon} n} c}= n ^ {\ frac {\ log ^ \ epsilon n \ CDOT \ log \ alfa} {c}}, $$

que es súper polinomio.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a cs.stackexchange
scroll top