Deje que las variables sean . La distancia entre dos variables se define como. La distancia entre dos literales es la distancia entre las dos variables correspondientes. d ( x a , x b ) = | a - b |
Supongamos que tengo una instancia 3-SAT tal que para cada cláusula tenemos d ( x a , x b ) ≤ N ∧ d ( x a , x c ) ≤ N ∧ d ( x b , x c ) ≤ N para algún valor fijo N .
Conceptualmente, puede imaginar esto como todos los literales que están físicamente en una línea y todas las cláusulas son incapaces de llegar más allá de cierta longitud por razones físicas.
Dada esta restricción, ¿hay alguna instancia difícil de 3-SAT? ¿Qué tan pequeño puedo hacer el vecindario y aún encontrar instancias difíciles? ¿Qué sucede si permito que algunas cláusulas infrinjan la restricción?
Por duro quiero decir que un solucionador heurístico recurriría al peor de los casos.
fuente
Respuestas:
No. Si la instancia de 3-SAT tiene cláusulas , puede probar la satisfacción en el tiempo O ( m 2 N ) . Dado que N es una constante fija, este es un algoritmo de tiempo polinómico que resuelve todas las instancias de su problema.m O(m2N) N
El algoritmo funciona en etapas. Vamos φ i denotar la fórmula que consiste de las cláusulas que utilizan sólo las variables de x 1 , ... , x i . Supongamos que S i ⊆ { 0 , 1 } n denota el conjunto de asignaciones a x i - N , x i - N + 1 , ... , x i que puede extenderse a una asignación satisfactoria para φ i . Tenga en cuenta que dado Sm φi x1,…,xi Si⊆{0,1}n xi−N,xi−N+1,…,xi φi , podemos calcular S i en el tiempoO( 2 N ): para cada( x i - N - 1 ,…, x i - 1 )∈ S i - 1 , probamos ambas posibilidades para x i y verificamos si cumple todas las cláusulas de φ i que contienen la variable x i ; si es así, agregamos( x i - N ,...Si−1 Si O(2N) (xi−N−1,…,xi−1)∈Si−1 xi φi xi a S i . En la i ésima etapa, calculamos S i . Una vez que hemos terminado todas lasetapas m , la instancia de 3-SAT es satisfactoria si y solo si S m ≠ ∅ . Cada etapa toma tiempo O ( 2 N ) , y hay m etapas, por lo que el tiempo total de ejecución es O ( m 2 N ) . Este es un polinomio en el tamaño de la entrada y, por lo tanto, constituye un algoritmo de tiempo polinomial.(xi−N,…,xi) Si i Si m Sm≠∅ O(2N) m O(m2N)
Incluso si permite que un número fijo de cláusulas violen la restricción, el problema aún puede resolverse en tiempo polinómico. En particular, si cuenta el número de cláusulas que violan la restricción, puede resolver el problema en el tiempo O ( m 2 ( t + 1 ) N ) , enumerando primero todos los valores posibles para las variables en esas cláusulas, luego continúe con El algoritmo anterior. Cuando t es una constante fija, este es el tiempo polinómico. Puede haber algoritmos más eficientes.t O(m2(t+1)N) t
fuente
El gráfico de incidentes de una fórmula SAT es un gráfico bipartito que tiene un vértice para cada cláusula y cada variable. Agregamos bordes entre una cláusula y todas sus variables. Si el gráfico de incidentes tiene un ancho de árbol limitado, entonces podemos decidir la fórmula SAT en P, en realidad podemos hacer mucho más. Su gráfico de incidentes es muy restringido. Por ejemplo, es un gráfico de ancho de ruta acotado, por lo que es solucionable en tiempo polinómico. Para el resultado estructural bien conocido anterior, por ejemplo, eche un vistazo a: https://www.sciencedirect.com/science/article/pii/S0166218X07004106 .
fuente