Instituto Tecnológico de Ciudad Madero Unidad I. Complejidad Computacional Dra. Laura Cruz Reyes Capitulo 2. Clasificación de Algoritmos Ejercicios Resueltos de Clasificación de Funciones 2.1. Determine si f (n) pertenece a la clase indicada para g (n) a) f (n) = n lg n ; g (n) = (2n)lg(2 n ) ; f (n) ∈ Θ( g (n)) Solución usando simplificación de funciones Considere que lg n = log 2 n f (n) = n lg n Sea g (n) = (2n)lg(2 n ) Simplificando g (n) g (n) = (2n)lg(2 n ) = (2n)lg 2+ lg n = ( (2n)lg 2 )( (2n)lg n ) = 2lg 2 nlg 2 2lg n nl g n = 21 ⋅ n1 ⋅ nlg 2 ⋅ nlg n = 2n 2 nlg n lim n →∞ f ( n) n lg n 1 = lim = lim 2 = 0 2 lg n g (n) n→∞ (2n )(n ) n →∞ 2n Se sigue que f ∉ Ω( g (n)) , es decir n log n ∉ Θ(2n)lg(2 n ) n log n ∈ O (2n)lg(2 n ) Solución usando la regla de L´Hôpital d (n lg n ) dn d lg n lg e = lg n(n lg n −1 ) + n lg n ( ln n ) = lg n ( n lg n −1 ) + n lg n ln n f '(n) = dn dn dn n lg n lg n ( n ) lg n lg e + n lg n f '(n) = n lg e n f ' ( n ) == 2 lg n ( n lg n ) n lg 2 n d ((2n) d 2n = lg(2n)(2n)lg 2 n −1 + (2n)lg 2 n ln 2n dn dn 2 lg(2n)(2n)lg 2 n 2 lg e g '( n) = + (2n)lg 2 n ln 2n 2n 2n lg 2 n lg(2n)(2n) lg 2n lg e g '( n) = + (2n)lg 2 n n lg e n g '( n) = = lg(2n)(2n)lg 2 n + (2n)lg 2 n lg(2n) 2 lg(2n)(2n)lg 2 n = n n Instituto Tecnológico de Ciudad Madero Unidad I. Complejidad Computacional Dra. Laura Cruz Reyes Capitulo 2. Clasificación de Algoritmos f '(n) 2 lg n(nlg n )n −1 lg n(nlg n ) = = g '(n) 2 lg(2n)(2n)lg 2 n n −1 [ lg 2 + lg n)] (2n)lg 2+ lg n = lg n(n lg n ) lg n(nlg n ) = [1 + lg n)] (2n)(2n)lg n [1 + lg n)] (2n)(n)lg 2 n = lg n(n lg n ) lg n = lg 2 lg n [1 + lg n)] (2n)(n) (n) [1 + lg n)] (2n2 ) La regla de L'Hôpital se aplica nuevamente dado que: lim n →∞ lg n f '(n) ∞ = lim = 2 g '(n) n →∞ [1 + lg n) ] (2n ) ∞ lg e ⎞ f ''(n) d ⎛ lg n lg e n = ⎜⎜ = = 2 2 ⎟ ⎟ g ''(n) dn ⎝ [1 + lg n) ] (2n ) ⎠ 4n + 2n 2 lg e + 4n 2 lg n 2n (2 + lg e + 2 lg n) n f ''(n) lg e lg e = lim 2 = =0 lim n →∞ g ''( n) n →∞ 2n (2 + lg e + 2 lg n) ∞ ∴ f (n) ∉ Θ( g (n)) f (n) ∈ O( g (n)) COMPROBACIÓN CON DERIVE #1: f(n) ≔ n^LOG(n, 2) #2: g(n) ≔ (2n)^LOG(2n, 2) #3: f(n)/g(n) #4: LIM(f(n)/g(n), n, ∞, 0) #5: b) 0 f (n) = 1000n 2 ; Sea lim n →∞ g ( n) = 1 3 n; 1000 f (n) ∈ O( g ( n)) f (n) = 1000n 2 1 3 g ( n) = n 1000 f ( n) 1000n 2 1×106 = lim = lim =0 g (n) n →∞ 1 n3 n→∞ n 1000 Instituto Tecnológico de Ciudad Madero Unidad I. Complejidad Computacional Dra. Laura Cruz Reyes Capitulo 2. Clasificación de Algoritmos Se sigue que f ∈ O( g (n)) , ⎛ 1 3⎞ 1000n 2 ∈ O ⎜ n ⎟ ⎝ 1000 ⎠ es decir COMPROBACIÓN CON DERIVE #1: f(n) ≔ 1000n^2 #2: g(n) ≔ 1/1000n^3 #3: LIM(f(n)/g(n), n, ∞, 0) #4: c) 0 f ( n) = n ; g (n) = log n; Sea f (n) ∉ O ( g (n)) y g (n) ∈ O ( f (n)) f ( n) = n g (n) = log n 1 −1 1 ( n) 2 f ( n) n lim = lim = lim 2 1 n →∞ g ( n) n →∞ log n n →∞ n = lim n →∞ 1 2 ( n) 1 n − 12 = lim n →∞ 1 2 n 1 n 1 n2 n ∞ = lim = lim = =∞ n →∞ 2 n →∞ 2 2 Ya que n ∈ Ω(log n) Se sigue que n ∉ O(log n) Aplicando la propiedad de simetría transpuesta se sigue que: log n ∈ O ( n) 1− 12 ( n) = lim = lim n →∞ 2 n n →∞ 2 n Instituto Tecnológico de Ciudad Madero Unidad I. Complejidad Computacional Dra. Laura Cruz Reyes Capitulo 2. Clasificación de Algoritmos COMPROBACIÓN CON DERIVE #1: f(n) ≔ √n #2: g(n) ≔ LOG(n) #3: LIM(f(n)/g(n), n, ∞, 0) #4: 2.2. ∞ ¿Cuáles de las siguientes afirmaciones son verdaderas? Demuestre sus respuestas en los incisos g al j. a) b) c) d) e) f) g) h) i) j) O (log 5 n) = O (log 3 n) O (log 3 n) = O (log 5 n) O (log 8 n) = O(log n) O (log n n) = O (log n) O (log 0.5 n) = O(lg 2 n) O (2log 2 n ) = O (2log10 n ) n = O(n ) 2 3 n 2 = Ω( n 3 ) 2n = Θ(2n +1 ) n ! = Θ((n + 1)!) V V V V V . . . . . F V F V . . . . F . DEMOSTRACIONES. a) y b) f (n) = log 5 n lim n →∞ g (n) = log 3 n log 5 n ∞ = log 3 n ∞ f ´(n) = log 5 e n g´(n) = log 3 e n log 5 e log 5 e f ´(n) lim = lim n = =c n →∞ g´( n) n →∞ log e log 3 e 3 n ∴ la expresión O(log 5 n) ∈ O (log 3 n) es verdadera Instituto Tecnológico de Ciudad Madero Unidad I. Complejidad Computacional Dra. Laura Cruz Reyes Capitulo 2. Clasificación de Algoritmos COMPROBACIÓN CON DERIVE #1: f(n) ≔ LOG(n, 5) #2: g(n) ≔ LOG(n, 3) #3: LIM(f(n)/g(n), n, ∞, 0) LN(3) ⎯⎯⎯⎯⎯⎯⎯ LN(5) #4: c) f (n) = log8 n g (n) = log n log 8 n ∞ = n →∞ log n ∞ lim f ´(n) = log 8 e n g´(n) = log e n log 8 e log 8 e f ´(n) lim = lim n = =c n →∞ g´( n) n →∞ log e log e n ∴ la expresión O(log 8 n) ∈ O(log n) es verdadera COMPROBACIÓN CON DERIVE #1: f(n) ≔ LOG(n, 8) #2: g(n) ≔ LOG(n, 10) #3: LIM(f(n)/g(n), n, ∞, 0) LN(5) 1 ⎯⎯⎯⎯⎯⎯⎯⎯⎯ + ⎯⎯⎯ 3·LN(2) 3 #4: d) Aplicando la ley log b b a = a tenemos que log n n = 1 lim n →∞ 1 1 = lim = 0 n →∞ log n ∞ Por tanto: O(log n n) = O(log n) Instituto Tecnológico de Ciudad Madero Unidad I. Complejidad Computacional Dra. Laura Cruz Reyes Capitulo 2. Clasificación de Algoritmos COMPROBACIÓN CON DERIVE #1: f(n) ≔ LOG(n, n) #2: g(n) ≔ LOG(n, 10) #3: f(n) lim ⎯⎯⎯⎯⎯⎯ n→∞ g(n) #4: 0 e) log 0.5 n = O (log 2 n) lg n log 0.5 n 1 lg 0.5 lim = lim = = 1 = −1 −1 n →∞ n →∞ lg n lg n lg 0.5 Por tanto: log 0.5 n ∈ O(log 2 n) COMPROBACIÓN CON DERIVE #1: f(n) ≔ LOG(n, 0.5) #2: g(n) ≔ LOG(n, 2) #3: LIM(f(n)/g(n), n, ∞, 0) #4: -1 f) 2lg n = O(2log n ) 2lg n n = lim log 2 = lim n1−log 2 ≈ lim n0.7 = ∞ log n n →∞ 2 n →∞ n n →∞ n →∞ lim Por tanto: 2lg n ∈ O(2log n ) COMPROBACIÓN CON DERIVE #1: f(n) ≔ 2^LOG(n, 2) #2: g(n) ≔ 2^LOG(n, 10) #3: LIM(f(n)/g(n), n, ∞, 0) #4: ∞ Instituto Tecnológico de Ciudad Madero Unidad I. Complejidad Computacional Dra. Laura Cruz Reyes Capitulo 2. Clasificación de Algoritmos g) n 2 = O(n3 ) n2 1 = lim = 0 n →∞ n 3 n →∞ n lim Por tanto: n 2 ∈ O (n3 ) Por tanto: n 2 ∉ Ω( n 3 ) h) n 2 = Ω(n3 ) n2 1 lim 3 = lim = 0 n →∞ n n →∞ n COMPROBACIÓN CON DERIVE #1: f(n) ≔ n^2 #2: g(n) ≔ n^3 #3: LIM(f(n)/g(n), n, ∞, 0) #4: 0 i) 2n = Θ(2n+1 ) 2n 1 1 = lim = n + 1 n →∞ 2 n →∞ 2 2 lim 1 2 〉 0 Por tanto: 2n ∈ Θ(2n+1 ) COMPROBACIÓN CON DERIVE #1: f(n) ≔ 2^n #2: g(n) ≔ 2^(n+1) #3: LIM(f(n)/g(n), n, ∞, 0) 1 ⎯⎯⎯ 2 #4: j) n ! = Θ((n + 1)!) n! 1 = lim =0 n →∞ ( n + 1)! n →∞ n + 1 lim Instituto Tecnológico de Ciudad Madero Unidad I. Complejidad Computacional Por tanto: Dra. Laura Cruz Reyes Capitulo 2. Clasificación de Algoritmos n !∉ Θ((n + 1)!) COMPROBACIÓN CON DERIVE #1: f(n) ≔ n! #2: g(n) ≔ (n + 1)! #3: LIM(f(n)/g(n), n, ∞, 0) #4: 0 2.3. Encuentre la relación de orden de la función f a la función g, determinando el límite del cociente de f entre g. a) f ( n) = n y g ( n) = n +3 4 Sea f (n) = n y g (n) = lim n →∞ n +3 4 f ( n) n ∞ = lim = g (n) n→∞ n + 3 ∞ 4 (Forma indeterminada) Debido a la forma indeterminada se aplica la Regla de L´Hôpital f '(n) = 1 g '(n) = 1/ 4 lim n →∞ f '(n) 1 = =4 g '(n) 1 4 ( Se sigue que f ∈θ ( g (n)) , es decir n = Θ n + 3 4 ) Instituto Tecnológico de Ciudad Madero Unidad I. Complejidad Computacional Dra. Laura Cruz Reyes Capitulo 2. Clasificación de Algoritmos COMPROBACIÓN CON DERIVE #1: f(n) ≔ n #2: g(n) ≔ n/4 + 3 #3: LIM(f(n)/g(n), n, ∞, 0) #4: b) 4 f ( n) = n +3 4 y Sea f (n) = g ( n) = n 2 n +3 4 y g ( n) = n 2 n +3 ∞ f ( n) = lim 4 2 = lim n →∞ g ( n) n →∞ ∞ n (Forma indeterminada) Debido a la forma indeterminada se aplica la regla de L´Hôpital 1 4 g '(n) = 2n f '(n) = lim n →∞ 1 f '(n) 1 = 2= =0 g '(n) 2n 4n Se sigue que f ∈θ ( g (n)) , es decir n + 3 = O(n 2 ) 4 COMPROBACIÓN CON DERIVE #1: f(n) ≔ n/4 + 3 #2: g(n) ≔ n^2 #3: LIM(f(n)/g(n), n, ∞, 0) #4: 0 Instituto Tecnológico de Ciudad Madero Unidad I. Complejidad Computacional c) f ( n) = n a Dra. Laura Cruz Reyes Capitulo 2. Clasificación de Algoritmos g (n) = log n y Sea f (n) = n a y g (n) = log n lim n →∞ f ( n) na ∞ = lim = g (n) n →∞ log n ∞ (Forma indeterminada) Debido a la forma indeterminada se aplica la regla de L´Hôpital f '(n) = an a −1 1 g '(n) = n f '(n) an a −1 lim = = lim an a −1n = lim an a = ∞ n →∞ g '( n) n →∞ n →∞ 1 n Se sigue que f (n) ∈ Ω( g (n)) , es decir n a = Ω(log n) log n = O(n a ) (Propiedad de simetría transpuesta) COMPROBACIÓN CON DERIVE #1: f(n) ≔ n^a #2: g(n) ≔ LOG(n) #3: LIM(f(n)/g(n), n, ∞, 0) #4: ? #5: LIM(∂(f(n), n)/∂(g(n), n), n, ∞, 0) #6: a·∞ a Instituto Tecnológico de Ciudad Madero Unidad I. Complejidad Computacional Dra. Laura Cruz Reyes Capitulo 2. Clasificación de Algoritmos 2.4. Encuentre un valor de c y n0 para los cuales se cumpla f (n) ≤ cg (n) para n ≥ n0 a) g (n) = n 2 ; f (n) = 2n 2 + 3n + 12 Si existe una constante c y una entrada de tamaño n0 tal que f (n) ≤ cg (n) para n ≥ n0 , entonces se demuestra que: f (n) ∈ O( g (n)) Así, usando la expresión: f ( n) ≤ c g ( n) ∀ n ≥ n0 Se tiene que: 2n 2 + 3n + 12 ≤ c (n 2 ) ∀ n ≥ n0 para n = 10 y n0 = 2 2 (2)2 + 3 (2) + 12 26 ∴ ≤ 10 (22) ≤ 40 f (n) ∈ O( g (n)) COMPROBACIÓN CON DERIVE #1: g(n) ≔ n^2 #2: f(n) ≔ 2n^2 #3: f(n) ≤ c g(n) + 3n + 12 2 #4: 2·n #5: c = 10 #6: f(2) #7: #8: 26 10g(2) #9: #10: #11: + 3·n ≤ c·n 40 f(2) ≤ 10 g(2) true 2 - 12 Instituto Tecnológico de Ciudad Madero Unidad I. Complejidad Computacional Dra. Laura Cruz Reyes Capitulo 2. Clasificación de Algoritmos 2.5. Aplique la regla del máximo. a) O (n 2 + n3 + n log n) b) O(12n3 log n, log 2 n + 36, 5n 2 ) Æ Æ O (n3 ) O (12n3 log n) = O (n3 log n) 2.6. Suponga que un algoritmo ejecutaT(n) = log2 n pasos. Calcular el tamaño de entrada con la cual el algoritmo se ejecuta en 100 pasos. T (n) = log 2 n = 100 2log 2 n = 2100 n = 2100 = 1.26 × 1030 comprobación log 2 1.26 ×1030 = ln1.26 × 1030 = 99.99 ≈ 100 ln 2 COMPROBACIÓN CON DERIVE #1: T(n) ≔ LOG(n, 2) #2: T(n) = 100 #3: SOLVE(T(n) = 100, n) #4: #5: n = 1267650600228229401496703205376 LOG(1.26 + 10^30 , 2) #6: 99.65784284 2.7. Suponga que el algoritmo 1 ejecuta f(n) = n2 +4n pasos en el peor caso, y el algoritmo 2 ejecuta g(n) = 29n + 3 pasos en el peor caso, con entradas de tamaño n. ¿Con entradas de qué tamaño es más rápido el algoritmo 1 que el algoritmo 2 (en el peor caso)? Se determina el punto en el cual los dos algoritmos tienen el mismo desempeño f ( n) = g ( n) n 2 + 4n = 29n + 3 → n 2 − 25n − 3 = 0 −(−25) ± (-25) 2 - 4 (1) (-3)] 2(1) n1 = 25.12, n2 = −0.12 n= como n pertenece a Z + ∴ f (n) es más rápido que g ( n) cuando n ∈ [ 0,25] (n está en el rango de 0 a 25) Instituto Tecnológico de Ciudad Madero Unidad I. Complejidad Computacional Dra. Laura Cruz Reyes Capitulo 2. Clasificación de Algoritmos En la gráfica y tabla correspondiente, se puede apreciar que con valores de n menores de 25.12, el algoritmo 1 con función f(n) es más rápido que el algoritmo 2 con función g(n) Comparacion de Funciones 1200 1000 800 f(n) 600 g(n) 400 200 30 28 25 25 .1 19 43 25 .4 26 .5 24 10 0 0 n f(n)=n^2+4n g(n)=29n+3 0 0 3 5 45 148 10 140 293 20 480 583 24 672 699 24.5 698.25 713.5 25 725 728 25.1 730.41 730.9 25.1194295 731.463456 731.463456 25.2 735.84 733.8 25.3 741.29 736.7 25.4 746.76 739.6 26 780 757 27 837 786 28 896 815 29 957 844 30 1020 873 COMPROBACIÓN CON DERIVE #1: f(n) ≔ n^2 + 4n #2: g(n) ≔ 29n + 3 #3: f(n) = g(n) #4: SOLVE(f(n) = g(n), n, Real) #5: 25 7·√13 7·√13 25 n = ⎯⎯⎯⎯ - ⎯⎯⎯⎯⎯⎯⎯ ∨ n = ⎯⎯⎯⎯⎯⎯⎯ + ⎯⎯⎯⎯ 2 2 2 2 #6: n = -0.1194294641 ∨ n = 25.11942946 Instituto Tecnológico de Ciudad Madero Unidad I. Complejidad Computacional Dra. Laura Cruz Reyes Capitulo 2. Clasificación de Algoritmos p(n) = ak n k + ak −1n k −1 + " + a1n + a0 un polinomio en n de grado k con ak > 0. Demuestre que p(n) está en Θ(nk). 2.8. Sea ak n k + ak −1n k −1 + " + a1n + a0 a a a a a a = lim ak + k −1 + " + k1−1 + 0k = ak + k −1 + " + 1 + 0 = a k k n →∞ n →∞ ∞ ∞ ∞ n n n n lim como ak es una constante entonces p (n) ∈ O(n k ) COMPROBACIÓN CON DERIVE #1: p(n, k) ≔ ∑(a sub i n^i, i, 0, k) #2: n^k #3: p(n, k)/n^k #4: LIM(p(n, k)/n^k, a, ∞, 0) #5: VECTOR(LIM(p(n, k)/n^k, n, ∞, 0), k, 0, 10, 1) #6: ⎡a , a , a , a , a , a , a , a , a , a , a ⎤ ⎣ 0 1 2 3 4 5 6 7 8 9 10⎦ 2.9. Añada una fila a la tabla 1.1 que indique el tamaño máximo aproximado de las entradas que se pueden resolver en un día para cada columna. Algoritmo función de tiempo T(n) Tamaño de la entrada (n) 10 100 1000 10000 100000 Tiempo permitido 1 segundo 1 minuto 1 día (86400 segundos) 1 33n 2 3 4 46n lg n 13n2 3.4n3 Tiempo para resolver 0.00033 s 0.0015 s 0.0013 s 0.0034 s 0.003 s 0.03 s 0.13 s 3.4 s 0.033 s 0.45 s 13 s 0.94 h 0.33 s 6.1 s 22 min 39 días 3.3 s 1.3 min 1.5 días 108 años Tamaño de la entrada máxima posible (aprox.) 30,000 2,000 280 67 1’800,000 82,000 2,200 260 2,618,181,818 73,000,000 81,524 2,940 5 2n 0.001 s 4*10 16 años ---------------20 26 36 Instituto Tecnológico de Ciudad Madero Unidad I. Complejidad Computacional Dra. Laura Cruz Reyes Capitulo 2. Clasificación de Algoritmos Algoritmo 1 El tiempo de solución teórico T(n) tiene relación con el tiempo de solución experimental t (expresado en segundos) mediante una constante de proporcionalidad. Para el algoritmo 1 la constante de proporcionalidad es la siguiente: T (n) = 33n c= t .00033 .0033 .033 = = = = 1× 10−6 T (n) 33(10) 33(100) 33(1000) Esta constante de proporcionalidad permite obtener el tamaño de entrada que se puede resolver en un tiempo dado en segundos. t t t =c→ = 1× 10−6 → n = 1× 106 T ( n) 33n 33 para t = 1 dia = 86400 seg n= 86400 1× 106 = 2, 618,181,818 33 COMPROBACIÓN CON DERIVE #1: T(n) ≔ 33n #2: 0.00033/T(10) = 86400/T(n) #3: 9 n = 2.618181818·10 Algoritmo 2 Se obtiene el mismo resultado en n si se utiliza log10n en lugar de lgn, por lo que para simplificar los cálculos se utlizará el logaritmo en base 10. T (n) = 46nlgn t 0.0015 0.03 0.45 c= = = = = 326 × 10−8 T (n) 46(10) lg10 46(100) lg100 46(1000) lg1000 t =c T ( n) t = 326 × 10−8 46n lg n t n lg n = 1× 108 46 × 326 Instituto Tecnológico de Ciudad Madero Unidad I. Complejidad Computacional Dra. Laura Cruz Reyes Capitulo 2. Clasificación de Algoritmos Para t = 1 día = 86400 seg. 86400 1× 108 = 576153641 46 × 326 por tanteo se obtiene: n lg n = 73000000(lg 73000000) = 574022568 ∴ n ≈ 73000000 COMPROBACIÓN CON DERIVE #1: T(n) ≔ 46 n LOG(n, 2) #2: 0.0015/T(10) = 86400/T(n 1 -10 ⎯⎯⎯⎯⎯⎯⎯⎯⎯ = 7.539834755·10 n·LN(n) #3: #4: NSOLVE(1/(n LN(n)) = 7.539834755 10^(-10), n, Real) 7 n = 7.32382928·10 #5: Resumiendo, para calcular el valor de n para t = 1 dia = 86400*106 segundos t *10 Para Algoritmo 1: n = 33 6 Para Algoritmo 2: por aproximación usando la expresión n lg n = Para Algoritmo 3: n = t *106 ≈ 81524 13 COMPROBACIÓN CON DERIVE #1: T(n) ≔ 13 n^2 #2: 0.0034/T(10) = 86400/T(n) 4 #3: n = - 8.152394645·10 4 ∨ n = 8.152394645·10 t 1× 108 46 × 326 Instituto Tecnológico de Ciudad Madero Unidad I. Complejidad Computacional Para Algoritmo 4: n = Dra. Laura Cruz Reyes Capitulo 2. Clasificación de Algoritmos 3 t *106 ≈ 2940 3.4 #1: T(n) ≔ 3.4 n^3 #2: 0.0034/T(10) = 86400/T(n) #3: n = 2939.98383 Para Algoritmo 5: n = log 2 (t *106 ) ≈ 36 log 2 (2) #1: T(n) ≔ 2^n #2: 0.001/T(10) = 86400/T(n) #3: #4: 2 NSOLVE(2^n n = 8.84736 10^10 #5: 10 = 8.84736·10 , n, Real) n = 36.36452797 2.10. Sean α y β números reales tales que 0 < α < β. Demuestre que nα está en O(nβ) pero nβ no está en O(nα). Como 0<α<β, entonces φ = β-α, siendo φ un entero positivo (φ ∈ R+). nα 1 1 lim β = lim β −α = lim ϕ = 0 n →∞ n n →∞ n n →∞ n ∴ nα ∈ O(n β ) nβ = lim n β −α = lim nϕ = ∞ α n →∞ n n →∞ n →∞ lim ∴ n β ∉ O(nα ) Instituto Tecnológico de Ciudad Madero Unidad I. Complejidad Computacional Dra. Laura Cruz Reyes Capitulo 2. Clasificación de Algoritmos 2.11. Haga una lista de las funciones siguiente, de la de más bajo orden asintótico a la de más alto orden asintótico. Si hay dos (o más) que tengan el mismo orden asintótico, indique cuales. a) n, n2, 2n, lg n, n lg n, n – n3 + 7n5 , n3, n2 + lg n 1. 2. 3. 4. 5. 6. 7. lg n n n lg n (n2 ) y (n2 + lgn) son del mismo orden n3 n - n3 + 7n5 2n b) Incorpore las funciones siguientes a su respuesta para la parte (a). Suponga 0< ε <1: en, ln n, n , (lg n)2, 2n-1, n!, lg lg n, n1+ ε 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. lg lg n (ln n) y (lg n) son del mismo orden (lg n)2 n n n1+ε n lg n (n2 ) y (n2 + lg n) son del mismo orden n3 n - n3 + 7n5 (2n-1) y (2n ) son del mismo orden en n! 2.12. Demuestre que se cumple o no se cumple n ∑i i =1 ∑ i2 = 2n3 + 3n 2 + n 6 f ( n) = 2n3 + 3n 2 + n 6 n i =1 g ( n) = n 2 2 ∈ Θ( n 2 ) Instituto Tecnológico de Ciudad Madero Unidad I. Complejidad Computacional Dra. Laura Cruz Reyes Capitulo 2. Clasificación de Algoritmos 2n3 + 3n 2 + n 2n3 3n 2 n 2 3 1 3 1 6 lim = lim 2 + 2 + 2 = lim n + + =∞+ + =∞ 2 n →∞ n →∞ n →∞ n 6n 6n 6n 6 6 6n 6 ∞ ∴ n ∑i 2 ∉ Θ( n 2 ) i =1 COMPROBACIÓN CON DERIVE #1: f(n) = ∑(i^2, i, 1, n) #2: g(n) = n^2 #3: f(n)/ g(n) #4: LIM(f(n)/g(n), n, ∞, 0) #5: ∞ 2.13. Considere las siguientes dieciocho funciones: n n log n n2 n1 3 + log n ln n (1 3) n n 2n n − n3 + 7 n5 n3 (log n) 2 n / log n (3 / 2) n n 2 + log n log n n! log log n 6 Agrupe estas funciones de manera que f (n) y g (n) esten en el mismo grupo si y solo si f (n) = O( g (n)) y g (n) = O( f (n)) y liste los grupos en orden creciente. Listado de funciones en forma creciente: 1. (1 3) n 2. 6 3. log log n 4. log n y ln n 5. (log n) 2 6. n1 3 + log n 7. n 8. n / log n 9. n Instituto Tecnológico de Ciudad Madero Unidad I. Complejidad Computacional 10. 11. 12. 13. 14. 15. 16. Dra. Laura Cruz Reyes Capitulo 2. Clasificación de Algoritmos n log n n 2 y n 2 + log n n3 n − n3 + 7 n5 (3 / 2) n 2n n! COMPROBACIÓN CON DERIVE #1: F ≔ [(1/3)^n, 6, LOG(LOG(n, 10), 10), LOG(n, 10), LN(n), LOG(n, 10)^2, n^(1/3) + LOG(n, 10), √n, n/LOG(n, 10), n, n·LOG(n, 10), n^2 + LOG(n, 10), n^2, n^3, n - n^3 + 7·n^5, (3/2)^n, 2^n, n!] #2: LIM(F/F sub 1, n, ∞, 0) #3: #4: #5: #6: #7: #8: #9: #10: #11: #12: #13: #14: #15: #16: #17: [1, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞] LIM(F/F sub 2, n, ∞, 0) [0, 1, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞] LIM(F/F sub 3, n, ∞, 0) [0, 0, 1, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞] LIM(F/F sub 4, n, ∞, 0) [0, 0, 0, 1, LN(10), ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞] LIM(F/F sub 5, n, ∞, 0) ⎡ 1 ⎤ ⎢0, 0, 0, ⎯⎯⎯⎯⎯⎯⎯⎯, 1, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞⎥ ⎣ LN(10) ⎦ LIM(F/F sub 6, n, ∞, 0) [0, 0, 0, 0, 0, 1, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞] LIM(F/F sub 7, n, ∞, 0) [0, 0, 0, 0, 0, 0, 1, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞] LIM(F/F sub 8, n, ∞, 0) [0, 0, 0, 0, 0, 0, 0, 1, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞] Instituto Tecnológico de Ciudad Madero Unidad I. Complejidad Computacional Dra. Laura Cruz Reyes Capitulo 2. Clasificación de Algoritmos COMPROBACIÓN CON DERIVE #18: #19: #20: #21: #22: #23: #24: #25: #26: #27: #28: #29: #30: #31: #32: #33: #34: #35: LIM(F/F sub 9, n, ∞, 0) [0, 0, 0, 0, 0, 0, 0, 0, 1, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞] LIM(F/F sub 10, n, ∞, 0) [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞] LIM(F/F sub 11, n, ∞, 0) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, ∞, ∞, ∞, ∞, ∞, ∞, ∞] LIM(F/F sub 12, n, ∞, 0) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, ∞, ∞, ∞, ∞, ∞] LIM(F/F sub 13, n, ∞, 0) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, ∞, ∞, ∞, ∞, ∞] LIM(F/F sub 14, n, ∞, 0) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, ∞, ∞, ∞, ∞] LIM(F/F sub 15, n, ∞, 0) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, ∞, ∞, ∞] LIM(F/F sub 16, n, ∞, 0) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, ∞, ∞] LIM(F/F sub 17, n, ∞, 0) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, ∞] Instituto Tecnológico de Ciudad Madero Unidad I. Complejidad Computacional Dra. Laura Cruz Reyes Capitulo 2. Clasificación de Algoritmos 2.14. Dibuje una línea que va desde cada una de las cinco funciones que están en el centro al mejor valor Ω-grande de la izquierda y al mejor valor O-grande de la derecha. Ω (1 n ) O (1 n ) Ω (1) O (1) Ω ( log log n ) O ( log log n ) Ω ( log n ) 1 log n Ω ( log 2 n ) Ω ( n) 3 7 n5 − 3n + 2 Ω ( n log n ) Ω (n) Ω ( n1.00001 ) ( n2 + n ) ( log 2 n + log n ) Ω ( n 2 log 2 n ) 2log Ω ( n3 2 ) 3n 2 Ω ( n2 ) Ω ( 5n ) Ω ( nn ) ( ) Ω nn 2 Paso 1: Ordenar las funciones Listado de funciones en forma creciente: 1. 1 n 2. 1 3. log log n 4. log n 5. log 2 n 6. 3 n 7. n log n 8. n O ( log 2 n ) O ( n) 3 O ( n log n ) O (n) O ( n1.00001 ) O ( n 2 log 2 n ) Ω ( n 2 log n ) Ω ( 2n ) O ( log n ) n O ( n 2 log n ) O ( n2 ) O ( n3 2 ) O ( 2n ) O ( 5n ) O ( nn ) ( ) Ο nn 2 Instituto Tecnológico de Ciudad Madero Unidad I. Complejidad Computacional 9. 10. 11. 12. 13. 14. 15. 16. 17. Dra. Laura Cruz Reyes Capitulo 2. Clasificación de Algoritmos n1.00001 n3 2 n 2 log 2 n n 2 log n n2 2n 5n nn 2 nn COMPROBACIÓN CON DERIVE #1: F ≔ [1/n, 1, LOG(LOG(n, 10), 10), LOG(n, 10), LOG(n, 10)^2, n^(1/3), n/LOG(n, 10), n, n^1.00001, n^(3/2), n^2/LOG(n, 10)^2, n^2/LOG(n, 10), n^2, 2^n, 5^n, n^n, n^n^2] ⎦ #2: LIM(F/F sub 1, n, ∞)n→∞ #3: #4: #5: #6: #7: #8: #9: #10: #11: #12: #13: #14: #15: F [1, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞] ⎦ LIM(F/F sub 2, n, ∞)n→∞ F [0, 1, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞] ⎦ LIM(F/F sub 3, n, ∞)n→∞ F [0, 0, 1, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞] ⎦ LIM(F/F sub 4, n, ∞)n→∞ F [0, 0, 0, 1, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞] ⎦ LIM(F/F sub 5, n, ∞)n→∞ F [0, 0, 0, 0, 1, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞] ⎦ LIM(F/F sub 6, n, ∞)n→∞ F [0, 0, 0, 0, 0, 1, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞] ⎦ LIM(F/F sub 7, n, ∞)n→∞ F [0, 0, 0, 0, 0, 0, 1, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞] Instituto Tecnológico de Ciudad Madero Unidad I. Complejidad Computacional Dra. Laura Cruz Reyes Capitulo 2. Clasificación de Algoritmos COMPROBACIÓN CON DERIVE #16: #17: #18: #19: #20: #21: #22: #23: #24: #25: #26: #27: #28: #29: #30: #31: #32: #33: LIM(F/F sub 8, n, ∞)n→∞ F [0, 0, 0, 0, 0, 0, 0, 1, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞] ⎦ LIM(F/F sub 9, n, ∞)n→∞ F [0, 0, 0, 0, 0, 0, 0, 0, 1, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞] ⎦ LIM(F/F sub 10, n, ∞)n→∞ F [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, ∞, ∞, ∞, ∞, ∞, ∞, ∞] ⎦ LIM(F/F sub 11, n, ∞)n→∞ F [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, ∞, ∞, ∞, ∞, ∞, ∞] ⎦ LIM(F/F sub 12, n, ∞)n→∞ F [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, ∞, ∞, ∞, ∞, ∞] ⎦ LIM(F/F sub 13, n, ∞)n→∞ F [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, ∞, ∞, ∞, ∞] ⎦ LIM(F/F sub 14, n, ∞)n→∞ F [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, ∞, ∞, ∞] ⎦ LIM(F/F sub 15, n, ∞)n→∞ F [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, ∞, ∞] ⎦ LIM(F/F sub 16, n, ∞)n→∞ F [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, ∞] Instituto Tecnológico de Ciudad Madero Unidad I. Complejidad Computacional Dra. Laura Cruz Reyes Capitulo 2. Clasificación de Algoritmos Paso 2: Encontrar la mejor Ω y O para cada función a) Para 1 log n es Ω ( n 2 ) y O (1) COMPROBACIÓN CON DERIVE #34: g1(n) ≔ 1/LOG (n , 10) #35: LIM(F/g1(n), n, ∞) #36: [0, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞] #37: 1 #38: F sub 1 1 ⎯⎯⎯ n #39: #40: F sub 2 #41: 1 b) Para 7n5 − 3n + 2 es Ω ( n 2 ) y O ( 2n ) COMPROBACIÓN CON DERIVE #42: g2(n) ≔ 7n^5 #41: LIM(F/g2(n), n, ∞) #44: #45: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ∞, ∞, ∞, ∞] F sub 13 2 n #46: #47: #48: - 3n + 2 F sub 14 n 2 Instituto Tecnológico de Ciudad Madero Unidad I. Complejidad Computacional Dra. Laura Cruz Reyes Capitulo 2. Clasificación de Algoritmos c) Para ( n 2 + n ) ( log 2 n + log n ) es Ω ( n 2 log 2 n ) y O ( n 2 log 2 n ) COMPROBACIÓN CON DERIVE #49: g3(n) ≔ (n^2 + n)/ (LOG(n, 10) ^2 + LOG(n, 10)) #50: LIM(F/g3(n), n, ∞) #51: #52: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, ∞, ∞, ∞, ∞, ∞, ∞] F sub 11 2 2 2 2 2 n ·LN(5) + 2·n ·LN(2)·LN(5) + n ·LN(2) ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ 2 LN(n) #53: d) Para 2log 2 n es Ω ( n 2 ) y O ( 2n ) COMPROBACIÓN CON DERIVE #54: g4(n) ≔ 2^ LOG(n, 10)^2 #55: LIM(F/g4(n), n, ∞) #56: ⎡ ⎢0, 0, 0, 0, 0, 0, ?, 0, 0, 0, ?, ?, 0, ∞, ∞, #57: F sub 13 2 n #58: #59: #60: F sub 14 n 2 ⎤ ∞, ∞⎥ ⎦ Instituto Tecnológico de Ciudad Madero Unidad I. Complejidad Computacional Dra. Laura Cruz Reyes Capitulo 2. Clasificación de Algoritmos e) Para 3n es Ω ( 2n ) y O ( 5n ) COMPROBACIÓN CON DERIVE #61: g5(n) ≔ 3^n #62: LIM(F/g5(n), n, ∞) #63: #64: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ∞, ∞, ∞] F sub 14 n 2 #65: #66: F sub 15 n 5 #67: 2.15. Para cada par de funciones f (n) y g (n), se cumple que f (n)=O(g(n)) o g(n)=O(f (n)), pero no ambos. Determine cual es el caso. a) f (n) = (n 2 − n) / 2, g (n) = 6n Utilizando simplificación de funciones para evitar ∞/∞ n2 − n f ( n) n2 − n n(n − 1) n −1 ∞ lim = lim 2 = lim = lim = lim = = ∞∴ f (n) ∉ Ο( g (n)) n →∞ g ( n) n →∞ n →∞ 12 n n →∞ n →∞ 12 6n 12n c g ( n) 6n 12n 12n 12 c = lim 2 = lim 2 = lim = lim = = 0 ∴ g (n) ∈ O ( f (n)) lim n →∞ f ( n) n →∞ n − n n →∞ n − n n →∞ n( n − 1) n →∞ n − 1 ∞ 2 Instituto Tecnológico de Ciudad Madero Unidad I. Complejidad Computacional Dra. Laura Cruz Reyes Capitulo 2. Clasificación de Algoritmos COMPROBACIÓN CON DERIVE #1: f(n) ≔ n^2 – n) / 2 #2: g(n) ≔ 6 n #3: LIM(f(n)/g(n), n, ∞, 0) #4: ∞ #5: LIM(g(n)/f(n), n, ∞, 0) #6: b) 0 f ( n) = n + 2 n , g ( n) = n 2 ( ) 1 −1 −1 1+ 2 1 n 2 f ( n) n+2 n 1+ n 2 1 ⎞ 1 1 ⎛ 1 2 = lim = lim = lim = lim ⎜ + lim ⎟= + =0 2 n →∞ g ( n) n →∞ n →∞ n →∞ n →∞ 2 n n 2n 2n 2n n ⎠ ∞ ∞ ⎝ ∴ f (n) ∈ O( g (n)) COMPROBACIÓN CON DERIVE #1: f(n) ≔ n + 2·√n #2: g(n) ≔ n^2 #3: LIM(f(n)/g(n), n, ∞, 0) #4: c) 0 f (n) = n + log n, g (n) = n n Utilizando la regla de L’ Hopital y simplificación de funciones para evitar ∞/∞ ( ) 3 n 12 (n + 1)3 n 3n + 3 3 g (n) n n = lim = lim 2 = lim = lim = lim lim n →∞ f ( n ) n →∞ n + log n n →∞ n →∞ n →∞ n →∞ 1 1 2n 2 n 1+ 2 n 2 c = ∞∴ g (n) ∉ O ( f (n)) ∞ ( ) = lim n n →∞ 3 n Instituto Tecnológico de Ciudad Madero Unidad I. Complejidad Computacional Dra. Laura Cruz Reyes Capitulo 2. Clasificación de Algoritmos COMPROBACIÓN CON DERIVE #1: f(n) ≔ n + LOG(n, 10) #2: g(n) ≔ n √n #3: LIM(g(n)/f(n), n, ∞, 0) #4: d) ∞ f (n) = n 2 + 3n + 4, .g (n) = n3 f ( n) n 2 + 3n + 4 ∞ lim = lim = n →∞ g ( n) n →∞ n3 ∞ Utilizando la regla de L’ Hopital para evitar ∞/∞ f '(n) 2n + 3 2n 3 2 3 = lim = lim 2 + 2 = lim + 2 = 0 2 n →∞ n →∞ n →∞ g '(n) 3n 3n 3n 3n 3n ∴ f (n) ∈ O( g (n)) lim n →∞ Utilizando la regla de dividir entre la potencia mayor para evitar ∞/∞ n 2 3n 4 1 3 4 + 3+ 3 + 2+ 3 2 3 f ( n) n + 3n + 4 n n n n n n = 0+0+0 = 0 lim = lim = lim = lim 3 3 n →∞ g ( n) n →∞ n →∞ n →∞ n n 1 1 3 n ∴ f (n) ∈ O( g (n)) En el otro caso: g ( n) n3 −2 n − 3 ⎞ ⎛ lim = lim 2 = lim ⎜ n + 2 ⎟=∞ n →∞ f ( n) n →∞ n + 3n + 4 n →∞ n + 3n + 4 ⎠ ⎝ ∴ g (n) ∈ Ω( f (n)) Instituto Tecnológico de Ciudad Madero Unidad I. Complejidad Computacional Dra. Laura Cruz Reyes Capitulo 2. Clasificación de Algoritmos COMPROBACIÓN CON DERIVE #1: f(n) ≔ n^2 + 3 n + 4 #2: g(n) ≔ n^3 #3: LIM(f(n)/g(n), n, ∞, 0) #4: 0 #5: LIM(g(n)/f(n), n, ∞, 0) #6: e) ∞ f (n) = n log n, .g (n) = lim n →∞ n n 2 f ( n) n log n 2 log n ∞ = lim = lim = n →∞ g (n) n→∞ n n ∞ n 2 Utilizando la regla de L’ Hopital. 2 log e f '(n) n = lim log e = 0 = lim lim n →∞ g '( n) n →∞ n →∞ 2 n n 1 4 n ∴ f (n) ∈ O( g (n)) En el otro caso: Utilizando la regla de L’ Hopital. 1 g '(n) 2n n = lim 4 n = =∞ lim n →∞ f '( n) n →∞ 2 log e log e n ∴ g (n) ∈ Ω( f (n)) Instituto Tecnológico de Ciudad Madero Unidad I. Complejidad Computacional Dra. Laura Cruz Reyes Capitulo 2. Clasificación de Algoritmos COMPROBACIÓN CON DERIVE #1: f(n) ≔ n LOG(n, 10) #2: g(n) ≔ (n √n) / 2 #3: LIM(f(n)/g(n), n, ∞, 0) #4: 0 #5: LIM(g(n)/f(n), n, ∞, 0) #6: f) ∞ f (n) = n + log n, .g (n) = n f ( n) n + log n log n = lim = lim n + =∞ n →∞ g ( n) n →∞ n →∞ n n ∴ f ∈ Ω( g (n)) lim En el otro caso: g ( n) n ∞ lim = lim = n →∞ f ( n) n →∞ log n ∞ 1 n g '(n) log e lim = lim 2 = lim =0 n →∞ f '( n) n →∞ log e n n →∞ 2n n ∴ g ∈ O( f (n)) COMPROBACIÓN CON DERIVE #1: f(n) ≔ n LOG(n, 10) #2: g(n) ≔ √n #3: LIM(f(n)/g(n), n, ∞, 0) #4: ∞ #5: LIM(g(n)/f(n), n, ∞, 0) #6: 0 Instituto Tecnológico de Ciudad Madero Unidad I. Complejidad Computacional Dra. Laura Cruz Reyes Capitulo 2. Clasificación de Algoritmos g) Probar que 3n ⎢⎣log n ⎦⎥ = Ο(n 2 ) f ( n) =c f ∈ O( g ) si lim n →∞ g ( n) donde 0 ≤ c < ∞ 3n(log n) n(log e n) + 3(log n) = lim 2 n →∞ n 2n 3(log e n) 3log e c = lim = lim = =0 n →∞ n →∞ ∞ 2 2n lim n →∞ ∴ 3n ⎢⎣log n ⎥⎦ = O(n 2 ) COMPROBACIÓN CON DERIVE #1: LIM(3 n FLOOR(LOG(n, 10))/n^2, n, ∞, 0) #2: 0 Instituto Tecnológico de Ciudad Madero Unidad I. Complejidad Computacional Dra. Laura Cruz Reyes Capitulo 2. Clasificación de Algoritmos Ejercicios Propuestos de Clasificación de Funciones 2.16. Cuáles de las siguientes afirmaciones son verdaderas? Demuestre sus respuestas en los incisos a al d. a) b) c) d) e) n 2 + n = O ( n3 ) . . . . . n − n = Ω(n ) 2 3 2n = Θ(2n+ 2 ) n ! = Θ((n + 3)!) n + log n = Θ(n) 2.17. Para f (n) = 2 ( log n ) y g (n) = log n + 1 , determina si f (n) = O( g (n)) o g (n) = O( f (n)) . 2.18. Para f (n) = 4n log n y g (n) = ( n 2 − n ) / 2 , determina si f (n) = O( g (n)) o g (n) = O( f (n)) . 2 2.19. De un ejemplo de dos funciones, f, g: N Æ R*, tales que f ∉ O( g ) y g ∉ O( f ) .