Академический Документы
Профессиональный Документы
Культура Документы
COMPLEJIDAD COMPUTACIONAL
Tema 5. Introducción a las Clases de Complejidad .
2016/2017
Computabilidad o Indecidibilidad
↓
Clasifica los problemas en
decidibles (computables) o indecidibles ( no computables)
Problema P
Indecidibles o Decidibles o
no computables computables
Clases de
complejidad
Objetivo
Clasificar los problemas DECIDIBLES o COMPUTABLES:
clases de complejidad
5.2
Contents
1 Ordenes de Complejidad 2
2 Problemas Computables 3
3 Problemas Intratables 3
1
4 NP-Completitud 4
4.1 Clase P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
4.2 Clase NP . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
4.3 Problemas NP-completos . . . . . . . . . . . . . . . . . . . . 9
1 Ordenes de Complejidad
Teoría de la Complejidad Computacional
Definición
• Estudia los recursos necesarios (tiempo y espacio) para resolver un
problema computacional
• Clasifica los problemas computables y los algoritmos en términos
de su “coste” o posibilidad de resolución efectiva.
2
2 Clasificación de Problemas Computables
Clasificación de Problemas
Jerarquía de problemas en base a la complejidad del mejor algoritmo
que podamos construir para resolver el problema:
Problemas Tratables
• Son problemas sencillos
• El tiempo de ejecución crece como una función polinómica del tamaño
de la entrada N
• El algoritmo que los resuelve es polinómico: O(N), O(N 2 ),...,
O(N k )
Problemas Intratables
• Son problemas intrínsecamente “duros” o difíciles
• El tiempo empleado por el mejor algoritmo crece de forma exponencial
(o peor) respecto al tamaño de la entrada N
• Los algoritmos son de orden: O(2N ), O(N!), O(N N )
5.6
3 Problemas Intratables
Problema TSP Travelman Sales Problem
Problema del viajante de comercio para n ciudades
• Sean n ciudades de un territorio.
Objetivo: encontrar una ruta que, comenzando y terminando en una
ciudad concreta, pase una sola vez por cada una de las ciudades y
minimice la distancia recorrida por el viajante
3
• Elige la tercera: n − 2
• ......
• La búsqueda se realiza sobre n(n − 1)(n − 2)... recorridos = O(n!)
http://en.wikipedia.org/wiki/Tower_of_Hanoi
T (n) = 2n − 1 ∈ O(2n )
Exponencial !!
La solución iterativa también necesita 2n − 1 movimientos. 5.9
4 NP-Completitud
Problemas de Decisión y Problemas de Optimización
Problema de Decisión (yes/no problem)
Es un problema es un problema en el que las únicas respuestas posibles son:
sí o no
Input
Algoritmo
No Sí
4
Cómo obtener Problemas de Decisión
Es fácil obtener un problema de decisión a partir de un problema de
búsqueda u optimización:
• TSP
– P. de optimización: Encontrar la ruta más corta, visitando
todas las ciudades una sola vez, y volviendo a la inicial
– Problema de decisión: ¿Existe una ruta de longitud ≤ d?
• Coloreo de grafos
– P. de optimización: Determinar el núm mínimo de colores
necesarios para colorear un grafo de modo que vértices adyacentes
tengan diferente color
– Problema de decisión: Dado n, ¿existe un coloreado que pinte el
grafo con un máximo de n colores?
5.11
http://es.wikipedia.org/wiki/Coloración_de_grafos
5
http://en.wikipedia.org/wiki/Clique_(graph_theory)
Clases de complejidad P y NP
6
Ejemplos de Problemas que están en P
• Dado un grafo G dirigido, ¿hay un camino del vértice s al t?
• Dados dos números enteros, ¿son primos relativos?
• Comprobar si un grafo es conexo: ¿existe un camino entre cada vértice
y todos los demás?
n1 n2
n3 n4 n5
n6 n7
5.17
La clase NP
Algoritmo no determinista de tiempo polinómico
Es un algoritmo no determinista cuya fase de verificación se realiza con
un algoritmo de tiempo polinómico
Clase de Complejidad NP
La clase NP es el conjunto de todos los problemas de decisión que pueden
ser resueltos por algoritmos no deterministas de tiempo polinómico
7
• Es decir, es el conjunto de todos los problemas de decisión para los que
comprobar si S es una solución para una instancia del problema
puede realizarse con un algoritmo de tiempo Polinómico
• Se dice que son problemas verificables polinómicamente.
• NP: significa “Nondeterministic Polinomial”
• Formalmente son problemas computados por MT no-deterministas
en tiempo polinómico
• Como VerificaTSP( G, d, S ) es polinómico, el problema de de-
cisión del viajante está en NP.
• Esto no significa que haya algoritmos de tiempo polinómico que lo
resuelvan.
• El propósito de introducir los conceptos de algoritmo no determinista
y NP es el de clasificar algoritmos. 5.19
Problema SAT-FNC
• Una expresión lógica en forma normal conjuntiva FNC es una
secuencia de cláusulas separadas por la conectiva de conjunción ∧ :
(x1 ∨ x2 ) ∧ (x2 ∨ ¬x3 )
• Problema de decisión de SAT-FNC
– consiste en determinar, dada una expresión lógica en FNC, si
existe alguna asignación de valores verdadero y falso para
las variables, que haga la expresión verdadera (satisface la
expresión)
– Resolver este problema, probando todas las asignaciones es del
orden 2n (n núm. de variables) 5.21
8
Ejemplo. Problema SAT-FNC
• Instancia: (X1 ∨ X2 ) ∧ (X2 ∨ ¬X3 ) ∧ ¬X2
la respuesta es “sí” ya que la asignación X1 =V , X2 = F y X3 =F
hace la expresión verdadera.
• Instancia: (X1 ∨ X2 ) ∧ ¬X1 ∧ ¬X2
la respuesta es “no”
• Es fácil escribir un algoritmo polinómico que tome como entrada una
expresión lógica en FNC y una asignación de variables y verifique si
la expresión es cierta para esa asignación.
• Por tanto:
SAT-FNC está en NP 5.22
P
NP
x y
Algoritmo de
Transforma-
ción
9
Reducción Polinómica
Reducción Polinómica
Si el algoritmo de transformación es polinómico, se dice que el prob-
lema de decisión A se reduce polinómicamente a un problema de decisión
B:
A≤p B
Problemas NP-completos
Son los problemas más “duros” a nivel computacional de la clase NP
Problema NP-completo
Un problema B es NP-completo si:
1. Está en NP , y
2. cualquier otro problema A en NP puede reducirse polinómicamente a
él: A≤p B
Teorema de Cook
• El problema de decisión SAT-FNC es NP-completo
5.26
10
5 Problemas NP-Difíciles
Complejidad de problemas generales
Problema NP-difícil
Un problema es NP-difícil si cualquier otro problema NP completo se reduce
polinómicamente a él.
• Los problemas NP-difíciles son problemas intratables
P
NP NP − dif ícil
NP − completos
5.30
Problemas NP-Difíciles
¿Qué problemas son NP-difíciles?
• Todo problema NP-completo
• Los problemas de optimización correspondientes a problemas NP-
completos
11
Más ejemplos de Problemas NP-Difíciles: JUEGOS y PUZZLES
• EL cubo de Rubik
• El 15-puzzle
• Mastermind
• El ajedrez (no está en NP)
• Tetris , Sokoban
• ....
• Muchos más juegos en:
http://www.ics.uci.edu/~eppstein/cgt/hard.html
http://en.wikipedia.org/wiki/List_of_NP-complete_problems
5.32
http://xkcd.com/399/
12
http://xkcd.com/399/
5.33
References
[1] Sipser, Michael Introduction to the Theory of Computation 2nd. ed..
(capítulo 7) Thomson, 2006
[2] Rich, Elaine Automata, Computability, and Complexity. (capítulos 27 y
28) Prentice Hall, 2008 http://www.theoryandapplications.org/
5.34
13