Document

Anuncio
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 ) .
Descargar