Conceptos Fundamentales del Análisis de Algoritmos IIertello/algorithms/sesion03.pdf · Tarea 3...
-
Upload
duongkhuong -
Category
Documents
-
view
228 -
download
0
Transcript of Conceptos Fundamentales del Análisis de Algoritmos IIertello/algorithms/sesion03.pdf · Tarea 3...
Conceptos Fundamentales del Análisis deAlgoritmos II
Dr. Eduardo A. RODRÍGUEZ TELLO
CINVESTAV-Tamaulipas
17 de enero de 2018
Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Conceptos Fundamentales del Análisis II 17 de enero de 2018 1 / 20
1 Conceptos fundamentales del análisis de algoritmos IIOrden de crecimiento asintóticoComparación de ordenes de crecimiento con límitesOrdenes de crecimiento de funciones importantesClases básicas de eficiencia asintóticaTarea 3
Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Conceptos Fundamentales del Análisis II 17 de enero de 2018 2 / 20
Conceptos fundamentales del análisis de algoritmos II Orden de crecimiento asintótico
1 Conceptos fundamentales del análisis de algoritmos IIOrden de crecimiento asintóticoComparación de ordenes de crecimiento con límitesOrdenes de crecimiento de funciones importantesClases básicas de eficiencia asintóticaTarea 3
Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Conceptos Fundamentales del Análisis II 17 de enero de 2018 3 / 20
Conceptos fundamentales del análisis de algoritmos II Orden de crecimiento asintótico
Orden de crecimiento asintótico
Una forma de comparar funciones que ignora factores constantesy tamaños de entradas pequeños
O(g(n)): clase de funciones f(n) que crecen no más rápido queg(n)n ∈ O(n2), 100n+ 5 ∈ O(n2), 1
2n(n− 1) ∈ O(n2).
Θ(g(n)): clase de funciones f(n) que crecen a la misma tasa queg(n)an2 + bn+ c ∈ Θ(n2), n2 + sinn ∈ Θ(n2), n2 log n ∈ Θ(n2).
Ω(g(n)): clase de funciones f(n) que crecen al menos tan rápidocomo g(n)n3 ∈ Ω(n2), 1
2n(n− 1) ∈ Ω(n2), 100n+ 5 /∈ Ω(n2).
Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Conceptos Fundamentales del Análisis II 17 de enero de 2018 4 / 20
Conceptos fundamentales del análisis de algoritmos II Orden de crecimiento asintótico
Orden de crecimiento asintótico, Gran-O
t(n) ≤ cg(n), para toda n ≥ n0Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Conceptos Fundamentales del Análisis II 17 de enero de 2018 5 / 20
Conceptos fundamentales del análisis de algoritmos II Orden de crecimiento asintótico
Orden de crecimiento asintótico, Gran-Omega
t(n) ≥ cg(n), para toda n ≥ n0Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Conceptos Fundamentales del Análisis II 17 de enero de 2018 6 / 20
Conceptos fundamentales del análisis de algoritmos II Orden de crecimiento asintótico
Orden de crecimiento asintótico, Gran-Theta
c2g(n) ≤ t(n) ≤ c1g(n), para toda n ≥ n0Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Conceptos Fundamentales del Análisis II 17 de enero de 2018 7 / 20
Conceptos fundamentales del análisis de algoritmos II Orden de crecimiento asintótico
Orden de crecimiento asintótico, ejercicio 1
Utilice la notación más apropiada entre O,Θ y Ω para indicar laclase de eficiencia temporal del algoritmo de búsqueda secuencial
Respuestas:
Cworst(n) = n, Cworst(n) ∈ Θ(n)
Cbest(n) = 1, Cbest(n) ∈ Θ(1)
Cavg(n) =p(n+1)
2 + n(1− p) = (1− p2 )n + p
2 , Cavg(n) ∈ Θ(n)
Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Conceptos Fundamentales del Análisis II 17 de enero de 2018 8 / 20
Conceptos fundamentales del análisis de algoritmos II Orden de crecimiento asintótico
Orden de crecimiento asintótico, ejercicio 1
Utilice la notación más apropiada entre O,Θ y Ω para indicar laclase de eficiencia temporal del algoritmo de búsqueda secuencial
Respuestas:
Cworst(n) = n, Cworst(n) ∈ Θ(n)
Cbest(n) = 1, Cbest(n) ∈ Θ(1)
Cavg(n) =p(n+1)
2 + n(1− p) = (1− p2 )n + p
2 , Cavg(n) ∈ Θ(n)
Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Conceptos Fundamentales del Análisis II 17 de enero de 2018 8 / 20
Conceptos fundamentales del análisis de algoritmos II Orden de crecimiento asintótico
Orden de crecimiento asintótico, ejercicio 2
De las siguientes afirmaciones cuáles son verdaderas y cuáles sonfalsas:
1 n(n+ 1)/2 ∈ O(n3)
V
2 n(n+ 1)/2 ∈ O(n2)
V
3 n(n+ 1)/2 ∈ Θ(n3)
F
4 n(n+ 1)/2 ∈ Ω(n3)
F
5 n(n+ 1)/2 ∈ Ω(n)
V
Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Conceptos Fundamentales del Análisis II 17 de enero de 2018 9 / 20
Conceptos fundamentales del análisis de algoritmos II Orden de crecimiento asintótico
Orden de crecimiento asintótico, ejercicio 2
De las siguientes afirmaciones cuáles son verdaderas y cuáles sonfalsas:
1 n(n+ 1)/2 ∈ O(n3) V
2 n(n+ 1)/2 ∈ O(n2) V
3 n(n+ 1)/2 ∈ Θ(n3) F
4 n(n+ 1)/2 ∈ Ω(n3) F
5 n(n+ 1)/2 ∈ Ω(n) V
Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Conceptos Fundamentales del Análisis II 17 de enero de 2018 9 / 20
Conceptos fundamentales del análisis de algoritmos II Orden de crecimiento asintótico
Orden de crecimiento asintótico, propiedades
f(n) ∈ O(f(n))
f(n) ∈ O(g(n)) si y sólo si g(n) ∈ Ω(f(n))
Si f(n) ∈ O(g(n)) y g(n) ∈ O(h(n)), entonces f(n) ∈ O(h(n))
Si f1(n) ∈ O(g1(n)) y f2(n) ∈ O(g2(n)), entoncesf1(n) + f2(n) ∈ O(maxg1(n), g2(n))
Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Conceptos Fundamentales del Análisis II 17 de enero de 2018 10 / 20
Conceptos fundamentales del análisis de algoritmos II Comparación de ordenes de crecimiento con límites
1 Conceptos fundamentales del análisis de algoritmos IIOrden de crecimiento asintóticoComparación de ordenes de crecimiento con límitesOrdenes de crecimiento de funciones importantesClases básicas de eficiencia asintóticaTarea 3
Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Conceptos Fundamentales del Análisis II 17 de enero de 2018 11 / 20
Conceptos fundamentales del análisis de algoritmos II Comparación de ordenes de crecimiento con límites
Comparación de ordenes de crecimiento con límites
lımn→∞
T (n)
g(n)=
0 orden de crecimiento de T (n)< orden de crecimiento de g(n)
c > 0 orden de crecimiento de T (n) = orden de crecimiento de g(n)
∞ orden de crecimiento de T (n)> orden de crecimiento de g(n)
Ejemplo:
Comparar 12n(n− 1) y n2
lımn→∞
12n(n− 1)
n2=
1
2lım
n→∞
n2 − nn2
=1
2lım
n→∞
(1− 1
n
)=
1
2
Como el límite es igual a una constante positiva, entonces las funciones tienenigual orden de crecimiento, i.e., 1
2n(n− 1) ∈ Θ(n2)
Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Conceptos Fundamentales del Análisis II 17 de enero de 2018 12 / 20
Conceptos fundamentales del análisis de algoritmos II Comparación de ordenes de crecimiento con límites
Comparación de ordenes de crecimiento con límites
Regla de l’Hôpital
Si lımn→∞
f(n) = lımn→∞
g(n) =∞ y las derivadas f ′, g′ existen, entonces:
lımn→∞
f(n)
g(n)= lım
n→∞
f ′(n)
g′(n)
Ejemplo:Comparar log2 n y
√n
lımn→∞
log2 n√n
= lımn→∞
(log2 n)′
(√n)′
= lımn→∞
(log2 e)1n
12√n
= 2 log2 e lımn→∞
1√n
= 0
Como el límite es igual a cero, entonces la función log2 n tienen unorden de crecimiento más pequeño que el de
√n, i.e., log2 n ∈ o(
√n)
o(g(n)): clase de funciones f(n) que crecen estrictamente menos rápido que g(n)
Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Conceptos Fundamentales del Análisis II 17 de enero de 2018 13 / 20
Conceptos fundamentales del análisis de algoritmos II Comparación de ordenes de crecimiento con límites
Comparación de ordenes de crecimiento con límites
Fórmula de StirlingPara valores grandes de n:
n! ≈√
2πn(ne
)nEjemplo:
Comparar n! y 2n
lımn→∞
n!
2n= lım
n→∞
√2πn
(ne
)n2n
= lımn→∞
√2πn
nn
2nen= lım
n→∞
√2πn
( n2e
)n=∞
Por lo tanto, aunque 2n crece muy rápido, n! crece incluso más rápido, i.e.,n! ∈ Ω(2n)
Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Conceptos Fundamentales del Análisis II 17 de enero de 2018 14 / 20
Conceptos fundamentales del análisis de algoritmos II Ordenes de crecimiento de funciones importantes
1 Conceptos fundamentales del análisis de algoritmos IIOrden de crecimiento asintóticoComparación de ordenes de crecimiento con límitesOrdenes de crecimiento de funciones importantesClases básicas de eficiencia asintóticaTarea 3
Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Conceptos Fundamentales del Análisis II 17 de enero de 2018 15 / 20
Conceptos fundamentales del análisis de algoritmos II Ordenes de crecimiento de funciones importantes
Ordenes de crecimiento de funciones importantes
Todas las funciones logarítmicas loga n pertenecen a la mismaclase Θ(log n) sin importar la base del logaritmo a > 1
Todos los polinomios del mismo grado k pertenecen a la mismaclase aknk + ak−1n
k−1 + · · ·+ a0 ∈ Θ(nk)
Las funciones exponenciales an tienen diferentes ordenes decrecimiento para diferentes valores de a
orden log n < orden nα(α > 0) < orden an < orden n! < orden nn
Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Conceptos Fundamentales del Análisis II 17 de enero de 2018 16 / 20
Conceptos fundamentales del análisis de algoritmos II Clases básicas de eficiencia asintótica
1 Conceptos fundamentales del análisis de algoritmos IIOrden de crecimiento asintóticoComparación de ordenes de crecimiento con límitesOrdenes de crecimiento de funciones importantesClases básicas de eficiencia asintóticaTarea 3
Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Conceptos Fundamentales del Análisis II 17 de enero de 2018 17 / 20
Conceptos fundamentales del análisis de algoritmos II Clases básicas de eficiencia asintótica
Clases básicas de eficiencia asintótica
Clase Nombre
1 constante
log n logarítmico
n lineal
n log n n-log-n o linearítmico
n2 cuadrático
n3 cúbico
2n exponencial
n! factorial
Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Conceptos Fundamentales del Análisis II 17 de enero de 2018 18 / 20
Conceptos fundamentales del análisis de algoritmos II Tarea 3
1 Conceptos fundamentales del análisis de algoritmos IIOrden de crecimiento asintóticoComparación de ordenes de crecimiento con límitesOrdenes de crecimiento de funciones importantesClases básicas de eficiencia asintóticaTarea 3
Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Conceptos Fundamentales del Análisis II 17 de enero de 2018 19 / 20
Conceptos fundamentales del análisis de algoritmos II Tarea 3
Tarea 3
Pruebe, usando límites, que las siguientes funciones estánlistadas ascendentemente con respecto a sus ordenes decrecimiento correspondientes:
log n, n, n log n, n2, n3, 2n, n!
Fecha de entrega: 24 de enero antes de las 8 AM
Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Conceptos Fundamentales del Análisis II 17 de enero de 2018 20 / 20