conceptos fundamentales del análisis de algoritmos iiertello/algorithms/sesion03.pdf · conceptos...

Post on 11-Oct-2020

9 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

top related