Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Para demostrar que 3-Dimensional Matching es NP-completo podemos hacer la siguiente reduccin: 3SAT p 3DM
3-SAT
Las entradas del problema 3-SAT son los conjuntos: U = { u1, u2,, un} C = { c1, c2,, cm}
Donde U contiene todas las variables, y C contiene las clusulas formadas por 3 variables de U.
El objetivo es encontrar una asignacin de valores de verdad a cada variable en U, tal que todas las clusulas en C se satisfagan.
3DM
Las entradas del problema 3DM son los conjuntos: W, X, Y Donde |W| = |X| = |Y|. El objetivo es encontrar un matching de tamao |X| entre los 3 conjuntos. Un matching es una asignacin de tros (x,y,z), donde w , , , tal que ningn elemento de X, Y y Z aparezca en ms de un tro.
Reduccin
Tenemos que construir los conjuntos: W, X, Y con |W| = |X| = |Y|, y un conjunto M W X Y Tal que M M (donde M es una solucin a 3DM) sea un matching si y solo si C es satisfactible.
Idea general
M es un conjunto de tros, donde cada elemento pertenece a W X Y. Particionaremos M en 3 grupos: truth-setting and fan out satisfaction testing garbage collection
Dado que los elementos { (ai[j], bi[j]) : 1 j m } no aparecern en algn otro tro fuera de Ti , podemos observar que cualquier matching M deber contener m tros de Ti, ya sea todos los de Tit o todos los de Tif . De modo que podemos visualizar cada componente Ti como la encargada de determinar el valor de verdad de la variable ui . Siendo ui TRUE cuando M Ti = Tit.
*2+
*1+ a[1]
b[2]
u[2]
Y claramente slo podramos elegir los tros de Tif (tringulos sombreados) o los de Tit (tringulos sin sombrear).
satisfaction testing
Cada componente del grupo satisfaction testing corresponder a una clusula cj C. El conjunto de tros que conforman cada componente es: Cj = { (ui[j], s1[j], s2[j]) : ui cj } { (i[j], s1[j], s2[j]) : ui cj } De modo que cualquier matching M M deber contener slo un tro de Cj. Esto slo ser posible si alguna ui[j] (o i[j]) para una variable ui cj (i cj) no aparece en los tros de M Ti , lo cual slo suceder cuando la asignacin de valores de verdad determinada por M satisfaga las clusula cj.
garbage collection
Ser el conjunto de tros que nos permitir completar el matching. Consta de una sola componente G: G={(ui[j], g1[k], g2[k]), (i[j], g1[k], g2[k]) : 1 k m(n-1), 1 i n, 1 j m }
Conjuntos W, X, Y
Los conjuntos W X y Y estarn formados de la siguiente manera: W = {(u1[j], i[j]) : 1 i n, 1 j m }
Conjunto M
El conjunto de tros lo formaremos de la siguiente manera: M=
=1
=1
Claramente todo tro en M es un elemento de W X Y . Adems M contiene 2 + 3 + 22 ( 1) tros y puede construirse en tiempo polinomial.
Ejemplo
Para la instancia de 3-SAT: U = {u1, u2} C = { (u1, u2, u2), (1, 2, u1) } Construiramos la siguiente instancia de 3DM:
1[2] a1[1]
1[1]
2[1] b2[2]
b1[2]
u1[2]
u2[2]
s1[1]
s2[1]
s1[2]
s2[2]
u1[1] a1[2]
2 clusulas
b1[1] 2[2] a2[2]
u2[1] b2[1]
1[2] a1[1]
1[1]
b1[2]
u1[2]
u2[2]
s1[1]
s2[1]
s1[2]
s2[2]
u2[1] b2[1]
1[2] a1[1]
1[1]
b1[2]
u1[2]
u2[2]
s1[1]
s2[1]
s1[2]
s2[2]
u2[1] b2[1]
1[2] a1[1]
1[1]
b1[2]
u1[2]
u2[2]
s1[1]
s2[1]
s1[2]
s2[2]
u2[1] b2[1]
1[2] a1[1]
1[1]
b1[2]
u1[2]
u2[2]
s1[1]
s2[1]
s1[2]
s2[2]
u2[1] b2[1]
1[2] a1[1]
1[1]
b1[2]
u1[2]
u2[2]
s1[1]
s2[1]
s1[2]
s2[2]
u2[1] b2[1]
1[2] a1[1]
1[1]
b1[2]
u1[2]
u2[2]
s1[1]
s2[1]
s1[2]
s2[2]
u2[1] b2[1]
1[2] a1[1]
1[1]
b1[2]
u1[2]
u2[2]
g1[1]
g2[1]
g1[2]
g2[2]
s1[1]
s2[1]
s1[2]
s2[2]
u2[1] b2[1]
1[2] a1[1]
1[1]
b1[2]
u1[2]
u2[2]
g1[1]
g2[1]
g1[2]
g2[2]
s1[1]
s2[1]
s1[2]
s2[2]
u2[1] b2[1]
1[2] a1[1]
1[1]
b1[2]
u1[2]
u2[2]
g1[1]
g2[1]
g1[2]
g2[2]
Es (relativamente) fcil notar que si M tiene un matching, entonces C es satisfactible. Ya que si en M no existe un matching, entonces.. Pendiente este cacho
Notamos que de T1t T1f T2t T2f slo podemos elegir Tit o Tif , pero nunca ambos, pues de lo contrario M no sera un matching.
Para nuestro ejemplo significa que de =1 , cuya cardinalidad es 8, slo podemos elegir 4 tros.
Por el mismo motivo slo podemos formar m tros de , siendo para nuestro ejemplo m=2. =1 para completar los 8 tros del matching (ntese que la cardinalidad de W, X y Y es 8) tendremos que elegir ahora 2 tros de G. Siendo que de G slo seremos capaces siempre de elegir slo m(n-1) tros (2*(2-1) = 2).
Si existe una asignacin de valores de verdad que satisface C entonces M contiene un matching.
Demostracin: Sea : *, + una asignacin de valores de verdad que satisface C. Construiremos un matching de la siguiente manera: Por cada clusula , sea , 1 una variable cuya valor de verdad asignado por es TRUE (al menos debe existir una dado que satisface ). Entonces construimos M de la siguiente manera:
=
=
=1
, 1 , 2
Donde incluye todas las g1[k], g2[k], y todas las ui[j] y i[j] restantes.
Por lo tanto
3-DM es NP-Completo