jonasoftjonathan
9,941 views
10 slides
Jun 21, 2015
Slide 1 of 10
1
2
3
4
5
6
7
8
9
10
About This Presentation
ejercicios resueltos análisis de algoritmos
Size: 283.85 KB
Language: es
Added: Jun 21, 2015
Slides: 10 pages
Slide Content
Universidad Andres Bello
Facultad de Ingeniera
Ingeniera en Computacion e Informatica
Dise~no de Algoritmos
Ejercicios Resueltos - Analisis
Prof. Catedra: Carlos Contreras Bolton Fecha:25 de Marzo de 2014
Profs. Laboratorio:Daniela Ubilla{Felipe Reyes
Ejercicio 1: Sumatoria
n
X
i=1
i= 1 + 2 + 3 +:::+ (n1) +n(1)
Si invertimos la suma tenemos:
n
X
i=1
i=n+ (n1) +:::+ 3 + 2 + (2)
Si sumamos componente a componente (1) y (2) tenemos:
2
n
X
i=1
i= (1 +n) + (2 + (n1)) + (3 + (n2)) +:::+ ((n1) + 2) + (n+ 1) (3)
Que es lo mismo que:
2
n
X
i=1
i= (n+ 1) + (n+ 1) + (n+ 1) +:::+ (n+ 1) + (n+ 1) (4)
La parte derecha esta compuesta pornsumas den+ 1:
2
n
X
i=1
i=n(n+ 1) (5)
Finalmente:
n
X
i=1
i=
n(n+ 1)
2
Dise~no de Algoritmos Ejercicios Resueltos - Analisis
Ejercicio 2: Resolver
Resolver:
T(n) =T(
p
n) +c;T(1) =d;T(2) =d;
Expandimos:
T(n) =T(
p
n) +c
=T(n
1
2) +c
=
h
T
n
1
2
2
+c
i
+c
=T
n
1
2
2
+ 2c
=
h
T
n
1
2
3
+c
i
+ 2c
=T
n
1
2
3
+ 3c
.
.
.
=T
n
1
2
k
+kc
Expandimos hastaT(2), entonces:
n
1
2
k
= 2
2
kp
n= 2
n= 2
2
k
2
k
= log
2n
k= log
2log
2n
Continuamos:
=T
+bnlogn
=cn(lognlog 2) +bnlogn
=cnlogncn+bnlogn
=cnlogn(cnbnlogn)
No se cumple, puesto que no podemos hacer que esta ultima lnea sea menor quecnlogn
Entonces, adivinamos queO(nlog
2
n).
ProbarT(n)cnlog
2
npor induccion.
T(n) = 2T(
n
2
) +bnlogn
= 2
c
n
2
log
2n
2
+bnlogn
=cn(lognlog 2)
2
+bnlogn
=cnlog
2
n2cnlogn+cn+bnlogn
=cnlog
2
n(2cnlogncnbnlogn)
Sic > b. Por lo tanto,T(n) =nlog
2
n.
Carlos Contreras Bolton
4
Dise~no de Algoritmos Ejercicios Resueltos - Analisis
Ejercicio 5: Resolver
T(n) =
1
n
P
n1
i=0
T(i) +cn, con T(0)=0.
T(n) =
1
n
n1
X
i=0
T(i) +cn(1)
Multiplicar pornen (1):
nT(n) =
n1
X
i=0
T(i) +cn
2
(2)
Desplazando (2) enn1:
(n1)T(n1) =
n2
X
i=0
T(i) +c(n1)
2
(3)
Restando (2)-(3):
nT(n)(n1)T(n1) = (
n1
X
i=0
T(i)
n2
X
i=0
T(i)) + (cn
2
c(n1)
2
) (4)
nT(n)(n1)T(n1) = ((T(0)+:::+T(n2)+T(n1))(T(0)+:::+T(n2)))+(cn
2
c(n
2
2n+1)) (5)
nT(n)(n1)T(n1) =T(n1) + 2cnc(6)
nT(n) =nT(n1) + 2cnc(7)
Dividiendo (7) porn:
T(n) =T(n1) +
2cnc
n
(8)
Expandiendo:
T(n) =
2cnc
n
+T(n1)
=
2cnc
n
+
2c(n1)c
n1
+T(n2)
=
2cnc
n
+
2c(n1)c
n1
+
2c(n2)c
n2
+T(n3)
=
2cnc
n
+
2c(n1)c
n1
+
2c(n2)c
n2
+:::+
2c(1)c
1
+T(0)
=
2cn
n
+
2c(n1)
n1
+
2c(n2)
n2
+:::+
2c(1)
1
c
n
+
c
n1
+
c
n2
+:::+
c
1
= (2c+ 2c+ 2c+:::+ 2c)
c
n
X
i=1
1
i
!
= 2cn
c
n
X
i=1
1
i
!
= 2cncHn
<2cn
Por lo tanto,T(n) =O(n).
Carlos Contreras Bolton
5
Dise~no de Algoritmos Ejercicios Resueltos - Analisis
Ejercicio 6: Resolver
T(n) =n1 +
2
n
n1
X
i=1
T(i); n2: T(1) = 0 (1)
Re-escribir la recurrencia paran+ 1:
T(n+ 1) = (n+ 1)1 +
2
n+ 1
n
X
i=1
T(i) (2)
Multiplicar (1) porny (2) porn+ 1:
nT(n) =n(n1) + 2
n1
X
i=1
T(i) (3)
(n+ 1)T(n+ 1) = (n+ 1)n+ 2
n
X
i=1
T(i) (4)
Restar (4)-(3):
(n+ 1)T(n+ 1)nT(n) = (n+ 1)nn(n1) + 2(
n
X
i=1
T(i)
n1
X
i=1
T(i)) (5)
(n+1)T(n+1)nT(n) = 2n+2((T(0)+T(1)+:::+T(n1)+T(n))(T(0)+T(1)+:::+T(n1))) (6)
(n+ 1)T(n+ 1)nT(n) = 2n+ 2T(n) (7)
T(n+ 1) =
n+ 2
n+ 1
T(n) +
2n
n+ 1
(n2) (8)
Podemos simplicar 2n=(n+ 1) como cota inferior 2.
T(n+ 1)
n+ 2
n+ 1
T(n) + 2 (9)
T(n)
n+ 1
n
T(n1) + 2 (10)
Expandiendo (10):
T(n)2 +
n+ 1
n
T(n1)
= 2 +
n+ 1
n
2 +
n
n1
T(n2)
= 2 +
n+ 1
n
2 +
n
n1
2 +
n1
n2
T(n3)
= 2 +
n+ 1
n
2 +
n
n1
2 +
n1
n2
2 +
n2
n3
T(n4)
>Hasta donde llega la expansion? hasta llegar aT(3)
4
3
T(2)+2 = 2+
4
3
(
3
2
T(1)+2), comoT(1) = 0,
entoncesT(3)2 +
4
3
(2) (este es el motivo del 4/3 visto en el ejercicio en clases).
Continuando con la expansion:
Carlos Contreras Bolton
6
Dise~no de Algoritmos Ejercicios Resueltos - Analisis
T(n)2 +
n+ 1
n
2 +
n
n1
2 +
n1
n2
2 +
n2
n3
::;2 +
4
3
(2)
= 2
1 +
n+ 1
n
+
n+ 1
n
n
n1
+
n+ 1
n
n
n1
n1
n2
+:::+
n+ 1
n
n
n1
n1
n2
:::
4
3
= 2
1 +
n+ 1
n
+
n+ 1
n1
+
n+ 1
n2
+:::+
n+ 1
3
= 2(n+ 1)
1
n+ 1
+
1
n
+
1
n1
+:::+
1
3
= 2(n+ 1)
1
n+ 1
+
1
n
+
1
n1
+:::+
1
3
+
1
2
+ 1
1
2
+ 1
= 2(n+ 1)(H(n+ 1)1;5)
Recuerden queH(n) = 1 + 1=2 + 1=3 +:::+ 1=nes la serie harmonica, la cual tiene una aproximacion
aH(n) = lnn++O(1=n), donde= 0;577::es la constante de Euler. Entonces la solucion aT(n) es:
T(n)2(n+ 1)(lnn+1;5) +O(1) =O(nlogn)
Carlos Contreras Bolton
7
i1
X
k=0
2
k
log 4
k
Considerandoncomo potencia de 4 y todos los logaritmos en base 4 (la base no importa tanto, lo
importante es que es logaritmo) tenemos:
T(n) = 2
i
T
n
4
i
+ log
4n
i1
X
k=0
2
k
i1
X
k=0
2
k
log
44
k
=:::
= 2
i
T(1) + log
4n
i1
X
k=0
2
k
i1
X
k=0
2
k
k
=a2
i
+ log
4n(2
i
1)(i2)2
i
2
Considerando quenes potencia de 4, entoncesn= 4
i
ei= log
4n. Tambien podemos obtener que
p
n= 2
i
.
T(n) =a2
i
+ log
4n(2
i
1)(i2)2
i
2
=a
p
n+ log
4n(
p
n1)(log
4n2)
p
n2
= (a+ 2)
p
nlog
4n2
Por lo tantoT(n) = (
p
n).
Carlos Contreras Bolton
8
Dise~no de Algoritmos Ejercicios Resueltos - Analisis
Ejercicio 8: Resolver
T(n) =
(
1 n= 1
P
n1
i=1
T(i) +n
2
n2
Si restamosT(n1) aT(n) tenemos:
T(n)T(n1) =
i1
X
j=0
2
j
= 2
i
T(ni) + 2n
i1
X
j=0
2
j
2
i1
X
j=0
j2
j
i1
X
j=0
2
j
:::
= 2
i
T(ni) + (2n1)
i1
X
j=0
2
j
2
i1
X
j=0
j2
j
Al caso base se llega cuandoni= 1, entoncesi=n1:
T(n) = 2
n1
T(1) + (2n1)
n2
X
j=0
2
j
2
n2
X
j=0
j2
j
Considerando que:
Carlos Contreras Bolton
9
Dise~no de Algoritmos Ejercicios Resueltos - Analisis
n2
X
j=0
2
j
= 2
n1
1
n2
X
j=0
j2
j
= (n3)2
n1
+ 2
Reemplazando en la recurrencia:
T(n) = 2
n1
+ (2n1)(2
n1
1)2((n3)2
n1
+ 2)
= (1 + 2n12n+ 6)2
n1
2n+ 14
= 62
n1
2n3
= 32
n
2n3
2(2
n
)
Carlos Contreras Bolton
10