Problemas NP-completos y reducciones

Anuncio
Problemas NP-completos y reducciones
William Cruz-Santos y Guillermo Morales-Luna
Departamento de Computación, Cinvestav-IPN, Ciudad de México,
feb 2011
Abstract. Mostramos ejemplos de funciones de energı́a para los problemas de decisión 3-SAT, Caminos Hamiltonianos en gráficas y 3DM
(3-Dimensional Matching).
1
Introducción
En la computación cuántica se ha propuesto la evolución adiabática para resolver
problemas difı́ciles, donde se hace uso del teorema adiabático [2, ?] definiendo dos
operadores hamiltonianos. Para un problema difı́cil en particular, el primer operador hamiltoniano HB se construye de tal forma que sea fácil encontrar sus
estados de menor energı́a (éstos son los eigenvectores con eigenvalores de menor
valor absoluto, a los cuales llamaremos estados base) y el segundo operador hamiltoniano HP codifica el problema y sus estados base representan una solución
(a este último lo llamaremos el hamiltoniano del problema).
Dados los operadores hamiltonianos HB y HP se define una interpolación
de la forma H(t) = (1 − t/T )HB + (t/T )HP donde T es el tiempo total de
integración y t ∈ (0, T ). Como lo establece el teorema adiabático, si el tiempo
total de integración T es lo suficientemente grande y el paso de integración t
es pequeño entonces el estado final es una aproximación a los estados base del
hamiltoniano del problema.
En [1] se propone una solución al problema 3-SAT usando la computación
adiabática en términos de un problema de optimización. En este manuscrito
consideramos el planteamiento de tres problemas de decisión y sus versiones de
optimización: 3-SAT, Caminos Hamiltonianos y 3DM (3 Dimensional Matching).
2
El problema de satisfactibilidad 3-SAT
Sea X = (Xj )n−1
j=0 un conjunto de variables booleanas. Una literal tiene la forma
X δ con X ∈ X , δ ∈ {0, 1} donde X 1 = X y X 0 = ¬X. Una cláusula es
una disyunción de literales y una forma conjuntiva (FC) es una conjunción de
cláusulas. Una asignación es un punto ε = (εj )nj=1 ∈ {0, 1}n . Una asignación
satisface a la literal Xjδ si y sólo si εj = δ, también satisface una cláusula si
satisface al menos una literal y finalmente satisface a una FC si satisface a todas
las cláusulas. Una m-cláusula es una cláusula con exactamente m literales y una
m-FC es una FC con m-cláusulas.
El problema de satisfactibilidad SAT consiste en decidir si dada una m-FC
(en general se trata de una FC, pero toda FC se puede convertir a una mFC) tiene una asignación que la satisface. Un caso particular es cuando m = 3,
llamado 3-SAT; ambos problemas son completos en NP.
Para cualquier 3-cláusula C sea hC : {0, 1}m → R tal que
ε satisface a C =⇒ hC (ε) = 0,
(1)
ε no satisface a C =⇒ hC (ε) = 1.
m−1
m−1
Y para cualquier m-FC φ = (Ci )i=0
sea hφ : {0, 1}m → R como hφ = Σi=0
hCi .
Claramente
∀ε ∈ {0, 1}m : [hφ (ε) = 0 ⇐⇒ ε satisface a φ]
(2)
De esta forma encontrar el mı́nimo valor de hφ = 0 significa encontrar una
asignación ε tal que φ se satisface.
3
El problema de los caminos hamiltonianos
Consideremos una gráfica G = (V, A) donde V es un conjunto finito de vértices
y A ⊆ V × V es un conjunto de aristas. Para |V | = n (| · | es la cardinalidad del
conjunto), sea Sn el conjunto de permutaciones de n vértices donde |Sn | = n!.
Dada s ∈ Sn , si es el ı́ndice del i-ésimo vértice en la permutación con 1 ≤ i ≤ n.
Un Camino Hamiltoniano (CH) es una permutación s ∈ Sn tal que para
cualquier par de ı́ndices consecutivos si y sj con j = i + 1 y vértices vsi , vsj ∈ V
se cumple que (vsi , vsj ) ∈ A. Por ejemplo, la figura 1 muestra una gráfica con:
Fig. 1. Diagrama de una gráfica.
V = {q1 , q2 , q3 , q4 , q5 , q6 } y
A = {(q2 , q1 ), (q1 , q3 ), (q4 , q2 ), (q2 , q3 ), (q3 , q4 ),
(q5 , q3 ), (q4 , q5 ), (q4 , q6 ), (q6 , q5 ), (q2 , q6 )}.
donde existen dos caminos hamiltonianos que son:
ch1 = q1 q3 q4 q6 q5 ,
ch2 = q5 q3 q4 q2 q1 .
Ahora, sea (AdjG )i,j=1,...,n la matriz de adyacencia de G tal que AdjG (i, j) = 1
si aparece la arista (vi , vj ) ∈ A y AdjG (i, j) = 0 de otro modo. Por ejemplo, la
matriz de adyacencia de la gráfica en la figura 1 es:


001000
1 0 1 0 0 1


0 0 0 1 0 0

AdjG = 
0 1 0 0 1 1.


0 0 1 0 1 0
000010
Dada una gráfica G = (V, A) con |V | = n. Si AdjG es la matriz de adyacencia
de G y para cualquier permutación s ∈ Sn sea:
TG : Sn −→ R
TG : s 7−→
n−1
X
(3)
AdjG (sj , sj+1 ).
j=1
Es fácil verificar que:
∀s ∈ Sn : [TG (s) = n − 1 ⇐⇒ s es un CH ]
(4)
También se tiene que:
∀s ∈ Sn : [TG (s) = n ⇐⇒ s es un Ciclo Hamiltoniano ]
(5)
Observamos que si TG = n − 1 para alguna permutación s entonces se trata de
un camino hamiltoniano, de otra forma TG < n − 1.
4
El problema 3DM (3 Dimensional Matching)
Una instancia del problema 3DM es un conjunto M ⊆ W × X × Y donde
W, X y Y son conjuntos disjuntos con el mismo número de elementos, esto es
|W | = |X| = |Y | = n. Se pregunta si M contiene un subconjunto M 0 ⊆ M
tal que |M 0 | = n y para cualquier pareja de elementos en M 0 no coinciden en
alguna coordenada (decimos que hay una correspondencia tridimensional). Por
ejemplo, considere los siguientes conjuntos W = {w1 , w2 , w3 }, X = {x1 , x2 , x3 },
Y = {y1 , y2 , y3 }; y un subconjunto M ⊂ W × X × Y dado por:
M = {(w1 , x1 , y1 ), (w1 , x2 , y1 ), (w1 , x3 , y1 ),
(w2 , x1 , y2 ), (w2 , x2 , y2 ), (w2 , x3 , y2 ),
(w3 , x1 , y3 ), (w3 , x2 , y3 ), (w3 , x3 , y3 )}.
Una correspondencia tridimensional en M es M 0 = {(w1 , x2 , y1 ), (w2 , x1 , y2 ), (w3 , x3 , y3 )}.
Para ver al problema 3DM en términos de optimización consideremos lo siguiente.
Para cualquier conjunto C = {ci |i ∈ IC } donde IC = [[0, |C| − 1]], sea indC :
C → IC como indC : ci 7→ i. Para una instancia del problema 3DM M ⊆
W × X × Y y cualquier subconjunto M 0 ⊂ M con |M 0 | = n dado por:
M 0 = {(wi1 , xj1 , yk1 ), . . . , (win , xjn , ykn )}
(6)
donde wiδ ∈ W, xjδ ∈ X, ykδ ∈ Y para los ı́ndices iδ ∈ IW , jδ ∈ IX , kδ ∈ IY con
δ = 1, . . . , n. En general, para cualquier conjunto C y elementos ciδ ∈ C con
ı́ndices iδ ∈ IC donde δ = 0, . . . , n, sea:
SC : IC −→ R
SC : i 7−→
n−1
X
(7)
(indC (ciδ ) == i)
δ=0
aquı́ (a == b) es una operación binaria que nos da 1 si a es igual a b y 0 de
otro modo. SC cuenta el número de elementos ciδ con ı́ndices iδ iguales a i.
Consideremos la suma total T SC para todo ı́ndice i ∈ IC como:
T SC =
n−1
X
FS (SC (iν ))
(8)
1 si s > 0
0 de otro modo
(9)
ν=0
donde
FS (s) =
Finalmente de (6) sea TM 0 = T SW + T SX + T SY entonces:
∀M 0 ⊆ M, |M 0 | = n : [TM 0 = 9 ⇐⇒ M 0 es una correspondencia tridimensional en M ]
(10)
observamos que si TM 0 = 9 entonces M 0 es una correspondencia tridimensional
en M , de otro modo TM 0 < 9.
5
Operadores hamiltonianos para los CH’s
Por la completitud del problema de los caminos hamiltonianos existe un procedimiento de complejidad polinomial en tiempo, que traduce una instancia de CH
a una instancia de SAT. De esta forma dada una gráfica G, existen un predicado
P que se satisface si y sólo si, G contiene un CH. El procedimiento de traducción
es el siguiente:
Dada una gráfica G = (V, A) con |V | = n. Sea P (G) una expresión booleana
tal que se satisface si y sólo si G contiene un CH. P (G) consta de n2 variables
booleanas (Xij )ni,j=1 donde cada Xij representa que el vértice j es el i-ésimo
vértices en el CH (permutación). Representamos a P en forma conjuntiva con
cláusulas de la siguiente forma.
1. Para cada vértice vj ∈ G consideramos la siguiente cláusula:
1
1
1
(X1j
∨ X2j
∨ · · · ∨ Xnj
)
(11)
2. Cada vértice vj debe aparecer una sola vez en el CH, es decir, no puede
aparecer en la i-ésima ni en la k-ésima posición del CH, esto lo expresamos
con la siguiente cláusula:
0
0
(Xij
∨ Xkj
)
(12)
con i 6= k.
3. De igual forma, para cada vértice vi ∈ G consideramos la siguiente cláusula:
1
1
1
(Xi1
∨ Xi2
∨ · · · ∨ Xin
)
(13)
4. Cada vértice vi debe aparecer una sola vez en el CH, es decir, no puede
aparecer en la j-ésima ni en la k-ésima posición del CH, esto lo expresamos
con la siguiente cláusula:
0
0
(Xij
∨ Xik
)
(14)
con j 6= k.
5. Si (vi , vj ) ∈
/ A entonces el vértice vj no puede venir después del vértice vi en
el CH. Es decir, para cada par (vi , vj ) tal que AdjG (i, j) = 0 consideramos
la siguiente cláusula (donde AdjG es la matriz de adyacencia de G):
0
0
(Xki
∨ Xk+1,j
)
(15)
para k = 1, . . . , n − 1.
6. Finalmente, la expresión booleana en FC P es la conjunción de las cláusulas
descritas en (11),(12),(13),(14) y (15).
En [4] se puede ver la demostración de que el procedimiento anterior construye una expresión booleana P (G) tal que se satisface si y sólo si, G contiene
un CH. Ahora, necesitamos transformar la instancia P (G) de SAT a una instancia de 3-SAT para construir los operadores hamiltonianos descritos en la sección
anterior. Emplearemos la reducción propuesta en [3] para convertir una instancia
de SAT P a una instancia φ de 3-SAT.
Dada una instancia de SAT P descrita por las cláusulas C = {C1 , C2 , . . . , Cm }
sobre un conjunto de variables booleanas X = {X1 , X2 , . . . , Xn }. Construiremos
un nuevo conjunto de cláusulas C 0 con exactamente tres literales cada una, para
llevar a cabo esto, es necesario introducir nuevas variables booleanas al conjunto
X y que depende del número de cláusulas en C y el número de literales por
cláusula. El procedimiento de reducción convierte cada cláusula Ci ∈ C en un
subconjunto de cláusulas según el número k de literales que contenga:
δ
1. Si k = 1, Ci = (Xj1
). Introducimos 2 nuevas variables booleanas {Yi,1 , Yi,2 }
y formamos las nuevas cláusulas:
δ
1
1
δ
1
0
δ
0
1
δ
0
0
{(Xj1
∨Yi,1
∨Yi,2
), (Xj1
∨Yi,1
∨Yi,2
), (Xj1
∨Yi,1
∨Yi,2
), (Xj1
∨Yi,1
∨Yi,2
)} (16)
δ2
δ1
). Introducimos una nueva variable {Yi,1 } y
∨ Xj2
2. Si k = 2, Ci = (Xj1
formamos las nuevas cláusulas:
δ2
δ1
δ2
δ1
0
1
∨ Yi,1
)}
∨ Xj2
∨ Yi,1
), (Xj1
∨ Xj2
{(Xj1
(17)
δ3
δ2
δ1
). En este caso se conserva la misma cláusula
∨ Xi3
∨ Xi2
3. Si k = 3, Ci = (Xi1
Ci .
δ3
δ2
δ1
)}
(18)
∨ Xi3
∨ Xi2
{(Xi1
δk
δ2
δ1
∨, . . . , ∨Xjk
). Introducimos las nuevas variables
∨ Xj2
4. Si k > 3, Ci = (Xj1
{Yi,1 , Yi,2 , . . . , Yi,k−3 } y formamos las nuevas cláusulas:
δ4
δ3
δ2
δ1
1
1
0
1
0
∨ Yi,3
), . . . ,
∨ Yi,2
), (Yi,2
∨ Xj4
∨ Yi,1
), (Yi,1
∨ Xj3
∨ Xj2
{(Xj1
0
(Yi,k−4
∨
δk−2
Xjk−2
∨
1
0
Yi,k−3
), (Yi,k−3
∨
δk−1
Xjk−1
∨
(19)
δk
Xjk
)}
Finalmente el conjunto de cláusulas C 0 es la unión de los subconjuntos dados
en (16), (17), (18) y (19). Y la instancia φ de 3-SAT es la conjunción de las
cláusulas en C 0 .
5.1
Ejemplo de reducción
Consideremos un ejemplo de la reducción de CH a SAT y de SAT a 3-SAT. Dada
la siguiente matriz de adyacencia de la gráfica G como:


001
AdjG =  0 0 0  .
010
La reducción de CH a SAT introduce el conjunto de variables booleanas X =
(Xij )3i,j=1 y la expresión booleana P (G) es la siguiente 1 :
(X11 ∨ X41 ∨ X71 ) ∧ (X21 ∨ X51 ∨ X81 ) ∧ (X31 ∨ X61 ∨ X91 ) ∧ (X11 ∨ X21 ∨ X31 ) ∧
(X41 ∨ X51 ∨ X61 ) ∧ (X71 ∨ X81 ∨ X91 ) ∧ (X10 ∨ X40 ) ∧ (X10 ∨ X70 ) ∧ (X20 ∨ X50 ) ∧
(X20 ∨ X80 ) ∧ (X30 ∨ X60 ) ∧ (X30 ∨ X90 ) ∧ (X40 ∨ X70 ) ∧ (X50 ∨ X80 ) ∧ (X60 ∨ X90 ) ∧
(X10 ∨ X20 ) ∧ (X10 ∨ X30 ) ∧ (X20 ∨ X30 ) ∧ (X40 ∨ X50 ) ∧ (X40 ∨ X60 ) ∧ (X50 ∨ X60 ) ∧
(X70 ∨ X80 ) ∧ (X70 ∨ X90 ) ∧ (X80 ∨ X90 ) ∧ (X10 ∨ X50 ) ∧ (X40 ∨ X80 ) ∧ (X20 ∨ X40 ) ∧
(X50 ∨ X70 ) ∧ (X20 ∨ X60 ) ∧ (X50 ∨ X90 ) ∧ (X30 ∨ X40 ) ∧ (X60 ∨ X70 )
La expresión booleana P (G) tiene una única asignación de verdad dada por:
X1 = 1, X2 = 0, X3 = 0
X4 = 0, X5 = 0, X6 = 1
X7 = 0, X8 = 1, X9 = 0
1
La enumeración empleada de las variables booleanas es la siguiente: para la variable
booleana Xij −→ X(i−1)n+j donde n es el número de vértices en G.
que codifica el CH: v1 v3 v2 . La reducción de SAT a 3-SAT es la siguiente:
(X11 ∨ X41 ∨ X71 ) ∧ (X21 ∨ X51 ∨ X81 ) ∧ (X31 ∨ X61 ∨ X91 ) ∧ (X11 ∨ X21 ∨ X31 ) ∧
1
0
(X41 ∨ X51 ∨ X61 ) ∧ (X71 ∨ X81 ∨ X91 ) ∧ (X10 ∨ X40 ∨ X10
) ∧ (X10 ∨ X40 ∨ X10
)∧
1
0
1
0
(X10 ∨ X70 ∨ X11
) ∧ (X10 ∨ X70 ∨ X11
) ∧ (X20 ∨ X50 ∨ X12
) ∧ (X20 ∨ X50 ∨ X12
)∧
1
0
1
0
(X20 ∨ X80 ∨ X13
) ∧ (X20 ∨ X80 ∨ X13
) ∧ (X30 ∨ X60 ∨ X14
) ∧ (X30 ∨ X60 ∨ X14
)∧
1
0
1
0
(X30 ∨ X90 ∨ X15
) ∧ (X30 ∨ X90 ∨ X15
) ∧ (X40 ∨ X70 ∨ X16
) ∧ (X40 ∨ X70 ∨ X16
)∧
1
0
1
0
(X50 ∨ X80 ∨ X17
) ∧ (X50 ∨ X80 ∨ X17
) ∧ (X60 ∨ X90 ∨ X18
) ∧ (X60 ∨ X90 ∨ X18
)∧
1
0
1
0
(X10 ∨ X20 ∨ X19
) ∧ (X10 ∨ X20 ∨ X19
) ∧ (X10 ∨ X30 ∨ X20
) ∧ (X10 ∨ X30 ∨ X20
)∧
1
0
1
0
(X20 ∨ X30 ∨ X21
) ∧ (X20 ∨ X30 ∨ X21
) ∧ (X40 ∨ X50 ∨ X22
) ∧ (X40 ∨ X50 ∨ X22
)∧
1
0
1
0
(X40 ∨ X60 ∨ X23
) ∧ (X40 ∨ X60 ∨ X23
) ∧ (X50 ∨ X60 ∨ X24
) ∧ (X50 ∨ X60 ∨ X24
)∧
1
0
1
0
(X70 ∨ X80 ∨ X25
) ∧ (X70 ∨ X80 ∨ X25
) ∧ (X70 ∨ X90 ∨ X26
) ∧ (X70 ∨ X90 ∨ X26
)∧
1
0
1
0
(X80 ∨ X90 ∨ X27
) ∧ (X80 ∨ X90 ∨ X27
) ∧ (X10 ∨ X50 ∨ X28
) ∧ (X10 ∨ X50 ∨ X28
)∧
1
0
1
0
(X40 ∨ X80 ∨ X29
) ∧ (X40 ∨ X80 ∨ X29
) ∧ (X20 ∨ X40 ∨ X30
) ∧ (X20 ∨ X40 ∨ X30
)∧
1
0
1
0
(X50 ∨ X70 ∨ X31
) ∧ (X50 ∨ X70 ∨ X31
) ∧ (X20 ∨ X60 ∨ X32
) ∧ (X20 ∨ X60 ∨ X32
)∧
1
0
1
0
(X50 ∨ X90 ∨ X33
) ∧ (X50 ∨ X90 ∨ X33
) ∧ (X30 ∨ X40 ∨ X34
) ∧ (X30 ∨ X40 ∨ X34
)∧
1
0
(X60 ∨ X70 ∨ X35
) ∧ (X60 ∨ X70 ∨ X35
)
Como puede verse el número de variables booleanas crece rápidamente. Por
un lado en el problema CH se tiene un número factorial de permutaciones posibles (caminos hamiltonianos), esto es |Sn | = n!. Cuando se reduce cualquier
instancia de CH a una instancia de SAT, obtenemos un expresión booleana sobre un conjunto X con n2 variables booleanas, es decir, un espacio de búsqueda
2
de tamaño 2n . Después de reducir las instancias de SAT a instancias de 3-SAT,
el número de variables booleanas están acotadas por O(n3 ), resultando en un
3
espacio de búsqueda de tamaño 2n .
3
Es evidente que la función g(n) = 2n (doble exponenciación) crece más
rápido que la función factorial h(n) = n!. De esta forma obtenemos un problema
aun más difı́cil que el problema original.
5.2
Reducción a 2-SAT
De la reducción de CH a SAT vista en la sección anterior podemos pensar en
dos conjuntos de cláusulas como sigue. Sea Φ el procedimiento de traducción
de CH a SAT descrito en la sección anterior. Para una instancia G = (V, A) de
CH con |V | = n, sea F C=SAT(Φ(G)) una forma conjuntiva tal que F C=verdad
si y sólo si, G contiene un camino hamiltoniano. Podemos escribir a FC como
F C = F C≤2 ∧ F C≥3 donde:
F C≤2 = {c ∈ F C | long(c) ≤ 2},
F C≥3 = {c ∈ F C | long(c) ≥ 3},
aquı́ long(c) es el número de literales en la cláusula c. Explı́citamente F C≤2 y
F C≥3 pueden ser: sean C1 , C2 , C3 , C4 , C5 los conjuntos de cláusulas dadas en
(11), (12), (13), (14) y (15), respectivamente. Entonces
F C≥3 = C1 ∪ C3
F C≤2 = C2 ∪ C4 ∪ C5
Ya que F C≤2 se forma como la conjunción de cláusulas de una o dos literales
se puede encontrar una asignación σ en tiempo polinomial tal que F C≤2 (σ) =
verdad y ”propagar” σ a F C≥3 . Es decir, emplear los valores de verdad en σ
para reducir el número de literales en F C≥3 , de esta forma se reduce el número
de asignaciones posibles. El algoritmo de la tabla 1 lleva a cabo la propagación.
De la construcción anterior vemos que si (F C≤2 (σ) ∧ F C≥3 (σ)) = 1 =⇒
(σ es única o es el camino vacı́o). Para ver esto considere lo siguiente: sea σ≤2 =
{σ|F C≤2 (σ) = 1} como el conjunto de asignaciones que satisfacen a F C≤2 ; si
2
σ 0 ∈ σ≤2 =⇒ |σ 0 | = n2 (es decir σ 0 ∈ {0, 1}n ), esto significa que si σ 0 ∈ σ≤2 se
cumple que (F C≤2 (σ 0 ) ∧ F C≥3 (σ 0 )) = 1 implica recorrer todas las asignaciones
posibles de las n2 variables booleanas.
Partición de FC Consideremos otra división de las cláusulas en FC como:
F Cf ixed = C1 ∪ C2 ∪ C3 ∪ C4
F Cvar = C5
se puede ver a F Cf ixed como al conjunto de cláusulas necesarias para asegurar
que cada vértice en G aparezca una sola vez en el camino hamiltoniano. F Cvar
depende de las aristas existentes en la gráfica y asegura que cualquier camino
válido pase a travéz de las aristas en A.
Analicemos como son las cláusulas en F Cvar . Dada AdjG una matriz de
adyacencia de una gráfica G. Sean ∆inf y ∆sup los conjuntos de cláusulas formadas por (15) para la parte triangular inferior y superior de la matriz AdjG ,
respectivamente. Es fácil ver que ∆inf ∩ ∆sup = ∅ y
F Cvar = ∆inf ∪ ∆sup .
Por ejemplo, para la matriz de adyacencia de la sección 5.1 se tiene que:
F Cf ixed = {(X11 ∨ X41 ∨ X71 ), (X21 ∨ X51 ∨ X81 ), (X31 ∨ X61 ∨ X91 ), (X11 ∨ X21 ∨ X31 ),
(X41 ∨ X51 ∨ X61 ), (X71 ∨ X81 ∨ X91 ), (X10 ∨ X40 ), (X10 ∨ X70 ), (X20 ∨ X50 ),
(X20 ∨ X80 ), (X30 ∨ X60 ), (X30 ∨ X90 ), (X40 ∨ X70 ), (X50 ∨ X80 ), (X60 ∨ X90 ),
(X10 ∨ X20 ), (X10 ∨ X30 ), (X20 ∨ X30 ), (X40 ∨ X50 ), (X40 ∨ X60 ), (X50 ∨ X60 ),
(X70 ∨ X80 ), (X70 ∨ X90 ), (X80 ∨ X90 )}
F Cvar = {(X10 ∨ X50 ), (X40 ∨ X80 ), (X20 ∨ X40 ), (X50 ∨ X70 ), (X20 ∨ X60 ), (X50 ∨ X90 ),
(X30 ∨ X40 ), (X60 ∨ X70 )}
también
∆inf = {(X20 ∨ X40 ), (X50 ∨ X70 ), (X30 ∨ X40 ), (X60 ∨ X70 )}
∆sup = {(X10 ∨ X50 ), (X40 ∨ X80 ), (X20 ∨ X60 ), (X50 ∨ X90 )}
es importante notar que las cláusulas formadas por los valores sobre la diagonal
tal que AdjG (i, j) = 0 con i = j ya pertenecen a F Cf ixed . Las literales X1δ1 y
X9δ2 no están presentes en ∆inf , mientras que las literales X3δ3 y X7δ4 no están
en ∆sup . En general, si ∆inf y ∆sup son tales que F Cvar = ∆inf ∪ ∆sup para
una gráfica G = (V, A) con |V | = n, se tiene que los conjuntos de cláusulas ∆inf
y ∆sup no involucran al menos las literales,
δ4
X1δ1 , Xnδ22 y Xnδ3 , Xn(n−1)+1
δ1
δ3
δ4
δ2
respectivamente. Si re-indexamos las literales como X1,1
, Xn,n
y X1,n
, Xn,1
éstas
se refieren a los casos en que los vértices v1 y vn son los extremos del camino
hamiltoniano.
Entrada.
Salida.
Dada la gráfica G.
Instancia 3SAT reducida.
1. Construir F C = F C≤2 ∧ F C≥3 .
0
0
2. Hacer F C≤2
:= F C≤2 y F C≥3
:= F C≥3 .
0
3. Mientras F C≤2 6= ∅ Hacer
0
(a) Con 2SAT encontrar una asignación σ tal que F C≤2
(σ) = verdad.
0
0
0
0
(b) Propagar σ a F C≥3 y escribirlo como F C≥3 = F C≤2
∧ F C≥3
.
0
4. Dar de salida F C≥3 .
Tabla 1. Algoritmo de propagación.
Referencias
1. Edward Farhi, Jeffrey Goldstone, Sam Gutmann, Joshua Lapan, Andrew Lundgren,
and Daniel Preda. A quantum adiabatic evolution algorithm applied to random
instances of an NP-complete problem. arXiv:quant-ph/0104129v1, 2001.
2. Edward Farhi, Jeffrey Goldstone, Sam Gutmann, and Michael Sipser. Quantum
computation by adiabatic evolution. arXiv:quant-ph/0001106v1, 2000.
3. John E. Hopcroft, Rajeev Motwani, and Jeffrey D. Ullman. Introduction to Automata Theory, Languages, and Computation (2nd Edition). Addison Wesley,
November 2000.
4. Christos H. Papadimitriou. Computational Complexity. Addison Wesley Longman,
1994.
Descargar