Date post: | 01-Dec-2023 |
Category: |
Documents |
Upload: | independent |
View: | 0 times |
Download: | 0 times |
Complexity©D.Moshkovitz
2
Introducción
• Objetivos: - Introducir más NP-Completos.
• Resumen:– 3SAT– CLIQUE – INDEPENDENT-SET
Complexity©D.Moshkovitz
3
Método
• ¿Cómo demostramos que un problema está en NPC?– Primero probamos que el problema está en
NP– Después demostramos que es NP-Hard
reduciendo algún problema NP-Hard a él.
Complexity©D.Moshkovitz
4
Nuevos problemas base
• El único problema NP-Completo que conocemos es SAT.
• Desgraciadamente no es muy cómodotrabajar con SAT.
• Por ello, comenzaremos introduciendo variantes más útiles de SAT.
• Usaremos estas variantes como problemas base.
Complexity©D.Moshkovitz
5
3SATEntrada: a 3CNF formulaProblema: Decidir si la fórmula es satisfactible.
(x∨y∨¬z)∧(x∨¬y∨z)(xUna fórmula 3CNF satisfactible ∨y∨¬z)∧(x∨¬y∨z)
(x∨x∨x)∧(¬x∨¬x∨¬x)(xUna fórmula 3CNF insatisfactible ∨x∨x)∧(¬x∨¬x∨¬x)
Complexity©D.Moshkovitz
6
SIP 259-260
3SAT es NP-Completo
• 3SAT es un caso especial de SAT y, por tanto, está en NP.
• Para ver que es NP-Completo,volvemos a la prueba de que SAT esNP-Completo,
¿Será suficiente con fórmulas
3CNF?
Complexity©D.Moshkovitz
7
Volviendo a la prueba de que SAT es NP-Completo
Dada una máquina de Turing y una entrada se produce la fórmula:
∨∧
= ∧∨∧
∈≠∈≤≤
)xx(xφ tj,i,sj,i,Cts
sj,i,Csnji,1
cellk
#,n1,_1,n1,_2,n1,w1,3,q1,2,#1,1,start kk10xx...x...xxxφ ∧∧∧∧∧∧∧=
−+
( )k 1 61 6
move i 1,j,a i 1,j 1,a1 i,j n legal a ,...,aφ x ... x− + +
≤ ≤= ∧ ∧ ∧∨
acceptk
qj,i,nji,1
accept xφ ∨≤≤
=
Complexity©D.Moshkovitz
8
Transformando la fórmula en una fórmula CNF
• Todas las subfórmulas salvo ϕmove, son fórmulas CNF.
• Usando la operación distributiva podemos transformar ϕmove en una conjunción de cláusulas CNF.
• La fórmula resultante sigue teniendo un tamaño polinómico (¡Comprobarlo!).
Complexity©D.Moshkovitz
9
CNF → 3CNF(x∨y)∧(x1∨x2∨... ∨xt)∧...
Clausulas con 1 o 2 literales
(x∨y∨x)
repetición
Clausulas con 3 o más literales
división
(x1 ∨ x2 ∨ c11)∧(¬c11∨ x3 ∨c12)∧... ∧(¬c1t-3∨ xt-1∨xt)
Complexity©D.Moshkovitz
10
3SAT es NP-Completo
• Hemos visto que podemos reducir cualquier problema de NP a 3SAT
• y que 3SAT está en NP• 3SAT es NP-Completo.
Complexity©D.Moshkovitz
11
CLIQUEEntrada: Un grafo no dirigido G=(V,E) y un
natural k.Problema: Decidir si existe un conjunto de
nodos C={v1,...,vk}⊆V, t.q. por cada u,v∈C: (u,v)∈E.
Complexity©D.Moshkovitz
12
CLIQUE está en NPCon entrada G=(V,E),k:• Adivinar C={v1,...,vk}⊆V• Por cada u,v∈C: comprobar que
(u,v)∈E• Rechazar si alguna comprobación
falla, aceptar en otro caso
La longitud del certificado: O(n) (n=|V|)El tiempo de ejecución: O(n2)
Complexity©D.Moshkovitz
13
SIP 251-253
CLIQUE es NP-Completo
Prueba: Demostraremos que3SAT≤pCLIQUE.
..)..(.......)..(.. ∨∨∧∧∨∨ ≤p
Complexity©D.Moshkovitz
14
La reducciónPor cada cláusula (α∨β∨γ)
⇒|V| = longitud de la fórmulaα β γ
conectadosi y sólo si
α≠¬δ
K=no. of cláusulas
δ
Complexity©D.Moshkovitz
15
Prueba¡NO
conectados!
1
.
.
.
k
Un clique de tamaño k debe contener un nodo
de cada capa.
Complexity©D.Moshkovitz
16
Las dos direcciones de la reducción
Dado un k-clique, asigna a x TRUE o FALSE según x o ¬x estén en el clique. Esto satisface la fórmula
.....)..(.......)..(.. ∨∨∧∧∨∨
Dada una asignación que satisface la fórmula, un conjunto formado por un
literal con valor TRUE de cada cláusula es un k-clique.
Complexity©D.Moshkovitz
17
INDEPENDENT-SETEntrada: Un grafo no dirigido G=(V,E) y un
natural k.Problema: Decidir si existe un conjunto de
nodos I={v1,...,vk}⊆V, t.q. Por cada u,v∈I: (u,v)∉E.
Complexity©D.Moshkovitz
18
INDEPENDENT-SET ∈ NP
Con entrada G=(V,E),k:• Adivinar I={v1,...,vk}⊆V• Por cada u,v∈C: comprobar
(u,v)∉E• Rechazar si alguna comprobación
falla, aceptar en otro caso.
La longitud del certificado: O(n) (n=|V|)El tiempo de ejecución: O(n2)
Complexity©D.Moshkovitz
19
INDEPENDENT-SET ∈ NPC
Prueba: Por el hecho de estar en NP y una reducción trivial desde CLIQUE.
Existe un k-IS en el grafo
complementario
Existe un k-clique
Complexity©D.Moshkovitz
20
SUBSET-SUM
Entrada: Un conjunto de números S y un número t a obtener.
Problem: Decidir si existe un subconjuntoY⊆S tal que Σn∈Y n = t.
Complexity©D.Moshkovitz
21
SUBSET-SUM está en NP
Con entrada S,t:• Adivinar Y⊆S• Aceptar si y sólo si Σn∈Y n = t.
La longitud del certificado es : O(n) (n=|S|)El tiempo de ejecución es polinómico.
Complexity©D.Moshkovitz
22
SIP 269-271
SUBSET-SUM ∈ NPC
Prueba: 3SAT≤pSUBSET-SUM.
..)..(.......)..(.. ∨∨∧∧∨∨ ≤p
Complexity©D.Moshkovitz
23
SUBSET-SUM ∈ NPC
c1 c2 …… ck
un dígito por cláusula
numéro por cada variable xi con valor true: yi
numéro por cada variable con xi valor false : zi
1 si xi está en cj
0 en otro caso1 si ¬xi está en cj
0 en otro caso
Complexity©D.Moshkovitz
26
011101
000001
100100
001001
c1 c2 … cky1
z1
…
yl
zlUn subconjunto podría contener
tanto a yi como a zi
SUBSET-SUM ∈ NPC
. . .
. . .
3 3 3
Complexity©D.Moshkovitz
27
SUBSET-SUM ∈ NPC
011101
000001
. . .
y1
z1
…
yl
zl100100
001001
100100
001001
c1 c2 … ck
3 31 1 1 3
100100
001001
. . .
Complexity©D.Moshkovitz
29
⇒Si existe una asignación que satisface la fórmula, entonces se puede elegir un subconjunto de números que sumen t:
– Si la variable i-ésima es TRUE, elegimos yi, en vez de zi. Si es FALSE, LO CONTRARIO
– Sumamos los números auxiliares que necesitemos.
⇒los 1’s
⇒ los 3’sSólo si la cláusula es TRUE
Las dos direcciones de la reducción
Complexity©D.Moshkovitz
30
Las dos direcciones de la reducción
⇐ Si existe un subconjunto que suma t, la fórmula es satisfactible:
– Si yi está en el subconjunto, asignarTRUE a la i-ésima variable.
– Si zi está en el subconjunto, asignarFALSE a la i-ésima variable.
Complexity©D.Moshkovitz
31
Observación: no hay “carry”
• Todos los dígitos son 0’s o 1’s.
• Cada columnacontiene comomucho cinco 1’s.
• No existe “carry”.
011101
000001
c1 c2 … cky1
z1
…
yl
zl
3 3 3
100
1 0 01 0 0
0 0 1
1 0 01 0 0
0 0 10 0 1
1 1 1
Complexity©D.Moshkovitz
32
La asignación es consistente
• El subconjunto sólopuede contener o bien yi o bien zi, pero no los dos a la vez.
011101
000001
c1 c2 … cky1
z1
…
yl
zl
3 3 3
1 0 01 0 0
0 0 10 0 1
1 0 01 0 0
0 0 10 0 1
1 1 1
Complexity©D.Moshkovitz
33
La fórmula es satisfactible
• En cada columna, como mucho, se pueden obtener 2 unidades de los números auxiliares.Por tanto todas las cláusulas son satisfechas.
011101
000001
c1 c2 … cky1
z1
…
yl
zl
3 3 3
1 0 01 0 0
0 0 10 0 1
1 0 01 0 0
0 0 10 0 1
1 1 1
Complexity©D.Moshkovitz
34
SUBSET-SUM ∈ NPC
1. SUBSET-SUM está en NP2. 3SAT ≤p SUBSET-SUM3. SUBSET-SUM es NP-Completo
Complexity©D.Moshkovitz
35
Resumen
• Hemos añadido más problemas a la clase NPC.
• Es muy importante señalar que ¡NPCcontiene más de 1000 problemas diferentes!
Complexity©D.Moshkovitz
37
Diccionario
literal: variable booleana negada o noEjemplo: x, ¬x
cláusula: varios literales unidos por ∨
Ejemplo: (x∨¬y∨z)CNF (Conjunctive Normal Form): varias cláusulasunidas por ∧
Ejemplo: (x∨ y)∧(x∨¬y∨z)3CNF: un fórmula CNF con 3 literales en cada cláusula
Ejemplo: (x∨y∨¬z)∧(x∨¬y∨z)
negación: not (¬)conjunción: and (∧)disjunción: or (∨)