Académique Documents
Professionnel Documents
Culture Documents
Diseño y Análisis de
Algoritmos
Centro de Investigación en Computación
+
Unidad 2
Bases para el análisis de algoritmos
2
+
2.1. Tratabilidad
computacional
Computational tractability
3
+ 4
Tiempo de ejecución
Fuerza bruta
Tiempo polinomial
Tiempo polinomial
Excepciones
Algoritmos de tiempo polinomial que tienen exponentes y/o
coeficientes muy grandes son inútiles en la práctica
Algoritmos de tiempo exponencial, o peor, se utilizan cuando en
la práctica las instancias del peor caso son raras
+ 10
¿Porqué es importante?
+
Orden de crecimiento
asintótico
11
+ 12
Algunas propiedades
Por ejemplo:
g(n)=32n2+17n+50
g(n) es
O(n2), O(n3)
Ω(n2), Ω(n)
Θ(n2)
g(n) no es
O(n)
Ω(n3)
Θ(n), Θ(n3)
+ 17
Otros límites
Más propiedades
Transitividad
Si f(n) es O(g(n)) y g(n) es O(g(h)) entonces f(n) es O(g(h))
Si f(n) es Ω (g(n)) y g(n) es Ω (g(h)) entonces f(n) es Ω (g(h))
Si f(n) es Θ(g(n)) y g(n) es Θ(g(h)) entonces f(n) es Θ(g(h))
Si f(n) es o(g(n)) y g(n) es o(g(h)) entonces f(n) es o(g(h))
Si f(n) es ω (g(n)) y g(n) es ω (g(h)) entonces f(n) es ω (g(h))
Demostración
+ 19
Más propiedades
Demostración
f(n) es O(g(n)) => existen nf y cf tal que para toda n≥nf,
cfg(n)≥f(n)
g(n) es O(h(n)) => existen ng y cg tal que para toda n≥ng,
cgh(n)≥f(n)
Entonces, cfcg(n)≥f(n) para toda n≥max{nf,ng}
Por lo tanto, f(n) es O(h(n))
+ 20
Más propiedades
Reflexividad
f(n) es O(f(n))
Lo mismo para Θ y Ω
Simetría
f(n) es Θ(g(n)) si y sólo si g(n) es Θ(f(n))
Simetría transpuesta
f(n) es O(g(n)) si y sólo si g(n) es Ω(f(n))
f(n) es o(g(n)) si y sólo si g(n) es ω(f(n))
Aditividad
Si f(n) es Θ(h(n)) y g(n) es Θ(h(n)), entonces f(n)+g(n) es Θ(h(n))
Lo mismo para las demás
+
Compilación de tiempos de
ejecución comunes
21
+ 22
Demostración
+ 25
Demostración
El conjunto A se vacía
Mejor caso: después de n iteraciones
todos los números en el conjunto A son menores que el primer número en el
conjunto B
Peor caso: después de 2n iteraciones
el primer número en el conjunto A es mayor a todos los números del conjunto B
El conjunto B se vacía
Mejor caso: después de 2n iteraciones
todos los números en el conjunto A son menores que el primer número en el
conjunto B
Peor caso: después de n iteraciones
el primer número en el conjunto A es mayor a todos los números del conjunto B
+ 26
Conjunto independiente
Dado un grafo, existen k nodos tales que no están unidos por una
arista?
Solución de tiempo de O(nk)
+ 33
O(nk/k!)=O(nk)
+ 34
Clase P
Los algoritmos de complejidad polinómica se dice que son
tratables en el sentido de que suelen ser abordables en la
práctica
Los problemas para los que se conocen algoritmos con esta
complejidad se dice que forman la clase P.
Aquellos problemas para los que la mejor solución que se conoce
es de complejidad superior a la polinómica, se dice que son
problemas intratables. Seria muy interesante encontrar alguna
solución polinómica (o mejor) que permitiera abordarlos.
+ 36
Clase NP
Algunos de estos problemas intratables pueden caracterizarse
por el curioso hecho de que puede aplicarse un algoritmo
polinómico para comprobar si una posible solución es válida o no
Esta característica lleva a un método de resolución no
determinista consistente en aplicar heurísticos para obtener
soluciones hipotéticas que se van desestimando (o aceptando) a
ritmo polinómico
Los problemas de esta clase se denominan NP (la N de no-
deterministas y la P de polinómicos)
+ 37
Clase NP-completo
Se conoce una amplia variedad de problemas de tipo NP, de los
cuales destacan algunos de ellos de extrema complejidad.
Son problemas NP, y son los peores problemas posibles de clase
NP. Estos problemas se caracterizan por ser todos "iguales" en el
sentido de que si se descubriera una solución P para alguno de
ellos, esta solución sería fácilmente aplicable a todos ellos.
Actualmente hay un premio de prestigio equivalente al Nobel
reservado para el que descubra semejante solución ... ¡y se duda
seriamente de que alguien lo consiga!
Si se descubriera una solución para los problemas NP-completos,
esta sería aplicable a todos los problemas NP y, por tanto, la clase
NP desaparecería del mundo científico al carecerse de
problemas de ese tipo.
+ 38
Clase NP-difícil
Intuitivamente estos son los problemas que son más difíciles que
los NP-completos
Los problemas NP-hard no tienen que ser NP
+ 39