0% encontró este documento útil (0 votos)
167 vistas23 páginas

NP Completos

Este documento trata sobre la teoría de complejidad computacional y los problemas NP-completos. Introduce las clases P y NP, y explica que un problema es NP-completo si pertenece a la clase NP y si cualquier otro problema en NP se puede reducir a él en tiempo polinomial. Luego enumera varios problemas conocidos que son NP-completos, como el problema de la satisfacibilidad booleana y el problema del clique máximo. Finalmente, discute algunos problemas abiertos importantes en teoría de complejidad.

Cargado por

Ra So
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
167 vistas23 páginas

NP Completos

Este documento trata sobre la teoría de complejidad computacional y los problemas NP-completos. Introduce las clases P y NP, y explica que un problema es NP-completo si pertenece a la clase NP y si cualquier otro problema en NP se puede reducir a él en tiempo polinomial. Luego enumera varios problemas conocidos que son NP-completos, como el problema de la satisfacibilidad booleana y el problema del clique máximo. Finalmente, discute algunos problemas abiertos importantes en teoría de complejidad.

Cargado por

Ra So
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 23

Complejidad - Problemas NP-Completos

Algoritmos y Estructuras de Datos III

Teora de Complejidad
I

Un algoritmo eficiente es un algoritmo de complejidad


polinomial.

Un problema esta bien resuelto si se conocen algoritmos


eficientes para resolverlo.

El objetivo es clasificar los problemas seg


un su complejidad.

Un problema de decisi
on es un problema cuya respuesta es
s o no.

La clasificacion y el estudio de teora de complejidad se hace


para problemas de decisi
on.

Distintas versiones de un problema de optimizacion


Dada una instancia I del problema :
I

Version de evaluaci
on: Determinar el valor de una solucion
optima de para I .

Version de optimizaci
on: Encontrar una soluci
on
optima del
problema para I (de valor mnimo o maximo).

Version de decisi
on: Dado un n
umero k, existe una solucion
factible de para I tal que c(S) k si el problema es de
minimizacion (o c(S) k si el problema es de
maximizacion)?

Version de localizaci
on: Dado un n
umero k, determinar una
soluci
on factible de para I tal que c(S) k.

Ejemplo: Problema del viajante de comercio


Dado un grafo G con longitudes asignadas a sus aristas:
I

Version de evaluaci
on: Determinar el valor de una solucion
optima, o sea la longitud de un circuito hamiltoniano de G de
longitud mnima.

Version de optimizaci
on: Determinar un circuito
hamiltoniano de G de longitud mnima.

Version de decisi
on: Dado un n
umero k, existe un circuito
hamiltoniano de G de longitud menor o igual a k?

Version de localizaci
on: Dado un n
umero k, determinar un
circuito hamiltoniano de G de longitud menor o igual a k.

Distintas versiones de un problema de optimizacion


Que relacion hay en la dificultad de resolver las distintas versiones
de un mismo problema?
Si resolvemos el problema de decisi
on, podemos:
I

Resolver el problema de evaluaci


on usando b
usqueda binaria
sobre el parametro k.

Resolver el problema de localizaci


on resolviendo el problema
de decision para el parametro k para una version reducida de
la instancia.

Resolver el problema de optimizaci


on resolviendo el problema
de decision para el valor
optimo para una version reducida de
la instancia.

Problemas intratables
Definici
on: Un problema es intratable si no puede ser resuelto
por alg
un algoritmo eficiente.
Un problema puede ser intratable por distintos motivos:
I

El problema requiere una repuesta de longitud exponencial


(ejemplo: pedir todos los circuitos hamiltonianos de longitud
a lo sumo k).

El problema es indecidible (ejemplo: problema de la parada).

El problema es decidible pero no se conocen algoritmos


polinomiales que lo resuelvan.

Las clases P y NP
Definiciones:
I

Un problema de decisi
on pertenece a la clase P (polinomial)
si existe un algoritmo polinomial para resolverlo.

Un problema de decisi
on pertenece a la clase NP (polinomial
no-determinsticamente) si dada una instancia de SI y
evidencia de la misma, puede ser verificada en tiempo
polinomial.

Relaciones entre las clases:


I

P NP

Problema abierto: Es P = NP? (problema abierto mas


importante de teora de la computaci
on)

Ejemplos de problemas en NP
I

Suma de enteros.

Multipliacion de enteros.

Arbol
generador mnimo.

Clique maxima.

Camino mnimo entre un par de nodos.

Problema del viajante de comercio.

Conjunto independiente de cardinal maximo.

Problema de satisfabilidad (SAT): Dado un conjunto de


cla
usulas C1 , . . . , Cm formadas por literales basados en las
variables booleanas X = {x1 , . . . , xn }, determinar si hay una
asignacion de valores de verdad a las variables de X tal que la
expresion C1 C2 . . . Cm sea verdadera.

Maquinas de Turing no-determinsticas (MTND)


I

Una MTND tiene los mismos componentes que vimos para


una MTD, pero las instrucciones dejan de ser quntuplas para
pasar a ser un mapeo multivaluado.
Un programa correspondiente en una MTND es una tabla que
mapea un par (qi , ti ) a un conjunto de ternas
(qf , tf , {0, +1, 1}).
Una MTND se puede interpretar como una generalizaicon de
una MTD, permitiendo la ejecuci
on en paralelo de las
distintas alternativas, abriendose en k copias si se encutra con
k alternativas.
Una MTND resuelve un problema de decisi
on si alguna de las
copias para en un estado de aceptaci
on cuando se ejecuta
sobre una instancia de SI y ninguna copia lo hace para
instancias de NO.
La complejidad temporal de una MTND se define como el
maximo n
umero de pasos que toma reconocer una entrada
aceptable en funci
on de su tama
no.

Clase NP - Otra caracterizacion

Un problema de decisi
on esta en la clase NP si las instancias de SI
son reconocidas por una maquina de Turing no-determinstica
polinomial.
La clase NP se puede definir como el conjunto de problemas de
decision que se pueden resolver por un algoritmo polinomial
no-determinstico.
Lema: Si es un problema de decisi
on que pertence a la clase
NP, entonces puede ser resuelto por un algoritmo determinstico
en tiempo exponencial respecto del tama
no de la entrada.

Algoritmo no-determinstico - Conj. Independiente Maximo


Dado un grafo G = (V , X ), tiene G un conjunto independiente de
tama
no mayor o igual a k?
Selecc(S): funci
on multivaluada que retorna un elemento de S y crea |S|
copias del algoritmo, una para cada elemento de S.
Falla: hace que la copia que se esta ejecutando pare.
Exito: retorna VERDADERO y hace que todas las copias paren.
I :=
mientras S 6= hacer
v := Selecc(S)
S := S \ {v }
si (v ) I = entonces I := I {v }
si |I | k entonces Exito
fin mientras
Falla

Transformaciones polinomiales
Deficiones:
I

Una transformaci
on o reducci
on polinomial de un
problema de decisi
on 1 a uno 2 es una funcion polinomial
que transforma una instancia I1 de 1 en una instancia I2 de
2 tal que I1 tiene respuesta SI para 1 si y solo si I2 tiene
respuesta SI para 2 .

El problema de decisi
on 1 se reduce polinomialmente a
otro problema de decisi
on 2 , 1 p 2 , si existe una
transformacion polinomial de 1 a 2 .

Las reducciones polinomiales son transitivas, es decir, si 1 p 2


y 2 p 3 , entonces 1 p 3 .

Problemas NP-Completos

Definici
on: Un problema de decisi
on es NP-completo si:
1. NP
NP,
p
2.
Teorema de Cook (1971): SAT es NP-completo.

Problemas NP-Completos
Usando la transitividad de las reducciones polinomiales, a partir de
este primer resultado podemos probar que otros problemas son
NP-Completos.
Si es un problema de decisi
on, podemos probar que
NP-completo encontrando otro problema 1 que ya sabemos que
es NP-completo y demostrando que:
1. NP.
2. 1 p
Desde 1971, se ha probado la NP-completitud de muchos
problemas usando este metodo.

Problemas NP-Completos
I

CLIQUE (dado un grafo G = (V , X ) y un entero positivo k,


G tiene una clique de tama
no mayor o igual a k?) es
NP-Completo.
Para demostrar que CLIQUE es NP-Completo, alcanza con
probar que:
1. CLIQUE NP.
2. Para alg
un problema NP-Completo, p CLIQUE.

Conjunto independiente (dado un grafo G y un entero


positivo k, G tiene un conjunto independiente de tama
no
mayor o igual a k?) es NP-Completo.

Recubrimiento de aristas (dado un grafo G y un entero


positivo k, G tiene un recubrimiento de aristas de tama
no
menor o igual a k?) es NP-Completo.

La clase NP-Difcil

Definici
on: Un problema de decisi
on es NP-difcil si todo otro
problema de NP se puede transformar polinomialmente a .

(En la practica esta definici


on a veces se usa por un abuso de
lenguaje tambien para problemas que no son de decision y cuya
version de decision es NP-completa.)

La clase Co-NP
I

Un problema de decisi
on pertenece a la clase Co-NP si dada
una instancia de NO y evidencia de la misma, puede ser
verificada en tiempo polinomial.

El problema complemento de un problema de decision ,


c , es el problema de decisi
on que responde al complemento
de la decision de .
Ejemplo: problema de primalidad y problema de n
umero
compuesto.

El problema complemento tiene respuesta NO si y solo si


tiene respuesta SI.

La clase CO-NP es la clase de los problemas complemento de


los problemas de la clase NP.

La clase de los problemas polinomiales (P), esta contenida


tambien en Co-NP.

Problemas abiertos de Teora de Complejidad

Con estas nuevas definiciones tenemos los siguientes problemas


abiertos:
I

Es P=NP?

Es Co-NP=NP?

Es P=Co-NP NP?

Las incognitas...
NP

NP

NP

NP-Completo
NP-Completo
P = NP
NP-Intermedio
= NP-Completo
P
P

Tres mapas posibles para las clases de complejidad

Las incognitas...
Co-NP

NP

Co-NP-Completo

NP-Completo

Situacion si se probara que P 6= NP, NP 6= Co NP,


P 6= Co NP NP

Extension de un problema
si
Definici
on: El problema es una restricci
on de un problema

el dominio de esta includo en el de .


I

es una extensi
Se dice que
on de .

NP-Difcil.
Si NP-Completo, entonces

Ejemplos:
I

Isomorfismo de subgrafos es una extensi


on de CLIQUE.

Viajante de comercio es una extensi


on de Circuito
Hamiltoniano.

3-SAT es una restricci


on de SAT. Sabiendo que SAT es
NP-completo, podemos sacar de esto una conclusion sobre la
complejidad de 3-SAT?

Algoritmos Pseudopolinomiales
Definici
on: Un algoritmo para resolver un problema es
pseudopolinomial si la complejidad del mismo es polinomial en
funcion del valor de la entrada.
Ejemplos:
I

Primalidad.

El problema de la mochila es NP-Completo, sin embargo,


existe un algoritmo de complejidad O(nB) que lo resuelve,
donde n es la cantidad de objetos y B el peso maximo que se
puede cargar en la mochila.

Teora de Complejidad

Que hacer ante un problema del que no sabemos en que


clase esta?

Que importancia tiene saber si un problema esta en P o no,


desde el punto de vista te
orico?.

Que importancia tiene la misma pregunta desde el punto de


vista practico, o sea ante una aplicaci
on real que se quiere
resolver?

Que hacemos si el problema que tenemos en la practica


sabemos que es NP-completo?

También podría gustarte