From f3f07f72e1d5c6aa9e4482fad63879a6f11b2f52 Mon Sep 17 00:00:00 2001 From: Juan Marin Noguera Date: Sat, 8 Oct 2022 22:59:52 +0200 Subject: Fin apuntes MC --- mc/n7.lyx | 131 ++--- mc/n8.lyx | 1928 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 1962 insertions(+), 97 deletions(-) (limited to 'mc') diff --git a/mc/n7.lyx b/mc/n7.lyx index c1791e0..d5dc724 100644 --- a/mc/n7.lyx +++ b/mc/n7.lyx @@ -96,27 +96,6 @@ intratable solución sea práctica. \end_layout -\begin_layout Standard -Un -\series bold -camino hamiltoniano -\series default - en un grafo es un camino que pasa por todos los nodos exactamente una vez. - Una -\series bold - -\begin_inset Formula $k$ -\end_inset - --clique -\series default - es un subgrafo completo de -\begin_inset Formula $k$ -\end_inset - - nodos. -\end_layout - \begin_layout Section La clase \begin_inset Formula ${\cal P}$ @@ -1276,6 +1255,19 @@ Se añade el nodo \end_inset . + Una +\series bold + +\begin_inset Formula $k$ +\end_inset + +-clique +\series default + es un subgrafo completo con +\begin_inset Formula $k$ +\end_inset + + nodos. \end_layout \begin_deeper @@ -1294,6 +1286,43 @@ Si \end_layout \end_deeper +\begin_layout Enumerate +\begin_inset Formula $\text{EULCYCLE}\coloneqq\{\langle G\rangle:G\text{ es un grafo dirigido con un ciclo euleriano}\}$ +\end_inset + +. + Un +\series bold +camino euleriano +\series default + es uno que pasa por todas las aristas exactamente una vez. +\end_layout + +\begin_deeper +\begin_layout Standard +Un teorema de Euler dice que un grafo dirigido +\begin_inset Formula $G$ +\end_inset + + tiene un ciclo euleriano si y sólo si existe un camino entre cada par de + vértices y todos los vértices tienen grado entrante igual a su grado saliente. + Ver que hay un camino entre cada par de vértices es polinómico por serlo + +\begin_inset Formula $\text{PATH}$ +\end_inset + + y el número de pares de vértices, y ver que todos los vértices tienen grado + entrante y saliente iguales también. +\end_layout + +\end_deeper +\begin_layout Enumerate +\begin_inset Formula $\text{2-COLOR}\coloneqq\{\langle G\rangle:G\text{ es un grafo no dirigido bipartito}\}$ +\end_inset + +. +\end_layout + \begin_layout Enumerate Todo \begin_inset Formula $L\in{\cal CF}$ @@ -1693,66 +1722,6 @@ end{samepage} \end_layout -\begin_layout Standard -Están en -\begin_inset Formula ${\cal NP}$ -\end_inset - -: -\end_layout - -\begin_layout Enumerate -\begin_inset Formula $\text{HAMPATH}\coloneqq\{\langle G,s,t\rangle:G\text{ es un grafo dirigido con camino hamiltoniano de }s\text{ a }t\}$ -\end_inset - -. -\end_layout - -\begin_deeper -\begin_layout Standard -El verificador recibe el grafo y el camino hamiltoniano, cuyo tamaño es - claramente polinómico respecto al del grafo. - Marca los vértices de dicho camino, rechazando si encuentra un vértice - que ya ha sido marcado. - Si queda algún vértice sin marcar, rechaza. - Para cada arco del camino, si el arco no está en el grafo, rechaza. - Finalmente, acepta si el camino empieza por -\begin_inset Formula $s$ -\end_inset - - y termina por -\begin_inset Formula $t$ -\end_inset - - y rechaza en otro caso. -\end_layout - -\end_deeper -\begin_layout Enumerate -\begin_inset Formula $\text{CLIQUE}\coloneqq\{\langle G,k\rangle:G\text{ es grafo no dirigido con }k\text{-clique}\}$ -\end_inset - -. -\end_layout - -\begin_deeper -\begin_layout Standard -El verificador recibe la lista de -\begin_inset Formula $k$ -\end_inset - - nodos de la clique, de tamaño claramente proporcional al grafo. - Si tiene algún nodo que no está en el grafo, o más o menos de -\begin_inset Formula $k$ -\end_inset - - nodos, rechaza. - Para cada par de nodos en la clique, si el par no es un arco del grafo, - rechaza. - En otro caso acepta. -\end_layout - -\end_deeper \begin_layout Standard Sean \begin_inset Formula $L_{1},L_{2}\in{\cal NP}$ diff --git a/mc/n8.lyx b/mc/n8.lyx index a70f8e2..c301fba 100644 --- a/mc/n8.lyx +++ b/mc/n8.lyx @@ -159,7 +159,7 @@ se polireduce \begin_layout Standard Un lenguaje -\begin_inset Formula $L\in{\cal NP}$ +\begin_inset Formula $L$ \end_inset es @@ -168,9 +168,9 @@ Un lenguaje \begin_inset Formula ${\cal NP}$ \end_inset --completo +-duro \series default - si cualquier otro lenguaje + si cualquier lenguaje \begin_inset Formula ${\cal NP}$ \end_inset @@ -178,6 +178,22 @@ Un lenguaje \begin_inset Formula $L$ \end_inset +, y es +\series bold + +\begin_inset Formula ${\cal NP}$ +\end_inset + +-completo +\series default + si es +\begin_inset Formula ${\cal NP}$ +\end_inset + +-duro y +\begin_inset Formula ${\cal NP}$ +\end_inset + . \begin_inset Formula ${\cal P}={\cal NP}$ @@ -869,14 +885,6 @@ Este teorema lo descubrieron Stephen Cook y Leonid Levin en los 70, siendo -completo. \end_layout -\begin_layout Section -Otros lenguajes -\begin_inset Formula ${\cal NP}$ -\end_inset - --completos -\end_layout - \begin_layout Standard Un \series bold @@ -925,23 +933,38 @@ Llamando \end_inset -completos. - También lo son -\begin_inset Formula $\text{HAMPATH}$ + Sin embargo +\begin_inset Formula $\text{SAT}_{\text{2-CNF}}$ \end_inset - y -\begin_inset Formula $k\text{-CLIQUE}$ +, el conjunto de fórmulas satisfacibles en forma normal conjuntiva con a + lo sumo 2 literales en cada cláusula, está en +\begin_inset Formula ${\cal P}$ +\end_inset + +. +\begin_inset Note Comment +status open + +\begin_layout Plain Layout +Pone que se puede demostrar por reducción a +\begin_inset Formula $\text{PATH}$ \end_inset . \end_layout +\end_inset + + +\end_layout + \begin_layout Standard \begin_inset Formula $\text{SAT}_{1}$ \end_inset , el conjunto de fórmulas satisfacibles en lógica de primer orden, es indecidibl -es, y esto es más o menos lo que probaron Alonzo Church y Alan Turing en +e, y esto es más o menos lo que probaron Alonzo Church y Alan Turing en sus \emph on \lang english @@ -957,5 +980,1878 @@ Entscheidungsproblem en 1936. \end_layout +\begin_layout Section +Otros lenguajes +\begin_inset Formula ${\cal NP}$ +\end_inset + +-completos +\end_layout + +\begin_layout Standard +Son +\begin_inset Formula ${\cal NP}$ +\end_inset + +-completos: +\end_layout + +\begin_layout Enumerate +\begin_inset Formula $\text{CLIQUE}\coloneqq\{\langle G,k\rangle:G\text{ es grafo no dirigido con }k\text{-clique}\}$ +\end_inset + +. +\end_layout + +\begin_deeper +\begin_layout Standard +Primero vemos que está en +\begin_inset Formula ${\cal NP}$ +\end_inset + +. + El verificador recibe la lista de +\begin_inset Formula $k$ +\end_inset + + nodos de la clique, de tamaño claramente proporcional al grafo. + Si tiene algún nodo que no está en el grafo, o más o menos de +\begin_inset Formula $k$ +\end_inset + + nodos, rechaza. + Para cada par de nodos en la clique, si el par no es un arco del grafo, + rechaza. + En otro caso acepta. +\end_layout + +\begin_layout Standard +Veamos que +\begin_inset Formula $\text{SAT}_{\text{3-cnf}}\leq_{\text{p}}\text{CLIQUE}$ +\end_inset + +. + Dada una fórmula +\begin_inset Formula $\Phi$ +\end_inset + +, si algún literal de +\begin_inset Formula $\Phi$ +\end_inset + + tiene menos de 3 literales, lo completamos repitiendo uno de ellos. + Sea la fórmula resultante +\begin_inset Formula $(l_{11}\lor l_{12}\lor l_{13})\land\dots\land(l_{k1}\lor l_{k2}\lor l_{k3})$ +\end_inset + +, definimos el grafo +\begin_inset Formula $G_{\Phi}=(V,E)$ +\end_inset + + como +\begin_inset Formula $V\coloneqq\{(i,j)\}_{1\leq i\leq k}^{1\leq j\leq3}$ +\end_inset + + y +\begin_inset Formula $E\coloneqq\{\{(a,b),(c,d)\}\}_{1\leq a1$ +\end_inset + +, probado esto para +\begin_inset Formula $k-1$ +\end_inset + +, por construcción el elemento siguiente a +\begin_inset Formula $(u_{k-1},2)$ +\end_inset + + es de la forma +\begin_inset Formula $(u_{k},0)$ +\end_inset + +. + El elemento anterior a +\begin_inset Formula $(u_{k},1)$ +\end_inset + + debe ser +\begin_inset Formula $(u_{k},0)$ +\end_inset + + ya que de lo contrario sería +\begin_inset Formula $(u_{k},2)$ +\end_inset + + y el siguiente sería +\begin_inset Formula $(u_{k},0)$ +\end_inset + +, pero +\begin_inset Formula $(u_{k},0)$ +\end_inset + + ya es el siguiente de +\begin_inset Formula $(u_{k-1},2)\#$ +\end_inset + +. + Por tanto a +\begin_inset Formula $(u_{k},0)$ +\end_inset + + le siguen +\begin_inset Formula $(u_{k},1)$ +\end_inset + + y +\begin_inset Formula $(u_{k},2)$ +\end_inset + +. +\end_layout + +\begin_layout Standard +Claramente la función de conversión de +\begin_inset Formula $\langle G\rangle$ +\end_inset + + a +\begin_inset Formula $\langle G'\rangle$ +\end_inset + + es polinómica. +\end_layout + +\end_deeper +\begin_layout Enumerate +\begin_inset Formula $\text{COLOR}\coloneqq\{\langle G,k\rangle:G\text{ es un grafo no dirigido }k\text{-coloreable}\}$ +\end_inset + +. + Un grafo no dirigido +\begin_inset Formula $G=(V,E)$ +\end_inset + + es +\series bold + +\begin_inset Formula $k$ +\end_inset + +-coloreable +\series default + si existe una función +\begin_inset Formula $f:V\to\{1,\dots,k\}$ +\end_inset + + tal que +\begin_inset Formula $f(u)\neq f(v)$ +\end_inset + + para +\begin_inset Formula $\{u,v\}\in E$ +\end_inset + +, en cuyo caso +\begin_inset Formula $f$ +\end_inset + + es un +\series bold +coloreado +\series default + de +\begin_inset Formula $G$ +\end_inset + +. + En particular un grafo es bipartito si es 2-coloreable. +\begin_inset Note Comment +status open + +\begin_layout Plain Layout +Para ver que es +\begin_inset Formula ${\cal NP}$ +\end_inset + + consideramos un verificador que toma un coloreado potencial de +\begin_inset Formula $f$ +\end_inset + +; si no colorea algún nodo o lo colorea más de una vez, rechaza; si a algún + nodo le da un color mayor que +\begin_inset Formula $k$ +\end_inset + +, rechaza; para cada arista, si a los dos nodos que conecta les da el mismo + color, rechaza; en otro caso acepta. + Este verificador es polinómico. + Para ver que es +\begin_inset Formula ${\cal NP}$ +\end_inset + +-completo probamos que +\begin_inset Formula $\text{SAT}_{\text{3-CNF}}\leq_{\text{p}}\text{COLOR}$ +\end_inset + +. +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Enumerate +El +\series bold +TSP +\series default + ( +\series bold +\emph on +\lang english +Traveling Salesman Problem +\series default +\emph default +\lang spanish +) consiste en encontrar el ciclo hamiltoniano de peso mínimo en un grafo + no dirigido completo con pesos. + La versión de decisión es +\begin_inset Formula $\text{TSP-DEC}$ +\end_inset + +, formado por los pares +\begin_inset Formula $\langle G,k\rangle$ +\end_inset + + donde +\begin_inset Formula $G$ +\end_inset + + es un grafo no dirigido completo con pesos en +\begin_inset Formula $\mathbb{N}$ +\end_inset + + con un ciclo hamiltoniano de coste no mayor a +\begin_inset Formula $k\in\mathbb{N}$ +\end_inset + +, y es +\begin_inset Formula ${\cal NP}$ +\end_inset + +-completo. +\end_layout + +\begin_deeper +\begin_layout Standard +\begin_inset Formula $\text{TSP-DEC}\in{\cal NP}$ +\end_inset + +, pues basta tomar un nodo cualquiera del grafo y marcarlo, tomar de forma + no determinista otro nodo que no esté marcado y marcarlo, y así hasta marcar + todos los nodos, formando así un ciclo, sumar el coste de todos los ejes + del ciclo, rechazar si la suma es mayor a +\begin_inset Formula $k$ +\end_inset + + y aceptar en otro caso. + Para ver que es +\begin_inset Formula ${\cal NP}$ +\end_inset + +-completo vemos que +\begin_inset Formula $\text{UHAMCYCLE}\leq_{p}\text{TSP-DEC}$ +\end_inset + +. + Dado un grafo no dirigido +\begin_inset Formula $G=VE$ +\end_inset + +, definimos un grafo no dirigido con pesos +\begin_inset Formula $G'=(V,E',\omega)$ +\end_inset + + donde +\begin_inset Formula $E'$ +\end_inset + + es tal que +\begin_inset Formula $(V,E')$ +\end_inset + + es completo y +\begin_inset Formula +\[ +\omega(e)\coloneqq\begin{cases} +1, & e\in E;\\ +2, & e\notin E. +\end{cases} +\] + +\end_inset + +Claramente la función de conversión de +\begin_inset Formula $\langle G\rangle$ +\end_inset + + a +\begin_inset Formula $\langle G',|V|\rangle$ +\end_inset + + es polinómica, y queda ver que +\begin_inset Formula $G$ +\end_inset + + tiene un ciclo hamiltoniano si y sólo si +\begin_inset Formula $G'$ +\end_inset + + tiene uno con peso no mayor que +\begin_inset Formula $|V|$ +\end_inset + +. +\end_layout + +\begin_layout Enumerate +\begin_inset Argument item:1 +status open + +\begin_layout Plain Layout +\begin_inset Formula $\implies]$ +\end_inset + + +\end_layout + +\end_inset + +Tomamos el mismo ciclo, y como sus +\begin_inset Formula $|V|$ +\end_inset + + aristas están en +\begin_inset Formula $G$ +\end_inset + +, su peso es +\begin_inset Formula $|V|$ +\end_inset + +. +\end_layout + +\begin_layout Enumerate +\begin_inset Argument item:1 +status open + +\begin_layout Plain Layout +\begin_inset Formula $\impliedby]$ +\end_inset + + +\end_layout + +\end_inset + +Un ciclo hamiltoniano en +\begin_inset Formula $G'$ +\end_inset + + tiene +\begin_inset Formula $|V|$ +\end_inset + + aristas y su peso es pues +\begin_inset Formula $|V|$ +\end_inset + + más el número de aristas en el ciclo fuera de +\begin_inset Formula $E$ +\end_inset + +, por lo que si el ciclo tiene peso no mayor que +\begin_inset Formula $|V|$ +\end_inset + +, no puede tener aristas fuera de +\begin_inset Formula $E$ +\end_inset + + y por tanto está en +\begin_inset Formula $G$ +\end_inset + +. +\end_layout + +\end_deeper +\begin_layout Enumerate +\begin_inset Formula $\text{SUBSET-SUM}\coloneqq\{\langle S,t\rangle:S\text{ es una lista de naturales con una subsecuencia que suma }t\}.$ +\end_inset + + +\end_layout + +\begin_deeper +\begin_layout Standard +Está en +\begin_inset Formula ${\cal NP}$ +\end_inset + +, y un verificador toma una asignación de qué elementos de la lista se toman + y cuáles no, suma los que se toman y compara. + Para ver que es +\begin_inset Formula ${\cal NP}$ +\end_inset + +-completo vemos que +\begin_inset Formula $\text{SAT}_{\text{3-CNF}}\leq_{\text{p}}\text{SUBSET-SUM}$ +\end_inset + +. + Dada una fórmula +\begin_inset Formula $\Phi$ +\end_inset + + con variables +\begin_inset Formula $p_{1},\dots,p_{m}$ +\end_inset + + distintas y cláusulas +\begin_inset Formula $k_{1}\land\dots\land k_{n}$ +\end_inset + +, que podemos considerar con 3 literales cada una, tomamos la lista +\begin_inset Formula $S\coloneqq(y_{0},z_{0},\dots,y_{m-1},z_{m-1},g_{0},h_{0},\dots,g_{n-1},h_{n-1})$ +\end_inset + +, donde +\begin_inset Formula $y_{i}$ +\end_inset + + es la suma de +\begin_inset Formula $10^{n+i}$ +\end_inset + + más +\begin_inset Formula $10^{j}$ +\end_inset + + por cada +\begin_inset Formula $k_{j}$ +\end_inset + + con el literal +\begin_inset Formula $p_{i}$ +\end_inset + +, +\begin_inset Formula $z_{i}$ +\end_inset + + es la suma de +\begin_inset Formula $10^{n+i}$ +\end_inset + + más +\begin_inset Formula $10^{j}$ +\end_inset + + por cada +\begin_inset Formula $k_{j}$ +\end_inset + + con el literal +\begin_inset Formula $\neg p_{i}$ +\end_inset + + y +\begin_inset Formula $g_{j}\coloneqq h_{j}\coloneqq10^{j}$ +\end_inset + +, y +\begin_inset Formula $t\coloneqq\sum_{i=0}^{m-1}10^{n+i}+3\sum_{j=0}^{n-1}10^{j}$ +\end_inset + +. + Nótese que para cada posición decimal, una suma de elementos de +\begin_inset Formula $S$ +\end_inset + + no incluye más de 5 sumandos con ese dígito no nulo, por lo que nunca hay + llevadas. + Entonces +\begin_inset Formula $\Phi$ +\end_inset + + es satisfacible si y sólo si alguna sublista de +\begin_inset Formula $S$ +\end_inset + + suma +\begin_inset Formula $t$ +\end_inset + +. +\end_layout + +\begin_layout Enumerate +\begin_inset Argument item:1 +status open + +\begin_layout Plain Layout +\begin_inset Formula $\implies]$ +\end_inset + + +\end_layout + +\end_inset + +Dada una asignación de valores de los +\begin_inset Formula $p_{i}$ +\end_inset + +, tomamos los +\begin_inset Formula $y_{i}$ +\end_inset + + con +\begin_inset Formula $p_{i}$ +\end_inset + + verdadero y los +\begin_inset Formula $z_{i}$ +\end_inset + + con +\begin_inset Formula $p_{i}$ +\end_inset + + falso. + Entonces las posiciones decimales de +\begin_inset Formula $n$ +\end_inset + + a +\begin_inset Formula $n+m-1$ +\end_inset + + valen 1, y las posiciones +\begin_inset Formula $j\in\{0,\dots,n-1\}$ +\end_inset + + valen de 1 a 3 ya que la cláusula +\begin_inset Formula $k_{j}$ +\end_inset + + contiene entre 1 y 3 literales verdaderos que tendrán el dígito correspondiente + en +\begin_inset Formula $y_{i}$ +\end_inset + + o +\begin_inset Formula $z_{i}$ +\end_inset + + a 1. + Añadiendo elementos +\begin_inset Formula $g_{j}$ +\end_inset + + o +\begin_inset Formula $h_{j}$ +\end_inset + + se llega a +\begin_inset Formula $t$ +\end_inset + +. +\end_layout + +\begin_layout Enumerate +\begin_inset Argument item:1 +status open + +\begin_layout Plain Layout +\begin_inset Formula $\impliedby]$ +\end_inset + + +\end_layout + +\end_inset + +Para cada +\begin_inset Formula $i$ +\end_inset + +, exactamente uno de entre +\begin_inset Formula $y_{i}$ +\end_inset + + o +\begin_inset Formula $z_{i}$ +\end_inset + + se toma, lo que nos da una asignación de valores con +\begin_inset Formula $p_{i}$ +\end_inset + + a verdadero si se toma +\begin_inset Formula $y_{i}$ +\end_inset + + o a falso si se toma +\begin_inset Formula $z_{i}$ +\end_inset + +, y queda ver que esta hace a +\begin_inset Formula $\Phi$ +\end_inset + + verdadera. + Ahora bien, para cada cláusula +\begin_inset Formula $k_{j}$ +\end_inset + +, el dígito +\begin_inset Formula $j$ +\end_inset + + es 3 y se han tomado entre 0 y 2 de +\begin_inset Formula $g_{j}$ +\end_inset + + y +\begin_inset Formula $h_{j}$ +\end_inset + +, por lo que al menos uno de los +\begin_inset Formula $y_{i}$ +\end_inset + + y +\begin_inset Formula $z_{i}$ +\end_inset + + que se han tomado tiene un 1 en la posición +\begin_inset Formula $j$ +\end_inset + +. + Si lo tiene un +\begin_inset Formula $y_{i}$ +\end_inset + +, +\begin_inset Formula $k_{j}$ +\end_inset + + contiene el literal +\begin_inset Formula $p_{i}$ +\end_inset + + al que se ha asignado verdadero, y si lo tiene un +\begin_inset Formula $z_{i}$ +\end_inset + +, +\begin_inset Formula $k_{j}$ +\end_inset + + contiene el literal +\begin_inset Formula $\neg p_{i}$ +\end_inset + + habiendo asignado falso a +\begin_inset Formula $p_{i}$ +\end_inset + +. +\end_layout + +\begin_layout Standard +La función de conversión de +\begin_inset Formula $\langle\Phi\rangle$ +\end_inset + + a +\begin_inset Formula $\langle S,t\rangle$ +\end_inset + + es polinómica. + En efecto, la longitud de +\begin_inset Formula $t$ +\end_inset + + es como mucho proporcional a la de +\begin_inset Formula $\Phi$ +\end_inset + +, como lo es la de cada elemento de +\begin_inset Formula $S$ +\end_inset + + y la longitud de +\begin_inset Formula $S$ +\end_inset + +, y las operaciones usadas se calculan en tiempo polinómico salvo la exponenciac +ión, pero calcular las potencias de 10 corresponde a multiplicar por 10 + +\begin_inset Formula $n+m-1$ +\end_inset + + veces, pudiendo hacer cada multiplicación en tiempo proporcional a la longitud + de los factores, la cual es como mucho proporcional a +\begin_inset Formula $n+m-1$ +\end_inset + +. +\end_layout + +\end_deeper +\begin_layout Enumerate +\begin_inset Formula $\text{VERTEX-COVER}\coloneqq\{\langle G,k\rangle:G\text{ es un grafo no dirigido con una }k\text{-cobertura}\}$ +\end_inset + +. + Una +\series bold + +\begin_inset Formula $k$ +\end_inset + +-cobertura +\series default + de un grafo no dirigido es un conjunto de +\begin_inset Formula $k$ +\end_inset + + nodos tales que toda arista contiene uno de esos nodos. +\end_layout + +\begin_deeper +\begin_layout Standard +Para ver que es +\begin_inset Formula ${\cal NP}$ +\end_inset + +: si +\begin_inset Formula $G$ +\end_inset + + tiene menos de +\begin_inset Formula $k$ +\end_inset + + nodos, rechaza; se eligen +\begin_inset Formula $k$ +\end_inset + + nodos de forma no determinista y, si alguna arista no contiene un nodo + de los seleccionados, rechaza; en otro caso acepta. + Ahora vemos que +\begin_inset Formula $\text{SAT}_{\text{3-CNF}}\leq_{\text{p}}\text{VERTEX-COVER}$ +\end_inset + +. + Dada una fórmula 3-CNF +\begin_inset Formula $\Phi$ +\end_inset + + con variables +\begin_inset Formula $p_{1},\dots,p_{m}$ +\end_inset + + distintas y cláusulas +\begin_inset Formula $(l_{11}\land l_{12}\land l_{13})\land\dots\land(l_{n1}\land l_{n2}\land l_{n3})$ +\end_inset + +, definimos un grafo no dirigido +\begin_inset Formula $G_{\Phi}\coloneqq(V,E)$ +\end_inset + + con +\begin_inset Formula +\begin{align*} +V:= & \{y_{i},z_{i}\}_{i=1}^{m}\cup\{a_{j1},a_{j2},a_{j3}\}_{j=1}^{n},\\ +E:= & \{\{y_{i},z_{i}\}\}_{i=1}^{m}\cup\{\{a_{j1},a_{j2}\},\{a_{j2},a_{j3}\},\{a_{j3},a_{j1}\}\}_{j=1}^{n}\cup\\ + & \cup\{\{a_{jk},y_{i}\}\}_{l_{jk}=p_{i}}\cup\{\{a_{jk},z_{i}\}\}_{l_{jk}=\neg p_{i}}. +\end{align*} + +\end_inset + + +\begin_inset Formula $\Phi$ +\end_inset + + es satisfacible si y sólo si +\begin_inset Formula $G$ +\end_inset + + tiene una +\begin_inset Formula $(m+2n)$ +\end_inset + +-cobertura. +\end_layout + +\begin_layout Enumerate +\begin_inset Argument item:1 +status open + +\begin_layout Plain Layout +\begin_inset Formula $\implies]$ +\end_inset + + +\end_layout + +\end_inset + +Dada una asignación de valores que hace a +\begin_inset Formula $\Phi$ +\end_inset + + verdadera, la cobertura está formada por los +\begin_inset Formula $y_{i}$ +\end_inset + + con +\begin_inset Formula $p_{i}$ +\end_inset + + verdadero, los +\begin_inset Formula $z_{i}$ +\end_inset + + con +\begin_inset Formula $p_{i}$ +\end_inset + + falso y, para +\begin_inset Formula $j\in\{1,\dots,n\}$ +\end_inset + +, los +\begin_inset Formula $a_{jk}$ +\end_inset + + salvo uno con el correspondiente +\begin_inset Formula $l_{jk}$ +\end_inset + + verdadero. + Las aristas +\begin_inset Formula $\{y_{i},z_{i}\}$ +\end_inset + + y las +\begin_inset Formula $\{a_{jp},a_{jq}\}$ +\end_inset + + quedan claramente cubiertas, y las de la forma +\begin_inset Formula $\{a_{jk},y_{i}\}$ +\end_inset + + o +\begin_inset Formula $\{a_{jk},z_{i}\}$ +\end_inset + + quedan cubiertas por +\begin_inset Formula $a_{jk}$ +\end_inset + + si este está en la cobertura o por el otro nodo si no lo está, pues en + tal caso +\begin_inset Formula $l_{jk}$ +\end_inset + + es verdadero y, si +\begin_inset Formula $l_{jk}=p_{i}$ +\end_inset + +, el otro nodo es +\begin_inset Formula $y_{i}$ +\end_inset + + que está seleccionado, y si +\begin_inset Formula $l_{jk}=\neg p_{i}$ +\end_inset + + el otro nodo es +\begin_inset Formula $z_{i}$ +\end_inset + + que está seleccionado. +\end_layout + +\begin_layout Enumerate +\begin_inset Argument item:1 +status open + +\begin_layout Plain Layout +\begin_inset Formula $\impliedby]$ +\end_inset + + +\end_layout + +\end_inset + +Para +\begin_inset Formula $i\in\{1,\dots,m\}$ +\end_inset + + la cobertura debe tener a +\begin_inset Formula $y_{i}$ +\end_inset + + o a +\begin_inset Formula $z_{i}$ +\end_inset + + para cubrir +\begin_inset Formula $\{y_{i},z_{i}\}$ +\end_inset + +, y para +\begin_inset Formula $j\in\{1,\dots,n\}$ +\end_inset + + debe tener dos de los +\begin_inset Formula $a_{jk}$ +\end_inset + + para cubrir todos los +\begin_inset Formula $\{a_{jp},a_{jq}\}$ +\end_inset + +. + Ya llevamos +\begin_inset Formula $m+2n$ +\end_inset + + nodos, por lo que no se cubren más. + Tomamos la asignación de valores con +\begin_inset Formula $p_{i}$ +\end_inset + + a verdadero si la cobertura contiene a +\begin_inset Formula $y_{i}$ +\end_inset + + o a falso si contiene a +\begin_inset Formula $z_{i}$ +\end_inset + +, y entonces +\begin_inset Formula $\Phi$ +\end_inset + + es verdadera porque, para cada +\begin_inset Formula $j\in\{1,\dots,n\}$ +\end_inset + +, hay un +\begin_inset Formula $a_{jk}$ +\end_inset + + fuera de la cobertura, de modo que si +\begin_inset Formula $\{a_{jk},y_{i}\}\in E$ +\end_inset + + este está cubierto por +\begin_inset Formula $y_{i}$ +\end_inset + + y +\begin_inset Formula $p_{i}=l_{jk}$ +\end_inset + + es verdadero, y si +\begin_inset Formula $\{a_{jk},z_{i}\}\in E$ +\end_inset + + este está cubierto por +\begin_inset Formula $z_{i}$ +\end_inset + + y +\begin_inset Formula $\neg p_{i}=l_{jk}$ +\end_inset + + es verdadero, y en cualquier caso la +\begin_inset Formula $j$ +\end_inset + +-ésima cláusula contiene un literal verdadero. +\end_layout + +\begin_layout Standard +La función de conversión de +\begin_inset Formula $\langle\Phi\rangle$ +\end_inset + + a +\begin_inset Formula $\langle G_{\Phi},m+2n\rangle$ +\end_inset + + es claramente polinómica. +\end_layout + +\end_deeper \end_body \end_document -- cgit v1.2.3