Introducci´on a la Complejidad Computacional
Complejidad Computacional
Objetivo: Medir lacomplejidad computacional de un problema. Vale decir: Medir la cantidad de recursos computacionales
necesarios para solucionar un problema. ◮ Tiempo
◮ Espacio ◮ ...
Para hacer esto primero tenemos que introducir la noci´on de
Problemas de decisi´on
Alfabeto A:Conjunto finito de s´ımbolos. ◮ Ejemplo: A={0,1}.
Palabra w:Secuencia finita de s´ımbolos deA. ◮ Ejemplo: w = 01101.
A∗: Conjunto de todas las palabras construidas con s´ımbolos deA.
Lenguaje L:Conjunto de palabras. ◮ Ejemplo: L={0n1n|n∈N}.
Problemas de decisi´on
Problema de decisi´on asociado a un lenguaje L:Dado w ∈A∗,
decidir si w ∈L.
Ejemplo
Podemos ver SAT como un problema de decisi´on. Suponga que P ={p,q}:
◮ A={p,q,¬,∧,∨,→,↔,(,)}
Algunas palabras deA∗ representan f´ormulas deL(P), mientras que otras tales como ¬¬ y p¬q∧ ∧ ∨q no representan f´ormulas.
◮ SAT = {w ∈A∗|w representa una f´ormula de L(P) y w es
Complejidad de un problema de decisi´on
La complejidad de un lenguaje Les la complejidad del problema de decisi´on asociado aL.
¿Cu´ando decimos queLpuede ser solucionado eficientemente? ◮ Cuando existe un algoritmo eficienteque decide L.
Ejercicio
Muestre que L={w ∈ {0,1}∗ |n´umero de 0s y 1s en w es el mismo}puede ser resuelto eficientemente.
¿Cu´ando decimos queLes un problema dif´ıcil?
M´aquinas de Turing
¿C´omo podemos demostrar que un problema es dif´ıcil?
◮ Para hacer esto, primero tenemos que formalizar la noci´on de algoritmo.
¿Qu´e es un algoritmo? ¿Podemos formalizar este concepto? ◮ M´aquinas de Turing: Intento por formalizar este concepto. ¿Podemos demostrar que las m´aquinas de Turing capturan la noci´on de algoritmo?
M´aquinas de Turing
¿Por qu´e creemos que las m´aquinas de Turing son una buena formalizaci´on del concepto de algoritmo?
◮ Porque cadaprogramade una m´aquina de Turing puede ser
implementado.
◮ Porque todos los algoritmos conocidos han podido ser
implementados en m´aquinas de Turing.
◮ Porque todos los otros intentos por formalizar este concepto fueron
reducidos a las m´aquinas de Turing.
◮ Los mejores intentos resultaron ser equivalentes a las m´aquinas de Turing.
◮ Todos los intentos “razonables” fueron reducidos
eficientemente.
M´aquinas de Turing: Componentes
Dado: AlfabetoA que no contiene s´ımbolo especial B.
Componentes:
◮ Memoria: Arreglo infinito (en ambas direcciones) que en cada posici´on almacena un s´ımbolo de A∪ {B}.
◮ Control: Conjunto finitos de estados, una cabeza lectora, un estado inicial y un conjunto de estados finales.
M´aquinas de Turing: Funcionamiento
Inicialmente:
◮ La m´aquina recibe como entrada una palabra w. ◮ Coloca esta palabra en alguna parte del arreglo. En las
posiciones restantes el arreglo contiene s´ımbolo blancoB. ◮ La cabeza lectora se coloca en la primera posici´on de w y la
M´aquinas de Turing: Funcionamiento
En cada paso:
◮ La m´aquina lee el s´ımboloa en la celda apuntada por la cabeza lectora y determina en que estadoq se encuentra. ◮ Busca en el programa una instrucci´on para (q,a). Si esta
instrucci´on no existe, entonces la m´aquina se detiene. ◮ Si la instrucci´on existe, entonces la ejecuta: Escribe un
s´ımbolo en la posici´on apuntada por la cabeza lectora, pasa a un nuevo estado y mueve la cabeza lectora a la derecha o a la izquierda.
Si la m´aquina se detiene en un estado final, entonces la m´aquina
M´aquinas de Turing: Formalizaci´on
Definici´on
M´aquina de Turing(determinista):(Q,A,q0, δ,F)
◮ Q es un conjunto finito de estados. ◮ A es un alfabeto tal queB6∈A. ◮ q0 es el estado inicial (q0∈Q).
◮ F es un conjunto de estados finales(F 6=∅). ◮ δ es una funci´on parcial:
δ : Q×(A∪ {B})→Q×(A∪ {B})× {←,→}. δ es llamada funci´on de transici´on. Suponemos que su dominio no es vac´ıo.
M´aquinas de Turing: Ejemplo
Queremos construir una m´aquina que verifique si el largo de una palabra de 0s es par: M = (Q,A,q0, δ,F) ◮ A={0}. ◮ Q ={q0,q1,qS,qN}. ◮ F ={qS}. ◮ δ es definida como: δ(q0,0) = (q1,0,→) δ(q0,B) = (qS,B,→) δ(q1,0) = (q0,0,→) δ(q1,B) = (qN,B,→)
M´aquinas de Turing: Ejecuci´on
Supongamos que w = 0000: . . . . . . . . . . . . . . . . . . q1 B B 0 0 0 0 B B B B 0 0 0 0 B B B B 0 0 0 0 B B q0 Paso 0: Paso 2: Paso 1: q0M´aquinas de Turing: Ejecuci´on
. . . . . . . . . . . . . . . . . . qS B B 0 0 0 0 B B B B 0 0 0 0 B B B B 0 0 0 0 B B Paso 3: Paso 4: Paso 5: q0 q1M´aquinas de Turing: Otra ejecuci´on
Ahora supongamos que w = 00000:
. . . . . . . . . . . . . . . . . . q0 Paso 0: Paso 2: Paso 1: B B 0 0 0 0 0 B B B B 0 0 0 0 0 B B B B 0 0 0 0 q0 B B 0 q1
M´aquinas de Turing: Otra ejecuci´on
. . . . . . . . . . . . . . . . . . . . . . . . qN Paso 3: Paso 4: B B 0 0 0 0 0 B B B B 0 0 0 0 0 B B Paso 5: B B 0 0 0 0 0 B B B B 0 0 0 0 0 B B Paso 6: q1 q0 q1M´aquinas de Turing: Palabra vac´ıa
Finalmente supongamos que w =ε:
. . . . . . . . . . . . qS Paso 0: Paso 1: B B B B B B B B q0
Inicialmente: La cabeza lectora se encuentra en una posici´on cualquiera.
El lenguaje aceptado por una m´aquina de Turing
Definici´on
Dada una m´aquina de Turing M = (Q,A,q0, δ,F):
L(M) = {w ∈A∗ |M acepta w}.
L(M) es el lenguaje aceptado porM.
El lenguaje aceptado por una m´aquina de Turing
Ejercicio
1. Construya una m´aquina de Turing que acepta el lenguaje de las palabras de 0s que tienen largo divisible por 3.
2. Construya una m´aquina de Turing que acepta el lenguaje de las palabras de 0s que tienen largo divisible por 6.
3. Construya una m´aquina de Turing que acepta el lenguaje de las palabras de 0s y 1s que tienen el mismo n´umero de 0s y 1s.
Detenci´on de una m´aquina de Turing
Una m´aquina de Turing puede no detenerse en alguna entrada.
Ejemplo
M = (Q,A,q0, δ,F), dondeQ ={q0,q1},A={0},F ={q1} yδ
es definida de la siguiente forma:
δ(q0,0) = (q1,0,→)
δ(q0,B) = (q0,B,→)
Problemas decidibles
Si una m´aquina de Turing no se detiene en alguna entrada, entonces no puede ser utilizada como un algoritmo.
◮ Un buen programa en C o Java no se deber´ıa quedar en un loop infinito.
Definici´on
Un lenguaje L es decidible si existe una m´aquina de Turing M que se detiene en todas las entradas y tal que L=L(M).
¿Existen problemas para los cuales no hay algoritmos? ¿Se puede demostrar esto?
Existencia de problemas no decidibles
Sea A={0,1}.
◮ ¿Cu´antos lenguajes con alfabetoA existen?
◮ ¿Cu´antas m´aquinas de Turing con alfabetoA existen? ◮ ¿Existen lenguajes no decidibles?
◮ Si lanzamos un dardo al azar sobre el espacio de todos los lenguajes con alfabetoA, ¿cu´al es la probabilidad de que el dardo caiga en un problema decidible?
Existencia de problemas no decidibles
La demostraci´on anterior no es constructiva.
◮ Sabemos que existe un problema indecidible, pero no sabemos como es este lenguaje.
Vamos a construir un lenguaje indecidible. ◮ Usamos diagonalizaci´on.
Codificaci´on de una m´aquina de Turing
Primero tenemos que introducir algo de terminolog´ıa. Supongamos que M = (Q,A,q1, δ,F), donde
◮ Q ={q1, . . . ,qn}. ◮ A={0,1}. ◮ F ={qi
1,qi2, . . . ,qim}, 1≤i1<i2 <· · ·<im ≤n.
Codificaci´on de una m´aquina de Turing
◮ wQ:
001001100· · ·00 1· · ·1 | {z } nveces
◮ wδ: Usamos 1 para representar s´ımbolo 0, 11 para s´ımbolo 1 y 111 para s´ımbolo B. Tambi´en usamos 1 para representar ←y 11 para →.
wδ es de la forma w1· · ·wk, donde cadawi representa una
transici´on. Por ejemplo, si δ(qi,0) = (qj,B,←), entonces la siguiente palabra representa esta transici´on:
00 1· · ·1 | {z } i veces 00100 1· · ·1 | {z } j veces 00111001
Codificaci´on de una m´aquina de Turing
En cambio, siδ(qi,1) = (qj,0,→), entonces la siguiente palabra representa la transici´on:
00 1· · ·1 | {z } i veces 001100 1· · ·1 | {z } jveces 0010011 ◮ wF: 00 1· · ·1 | {z } i1veces 00 1· · ·1 | {z } i2veces 00· · ·00 1· · ·1 | {z } imveces
Codificaci´on de una m´aquina de Turing: Ejemplo
Sea M = (Q,A,q1, δ,F), dondeQ ={q1,q2,q3,q4},A={0,1},F ={q3}yδ es definido de la siguiente forma:
δ(q1,0) = (q1,0,→) δ(q2,B) = (q3,B,←) δ(q1,1) = (q2,1,→) δ(q2,0) = (q4,0,←) δ(q2,1) = (q4,1,←) Entonces: C(M) =wQ00wδ00wF, donde: wQ = 001001100111001111 wF = 00111 wδ = 00100100100100110010011001100110011 00110011100111001110010011001001111001001 001100110011110011001
Un problema indecidible: Problema de la parada
Problema naturalDada una m´aquina de Turing M y una palabraw, ¿se detiene M con entrada w?
Como problema de decisi´on: Consideramos m´aquinas de Turing con alfabeto{0,1}. Entonces,
U = {w′ ∈ {0,1}∗ | existe una MTM yw ∈A∗ tal que
w′ =C(M)0000w yM se detiene con entradaw}.
¿Es este problema decidible?
◮ Vamos a demostrar que no, pero para eso vamos a considerar primero un problema m´as simple.
Un problema de decisi´on m´as simple
Otro problema de decisi´onDada una m´aquina de Turing M, ¿es cierto queM se detiene con entrada C(M)?
Le damos como entrada a M su propio c´odigo, ¿es v´alido hacer esto?
◮ S´ı,C(M) es una palabra como cualquier otra. Como problema de decisi´on:
H = {w ∈ {0,1}∗ | existe una MT M tal que
Un problema de decisi´on m´as simple: Demostraci´on
Teorema
H es indecidible, vale decir, no existe una m´aquina de Turing M que se detiene en todas las entradas y tal que H =L(M).
Demostraci´on: Por contradicci´on, asuma que existe una MTM⋆
que se detiene en todas las entradas y tal que H =L(M⋆).
Vale decir: para cada MT M, si M se detiene con su propio c´odigo, entonces M⋆ con entradaC(M) se detiene en un estado final. En
Un problema de decisi´on m´as simple: Demostraci´on
Sea M0 una MT que con entradaw funciona de la siguiente forma:
hace funcionar la m´aquinaM⋆ con entradaw si M⋆ se detiene en un estado final
entoncesM0 no se detiene
en caso contrarioM0 se detiene en un estado final
Un problema de decisi´on m´as simple: Demostraci´on
La pregunta ahora es si M⋆ aceptaM0:
M⋆ aceptaM 0
si y s´olo si
M0 se detiene con entradaC(M0) si y s´olo si
M⋆ se detiene en un estado no final con entradaC(M 0)
si y s´olo si
M⋆ no aceptaM 0
Un problema indecidible: Problema de la parada
Podemos concluir que nuestro problema original U es indecidible. ◮ ¿Por qu´e?
Pero, ¿c´omo demostramos formalmente que U es indecidible? ◮ Tenemos que formalizar el concepto dereducci´on.
La noci´on de reducci´on
Dado: Lenguajes L1 yL2 con alfabetoA.
Intuici´on: Decimos que un lenguajeL1 es reduciblea un lenguaje
L2 si existe un algoritmo tal que dadow1 ∈A∗, calculaw2∈A∗ tal
que w1 ∈L1 si y s´olo siw2 ∈L2.
Para formalizar esta idea necesitamos introducir la noci´on de
algoritmo que calcula.
M´aquinas de Turing que calculan
Definici´on
Una MT M calcula una funci´on f :A∗ →A∗ si:
con entrada w ∈A∗, la m´aquina se detiene en un estado final teniendo en la memoria una cadena infinita de s´ımbo-los B seguida de f(w) seguida de otra cadena infinita de s´ımbolos B.
Definici´on
Una funci´on f es computablesi es que existe una m´aquina de Turing que calcula f .
M´aquinas de Turing que calculan
Ejemplo
Sea g :{0,1}∗ → {0,1}∗ una funci´on definida como g(w) =w0000. Queremos demostrar queg es computable. Sea M = (Q,A,q1, δ,F), donde ◮ Q ={q1,q2,q3,q4,qF}. ◮ A={0,1}. ◮ F ={qF}. ◮ δ es definida como: δ(q1,0) = (q1,0,→) δ(q2,B) = (q3,0,→) δ(q1,1) = (q1,1,→) δ(q3,B) = (q4,0,→) δ(q1,B) = (q2,0,→) δ(q4,B) = (qF,0,→)
La noci´on de reducci´on: Formalizaci´on
Definici´on
Dados lenguajes L1 y L2 con alfabeto A, L1 es reduciblea L2 si
existe una funci´on computable f tal que para todo w ∈A∗:
w ∈L1 si y s´olo si f(w)∈L2.
Teorema
Suponga que L1 es reducible a L2.
◮ Si L
2 es decidible entonces L1 es decidible.
◮ Si L1 es indecidible entonces L2 es indecidible.
Ejercicio
El problema de la parada: Demostraci´on
Por fin estamos listos para demostrar que el problema de la parada U es indecidible.
Demostraci´on: Sea g :{0,1}∗ → {0,1}∗ definida como
g(w) =w0000w.
Es f´acil ver queg es computable y es una reducci´on deH aU. Dado que H es indecidible, concluimos que U es indecidible.
Par´entesis: Otro problema indecidible
¿Puede una m´aquina de Turing funcionar como un computador? ◮ Un computador es de uso general, no es usado para resolver
un solo problema. Definici´on
M´aquina de Turing universal MA con alfabeto{0,1}: ◮ Recibe como entrada C(M)0000w .
◮ Simula M con entrada w .
◮ Se detiene en un estado final si y s´olo si M acepta w .
Adem´as, si M con entrada w retorna x, entonces MA tambi´en retorna x.
Par´entesis: La noci´on de aleatoriedad
Suponga que cada vez que lanzamos una moneda anotamos un 0 si sale cara y un 1 si sale sello.
◮ Decimos que estamos generando una palabra “aleatoria”. ¿C´omo podemos definir la noci´on de “ser aleatorio”?
◮ ¿Es la siguiente palabra aleatoria? ¿Por qu´e? 0000000000000000000000000000000000000000 ◮ ¿Qu´e sucede con el siguiente caso? ¿Es aleatoria?
0101010101010101010101010101010101010101
◮ ¿Y en el siguiente caso dir´ıa que la palabra es aleatoria? 0001101101111100010101000100111001100110
Par´entesis: Complejidad de Kolmogorov
Cuan aleatoria es una palabra depende de cuanto nos cuesta describirla.
◮ Para formalizar esta idea tenemos que definir que significa “describir una palabra”.
Definici´on
Dado una palabra x, definimos la complejidad de Kolmogorov de x como:
KA(x) = min{ |y| | MA con entrada y retorna x}, donde |y|es el largo de y . En particular,|ε|= 0.
Ejercicio
Par´entesis: Complejidad de Kolmogorov
La complejidad de Kolmogorov depende de la MT universal que elijamos. ¿Qu´e pasa si elegimos otra MT universal?
Teorema
Si MB es otra MT universal, entonces KA(x)≤KB(x) +|C(MB)|+ 4
Vale decir: Las dos medidas s´olo difieren en una constante.
Ejercicio
Par´entesis: Complejidad de Kolmogorov y aleatoriedad
Noci´on de aleatoriedad: una palabrax es aleatoria si su estructura es compleja.◮ x es “dif´ıcil de describir” (no puede ser “comprimida” mucho). Definici´on
Una palabra x es aleatoria si:
KA(x) > |x|
2 .
Ejercicio
1. Demuestre que existen infinitas palabras aleatorias.
Par´entesis: Aleatoriedad es indecidible
Problema de decisi´on: Dadox ∈ {0,1}∗, ¿esx aleatorio?
Vamos a demostrar que este problema es indecidible. ◮ Nuevamente usamos diagonalizaci´on.
Teorema
El lenguaje LA={x∈ {0,1}∗ |KA(x)> |x2|}es indecidible.
Demostraci´on: Suponga queLA es decidible. Entonces existe una
Par´entesis: Aleatoriedad es indecidible
Defina una MT M que con entrada y ∈ {0,1}∗ funciona de la siguiente forma:
asigna 0 ax
mientras que M⋆ no aceptax o |x|<2·y incrementax en 1
retorna x
Par´entesis: Aleatoriedad es indecidible
Dado que |y|=⌈log(y+ 1)⌉: Existe y0 tal que |C(M)|+ 4 +|y0| ≤y0.
Sea x0 el valor retornado por M con entrada y0.
Entonces : KA(x0) > |x20| ≥ y0.
Pero M con entraday0 describe a x0: MT universalMA con
entrada C(M)0000y0 retorna x0. Entonces:
Entonces : KA(x0) ≤ |C(M)|+ 4 +|y0| ≤ y0.
¿D´onde estamos?
El objetivo de esta secci´on es introducir la noci´on de complejidad computacional.
◮ Cuanto cuesta resolver un problema. Hasta ahora:
◮ Formalizamos la noci´on de algoritmoa trav´es de lasM´aquinas
de Turing.
◮ Demostramos que hay problemas muy dif´ıciles: indecidibles. Lo que viene:
◮ Definir la complejidad de un algoritmo. ◮ Estudiar la complejidad de un problema.
M´aquinas de Turing no deterministas
Definici´on
M´aquina de Turingno determinista: (Q,A,q0, δ,F)
◮ Q es un conjunto finito de estados. ◮ A es un alfabeto tal queB6∈A. ◮ q0 es el estado inicial (q0∈Q).
◮ F es un conjunto de estados finales(F 6=∅).
◮ δ ⊆Q×(A∪ {B})×Q×(A∪ {B})× {←,→}: Relaci´on de
transici´on.
M´aquinas de Turing no deterministas: Funcionamiento
Inicialmente: Tal como en una MT determinista. En cada paso:
◮ La m´aquina lee el s´ımboloa en la celda apuntada por la cabeza lectora y determina en que estadoq se encuentra. ◮ Determina elconjunto de todas las instrucciones para (q,a).
Si este conjunto es vac´ıo,entonces la m´aquina se detiene. ◮ Si el conjunto no es vac´ıo, entoncesescoge una instrucci´on de
este conjunto y la ejecuta.
Si la m´aquina se detiene en un estado final, entonces la m´aquina acepta w.
M´aquinas de Turing no deterministas: Lenguaje aceptado
Definici´on
Dada una m´aquina de Turing M no determinista con alfabeto A:
L(M) = {w ∈A∗ |existe alguna ejecuci´on de M
con entrada w que termina en un estado final}.
Ejercicio
1. Sea L={w ∈ {0}∗ |el largo de w es divisible por 2 ´o 3}. Construya una MT no determinista que acepte Ly que s´olo mueva su cabeza a la derecha.
M´aquinas de Turing no deterministas: Poder de
computaci´on
¿Son las m´aquinas de Turing no deterministas m´as poderosas que las deterministas?
Teorema
Para cada MT no determinista M, existe una MT determinista M′
tal que M y M′ se detienen en las mismas palabras y L(M) =L(M′).
Ejercicio
Complejidad de un algoritmo
Notaci´onDada una MT determinista M con alfabeto A que para en todas las entradas:
◮ Paso de M: Ejecutar una instrucci´on de la funci´on de transici´on.
◮ tiempo
M(w):N´umero de pasos ejecutados por M con entrada w .
Definici´on
Dado un n´umero natural n:
tM(n) = m´ax{tiempoM(w) | w ∈A∗ y|w|=n}.
Complejidad de un problema
Definici´on
Un lenguaje L puede ser aceptado en tiempo t si existe una MT determinista M tal que:
◮ M para en todas las entradas. ◮ L=L(M).
◮ tM es O(t), vale decir, existe c ∈R+ y n0∈Ntal que
tM(n)≤c ·t(n) para todo n≥n0.
El tiempo para computar una funci´onf se define de la misma forma.
Clases de complejidad
Definici´on
Dado un alfabeto A, DTIME(t)se define como el conjunto de todos los lenguajes L⊆A∗ que pueden ser aceptados en tiempo t.
Dos clases fundamentales:
PTIME = [ k∈N DTIME(nk). EXPTIME = [ k∈N DTIME(2nk).
PTIME: conjunto de todos los problemas que pueden ser solucionados eficientemente.
Un problema fundamental
El problema fundamental de nuestra disciplina:
Dado un problema, encontrar un algoritmo efi-ciente para solucionarlo o demostrar que no exis-te tal algoritmo.
Primera parte (puede ser dif´ıcil): Demostrar que L∈DTIME(t). ◮ Si L={w ∈ {0}∗ |largo de w es par}, entonces
L∈DTIME(n).
Segunda parte (es dif´ıcil): Demostrar que L6∈DTIME(t). ◮ ¿Es cierto que SAT6∈PTIME?
La noci´on de completitud: Reducci´on polinomial
Definici´onDados lenguajes L1 y L2 con alfabeto A, decimos que L1 es
reducible en tiempo polinomial a L2 si existe una funci´on f
computable en tiempo polinomial tal que para todo w ∈A∗: w ∈L1 si y s´olo si f(w)∈L2.
Teorema
Suponga que L1 es reducible en tiempo polinomial a L2.
◮ Si L
2∈PTIME entonces L1∈PTIME.
◮ Si L16∈PTIME entonces L26∈PTIME.
Ejercicio
La noci´on de completitud: Hardness
Definici´on
Dada una clase de complejidad C que contiene PTIME, decimos que L es hard para C si para todo L′∈ C existe una reducci´on polinomial de L′ a L.
Teorema
Si PTIME(C y L es hard paraC, entonces L6∈PTIME.
Entonces: Para probar que L6∈PTIME, basta encontrar una clase
C tal que PTIME(C y demostrar que Les hard para esta clase.
Ejercicio
La noci´on de completitud
Pero: Tambi´en queremos saber cual es la complejidad exactade un problema.
Definici´on
Decimos que L es completopara C si L∈ C y L es hard paraC.
Corolario
Si PTIME(C y L es completo para C, entonces L6∈PTIME. ¿Se conoce alguna clase C tal que PTIME(C? ¿Se puede demostrar que SAT6∈PTIME usando este enfoque?
La existencia de problemas dif´ıciles
Veamos un ejemplo de una clase que contiene en forma estricta a PTIME:
Teorema
PTIME(EXPTIME.
Existen problemas naturalesque son completos para EXPTIME, y que por lo tanto no pueden ser resueltos eficientemente.
Ejercicio
¿Es SAT un problema dif´ıcil?
Para demostrar que SAT6∈PTIME, s´olo tenemos que demostrar que SAT es hard para EXPTIME
◮ Nadie sabe como hacer esto. Preguntas a resolver:
◮ ¿Qu´e clase representa la complejidad de SAT? ¿Para qu´e clase de complejidad SAT es completo?
La complejidad de SAT
Tenemos que usar m´aquinas de Turing no deterministas para entender la complejidad exacta de SAT.
Notaci´on
Dada una MT no determinista M con alfabeto A:
◮ Paso de M: Ejecutar una instrucci´on de larelaci´on de transici´on.
◮ tiempo
M(w):N´umero de pasos de M con entrada w en la ejecuci´on m´as corta que acepta a w .
La complejidad de SAT
Definici´on
Dado un n´umero natural n:
tM(n) = m´ax{n} ∪ {tiempoM(w) |
w ∈A∗,|w|=n y M acepta w}.
Clases de complejidad no deterministas
Definici´on
Un lenguaje L es aceptado en tiempo t por una MT M no determinista si:
◮ L=L(M). ◮ tM es O(t).
Clases de Complejidad no deterministas
Definici´on
NTIME(t) se define como el conjunto de todos los lenguajes que pueden ser aceptados en tiempo t por alguna MT no determinista. Una clase fundamental:
NP = [
k∈N
NTIME(nk).
¿Por qu´e es tan importante esta clase? ¿Qu´e problemas est´an en esta clase? ¿Qu´e problemas son completos para esta clase?
Algunas propiedades de la clase NP
¿D´onde vive NP? PTIME ⊆NP ⊆EXPTIME.
◮ Se sabe que al menos una de estas inclusiones es estricta (¿por qu´e?), pero no se sabe cual.
◮ Tampoco se sabe si ambas inclusiones son estrictas. ¿Qu´e problemas est´an en NP?
Ejercicio
Muestre que SATy3-coloraci´on de grafosest´an en NP. ¿Qu´e problemas son completos para esta clase?
Teorema de Cook
Teorema (Cook)
SAT es completo para la clase NP.
Demostraci´on: Sea L∈NP. Tenemos que demostrar queLes reducible en tiempo polinomial a SAT.
Esto significa que existe una funci´on f :{0,1}∗ → {0,1}∗ tal que: ◮ f es computable en tiempo polinomial.
◮ Para cada w ∈ {0,1}∗ se tiene que w ∈Lsi y s´olo si f(w)∈SAT.
Teorema de Cook: Demostraci´on
¿Qu´e sabemos de L?◮ Como L∈NP, existe una MT M no determinista tal que L=L(M) ytM es O(nk), donde k >0 es una constante. Vamos a representar el funcionamiento de M con entradaw usando la f´ormula ϕw:M aceptaw si y s´olo si ϕw es satisfacible.
Suponemos:
◮ M = (Q,{0,1},q
0, δ,F), donde F ={qm} y no existe una
transici´on en δ para qm.
◮ Para cada q∈(Q\ {qm}) ya∈ {0,1,B}, existe al menos una transici´on en δ para (q,a).
◮ w =a
Teorema de Cook: Demostraci´on
Usamos las siguientes variables proposicionales:
st,p,a : t∈[0,tM(n)],p ∈[−tM(n),tM(n)] ya∈ {0,1,B}. ct,p : t∈[0,tM(n)] yp ∈[−tM(n),tM(n)].
et,q : t∈[0,tM(n)] yq ∈Q.
Teorema de Cook: Demostraci´on
ϕI:Estado inicial. c0,0∧e0,q0∧ −1 ^ p=−tM(n) s0,p,B ∧ n−1 ^ p=0 s0,p,ai ∧ tM(n) ^ p=n s0,p,B .Teorema de Cook: Demostraci´on
ϕC:La m´aquina funciona correctamente.
ϕC se define como la conjunci´on de cuatro f´ormulas. Primero,
cada celda siempre contiene un ´unico s´ımbolo:
tM(n) ^ t=0 tM(n) ^ p=−tM(n) (st,p,0∨st,p,1∨st,p,B)∧(st,p,0→(¬st,p,1∧¬st,p,B))∧ (st,p,1 →(¬st,p,0∧ ¬st,p,B))∧(st,p,B→(¬st,p,0∧ ¬st,p,1)) .
Teorema de Cook: Demostraci´on
Segundo, la m´aquina siempre est´a en un ´unico estado:
tM(n) ^ t=0 _ q∈Q (et,q∧ ^ q′∈(Q\{q}) ¬et,q′) .
Tercero, la cabeza siempre est´a en una ´unica posici´on:
tM(n) ^ t=0 tM(n) _ p=−tM(n) (ct,p∧ ^ p′∈([−tM(n),tM(n)]\{p}) ¬ct,p′) .
Teorema de Cook: Demostraci´on
Cuarto, el valor de una celda no cambia si no es apuntada por la cabeza lectora: tM(n)−1 ^ t=0 tM(n) ^ p=−tM(n) (¬ct,p)→((st,p,0∧st+1,p,0) ∨ (st,p,1∧st+1,p,1)∨(st,p,B∧st+1,p,B)) .
Teorema de Cook: Demostraci´on
ϕA:La m´aquina acepta w. tM(n) _ t=0 et,qm.Teorema de Cook: Demostraci´on
ϕδ:relaci´on δ define como funciona la m´aquina.
tM(n)−1 ^ t=0 tM(n)−1 ^ p=−(tM(n)−1) ^ (q,a)∈Q×{0,1,B} (et,q∧ct,p∧st,p,a) → _ (q′,a′,k) : (q,a,q′,a′,k)∈δ (et+1,q′ ∧ct+1,p+k∧st+1,p,a′) .
Otros problemas NP-completos
Notaci´on
Si L es completo para C, decimos que L es C-completo.
¿C´omo podemos demostrar que un problema Les NP-completo? ◮ Nos basta con demostrar que L∈NP y que existe una
reducci´on polinomial de SAT a L.
Antes de utilizar esta t´ecnica tenemos que pensar que versi´onde SAT usar.
◮ En general es m´as f´acil utilizar f´ormulas en alguna forma normal.
Otros problemas NP-completos
Una versi´on de SAT muy ´util:
CNF-SAT = {ϕ|ϕes una f´ormula en CNF yϕ es satisfacible}.
¿Es CNF-SAT NP-completo?
◮ Podemos modificar la demostraci´on del Teorema de Cook para mostrar esto.
Teorema
Pero algunas versiones de SAT son m´as simples
. . .
Otra versi´on de SAT:
DNF-SAT = {ϕ|ϕes una f´ormula en DNF yϕes satisfacible}.
¿Es DNF-SAT NP-completo?
◮ ¿Podemos modificar la demostraci´on del Teorema de Cook para mostrar esto?
Teorema
Otros problemas NP-completos
Ahora podemos usar la idea inicial para mostrar que otros problemas son NP-completos.
Algunos ejemplos:
◮ 3-CNF-SAT = {ϕ|ϕes una f´ormula en CNF que contiene tres literales por cl´ausula y es satisfacible}.
◮ 3-COL = {G |G es una grafo 3-coloreable}.
◮ PRO-ENT = {(A, ~b)|Aes una matriz de enteros,~b es un vector de enteros y existe un vector de enteros~x tal que A~x ≤~b}.
Conjetura de Cook
Conjetura de Cook PTIME(NP
Si la conjetura es cierta:
◮ No existe un algoritmo eficiente para resolver SAT.
◮ Tampoco existen algoritmos eficientes para resolver ninguno de los problemas NP-completos.
Conjetura de Cook
Desde la p´agina del Clay Mathematics Institute:
“In order to celebrate mathematics in the new millennium, The Clay Mathematics Institute of Cambridge, Massachusetts (CMI) has named seven Prize Problems. The Scientific Advisory Board of CMI selected these problems, focusing on important classic questions that have resisted solution over the years. The Board of Directors of CMI designated a $7 million prize fund for the solution to these problems, with $1 million allocated to each.”
Conjetura de Cook
Uno de los siete problemas es PTIME versus NP:
“Suppose that you are organizing housing accommodations for a group of four hundred university students. Space is limited and only one hundred of the students will receive places in the dormitory. To complicate matters, the Dean has provided you with a list of pairs of incompatible students, and requested that no pair from this list appear in your final choice. This is an example of what computer scientists call an NP-problem, since it is easy to check if a given choice of one hundred students proposed by a coworker is satisfac-tory ..., however the task of generating such a list from scratch seems to be so hard as to be completely impractical ...”
Ejercicio
Muestre que el problema mencionado en este p´arrafo es NP-completo.
Que hacer con un problema NP-completo
¿Qu´e hacemos si tenemos que solucionar un problema NP-completo?◮ Existen casos que no vamos a ser capaces de solucionar. ◮ Pero, ¿Qu´e pasa en la pr´actica?
Dado un problema NP-completo:
◮ Nos gustar´ıa encontrar casos que puedan ser solucionados eficientemente y que sean interesantes en la pr´actica.
Ejemplo
3-COL es NP-completo pero 2-COL puede ser solucionado eficientemente.
Vamos a ver dos casos en los que SAT puede ser resuelto eficientemente: 2-CNF-SAT yCl´ausulas de Horn.
La complejidad de 2-CNF-SAT
Sea 2-CNF-SAT ={ϕ|ϕes una f´ormula en CNF que contiene dos literales por cl´ausula y es satisfacible}.
Teorema
2-CNF-SAT puede ser solucionado eficientemente.
Demostraci´on: Sea ϕuna f´ormula en CNF que contiene dos literales por cl´ausula. 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 cl´ausulaC =l1∨l2 enϕ,Acontiene los arcos (¯l1,l2) y (¯l2,l1).
La complejidad de 2-CNF-SAT
Ejemplo Si ϕ=(x1∨x2)∧(¬x1∨x3)∧(x2∨ ¬x3), entonces Gϕ es el siguiente grafo: ¬x3 x1 x2 x3 ¬x1 ¬x2La complejidad de 2-CNF-SAT
¿Por qu´e construimos Gϕ? ¿Cu´al es la relaci´on entre ϕyGϕ?
Vamos a demostrar que ϕes satisfacible si y s´olo si no existe un nodo xi tal que¬xi es alcanzable desde xi yxi es alcanzable desde
¬xi en Gϕ.
¿Por qu´e nos sirve esta propiedad?
La complejidad de 2-CNF-SAT
(⇒) Por contradicci´on: Suponga queϕes satisfacible y existexi tal
que ¬xi es alcanzable desde xi yxi es alcanzable desde¬xi enGϕ.
Sea σ una valuaci´on tal que σ(ϕ) = 1.
Consideramos σ(xi) = 1. El otro caso se resuelve de la misma
La complejidad de 2-CNF-SAT
Como ¬xi es alcanzable desdexi enGϕ:Existe un camino l1, . . . ,lk enGϕ tal quek ≥2,l1=xi ylk =¬xi.
Como σ(¬xi) = 0: Existej ∈[1,k−1] tal queσ(lj) = 1 y
σ(lj+1) = 0.
Como (lj,lj+1)∈A:(¯lj∨lj+1) o (lj+1∨¯lj) es una cl´ausula enϕ.
Pero: σ no satisface a ninguna de estas cl´ausulas, por lo que σ(ϕ) = 0, una contradicci´on.
La complejidad de 2-CNF-SAT
(⇐) Suponga que para todo i ∈[1,n]: xi no es alcanzable desde
¬xi o ¬xi no es alcanzable desde xi enGϕ.
Usamos Gϕ para construir una valuaci´onσ tal queσ(ϕ) = 1:
SeaV ={x1, . . . ,xn,¬x1, . . . ,¬xn}
MientrasV 6=∅
elija li ∈V tal que ¯li no es alcanzable desde li enGϕ V :=V \ {li,l¯i}
σ(li) := 1
Para todo lj tal que lj es alcanzable desde li enGϕ V :=V \ {lj,l¯j}
La complejidad de 2-CNF-SAT
Primero tenemos que demostrar que σ est´a bien definida: ◮ σ asigna un valor de verdad a cada variablexi.
◮ No existe una variable xi tal que el procedimiento asigna 1 tanto axi como a ¬xi.
La complejidad de 2-CNF-SAT
Segundo punto: Por contradicci´on, asuma que existexi tal que el
procedimiento asigna 1 tanto a xi como a ¬xi.
Entonces existen literales l yl′ tales que:
◮ l yl′ fueron elegidos en la tercera linea del procedimiento. ◮ Existe un camino l 1,. . .,lj enGϕ tal que j ≥1,l1=l y lj =xi. ◮ Existe un camino l′ 1,. . .,lk′ enGϕ tal que k ≥1,l1′ =l′ y l′ k =¬xi.
La complejidad de 2-CNF-SAT
Supongamos que l′ fue elegido primero.
Como ¯lj, . . . ,l¯1 es un camino enGϕ desde¬xi a ¯l:Existe un camino en Gϕ desdel′ a ¯l.
Como l′ fue elegido primero:el procedimiento asigna 1 aσ(¯l) y remueve tanto l como ¯l desdeV.
La complejidad de 2-CNF-SAT
Para terminar la demostraci´on, tenemos que mostrar que σ(ϕ) = 1.
◮ Sea C =l1∨l2 una cl´ausula en ϕ. Tenemos que demostrar que σ(C) = 1.
Como (l1∨l2) es una cl´ausula en ϕ:(¯l1,l2) es un arco en Gϕ.
Para cada arco (l,l′) enGϕ, el procedimiento:
◮ asigna0 a σ(l) y σ(l′) o ◮ asigna0 a σ(l) y 1 a σ(l′) o ◮ asigna1 a σ(l) y σ(l′).
La complejidad de 2-CNF-SAT
Por lo tanto: En los dos primeros casos σ(l1) = 1, y en el ´ultimo
caso σ(l2) = 1.
En cualquiera de los tres casos, σ(l1∨l2) = 1, lo cual concluye la demostraci´on.
Cl´ausulas de Horn
Notaci´on
p es un literal positivo y¬p es un literal negativo.
Una cl´ausulaC es de Horn siC contiene a lo m´as un literal positivo.
Ejemplo
p∨ ¬q∨ ¬r, p,
¬q∨ ¬r, ¬q.
Conocimiento definitivo
Una f´ormula (p∧q)→r expresa conocimiento definitivo: ◮ Si sabemos quep yq son verdaderos, entonces tambi´en
sabemos que r es verdadero.
En cambio, una f´ormula(p∧q)→(r∨s)no expresa conocimiento definitivo:
◮ Si sabemos quep yq son verdaderos, no podemos concluir que r es verdadero ni tampoco podemos concluir ques es verdadero, s´olo podemos concluir que alguno de los dos es verdadero.
Conocimiento definitivo
Las cl´ausulas de Horn corresponden al siguiente tipo de reglas que expresan conocimiento definitivo:
◮ q. ◮ ¬q.
◮ (p1∧ · · · ∧pn)→q. ◮ (p1∧ · · · ∧pn)→ ¬q.
En muchos casos es posible modelar el dominio de aplicaci´on usando s´olo este tipo de reglas.
La complejidad de HORN-SAT
Sea HORN-SAT = {ϕ|ϕ es una conjunci´on de cl´ausulas de Horn yϕ es satisfacible}.
Teorema
HORN-SAT puede ser solucionado eficientemente.
Ejercicio
La complejidad de NEG-HORN-SAT
C es una cl´ausula de Horn negativasiC contiene a lo m´as un literal negativo.
Sea NEG-HORN-SAT = {ϕ|ϕes una conjunci´on de cl´ausulas de Horn negativas y ϕes satisfacible}.
Ejercicio
Demuestre que NEG-HORN-SAT puede ser solucionado eficientemente.
Clases de complejidad: Espacio
Para recordar:
F´acil de demostrar : PTIME⊆NP⊆EXPTIME.
No tan f´acil de demostrar : PTIME(EXPTIME.
A´un sin resolver : ¿PTIME(NP?
¿Nos basta con estas clases?
◮ No, en algunos casos tambi´en es necesario utilizar clases definidas en t´ermino del espacio utilizado.
Espacio utilizado en una M´aquina de Turing
Para introducir la noci´on de espacio utilizado en una MT tenemos que distinguir entre:
◮ el espacio ocupado por la entrada, y
◮ el espacio necesario para procesar la entrada. Para hacer esta distinci´on utilizamos MT con dos cintas:
◮ Cinta para la entrada: S´olo de lectura. ◮ Cinta de trabajo: Como en una MT usual.
El espacio utilizado se mide en t´erminos de las celdas visitadas en la cinta de trabajo.
M´aquinas de Turing con cinta de trabajo
Definici´on
M´aquina de Turing con cinta de trabajo:(Q,A,q0, δ,F) ◮ Q es un conjunto finito de estados.
◮ A es un alfabeto tal queB6∈A. ◮ q
0 es el estado inicial (q0∈Q).
◮ F es un conjunto de estados finales(F 6=∅). ◮ δ es una funci´on parcial:
δ : Q×(A∪ {B})×(A∪ {B}) →
Q× {←,→} ×(A∪ {B})× {←,→}.
Espacio utilizado en una MT
Dada una MT determinista M con alfabetoA que para en todas las entradas:
◮ espacio
M(w):N´umero de celdas distintas visitadas en la cinta de trabajo deM al procesar w.
Definici´on
Dado un n´umero natural n:
sM(n) = m´ax{ espacioM(w) | w ∈A∗ y|w|=n}.
Espacio utilizado para resolver un problema
Definici´on
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).
◮ sM es O(s).
El espacio requerido para computar una funci´on f se define de la misma forma.
◮ En este caso, usualmente se supone que la m´aquina tiene una tercera cinta donde escribe el resultado. El espacio utilizado se mide s´olo considerando las celdas en la cinta de trabajo.
Clases de complejidad: Espacio
Definici´on
Dado un alfabeto A, DSPACE(s)se define como el conjunto de todos los lenguajes L⊆A∗ que pueden ser aceptados enespacio s.
Tres clases fundamentales:
LOGSPACE = DSPACE(logn) PSPACE = [ k∈N DSPACE(nk) EXPSPACE = [ k∈N DSPACE(2nk)
Relaci´on entre clases de complejidad
¿Cu´al es la relaci´on entre las clases de complejidad que acabamos de definir?
La relaci´on es m´as compleja:
LOGSPACE⊆PTIME⊆NP⊆PSPACE⊆
EXPTIME⊆EXPSPACE.
Tambi´en se sabe que: LOGSPACE(PSPACE(EXPSPACE. Y todav´ıa nos faltan las clases no deterministas ...
Clases de complejidad no deterministas: Espacio
Notaci´on
Dada una MT no determinista M con alfabetoΣ: ◮ espacio
M(w):N´umero m´ınimo de celdas distintas visitadas en la cinta de trabajo de M, entre todas las ejecuciones de M que aceptan w .
Clases de complejidad no deterministas: Espacio
Definici´on
Dado un n´umero natural n: sM(n) = m´ax{1} ∪
{espacioM(w) | w ∈Σ∗,|w|=n y M acepta w}.
Clases de complejidad no deterministas: Espacio
Definici´on
Un lenguaje L es aceptado en espacio s por una MT M no determinista si:
◮ L=L(M). ◮ sM es O(s).
Clases de Complejidad no deterministas: Espacio
Definici´on
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:
NLOGSPACE = NSPACE(logn) NPSPACE = [
k∈N
Relaci´on entre clases de complejidad
¿Cu´al es la relaci´on entre las clases de complejidad que definimos?
Se sabe que: PSPACE = NPSPACE.
La relaci´on final:
LOGSPACE⊆NLOGSPACE⊆PTIME⊆NP⊆PSPACE⊆
Para terminar: Un poco de intuici´on
Ejercicio
Determine en qu´e clases de complejidad viven los siguientes problemas.
1. Dado un grafo dirigidoG y nodosa,b, determinar si existe un camino dea ab.
2. El mismo problema que en 1. pero ahora suponiendo que G es una relaci´on de sucesor.