• No se han encontrado resultados

Introducción a la Complejidad Computacional

N/A
N/A
Protected

Academic year: 2021

Share "Introducción a la Complejidad Computacional"

Copied!
111
0
0

Texto completo

(1)

Introducci´on a la Complejidad Computacional

(2)

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

(3)

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}.

(4)

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

(5)

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?

(6)

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?

(7)

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.

(8)

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.

(9)

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

(10)

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

(11)

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.

(12)

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,→)

(13)

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: q0

(14)

M´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 q1

(15)

M´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

(16)

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 q1

(17)

M´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.

(18)

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.

(19)

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.

(20)

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,→)

(21)

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?

(22)

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?

(23)

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.

(24)

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.

(25)

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

(26)

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

(27)

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

(28)

Un problema indecidible: Problema de la parada

Problema natural

Dada 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.

(29)

Un problema de decisi´on m´as simple

Otro problema de decisi´on

Dada 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

(30)

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

(31)

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

(32)

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

(33)

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.

(34)

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.

(35)

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 .

(36)

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,→)

(37)

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

(38)

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.

(39)

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.

(40)

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

(41)

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

(42)

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

(43)

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.

(44)

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

(45)

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

(46)

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.

(47)

¿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.

(48)

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.

(49)

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.

(50)

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.

(51)

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

(52)

Complejidad de un algoritmo

Notaci´on

Dada 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}.

(53)

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.

(54)

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.

(55)

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?

(56)

La noci´on de completitud: Reducci´on polinomial

Definici´on

Dados 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

(57)

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

(58)

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?

(59)

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

(60)

¿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?

(61)

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 .

(62)

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}.

(63)

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).

(64)

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?

(65)

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?

(66)

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.

(67)

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

(68)

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.

(69)

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 .

(70)

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)) .

(71)

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′) .

(72)

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)) .

(73)

Teorema de Cook: Demostraci´on

ϕA:La m´aquina acepta w. tM(n) _ t=0 et,qm.

(74)

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′) .

(75)

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.

(76)

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

(77)

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

(78)

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}.

(79)

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.

(80)

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.”

(81)

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.

(82)

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.

(83)

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).

(84)

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 ¬x2

(85)

La 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?

(86)

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

(87)

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.

(88)

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}

(89)

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.

(90)

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.

(91)

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.

(92)

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′).

(93)

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.

(94)

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.

(95)

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.

(96)

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.

(97)

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

(98)

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.

(99)

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.

(100)

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.

(101)

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})× {←,→}.

(102)

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}.

(103)

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.

(104)

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)

(105)

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 ...

(106)

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 .

(107)

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}.

(108)

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).

(109)

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

(110)

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⊆

(111)

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.

Referencias

Documento similar

Pero incluso entonces se le reveló a Moshé, simbólicamente, que en el futuro, cuando su alma retorne para su encarnación final como el alma del Mashíaj, el redentor final de

La ayuda de un pago único de 200 euros propuesta en la prórroga del Real Decreto ley 6/2022 para compensar la pérdida de poder adquisitivo de los hogares con rentas en 2021

Busca tu charla TED favorita, Escucha con atención su contenido y al finalizar, explícate a ti mismo el contenido de la charla.. Si te gustaría añadir un extra reto, explícasela a

Fundación Plácido Castro 1 Labores de organización, clasificación e estudo da documentación obrante na fundación. Profundizar no

Desde la antropomorfización de los animales como sujetos narrativos que dentro de su animalidad tienen una his- toria de vida que contar, esta película expone la forma como el

1. LAS GARANTÍAS CONSTITUCIONALES.—2. C) La reforma constitucional de 1994. D) Las tres etapas del amparo argentino. F) Las vías previas al amparo. H) La acción es judicial en

Volviendo a la jurisprudencia del Tribunal de Justicia, conviene recor- dar que, con el tiempo, este órgano se vio en la necesidad de determinar si los actos de los Estados

“Eso sí, es que los hombres acá se apartan más de eso [de la transmisión de los saberes ancestrales], primero pues porque la mayoría tiene que trabajar, y el