Teoria de La Complejidad Computacional

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 15

0David Leonardo Figueredo Manrique ¿Cuando decimos que L es un problema

Código. 99030806260 difícil?


◮ Cuando no existe un algoritmo eficiente
TEORIA DE LA COMPLEJIDAD que decide L.
COMPUTACIONAL
MÁQUINAS DE TURING
¿Cómo podemos demostrar que un
PROBLEMAS DE DECISIÓN problema es difícil?
◮ Para hacer esto, primero tenemos que
Alfabeto A: Conjunto finito de símbolos. formalizar la noción de
◮ Ejemplo: A = {0, 1}. algoritmo.
Palabra w: Secuencia finita de símbolos ¿Qué es un algoritmo? ¿Podemos
de A. formalizar este concepto?
◮ Ejemplo: w = 01101. ◮ Maquinas de Turing: Intento por
formalizar este concepto.
A∗: Conjunto de todas las palabras
¿Podemos demostrar que las máquinas de
construidas con símbolos de A.
Turing capturan la
Lenguaje L: Conjunto de palabras. noción de algoritmo?
◮ Ejemplo: L = {0n1n | n ∈ N}. ◮ No, el concepto de algoritmo es
Problema de decisión asociado a un intuitivo.
lenguaje L: Dado w ∈ A∗, decidir si w ∈ ¿Porque creemos que las máquinas de
L. Turing son una buena
Ejemplo formalización del concepto de algoritmo?
Podemos ver SAT como un problema de ◮ Porque cada programa de una máquina
decisión. Suponga que de Turing puede ser
P = {p, q}: implementado.
◮ A = {p, q, ¬, ∧, ∨, →, ↔, (,)} ◮ Porque todos los algoritmos conocidos
Algunas palabras de A∗ representan han podido ser
implementados en máquinas de Turing.
fórmulas de L(P),
◮ Porque todos los otros intentos por
mientras que otras tales como ¬¬ y p¬ formalizar este concepto fueron
q ∧ ∧ ∨ q no reducidos a las máquinas de Turing.
representan formulas. ◮ Los mejores intentos resultaron ser
◮ SAT = {w ∈ A∗ | w representa una equivalentes a las maquinas
fórmula de L(P) y w es de Turing.
satisfacerle}. ◮ Todos los intentos “razonables” fueron
reducidos
COMPLEJIDAD DE UN PROBLEMA eficientemente.
DE DECISIÓN ◮ Tesis de Church: Algoritmo = Maquina
La complejidad de un lenguaje L es la de Turing.
complejidad del problema de decisión
asociada a L. MÁQUINAS DE TURING:
¿Cuando decimos que L puede ser COMPONENTES
solucionado eficientemente? Dado: Alfabeto A que no contiene
◮ Cuando existe un algoritmo eficiente símbolo especial B.
que decide L. Componentes:
◮ Memoria: Arreglo infinito (en ambas ◮ F es un conjunto de estados finales (F
direcciones) que en cada 6= ∅).
posición almacena un símbolo de A ∪ ◮ δ es una función parcial:
{B}. δ: Q × (A ∪ {B}) → Q × (A ∪ {B}) ×
◮ Control: Conjunto finitos de estados, {←, →}.
una cabeza lectora, un δ es llamada función de transición.
estado inicial y un conjunto de estados Suponemos que su
finales. dominio no es vacío.
◮ Programa: Conjunto de instrucciones.

MÁQUINAS DE TURING:
FUNCIONAMIENTO MÁQUINAS DE TURING: EJEMPLO
Inicialmente: Queremos construir una máquina que
◮ La máquina recibe como entrada una verifique si el largo de una
palabra w. palabra de 0s es par: M = (Q, A, q0, δ, F)
◮ Coloca esta palabra en alguna parte del ◮ A = {0}.
arreglo. En las ◮ Q = {q0, q1, qS, qN}.
posiciones restantes el arreglo contiene ◮ F = {qS}.
símbolo blanco B. ◮ δ es definida como:
◮ La cabeza lectora se coloca en la δ (q0, 0) = (q1, 0, →)
primera posición de w y la maquina δ (q0, B) = (qS, B, →)
queda en el estado inicial q0. δ (q1, 0) = (q0, 0, →)
δ (q1, B) = (qN, B, →)
En cada paso:
◮ La máquina lee el símbolo a en la celda MÁQUINAS DE TURING:
apuntada por la cabeza lectora y EJECUCIÓN
determina en qué estado q se encuentra. Supongamos que w = 0000:
◮ Busca en el programa una instrucción
para (q, a). Si esta instrucción no existe,
entonces la maquina se detiene.
◮ Si la instrucción existe, entonces la
ejecuta: Escribe un símbolo en la posición
apuntada por la cabeza lectora, pasa a un
nuevo estado y mueve la cabeza lectora a
la derecha o a la izquierda Si la maquina
se detiene en un estado final, entonces la
maquina Acepta.

MÁQUINAS DE TURING:
FORMALIZACIÓN
Definición
Máquina de Turing (determinista): (Q, A,
q0, δ, F)
◮ Q es un conjunto finito de estados.
◮ A es un alfabeto tal que B 6∈ A.
◮ q0 es el estado inicial (q0 ∈ Q).
MÁQUINAS DE TURING: PALABRA ¿Existen problemas para los cuales no
VACÍA hay algoritmos? ¿Se puede
Finalmente supongamos que w = ε: demostrar esto?

EXISTENCIA DE PROBLEMAS NO
DECIDIRLES
Sea A = {0, 1}.
◮ ¿Cuantos lenguajes con alfabeto A
existen?
◮ ¿Cuantas máquinas de Turing con
Inicialmente: La cabeza lectora se alfabeto A existen?
encuentra en una posición cualquiera. ◮ ¿Existen lenguajes no decidirles?
◮ Si lanzamos un dardo al azar sobre el
EL LENGUAJE ACEPTADO POR espacio de todos los
UNA MÁQUINA DE TURING lenguajes con alfabeto A, ¿cuál es la
Definición probabilidad de que el
Dada una máquina de Turing M = (Q, A, dardo caiga en un problema decidirle?
q0, δ, F): L(M) = {w ∈ A∗ | M acepta w}.
L(M) es el lenguaje aceptado por M. La demostración anterior no es
En el ejemplo anterior: L(M) = {w ∈ {0} constructiva.
∗ | largo de w es par}. ◮ Sabemos que existe un problema
indecidible, pero no sabemos
DETENCIÓN DE UNA MÁQUINA es este lenguaje. Vamos a construir un
DE TURING lenguaje indecidible.
Una máquina de Turing puede no ◮ Usamos diagonalizacion.
detenerse en alguna entrada.
Ejemplo CODIFICACIÓN DE UNA
M = (Q, A, q0, δ, F), donde Q = {q0, q1}, MÁQUINA DE TURING
A = {0}, F = {q1} y δ Primero tenemos que introducir algo de
es definida de la siguiente forma: terminología. Supongamos que M = (Q,
δ (q0, 0) = (q1, 0, →) A, q1, δ, F), donde
δ (q0, B) = (q0, B, →) ◮ Q = {q1, . . ., qN}.
¿Con que palabra no se detiene esta ◮ A = {0, 1}.
máquina? ◮ F = {qi1, qi2, . . ., qim}, 1 ≤ i1 < i2 <
・ ・ ・ < im ≤ n.
PROBLEMAS DECIDIRLES Definimos una palabra C(M) =
Si una máquina de Turing no se detiene wQ00wδ00wF que representa a M.
en alguna entrada, entonces no puede ser
utilizada como un algoritmo. ◮ wQ:
◮ Un buen programa en C o Java no se
debería quedar en un loor infinito.
Definición Un lenguaje L es decidirle si
existe una máquina de Turing M que
se detiene en todas las entradas y tal que ◮ wδ: Usamos 1 para representar símbolo
L = L(M). 0, 11 para símbolo 1 y
111 para símbolo B. También usamos 1 primero un problema más simple.
para representar ← y 11 para →.
wδ es de la forma w1 ・ ・ ・ wok,
donde cada si representa una transición. UN PROBLEMA DE DECISIÓN MÁS
Por ejemplo, si δ (qim, 0) = (qj, B, ←), SIMPLE
entonces la siguiente palabra representa Otro problema de decisión Dada una
esta transición: máquina de Turing M, ¿es cierto que M
se detiene con entrada C(M)?
Le damos como entrada a M su propio
código, ¿es válido hacer esto?
◮ S´ı, C(M) es una palabra como
cualquier otra.
CODIFICACIÓN DE UNA Como problema de decisión:
MÁQUINA DE TURING: EJEMPLO H = {w ∈ {0, 1} ∗ | existe una MT M tal
Sea M = (Q, A, q1, δ, F), donde Q = {q1, que
q2, q3, q4}, A = {0, 1}, w = C(M) y M se detiene con entrada
F = {q3} y δ es definido de la siguiente C(M)}.
forma:
δ (q1, 0) = (q1, 0, →) δ (q2, B) = (q3, B, UN PROBLEMA DE DECISIÓN MÁS
←) SIMPLE: DEMOSTRACIÓN
δ (q1, 1) = (q2, 1, →) δ (q2, 0) = (q4, 0, Teorema
←) H es indecidible, vale decir, no existe una
δ (q2, 1) = (q4, 1, ←) máquina de Turing M que se detiene en
Entonces: C(M) = wQ00wδ00wF, donde: todas las entradas y tal que H = L(M).
wQ = 001001100111001111 Demostración: Por contradicción, asuma
wQ = 00111 que existe una MT M⋆ que se detiene en
wδ = todas las entradas y tal que H = L(M⋆).
001001001001001100100110011001100 Vale decir: para cada MT M, si M se
110011001110011100111001001100100 detiene con su propio código, entonces
1111001001001100110011110011001 M⋆ con entrada C(M) se detiene en un
estado final. En caso contrario, M⋆ se
UN PROBLEMA INDECIDIBLE: detiene en un estado que no es final.
PROBLEMA DE LA PARADA
Problema natural Sea M0 una MT que con entrada w
Dada una máquina de Turing M y una funciona de la siguiente forma:
palabra w, ¿se detiene M con entrada w? hace funcionar la maquina M⋆ con
Como problema de decisión: entrada w si M⋆ se detiene en un estado
Consideramos máquinas de Turing final entonces M0 no se detiene
con alfabeto {0, 1}. Entonces, en caso contrario M0 se detiene en un
U = {w′ ∈ {0, 1} ∗ | existe una MT M y w estado final
∈ A∗ tal que ¿Es posible construir M0? ¿Cómo?
w′ = C(M)0000w y M se detiene con
entrada w}. La pregunta ahora es si M⋆ acepta M0:
¿Es este problema decidirle? M⋆ acepta M0
◮ Vamos a demostrar que no, pero para si y solo si
eso vamos a considerar M0 se detiene con entrada C(M0)
si y solo si δ (q1, 0) = (q1, 0, →) δ (q2, B) = (q3, 0,
M⋆ se detiene en un estado no final con →)
entrada C(M0) δ (q1, 1) = (q1, 1, →) δ (q3, B) = (q4, 0,
si y solo si →)
M⋆ no acepta M0 δ (q1, B) = (q2, 0, →) δ (q4, B) = (qN, 0,
¡Tenemos una contradicción! →)

LA NOCIÓN DE REDUCCIÓN LA NOCIÓN DE REDUCCIÓN:


Dado: Lenguajes L1 y L2 con alfabeto A. FORMALIZACIÓN
Intuición: Decimos que un lenguaje L1 es Definición
reducible a un lenguaje Dados lenguajes L1 y L2 con alfabeto A,
L2 si existe un algoritmo tal que dado w1 L1 es reducible a L2 si existe una función
∈ A∗, calcula w2 ∈ A∗ tal computable f tal que para todo w ∈ A∗:
que w1 ∈ L1 si y solo si w2 ∈ L2. w ∈ L1 si y solo si f (w) ∈ L2.
Para formalizar esta idea necesitamos Teorema
introducir la noción de Suponga que L1 es reducible a L2.
algoritmo que calcula. ◮ Si L2 es decidirle entonces L1 es
◮ Tenemos que introducir máquinas de decidirle.
Turing que calculan. ◮ Si L1 es indecidible entonces L2 es
indecidible.
MÁQUINAS DE TURING QUE
CALCULAN EL PROBLEMA DE LA PARADA:
Definición DEMOSTRACIÓN
Una MT M calcula una función f: A∗ → Por fin estamos listos para demostrar que
A∗ si: con entrada w ∈ A∗, la maquina se el problema de la parada U es indecidible.
detiene en un estado final teniendo en la Demostración: Sea g: {0, 1} ∗ → {0, 1} ∗
memoria una cadena infinita de simba- definida como
los B seguida de f (w) seguida de otra g(w) = w0000w.
cadena infinita de símbolos B. Es fácil ver que g es computable y es una
reducción de H a U. Dado que H es
Definición indecidible, concluimos que U es
Una función f es computable si es que indecidible.
existe una máquina de Turing que calcula
f. PARÉNTESIS: OTRO PROBLEMA
INDECIDIBLE
Ejemplo ¿Puede una máquina de Turing funcionar
Sea g: {0, 1} ∗ → {0, 1} ∗ una función como un computador?
definida como ◮ Un computador es de uso general, no es
g(w) = w0000. Queremos demostrar que usado para resolver
g es computable. un solo problema.
Sea M = (Q, A, q1, δ, F), donde Definición
◮ Q = {q1, q2, q3, q4, qN}. Máquina de Turing universal MA con
◮ A = {0, 1}. alfabeto {0, 1}:
◮ F = {qN}. ◮ Recibe como entrada C(M)0000w.
◮ δ es definida como: ◮ Simula M con entrada w.
◮ Se detiene en un estado final si y solo si Teorema
M acepta w. Si MB es otra MT universal, entonces
Además, si M con entrada w retorna x, KA(x) ≤ KB(x) + |C(MB)| + 4
entonces MA también Vale decir: Las dos medidas solo difieren
retorna x. en una constante.

Suponga que cada vez que lanzamos una PARÉNTESIS: COMPLEJIDAD DE


moneda anotamos un 0 si KOLMOGOROV Y
sale cara y un 1 si sale sello. ALEATORIEDAD
◮ Decimos que estamos generando una Noción de aleatoriedad: una palabra x es
palabra “aleatoria”. aleatoria si su estructura
¿Cómo podemos definir la noción de “ser es compleja.
aleatorio”? ◮ x es “difícil de describir” (no puede ser
◮ ¿Es la siguiente palabra aleatoria? ¿Por “comprimida” mucho).
qué? Definición
000000000000000000000000000000000 Una palabra x es aleatoria si:
0000000 KA(x) >|x|2.
◮ ¿Qué sucede con el siguiente caso? ¿Es
aleatoria? PARÉNTESIS: ALEATORIEDAD ES
010101010101010101010101010101010 INDECIDIBLE
1010101 Problema de decisión: Dado x ∈ {0, 1} ∗,
◮ ¿Y en el siguiente caso diría que la ¿es x aleatorio?
palabra es aleatoria? Vamos a demostrar que este problema es
000110110111110001010100010011100 indecidible.
1100110 ◮ Nuevamente usamos diagonalizacion.
Teorema
PARÉNTESIS: COMPLEJIDAD DE El lenguaje LA = {x ∈ {0, 1} ∗ | KA(x) >
KOLMOGOROV |x|
Cuan aleatoria es una palabra depende de 2} es indecidible.
cuánto nos cuesta Demostración: Suponga que LA es
describirla. decidirle. Entonces existe una
◮ Para formalizar esta idea tenemos que MT M⋆ que se detiene en todas las
definir qué significa entradas y tal que L(M⋆) = LA.
“describir una palabra”.
Definición Defina una MT M que con entrada y ∈
Dado una palabra x, definimos la {0, 1} ∗ funciona de la
complejidad de Kolmogorov de x siguiente forma:
como: asigna 0 a x
KA(x) = min {|y| | MA con entrada y mientras que M⋆ no acepta x o |x| < 2・ y
retorna x}, incrementa x en 1
donde |y| es el largo de y. En particular, |ε| retorna x
= 0. Con entrada y: M genera una palabra x tal
que KA(x) > |x|
La complejidad de Kolmogorov depende 2 ≥ y.
de la MT universal que elijamos. ¿Qué
pasa si elegimos otra MT universal?
Dado que |y| = ⌈log (y + 1) ⌉: Existe y0 tal Si la maquina se detiene en un estado
que final, entonces la maquina
|C(M)| + 4 + |y0| ≤ y0. acepta w.
Sea x0 el valor retornado por M con
entrada y0. Definición
Entonces: KA(x0) > |x0| Dada una máquina de Turing M no
2 ≥ y0. determinista con alfabeto A:
Pero M con entrada y0 describe a x0: MT L(M) = {w ∈ A∗ | existe alguna ejecución
universal MA con de M con entrada w que termina en un
entrada C(M)0000y0 retorna x0. estado final}.
Entonces:
Entonces: KA(x0) ≤ |C(M)| + 4 + |y0| ≤ MÁQUINAS DE TURING NO
y0. ¡Tenemos una contradicción! DETERMINISTAS: PODER DE
COMPUTACIÓN
MÁQUINAS DE TURING NO ¿Son las máquinas de Turing no
DETERMINISTAS deterministas más poderosas que
Definición las deterministas?
Máquina de Turing no determinista: (Q, Teorema
A, q0, δ, F) Para cada MT no determinista M, existe
◮ Q es un conjunto finito de estados. una MT determinista M′
◮ A es un alfabeto tal que B 6∈ A. tal que M y M′ se detienen en las mismas
◮ q0 es el estado inicial (q0 ∈ Q). palabras y
◮ F es un conjunto de estados finales (F L(M) = L(M′).
6= ∅).
◮ δ ⊆ Q × (A ∪ {B}) × Q × (A ∪ {B}) × COMPLEJIDAD DE UN
{←, →}: Relación de transición. ALGORITMO
Suponemos que δ 6= ∅. Notación
Dada una MT determinista M con
MÁQUINAS DE TURING NO alfabeto A que para en todas
DETERMINISTAS: las entradas:
FUNCIONAMIENTO ◮ Paso de M: Ejecutar una instrucción de
Inicialmente: Tal como en una MT la función de
determinista. transición.
En cada paso: ◮ tiempo(w): Numero de pasos
◮ La máquina lee el símbolo a en la celda ejecutados por M con entrada w.
apuntada por la Definición
cabeza lectora y determina en qué estado Dado un número natural n:
q se encuentra. atm(n) = Max{tiempo(w) | w ∈ A∗ y |w| =
◮ Determina el conjunto de todas las n}.
instrucciones para (q, a). atm: tiempo de ejecución de M en el peor
Si este conjunto es vacío, entonces la caso.
maquina se detiene.
◮ Si el conjunto no es vacío, entonces COMPLEJIDAD DE UN PROBLEMA
escoge una instrucción de Definición
este conjunto y la ejecuta. Un lenguaje L puede ser aceptado en
tiempo t si existe una MT
determinista M tal que:
◮ M para en todas las entradas. LA NOCIÓN DE COMPLETITUD:
◮ L = L(M). REDUCCIÓN POLINOMIO
◮ atm es O(t), vale decir, existe c ∈ R+ y Definición
n0 ∈ N tal que Dados lenguajes L1 y L2 con alfabeto A,
atm(n) ≤ c ・ t(n) para todo n ≥ n0. decimos que L1 es
El tiempo para computar una función f se reducible en tiempo polinomio a L2 si
define de la misma existe una función f
forma. computable en tiempo polinomio tal que
para todo w ∈ A∗:
CLASES DE COMPLEJIDAD w ∈ L1 si y solo si f (w) ∈ L2.
Definición Teorema
Dado un alfabeto A, DTIME(t) se define Suponga que L1 es reducible en tiempo
como el conjunto de polinomio a L2.
todos los lenguajes L ⊆ A∗ que pueden ◮ Si L2 ∈ PTIME entonces L1 ∈ PTIME.
ser aceptados en tiempo t. ◮ Si L1 6∈ PTIME entonces L2 6∈
Dos clases fundamentales: PTIME.

LA NOCIÓN DE COMPLETITUD:
HARENES
Definición
Dada una clase de complejidad C que
PTIME: conjunto de todos los problemas contiene PTIME, decimos
que pueden ser solucionados que L es haré para C si para todo L′ ∈ C
eficientemente. existe una reducción
polinomio de L′ a L.
UN PROBLEMA FUNDAMENTAL Teorema
El problema fundamental de nuestra Si PTIME (C y L es haré para C, entonces
disciplina: L 6∈ PTIME.
Dado un problema, encontrar un Entonces: Para probar que L 6∈ PTIME,
algoritmo eficiente para solucionarlo o basta encontrar una clase
demostrar que no existe tal algoritmo. C tal que PTIME (C y demostrar que L es
Primera parte (puede ser difícil): haré para esta clase.
Demostrar que L ∈ DTIME(t).
◮ Si L = {w ∈ {0} ∗ | largo de w es par}, LA NOCIÓN DE COMPLETITUD
entonces Pero: También queremos saber cuál es la
L ∈ DTIME(n). complejidad exacta de un
Segunda parte (es difícil): Demostrar que problema.
L 6∈ DTIME(t). Definición
◮ ¿Es cierto que SAT 6∈ PTIME? Decimos que L es completo para C si L ∈
◮ ¿Cómo podemos atacar este problema? C y L es haré para C.
Corolario
Si PTIME (C y L es completo para C,
entonces L 6∈ PTIME.
¿Se conoce alguna clase C tal que PTIME
(¿C? ¿Se puede
demostrar que SAT 6∈ PTIME usando CLASES DE COMPLEJIDAD NO
este enfoque? DETERMINISTAS
Definición
LA EXISTENCIA DE PROBLEMAS Un lenguaje L es aceptado en tiempo t
DIFÍCILES por una MT M no
Veamos un ejemplo de una clase que determinista si:
contiene en forma estricta a ◮ L = L(M).
PTIME: ◮ tM es O(t).
Teorema
PTIME (EXPTIME. CLASES DE COMPLEJIDAD NO
Existen problemas naturales que son DETERMINISTAS
completos para EXPTIME, y Definición
que por lo tanto no pueden ser resueltos NTIME(t) se define como el conjunto de
eficientemente. todos los lenguajes que pueden ser
aceptados en tiempo t por alguna MT no
¿ES SAT UN PROBLEMA DIFÍCIL? determinista.
Para demostrar que SAT 6∈ PTIME, solo Una clase fundamental:
tenemos que demostrar
que SAT es haré para EXPTIME
◮ Nadie sabe cómo hacer esto.

LA COMPLEJIDAD DE SAT
Tenemos que usar máquinas de Turing no ALGUNAS PROPIEDADES DE LA
deterministas para CLASE NP
entender la complejidad exacta de SAT. ¿Dónde vive NP? PTIME ⊆ NP ⊆
Notación EXPTIME.
Dada una MT no determinista M con ◮ Se sabe que al menos una de estas
alfabeto A: inclusiones es estricta
◮ Paso de M: Ejecutar una instrucción de (¿por qué?), pero no se sabe cuál.
la relación de ◮ Tampoco se sabe si ambas inclusiones
transición. son estrictas.
◮ tiempo(w): Numero de pasos de M con
entrada w en la TEOREMA DE COOK
ejecución más corta que acepta a w. Teorema (Cook)
Solo está definido para palabras aceptadas SAT es completo para la clase NP.
por M. Demostración: Sea L ∈ NP. Tenemos que
demostrar que L es
Definición reducible en tiempo polinomio a SAT.
Dado un número natural n: Esto significa que existe una función f:
{0, 1} ∗ → {0, 1} ∗ tal que:
◮ f es computable en tiempo polinomio.
◮ Para cada w ∈ {0, 1} ∗ se tiene que w ∈
L si y solo si
f (w) ∈ SAT.
Notación: f (w) = W
TEOREMA DE COOK:
DEMOSTRACIÓN
¿Qué sabemos de L?
◮ Como L ∈ NP, existe una MT M no
determinista tal que L = L(M) y tM es
O(no), donde k > 0 es una constante.
Vamos a representar el funcionamiento de Tercero, la cabeza siempre está en una
M con entrada w usando la formula W: M ´única posición:
acepta w si y solo si W es satisfacerle.
Suponemos:
◮ M = (Q, {0, 1}, q0, δ, F), donde F =
{qim} y no existe una
transición en δ para qm. Cuarto, el valor de una celda no cambia si
◮ Para cada q ∈ (Q \ {qim}) y a ∈ {0, 1, no es apuntada por la cabeza lectora:
B}, existe al menos una
transición en δ para (q, a).
◮ w = a0 ・ ・ ・ en−1, donde cada a ∈
{0, 1}.

Usamos las siguientes variables


proposicionales:
a: La máquina acepta w.

ϕδ: relación δ define como funciona la


máquina.

pc: La máquina funciona correctamente.


pc se define como la conjunción de cuatro
formulas. Primero,
cada celda siempre contiene un ´único
símbolo: Representamos ← como -1 y → como 1.

OTROS PROBLEMAS NP-


COMPLETOS
Notación
Si L es completo para C, decimos que L
es C-completo.
Segundo, la maquina siempre está en un ¿Cómo podemos demostrar que un
´único estado: problema L es NP-completo?
◮ Nos basta con demostrar que L ∈ NP y The Board of Directors of CMI
que existe una reducción polinomio de designated a $7 million prize fund
SAT a L. Antes de utilizar esta técnica for the solution to these problems, with
tenemos que pensar que versión de $1 million allocated to each.”
SAT usar.
◮ En general es más fácil utilizar Uno de los siete problemas es PTIME
formulas en alguna forma versus NP:
“Suppose that you are organizing housing
Una versión de SAT muy ´útil: accommodations for a group of four
CNF-SAT = {ϕ | ϕ es una formula en hundred university students. Space is
CNF y ϕ es satisfacerle}. limited and only
¿Es CNF-SAT NP-completo? one hundred of the students will receive
◮ Podemos modificar la demostración del places in the dormitory. To complicate
Teorema de Cook para mostrar esto. matters, the Dean has provided you with a
Teorema CNF-SAT es NP-completo. list of pairs of incompatible students, and
requested that no pair from this list appear
PERO ALGUNAS VERSIONES DE in your final choice. This is an example of
SAT SON MÁS SIMPLES . . . what computer scientists call an NP-
Otra versión de SAT: problem, since it is easy to check if a
DNF-SAT = {ϕ | ϕ es una formula en given choice of one hundred students
DNF y ϕ es satisfacerle}. proposed by a coworker is satisfactory ...,
¿Est DNF-SAT NP-complete? however the task of generating such a list
◮ ¿Podemos modificar la demostración from scratch seems to be so hard as to be
del Teorema de Cook completely impractical ...”
para mostrar esto?
Teorema QUÉ HACER CON UN PROBLEMA
DNF-SAT está en PTIME. NP-COMPLETO
¿Qué hacemos si tenemos que solucionar
CONJETURA DE COOK un problema
Conjetura de Cook ¿NP-completo?
PTIME (NP ◮ Existen casos que no vamos a ser
Si la conjetura es cierta: capaces de solucionar.
◮ No existe un algoritmo eficiente para ◮ Pero, ¿Qué pasa en la práctica?
resolver SAT. Dado un problema NP-completo:
◮ Tampoco existen algoritmos eficientes ◮ Nos gustaría encontrar casos que
para resolver ninguno puedan ser solucionados
de los problemas NP-completos. eficientemente y que sean interesantes en
la práctica.
Desde la página del Clay Mathematics Ejemplo
Institute: “In order to celebrate 3-COL es NP-completo, pero 2-COL
mathematics in the new millennium, The puede ser solucionado
Clay Mathematics Institute of Cambridge, eficientemente.
Massachusetts (CMI) has named seven Vamos a ver dos casos en los que SAT
Prize Problems. The Scientific Advisory puede ser resuelto
Board of CMI selected these problems, eficientemente: 2-CNF-SAT y Clausulas
focusing on important classic questions de Horn.
that have resisted solution over the years.
LA COMPLEJIDAD DE 2-CNF-SAT
Sea 2-CNF-SAT = {ϕ | ϕ es una formula (⇒) Por contradicción: Suponga que ϕ es
en CNF que contiene dos satisfacerle y existe xi tal
literales por clausula y es satisfacerle}. que ¬xi es alcanzable desde xi y xi es
Teorema alcanzable desde ¬xi en Gϕ.
2-CNF-SAT puede ser solucionado Sea σ una valuación tal que σ(ϕ) = 1.
eficientemente. Consideramos σ (xi) = 1. El otro caso se
Demostración: Sea ϕ una formula en CNF resuelve de la misma
que contiene dos forma.
literales por clausula. Suponga que ϕ
menciona las variables
proposicionales x1, . . ., xn.
Sea Gϕ = (N, A) un grafo construido de la
siguiente forma:
◮ N = {x1, . . ., xn, ¬x1, . . ., ¬xn}.
◮ Para cada clausula C = l1 ∨ l2 en ϕ, A
contiene los arcos Pero: σ no satisface a ninguna de estas
(¯l1, l2) y (¯l2, l1). cláusulas, por lo que σ(ϕ) = 0, una
Nótese que este grafo es dirigido. contradicción.

(⇐) Suponga que para todo i ∈ [1, n]: xi


Ejemplo no es alcanzable desde
Si ϕ = (x1 ∨ x2) ∧ (¬x1 ∨ x3) ∧ (x2 ∨ ¬ ¬xi o ¬xi no es alcanzable desde xi en
x3), entonces Gϕ es el siguiente grafo: Gϕ.
Usamos Gϕ para construir una valuación
σ tal que σ(ϕ) = 1:

LA COMPLEJIDAD DE 2-CNF-SAT Primero tenemos que demostrar que σ


¿Por qué construimos Gϕ? ¿Cuál es la está bien definida:
relación entre ϕ y Gϕ? ◮ σ asigna un valor de verdad a cada
Vamos a demostrar que ϕ es satisfacerle variable xi.
si y solo si no existe un ◮ No existe una variable xi tal que el
nodo xi tal que ¬xi es alcanzable desde procedimiento asigna 1
xi y xi es alcanzable desde tanto a xi como a ¬xi .
¬xi en Gϕ.
¿Por qué nos sirve esta propiedad? Supongamos que l ′ fue elegido primero.
◮ Porque se puede verificar en tiempo Como ¯lj, . . ., ¯l1 es un camino en Gϕ
polinomio (¿cómo?). desde ¬xi a¯l: Existe un
camino en Gϕ desde l ′ a¯l. En muchos casos es posible modelar el
Como l ′ fue elegido primero: el dominio de aplicación
procedimiento asigna 1 a σ (¯l) y usando solo este tipo de reglas.
remueve tanto él como ¯l desde V.
Por lo tanto: l no es elegido y σ (l) = 0, LA COMPLEJIDAD DE HORN-SAT
una contradicción. Sea HORN-SAT = {ϕ | ϕ es una
Por lo tanto: En los dos primeros casos conjunción de cláusulas de Horn
σ(l1) = 1, y en el ´ultimo y ϕ es satisfacerle}.
caso σ(l2) = 1. Teorema
En cualquiera de los tres casos, σ (l1 ∨ l2) HORN-SAT puede ser solucionado
= 1, lo cual concluye la demostración. eficientemente.
CLÁUSULAS DE HORN
Notación LA COMPLEJIDAD DE NEG-HORN-
p es un literal positivo y ¬p es un literal SAT
negativo. C es una cláusula de Horn negativa si C
Una clausula C es de Horn si C contiene a contiene a lo más un
lo más un literal literal negativo.
Sea NEG-HORN-SAT = {ϕ | ϕ es una
CONOCIMIENTO DEFINITIVO conjunción de cláusulas de
Una formula (p ∧ q) → r expresa Horn negativas y ϕ es satisfacerle}.
conocimiento definitivo:
◮ Si sabemos que p y q son verdaderos, CLASES DE COMPLEJIDAD:
entonces también ESPACIO
sabemos que r es verdadero. Para recordar:
En cambio, una formula (p ∧ q) → (r ∨ s) Fácil de demostrar: PTIME ⊆ NP ⊆
no expresa conocimiento EXPTIME.
definitivo: No tan fácil de demostrar: PTIME
◮ Si sabemos que p y q son verdaderos, (EXPTIME.
no podemos concluir A ‘un sin resolver: ¿PTIME (¿NP?
que r es verdadero ni tampoco podemos ¿Nos basta con estas clases?
concluir que s es ◮ No, en algunos casos también es
verdadero, solo podemos concluir que necesario utilizar clases
alguno de los dos es definidas en término del espacio
verdadero. utilizado.
◮ Esta fórmula expresa conocimiento
disyuntivo. ESPACIO UTILIZADO EN UNA
MAQUINA DE TURING
Las cláusulas de Horn corresponden al Para introducir la noción de espacio
siguiente tipo de reglas que utilizado en una MT tenemos
expresan conocimiento definitivo: que distinguir entre:
◮ el espacio ocupado por la entrada, y
◮ el espacio necesario para procesar la
entrada. Para hacer esta distinción
utilizamos MT con dos cintas:
◮ Cinta para la entrada: Solo de lectura.
◮ Cinta de trabajo: Como en una MT
usual.
El espacio utilizado se mide en términos ◮ En este caso, usualmente se supone que
de las celdas visitadas en la maquina tiene una
la cinta de trabajo. tercera cinta donde escribe el resultado.
El espacio utilizado se
MÁQUINAS DE TURING CON mide solo considerando las celdas en la
CINTA DE TRABAJO cinta de trabajo.
Definición
Máquina de Turing con cinta de trabajo: CLASES DE COMPLEJIDAD:
(Q, A, q0, δ, F) ESPACIO
◮ Q es un conjunto finito de estados. Definición
◮ A es un alfabeto tal que B 6∈ A. Dado un alfabeto A, DSPACE(s) se
◮ q0 es el estado inicial (q0 ∈ Q). define como el conjunto de
◮ F es un conjunto de estados finales (F todos los lenguajes L ⊆ A∗ que pueden
6= ∅). ser aceptados en espacio s.
◮ δ es una función parcial: Tres clases fundamentales:
δ: Q × (A ∪ {B}) × (A ∪ {B}) →
Q × {←, →} × (A ∪ {B}) × {←, →}.
Suponemos que el dominio de δ no es
vacío.

ESPACIO UTILIZADO EN UNA MT


Dada una MT determinista M con
alfabeto A que para en todas RELACIÓN ENTRE CLASES DE
las entradas: COMPLEJIDAD
¿Cuál es la relación entre las clases de
◮ espacio(w): Numero de celdas distintas
complejidad que acabamos
visitadas en la cinta
de definir? La relación es más compleja:
de trabajo de M al procesar w.
LOGSPACE ⊆ PTIME ⊆ NP ⊆ PSPACE
Definición
Dado un número natural n: ⊆ EXPTIME ⊆ EXPSPACE.
También se sabe que: LOGSPACE
tM(n) = Max{espacio(w) | w ∈ A∗ y |w| =
(PSPACE (EXPSPACE.
n}.
Y todavía nos faltan las clases no
tM: Espacio utilizado en la ejecución de
deterministas ...
M en el peor caso.

ESPACIO UTILIZADO PARA


RESOLVER UN PROBLEMA
Definición
Un lenguaje L puede ser aceptado en
espacio s si es que existe una
MT determinista M tal que:
◮ M para en todas las entradas.
◮ L = L(M).
◮ tM es O(s).
El espacio requerido para computar una
función f se define de la misma forma.
CLASES DE COMPLEJIDAD NO
DETERMINISTAS: ESPACIO
Notación
Dada una MT no determinista M con
alfabeto _:
◮ espacio(w): Numero mínimo de celdas
distintas visitadas en
la cinta de trabajo de M, entre todas las
ejecuciones de M
que aceptan w.
Solo está definido para palabras aceptadas
por M.

Definición
Dado un número natural n:
tM(n) = Max {1} ∪
{espacio(w) | w ∈ _∗, |w| = n y M acepta
w}.
¿Por qué incluimos {1} en la definición?
Definición
Un lenguaje L es aceptado en espacio s
por una MT M no
determinista si:
◮ L = L(M).
◮ tM es O(s).

Definición
NSPACE(s) se define como el conjunto
de todos los lenguajes que pueden ser
aceptados en espacio s por alguna MT no
determinista. Dos clases fundamentales:

RELACIÓN ENTRE CLASES DE


COMPLEJIDAD
¿Cuál es la relación entre las clases de
complejidad que definimos?
Se sabe que: PSPACE = NPSPACE.
La relación final:

También podría gustarte