01 MEDIDAS DE COMPLEJIDAD

Anuncio
Página 1 de 14
01 MEDIDAS DE COMPLEJIDAD
En calculabilidad se ha demostrado que hay problemas para los que no existe algoritmo que los resuelva.
El estudio de los problemas decidibles, en el límite de la indecibilidad, es de lo que trata la complejidad.
Los problemas decidibles se clasifican según los recursos (espacio y/o tiempo) que consumen para ser
resueltos usando siempre su mejor solución algorítmica conocida para la peor entrada posible.
El concepto de intratabilidad
Orden de magnitud / Complejidad
O(g(n)): significa que al ejecutar un algoritmo en
una computadora con los mismos datos, para
valores incrementales de n (notación asintótica),
los tiempos resultantes de la ejecución serán
siempre menores que |g(n)|.
Se estudia la complejidad del problema en sí no
de un algoritmo que resuelve el problema.
Pensaremos siempre que estamos trabajando con
el mejor algoritmo para la peor entrada.
O(1) < O(log n) < O(n) < O(n log n) < O(n 2 ) < O(n3 ) < O(2n ) De menor a mayor complejidad.
O(1) : Extraer cualquier elemento de un vector (indexación).
O(log n) : Búsqueda en un vector ordenado.
O(n) : Recorrer un vector.
O(n log n) : Búsqueda en un vector ordenado.
O(n 2 ) : Ordenar un vector.
O(n 3 ) : Ordenar y recorrer un vector.
O(2n ) : complejidad exponencial. (Problemas NP).
Un clasificación de los problemas decidibles puede ser los órdenes de magnitud más habituales expresados
arriba.
Problemas intratables: Son problemas decidibles que necesitan tantísimo tiempo para resolverse que no son
factibles ni prácticos (según que casos). Ejemplo de utilidad: claves de seguridad.
Problema intratable: No existe un algoritmo de tiempo polinómico que resuelve el problema.
Problemas tratables: Son problemas decidibles que usan un tiempo razonable para resolverse.
Problema tratable: Sí existe un algoritmo de tiempo polinómico que resuelve el problema.
La frontera entre estos dos tipos de problemas decidibles es la misma que entre las funciones polinómicas y las
funciones exponenciales. La frontera será tanto mayor cuanto mayor sea el valor de la entrada.
Los problemas intratables suponen que tienen, al menos, un algoritmo de tiempo exponencial que hace no
factible su uso práctico. Al estar tratando con algoritmos con la “peor entrada” de todas las posibles puede
ocurrir que para alguna entrada “no tan mala” el problema pueda resolverse o que el tiempo necesario para
resolverse no sea, necesariamente, exponencial. Esto permite un uso práctico puntual (optimización). No
obstante, no suele ser habitual que esto suceda.
1) La intratabilidad de un problema es independiente de la codificación y del modelo de cálculo.
Página 2 de 14
2) Los diferentes modelos abstractos de cálculo pueden simularse entre si con una pérdida
polinómica de eficiencia como máximo.
3) Todos los modelos de cálculo son equivalentes respecto a la complejidad temporal.
Esto permite estudiar los problemas sin tener que preocuparnos de la “máquina” que estemos usando.
No determinismo
Modelo de Cálculo

Recurso a medir o acotar



La complejidad de un problema viene especificada por 

Cota o función correspondiente 
Modo de Computación

Modos de Computación:
1) Determinista: La velocidad media de un coche en función del tiempo y el espacio es determinista: v = x / t.
2)
Indeterminista: las llegadas en una cola de un banco es indeterminista, sigue un proceso aleatorio.
Opción no determinista: es el conjunto de transiciones posibles para la misma situación inicial y las
evoluciones diferentes asociadas de la función de transición.
Si para cada situación diferente hay una sola regla de transición posible la máquina es determinista.
Las máquinas indeterministas aceptan una entrada si existe, al menos, una secuencia de opciones no
deterministas que hace que la respuesta al problema sea “SI”.
Con las máquinas indeterministas nos ahorramos explicitar todas las combinaciones posibles.
Con las máquinas deterministas tenemos que especificar todas y cada una de las combinaciones posibles.
Instrucción de opción no determinista: es una nueva instrucción del modelo de cálculo abstracto lenguaje de
programación no determinista. Esta instrucción está asociada a un número fijo de alternativas y para cada una
de ellas el algoritmo sigue un camino distinto y, al final, decide aceptar o no la entrada.
Página 3 de 14
Algoritmo no determinista: Sea L un lenguaje. Dada la entrada x, es posible convertir cada instrucción de
opción no determinista en una opción determinista tal que el algoritmo aceptará , x  L.  x  L, el
algoritmo no aceptará la entrada.
LAS MÁQUINAS SÓLO PUEDEN RESOLVER PROBLEMAS DE COMPLEJIDAD O COSTE POLINÓMICO
LA RELACIÓN ENTRE EL TAMAÑO DEL PROBLEMA Y SU TIEMPO DE EJECUCIÓN ES POLINÓMICA
Relación tamaño del problema / tiempo de ejecución es polinómica.



Problemas tratables que pueden resolverse con algoritmos deterministas en tiempo de 
Clase P  

ejecución polinómico respecto de la entrada.

Problemas decidibles por una MT determinista en tiempo de ejecución polinómico. 


Relación tamaño del problema / tiempo de ejecución es factorial o combinatoria.

Problemas que pueden resolverse con algoritmos NO deterministas en tiempo de ejecución 


Clase NP  

polinómico respecto de la entrada.

Problemas decidibles por una MT INdeterminista en tiempo de ejecución polinómico



Una máquina indeterminista puede buscar una solución en un espacio de tamaño exponencial con mucho
menos esfuerzo.
En la clase NP hay muchos problemas de búsqueda y optimización para los que se estudia si existen
mejores soluciones que las encontradas. Para todos ellos la verificación de la solución puede realizarse en
tiempo polinómico recorriendo todas las salidas hasta encontrar la que resuelve el problema.
Clases de complejidad
Interesa la clase más pequeña a la que  un problema para estudiar su complejidad + facilmente
Función de Complejidad:
f ( n)
Temporal
Espacial
Determinista
Indeterminista
TIME ( f (n))
SPACE ( f (n))
NTIME ( f (n))
NSPACE ( f (n))
Inclusiones entre clases de complejidad
SPACE ( f (n))  NSPACE ( f (n))
TIME ( f (n))  NTIME ( f (n))
SPACE ( f (n))  SPACE ( g (n))
NSPACE( f (n))  NSPACE( g (n))
TIME ( f (n))  TIME ( g (n))
NTIME ( f (n))  NTIME ( g (n))
Comentario
TIME ( f (n))  SPACE( f (n))
El tiempo está acotado superiormente por el espacio
SPACE( f (n))  TIME(c f ( n) )
 f (n)  log2 (n)
NTIME( f (n))  TIME(c
f ( n)
)
Clases usadas en programación
TIME (log n)
 f  g
Los algoritmos no deterministas de coste polinómico
pueden necesitar un coste exponencial en un algoritmo
determinista equivalente.
Comentario
Clase de los algoritmos con complejidad temporal
Página 4 de 14
TIME (n)
TIME (n log n)
TIME(n2 )
Clases de complejidad parametrizada
TIME(nk )   j 0 TIME(n j )
NTIME(nk )   j 0 NTIME(n j )
logarítmica. Ejemplo: Búsqueda dicotómica.
Clase de los algoritmos con complejidad lineal.
Ejemplo: Búsqueda lineal.
Clase de los algoritmos con complejidad nlogn.
Ejemplo: Búsqueda heapsort.
Clase de los algoritmos cuadráticos. Ejemplo:
Ordenación por inserción o selección.
Comentario
Es la clase P.
Es la clase NP.
Problemas tipo de comparación entre complejidad temporal y espacial:
Clave: Se debe cumplir SIEMPRE que O(temporal)  O(espacial)
Dado un problema de complejidad temporal O(n2), ¿puede tener complejidad espacial O(10n)?
La complejidad temporal está limitada superiormente por la espacial, TIME(f(n))  SPACE(f(n)). En
este caso tenemos que O(n2) < O(10n), por lo tanto, el problema de complejidad temporal O(n 2) si
puede tener complejidad espacial O(10n).
Dado un problema de complejidad temporal O(n4), ¿puede tener complejidad espacial O(n3)?
No, porque O(n4) > O(n3) y la complejidad temporal está limitada superiormente por la complejidad
espacial.
Dado un problema de complejidad temporal O(n4), ¿puede tener complejidad espacial O(n4)?
Sí, ya que la complejidad temporal de un problema puede ser menor o igual a la complejidad
espacial.
Dado un problema de complejidad espacial O(n2), ¿puede tener complejidad temporal O(10n)?
No, ya que O(10n) > O(n2), y la complejidad temporal está limitada superiormente por la complejidad
espacial.
Dado un problema de complejidad espacial O(5n+2), ¿puede tener complejidad temporal O(n)?
Sí, ya que aunque O(5n+2) > O(n) la complejidad espacial no está limitada superiormente por la
complejidad temporal.
Clases de complejidad en espacio
PSPACE  SPACE(nk )
NPSPACE  NPSPACE(nk )
Clases por debajo de la complejidad lineal
L  SPACE (log n)
NL  NSPACE(log n)
Clases de complejidad exponencial
Comentario
Equivalente a la clase P
Equivalente a la clase NP
Comentario
Comentario
Página 5 de 14
Problemas para los que existe un algoritmo de
complejidad temporal exponencial.
EXP  TIME(2 polinomio ) , siendo polinomio  nk
Existen problemas abiertos sobre las comparaciones entre clases de complejidad diferente. Lo difícil es saber si
las inclusiones son estrictas o no. Por ejemplo: podemos ver con claridad que la clase P es un subconjunto
propio de la clase EXP. Sabemos que P  NP, pero nadie ha podido demostrar lo siguiente:
¿P = NP?.
Supondría que todo problema NP se podría solucionar con un algoritmo determinista de complejidad
polinómica.
¿P  NP?.
Supondría encontrar un problema NP que no esté en P, es decir, un problema para el que exista un algoritmo no
determinista de complejidad polinómica para el que nunca pueda encontrarse uno determinista de la misma
complejidad.
No existe un método general para convertir un algoritmo no determinista en otro equivalente determinista.
Se sabe que: si un problema es NP entonces existe un polinomio p tal que el problema puede resolverlo un
algoritmo determinista de complejidad O(2
p( n)
)
La demostración supone simular todas las opciones no deterministas probando todas las posibilidades hasta
encontrar una, si existe, que nos lleve a la aceptación. El número de posibilidades es de órden exponencial. Se
puede reducir usando algunas técnicas, pero siempre seguirá siendo de órden exponencial.
Se ha demostrado que: PSPACE = NPSPACE, el no determinismo no aporta potencia adicional desde el punto
de vista de la complejidad polinómica en espacio. La instrucción no determinista no facilita la resolución de
más problemas en el marco de la complejidad en espacio polinómico. El no determinismo tiene menos poder
respecto al espacio que respecto al tiempo.
Las relaciones conocidas entre las clases de complejidad son :
L  P  NP  PSPACE  NPSPACE
Algunos problemas intratables
Se trabaja con problemas de decisión.
La correspondencia entre los problemas de decisión y los lenguajes viene dada por la codificación empleada
para especificar las instancias del problema.
La codificación permite describir tres palabras: las que no pertenecen al lenguaje reconocido, las que pertenecen
al lenguaje reconocido y que generan una salida “No” y, por último, las que pertenecen al lenguaje reconocido y
generan la salida “Si”.
A continuación vemos problemas de decisión clásicos clasificados como intratables, que pertenecen a la clase
NP...¿o quizás, a alguna más pequeña dentro de ésta?
Problema del viajante de comercio (TSP)
Problema de Decisión:
Dado un grafo completo etiquetado positivamente, ¿existe un circuito hamiltoniano de coste acumulado no
superior a B?
Página 6 de 14
Para demostrar que pertenece a la clase NP nos basta tener una instrucción de opción no determinista de una
entre todas las posibles permutaciones. El cálculo consiste en una operación lineal, por tanto de complejidad
polinómica.
Si no existiera una intrucción de opción no determinista tendríamos que probar todas las permutaciones. Esto
supone un algoritmo de complejidad exponencial, por tanto, el problema no pertenecería a la clase P. Es decir,
sería un problema intratable por que no existe un algoritmo de complejidad polinómica que lo resuelva.
No se ha demostrado que tenga o que no tenga solución algorítmica determinista de coste polinómico. Por tanto,
es intratable.
Problema de Optimización asociado:
Dado un grafo completo etiquetado positivamente, ¿existe un circuito hamiltoniano de mínimo coste?.
El problema de optimización tiene, como mínimo, la misma complejidad que el de decisión.
Problemas Intratables
Casos Especiales
Variación Tratable (tiempo polinómico)
Si todos los vértices son de grado  2.
No tiene.
Circuito hamiltoniano en un grafo dado
Cuello de botella: la arista mayor de cota  B
Cartero chino para grafos mixtos: ciclo que incluya toda
Si todas las aristas son de un mismo tipo. Es decir,
arista dirigida y no dirigida como mínimo una vez con
si el grafo es dirigido o no dirigido.
una longitud total  B
Cartero rural: circuito que incluya un subconjunto de las
No tiene.
aristas del grafo con una longitud  B
Si el circuito simple es de longitud  K y todas las
Circuito simple de longitud > K
etiquetas son positivas.
Si el grafo es acíclico y dirigido.
El Camino más largo: camino simple de longitud > K
Si se considera el camino más corto y las etiquetas
son todas positivas.
Problema del coloreado de un grafo
Problema de Decisión:
Dado un grafo se trata de asignar un color a cada vértice de forma que dos vértices adyacentes nunca tengan el
mismo color.
Existe un algoritmo no determinista de complejidad polinómica (usamos la instrucción de opción no
determinista para asignar un color a cada uno de los vértices que forman un par de adyacencia. Para comprobar
que se ha asignado bien los colores requerimos una complejidad cuadrática –dos a dos-, por tanto polinómica)
que lo resuelve. Esto supone que es un problema NP.
Si tenemos que considerar todas las posibles combinaciones para colorear los vértices la complejidad es
exponencial al ser el número de combinaciones exponencial. Como no hay un algoritmo determinista de
complejidad polinómica que lo resuelva no es un problema P. Por tanto, se considera un problema intratable.
Variación tratable:
Si todos los vértices tienen un grado  3 o el número de colores = 2 el problema puede resolverse en tiempo
polinómico.
Problema de Optimización asociado:
Encontrar el valor mínimo de K para que el grafo sea K-coloreable.
Problema de la mochila
Problema de Decisión:
Página 7 de 14
Dada una mochila y un conjunto de objetos con un tamaño y valor asociado dado, ¿Existe un subconjunto de los
objetos cuyo tamaño no exceda el tamaño de la mochila y que su valor asociado total y que su valor asociado
total sea superior a una valor dado B?
Existe un algoritmo no determinista que hará uso de la instrucción de opción no determinista con un coste lineal
(recorrido de dos tablas) que lo resuelve. Es un problema NP.
Pero si tenemos que tratar todos los subconjuntos posibles tenemos un coste exponencial por que el total de
subconjuntos n elementos es 2n . Necesitaríamos un algoritmo determinista de coste exponencial. El problema
no pertenece a P. Es Intratable.
Variación tratable:
Este problema admite un cierto margen de tratabilidad usando técnicas como la programación dinámica.
Problema de Optimización asociado:
¿Cuál es el subconjunto de tamaño total no superior al de la mochila con un valor asociado total máximo?.
02 REDUCCIÓN Y COMPLETITUD
P  NP por lo que existen problemas, como la ordenación y búsqueda, que son NP
y, por tanto, también P siempre que sea cierto que NP  P .
Ya sabemos que
NP
Lo que interesa es estudiar el subconjunto de problemas que siendo
La teoría de la
NP  completitud
se centra en demostrar :
no son
P , NP  P .
Si NP  P, el problema pertenece a NP - P .
La reducibilidad consiste en encontrar un problema, más sencillo de tratar y del que ya sepamos sus
características, que sea como mínimo tan difícil como el que se pretende estudiar.
Reducción en tiempo polinómico
Una reducción polinómica de un problema
como:
P1 en un problema P2
es una función
f
(siendo NP  P ) definida
f : Entradas P1  Entradas P2
que cumple:
f.
x : Respuesta P1 ( x)  " Sí "  Respuesta P2 ( f ( x))  " Sí "
1) Existe un algoritmo en tiempo polinómico que calcula
2)
de forma gráfica:
REDUCCIÓN DEL PROBLEMA P1 AL PROBLEMA P2
Algoritmo que resuelve P1
f(x)
x
f
Algoritmo que
resuelve P2
Si/No
Página 8 de 14
Notacionalmente:
P1  p P2
Propiedades:
Si P1  p P2 , si P2  P  P1  P 
Si P1  p P2 , si P2  NP  P1  NP 
Si P1  p P2 , si P2  P  P1  P 
Si P1  p P2 , si P2  NP  P1  NP 
Si P1  p P2 y P2  p P3  P1  p P3 
Las clases P y NP son CERRADAS para la REDUCCIÓN POLINÓMICA
 P1  p P2 
Si 
  P2  P
P

P
 1

Problema Circuito Hamiltoniano = PCH
Problema Viajante de Comercio = PVC
¿ PCH  p  PVC ? :

a) f que transforme cada instancia de PCH en una instancia de PVC.
 b) Condiciones:

  b1) ¿Tiene f coste polinómico?: Se trata de llenar y buscar en una matríz. 

 Una instancia de PCH es G  (V , E ) donde V  n. La instancia correspondiente  

de PVC es un conjunto de cuidades C idéntico a V . Para cada par de ciudades la  
Esto supone coste cuadrático, es decir, polinómico.



distancia entre ellas será 1 si existe una arista entre esas ciudades en G y será 2 si   b2) G contiene un circuito hamiltoniano  hay una ruta por todas las 



ciudades en f (G ) tal que su longitud no es mayor que B

no existe una arista en G.




(

)
Función f de transformación





Si hay un circuito hamiltoniano entonces hay una ruta en f (G ) 
Entrada
en
PCH
f
Entrada
en
PVC



de longitud máxima n  B, nunca mayor por la propia definición 


1
si
(
v
,
v
)

E



i
j


de f .
C V, B  V  n
d (vi , v j )  

 G  (V , E )


2
si
(
v
,
v
)

E
i
j





()



Si hay una ruta en f (G ) de longitud máxima B, para poder pasar 





por todas las ciudades y volver a la primera en G todas las



distancias deben ser 1 por la definición de f . Y esto define un 



 

circuito hamiltoniano.


El PCH es reducible polinómicamente al PVC
Si PVC puede resolverse en tiempo polinómico, PCH también 


PCH  p PVC  Si PVC es intratable, PCH también

PVC es como mínimo tan difícil como PCH.



 Equivalencia polinómica: P1  p P2 y P2  p P1 
Completitud:Un conjunto es completo si es el más difícil de su clase.
Dado un problema P y una clase C, decimos que el programa es C-completo cuando todos los problemas de la
clase C se pueden reducir polinómicamente a P.
Sea L una clase (conjunto de conjuntos).
A es m-completo para L si  A  L    B  L B m A
Página 9 de 14
Un problema p es X-completo si todo problema de la clase X se puede reducir a p.
propiedades:
1)
A es m-completo para L 

BL
  B es m-completo para L

A m B

2)
K es m-completo para la clase ER
3)
Los conjuntos m-completos forman un m-grado
Los problemas completos ocupan un lugar central en la teoría de la complejidad.
Sólo cuando hemos demostrado que un programa es completo en su clase podemos considerar que está
definitivamente clasificado.
Los problemas completos son los máximos representantes de su clase.
Si existe un problema P completo para dos clases C y C’ cerradas respecto la reducción, entonces C = C’
¡¡ Si algún problema NP-completo se demuestra que pertenece a P habremos demostrado que P = NP !!
03 LA CLASE NP-COMPLETO
Todos los problemas NP tienen en común que podemos conjeturar la solución con la potencia de la instrucción
de opción no determinista y que es posible en tiempo polinómico verificar la posible solución. Pero, cuando no
podemos ir a “tiro hecho” tenemos que recorrer todas las posibles soluciones y eso nos supone un coste
exponencial.
Dado que un algoritmo no determinista de tiempo polinómico no es más que una “herramienta conceptual” no
podemos usarla en la práctica. No hay lenguaje de programación que incluya una instrucción de opción no
determinista.
¿Por qué no usar la clase EXP? Por que NP  EXP, es decir hay problemas EXP que no están en NP.
La clase NP está compuesta por la sublcase NP-completo y NP-difícil.
Los problemas de la subclase NP-completo son los últimos de la clase NP por lo que solamente podrán
resolverse en tiempo polinómico si alguien demuestra que P = NP.
Las técnicas usadas para “resolver” este tipo de problemas desde el punto de vista de la programación son:
1) Aproximación: si la solución exacta es intratable, siempre podremos llegar a un consenso del intervalo
que consideramos “solución”.
2) Caso especial: probar hasta dar con una entrada que permita conseguir una solución en tiempo
polinómico.
3) Coste medio temporal: en lugar de solucionar para el tiempo completo acotar el problema
temporalmente para obtener una “solución”.
Página 10 de 14
4) Heurística: usar la probabilidad para obtener una “solución”.
5) Acotar la entrada: usar algoritmos exponenciales para entradas reducidas “artificialmente”.
Definiciones:
NP-difícil = El problema A ( o  NP), es NP-difícil cuanto todo problema NP se puede reducir
polinómicamente a él. B  NP, B  p A
Es decir, como mínimo es tan difícil como cualquier problema de la clase NP, pero puede ser más difícil.
NP-completo = Si A NP y A  NP-difícil. Si  A  NP    B  NP, B  p A 
Convenios:

Si A  P  A  NP
 Si A  NP  dificil  A  NP  A  NP  completo 
Como P  NP 
 

Si A  NP  puede que A  P  




Convenio:
 Convenio:


 Se dice que NP  dificil  resto( NP  dificil - NP) 
Se dice que NP  NP - P


Se dice que P  resto( NP - P)
 

Gráfica:
EXP
NP
NP.completo
NP.difícil
P
Suponemos que P  NP

Página 11 de 14
NP
P
EXP
L
NP-Completo
L-Comp.
P
Completo
NP-difícil
EXP-Completo
Teorema de Cook:
Hasta 1971 no se demostró la existencia del primer problema NP-completo por parte de Cook.
Actualmente todos los problemas NP-completos conocidos usan tiempo exponencial con respecto al tamaño de
la entrada.
De encontrarse una solución polinómica (P) para un problema NP-completo estarían, de forma automática,
todos los problemas NP resueltos en tiempo polinómico….¡El fin de la criptografía!.
Problema de satisfactibilidad (SAT)
Problema de decisión:
Dado un conjunto de variables lógicas y una fórmula que las relaciona, ¿existe alguna combinación de valores
lógicos que satisfaga la fórmula?.
El problema es NP por que podemos encontrar un algoritmo NO determinista que determine si la fórmula es
cierta conjeturando con las diferentes asignaciones de las variables y, para verificar la fórmula, se usan las
tablas de verdad correspondientes. El coste es, por tanto, polinómico.
Un problema NP-difícil es una optimización de un problema de decisión NP-completo.
Para demostrar que el problema es NP-difícil Cook se ¡partió la cabeza!, y lo consiguió...
Por tanto, el SAT es el primer problema clasificado como NP-completo.
Teorema: A  NP-completo si A  NP y  B  NP-completo reducible polinómicamente al problema A.
Si  A  NP    B  NP  completo, B  p A 
Demostración:
Tenemos un problema A  NP del que queremos demostrar si  NP-completo.
Tomamos cualquier problema C  NP. Sabiendo que B  NP-completo se cumple que C p B.
Página 12 de 14
Obtenemos una reducción polinómica del problema B al problema A. Es decir, B p A
Aplicando la transitividad de la reducción polinómica tenemos que C p B y B p A  C p A
Como para cualquier C  NP tenemos que C p A y que A  NP, podemos concluir que A  NP-completo.
c.q.d.
¡Atención!:
Con obtener la reducción polinómica de un NP-completo a otro problema NP, habremos demostrado que el
problema NP es, también; NP-completo.
A continuación vamos a enunciar los SEIS problemas NP-COMPLETOS BÁSICOS que son los más usados
para hacer las reducciones polinómicas.
Problema de la 3-satisfactibilidad (3SAT)
Problema de decisión:
Dado un conjunto de variables lógicas y una fórmula que las relaciona que tiene como restricción que cada
claúsula tenga 3 literales, ¿existe alguna combinación de valores lógicos que satisfaga la fórmula?.
El mismo problema con la restricción de 2 literales por claúsula es un problema P.
Para demostrarlo se realiza una reducción polinómica a partir del problema SAT.
Problema del matching de 3-dimensiones (3DM)
Problema de decisión:
Dados tres conjuntos disjuntos del mismo tamaño, ¿existe alguna forma de agrupar todos los elementos de
forma que en cada trio haya solamente uno de cada conjunto sin repeticiones?.
El mismo problema con la restricción de 2 conjuntos es un problema P.
Para demostrarlo se realiza una reducción polinómica a partir del problema 3SAT.
Problema del recubrimiento de vértices (VC)
Problema de decisión:
Dados un grafo y un entero positivo K menor o igual que el número de vértices del grafo, ¿existe un
recubrimiento de tamaño K o menor en el grafo?.
El problema de optimización asociado que pide el valor mínimo de K que cumpla la condición es, como
mínimo, tan difícil como el problema dado y aumenta su interés en cuanto al estudio desde un punto de vista
práctico.
Para demostrarlo se realiza una reducción polinómica a partir del problema 3SAT.
Problema del clique
Problema de decisión:
Dados un grafo y un entero positivo K menor o igual que el número de vértices del grafo, ¿existe un clique de
tamaño K o mayor en el grafo?.
El problema de optimización asociado que pide el quicle máximo es, como mínimo, tan difícil como el
problema dado y aumenta su interés en cuanto al estudio desde un punto de vista práctico.
Este problema está estrechamente relacionado con el anterior, el VC.
Teorema:
C es un clique de G  V – C es un recubrimiento de vértices del complementario de G.
La NP-completitud de un problema implica la del otro.
Página 13 de 14
Problema del circuito hamiltoniano (CH)
Problema de decisión:
Dado un grafo, ¿contiene G un circuito hamiltoniano?.
Para demostrarlo se realiza una reducción polinómica a partir del problema VC.
Problema de la partición
Problema de decisión:
Dado un conjunto que contiene elementos del mismo tamaño, ¿es posible dividir el conjunto en dos
subconjuntos que tengan el mismo tamaño acumulado?.
Este problema se usa habitualmente con problemas con parámetros numéricos.
Para demostrarlo se realiza una reducción polinómica a partir del problema 3DM.
¡Atención!:
Todos estos problemas son teóricamente NP-completos (intratables), pero en la práctica es posible hacerlos
casi tratables.
Esquema:
SAT
3SAT
3DM
Partición
VC
CH
Clique
Técnicas básicas de demostración de NP-completitud:
Dado un problema de decisión D para poder decir que D  NP-completo tenemos que demostrar:
1) Que D  NP: encontrar un algoritmo no determinista de tiempo polinómico. (Conjetura no determinista
y Verificación en tiempo polinómico)
2) Seleccionar un problema D’  NP-completo de entre los seis problemas NP-completos básicos.
3) Construir una función : D’  D.
4) Demostrar que  es una reducción polinómica ( para las entradas x y (x), tanto D como D’ responden lo
mismo) y que el coste de  es polinómico (algoritmo determinista).
Demostración por Restricción:
Dado D, consiste en encontrar un subproblema D’ que sea uno de los NP-completo básicos conocidos. La
función de reducción  consistirá en una especificación de restricciones adicionales a las instancias del
problema D para que el problema resultante sea idéntico al problema D’.
Ejemplo: Demostración de que el problema de la mochila es NP-completo.
Problema de la mochila
Problema de Decisión:
Dada una mochila y un conjunto de objetos con un tamaño y valor asociado dados:
¿Existe un subconjunto de los objetos cuyo tamaño no exceda el tamaño de la mochila y que su valor asociado
total sea superior a un valor dado B?
Página 14 de 14
1) Demostración de que es NP:
Existe un algoritmo no determinista que hará uso de la instrucción de opción no determinista con un
coste lineal (recorrido de dos tablas) que lo resuelve. Es un problema NP.
2) Selección de un problema NP-completo básico conocido que se adapte al estudiado:
Para demostraciones con instancias numéricas el problema recomendado es el de la Partición.
3) Construcción, por restricción, de la función :
Tomamos todos los objetos de la mochila que tienen el mismo número tanto para expresar su tamaño
como su valor. Obligamos, además, que los totales de tamaño y valor sean iguales a la mitad del
sumatorio de los valores de todos los elementos. Con esta restricción el problema de la mochila y el de la
partición es el mismo.
4) Demostración de que la función  es una reducción polinómica:
En el paso anterior se ha conseguido que para entradas x y f(x), tanto del problema de la mochila como
el de la partición; respondan lo mismo. Es, por tanto, una reducción.
La función  obtenida en el punto anterior es una función de identidad. La identidad tiene un coste
polinómico.
Podemos afirmar que la mochila es NP-completo al ser una restricción del problema de la partición.
Documentos relacionados
Descargar