recurrencias fundamentos de análisis y diseño de algoritmos
TRANSCRIPT
![Page 1: Recurrencias Fundamentos de análisis y diseño de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081507/551ce465550346497a8b4d73/html5/thumbnails/1.jpg)
Recurrencias
Fundamentos de análisis y diseño de algoritmos
![Page 2: Recurrencias Fundamentos de análisis y diseño de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081507/551ce465550346497a8b4d73/html5/thumbnails/2.jpg)
Método de iteración
Método maestro*
Método de sustitución
![Page 3: Recurrencias Fundamentos de análisis y diseño de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081507/551ce465550346497a8b4d73/html5/thumbnails/3.jpg)
Recurrencias
Método de iteración
Expandir la recurrencia y expresarla como una suma de términos que dependen de n y de las condiciones iniciales
![Page 4: Recurrencias Fundamentos de análisis y diseño de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081507/551ce465550346497a8b4d73/html5/thumbnails/4.jpg)
Recurrencias
T(n) = n + 3T(n/4), T(1)= (1)
Expandir la recurrencia 2 veces
![Page 5: Recurrencias Fundamentos de análisis y diseño de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081507/551ce465550346497a8b4d73/html5/thumbnails/5.jpg)
Recurrencias
T(n) = n + 3T(n/4)
n + 3 ( n/4 + 3T(n/16))
n + 3 ( n/4 + 3(n/16 + 3T(n/64) ))
n + 3*n/4 + 32*n/16 + 33T(n/64)
![Page 6: Recurrencias Fundamentos de análisis y diseño de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081507/551ce465550346497a8b4d73/html5/thumbnails/6.jpg)
Recurrencias
T(n) = n + 3T(n/4)
n + 3 ( n/4 + 3T(n/16))
n + 3 ( n/4 + 3(n/16 + 3T(n/64) ))
n + 3*n/4 + 32*n/16 + 33T(n/64)
¿Cuándo se detienen las iteraciones?
![Page 7: Recurrencias Fundamentos de análisis y diseño de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081507/551ce465550346497a8b4d73/html5/thumbnails/7.jpg)
Recurrencias
T(n) = n + 3T(n/4)
n + 3 ( n/4 + 3T(n/16))
n + 3 ( n/4 + 3(n/16 + 3T(n/64) ))
n + 3*n/4 + 32*n/16 + 33T(n/64)
¿Cuándo se detienen las iteraciones?
Cuando se llega a T(1)
![Page 8: Recurrencias Fundamentos de análisis y diseño de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081507/551ce465550346497a8b4d73/html5/thumbnails/8.jpg)
Recurrencias
T(n) = n + 3T(n/4)
n + 3 ( n/4 + 3T(n/16))
n + 3 ( n/4 + 3(n/16 + 3T(n/64) ))
n + 3*n/4 + 32*n/42 + 33T(n/43)
¿Cuándo se detienen las iteraciones?
Cuando se llega a T(1), esto es, cuando (n/4i)=1
![Page 9: Recurrencias Fundamentos de análisis y diseño de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081507/551ce465550346497a8b4d73/html5/thumbnails/9.jpg)
Recurrencias
T(n) = n + 3T(n/4)
n + 3 ( n/4 + 3T(n/16))
n + 3 ( n/4 + 3(n/16 + 3T(n/64) ))
n + 3*n/4 + 32*n/42 + 33n/43 + … + 3log4nT(1)
¿Cuándo se detienen las iteraciones?
Cuando se llega a T(1), esto es, cuando (n/4i)=1
![Page 10: Recurrencias Fundamentos de análisis y diseño de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081507/551ce465550346497a8b4d73/html5/thumbnails/10.jpg)
Recurrencias
T(n) = n + 3T(n/4)
n + 3 ( n/4 + 3T(n/16))
n + 3 ( n/4 + 3(n/16 + 3T(n/64) ))
n + 3*n/4 + 32*n/42 + 33(n/43) + … + 3log4n(1)
Después de iterar, se debe tratar de expresar como una sumatoria con forma cerrada conocida
![Page 11: Recurrencias Fundamentos de análisis y diseño de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081507/551ce465550346497a8b4d73/html5/thumbnails/11.jpg)
Recurrencias
T(n) = n + 3T(n/4)
n + 3 ( n/4 + 3T(n/16))
n + 3 ( n/4 + 3(n/16 + 3T(n/64) ))
n + 3*n/4 + 32*n/42 + 33(n/43) + … + 3log4n(1)
n + 3n/4 + 32n/42 + 33n/43 + … + 3log4n(1)
![Page 12: Recurrencias Fundamentos de análisis y diseño de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081507/551ce465550346497a8b4d73/html5/thumbnails/12.jpg)
Recurrencias
T(n) = n + 3T(n/4)
n + 3 ( n/4 + 3T(n/16))
n + 3 ( n/4 + 3(n/16 + 3T(n/64) ))
n + 3*n/4 + 32*n/42 + 33(n/43) + … + 3log4n(1)
n + 3n/4 + 32n/42 + 33n/43 + … + 3log4n(1)
=
=
= O(n)
)1(3)4/3(4 4log
0
log
n
i
nin
)())4/3(1(4*1)4/3(
1)4/3( 3log1)(log3log1)(log
444
4
nnnn nn
![Page 13: Recurrencias Fundamentos de análisis y diseño de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081507/551ce465550346497a8b4d73/html5/thumbnails/13.jpg)
Recurrencias
Resuelva por el método de iteración
T(n) = 2T(n/2) + 1, T(1)= (1)
![Page 14: Recurrencias Fundamentos de análisis y diseño de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081507/551ce465550346497a8b4d73/html5/thumbnails/14.jpg)
Recurrencias
Resuelva por el método de iteración
T(n) = 2T(n/2) + 1, T(1)= (1)
T(n) = 2T(n/2) + n, T(1)= (1)
![Page 15: Recurrencias Fundamentos de análisis y diseño de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081507/551ce465550346497a8b4d73/html5/thumbnails/15.jpg)
Recurrencias
Resuelva por el método de iteración
T(n) = 2T(n/2) + 1, T(1)= (1)
T(n) = 2T(n/2) + n, T(1)= (1)
T(n) = T(n/2) + 1, T(1)= (1)
![Page 16: Recurrencias Fundamentos de análisis y diseño de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081507/551ce465550346497a8b4d73/html5/thumbnails/16.jpg)
Recurrencias
Resuelva por el método de iteración
T(n) = 2T(n/2) + 1, T(1)= (1)
T(n) = 2T(n/2) + n, T(1)= (1)
T(n) = T(n/2) + 1, T(1)= (1)
T(n) = T(n/2) + n, T(1)= (1)
![Page 17: Recurrencias Fundamentos de análisis y diseño de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081507/551ce465550346497a8b4d73/html5/thumbnails/17.jpg)
Recurrencias
Iteración con árboles de recursión
T(n) = 2T(n/2) + n2
![Page 18: Recurrencias Fundamentos de análisis y diseño de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081507/551ce465550346497a8b4d73/html5/thumbnails/18.jpg)
Recurrencias
n2
T(n/2) T(n/2)
![Page 19: Recurrencias Fundamentos de análisis y diseño de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081507/551ce465550346497a8b4d73/html5/thumbnails/19.jpg)
Recurrencias
n2
(n/2)2 (n/2)2
T(n/4) T(n/4) T(n/4) T(n/4)
. . .
![Page 20: Recurrencias Fundamentos de análisis y diseño de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081507/551ce465550346497a8b4d73/html5/thumbnails/20.jpg)
Recurrencias
n2
(n/2)2 (n/2)2
T(n/4) T(n/4) T(n/4)
. . .
(n/4)2
T(n/8) T(n/8)
![Page 21: Recurrencias Fundamentos de análisis y diseño de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081507/551ce465550346497a8b4d73/html5/thumbnails/21.jpg)
Recurrencias
n2
(n/2)2 (n/2)2
T(n/4) T(n/4) T(n/4)
. . .
(n/4)2
T(n/8) T(n/8)
???
![Page 22: Recurrencias Fundamentos de análisis y diseño de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081507/551ce465550346497a8b4d73/html5/thumbnails/22.jpg)
Recurrencias
n2
(n/2)2 (n/2)2
T(n/4) T(n/4) T(n/4)
. . .
(n/22)2
T(n/23) T(n/23)
???
![Page 23: Recurrencias Fundamentos de análisis y diseño de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081507/551ce465550346497a8b4d73/html5/thumbnails/23.jpg)
Recurrencias
n2
(n/2)2 (n/2)2
T(n/4) T(n/4) T(n/4)
. . .
(n/22)2
T(n/23) T(n/23)
???
(n/2i)=1
n=2i
log2n=i
![Page 24: Recurrencias Fundamentos de análisis y diseño de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081507/551ce465550346497a8b4d73/html5/thumbnails/24.jpg)
Recurrencias
n2
(n/2)2 (n/2)2
T(n/4) T(n/4) T(n/4)
. . .
(n/22)2
T(n/23) T(n/23)
log2n
(n/2i)=1
n=2i
log2n=i
![Page 25: Recurrencias Fundamentos de análisis y diseño de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081507/551ce465550346497a8b4d73/html5/thumbnails/25.jpg)
Recurrencias
n2
(n/2)2 (n/2)2
T(n/4) T(n/4) T(n/4)
. . .
(n/4)2
T(n/8) T(n/8)
log2n
n2
![Page 26: Recurrencias Fundamentos de análisis y diseño de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081507/551ce465550346497a8b4d73/html5/thumbnails/26.jpg)
Recurrencias
n2
(n/2)2 (n/2)2
T(n/4) T(n/4) T(n/4)
. . .
(n/4)2
T(n/8) T(n/8)
log2n
n2
n2/2
![Page 27: Recurrencias Fundamentos de análisis y diseño de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081507/551ce465550346497a8b4d73/html5/thumbnails/27.jpg)
Recurrencias
n2
(n/2)2 (n/2)2
T(n/4) T(n/4) T(n/4)
. . .
(n/4)2
T(n/8) T(n/8)
log2n
n2
n2/2
n2/4
![Page 28: Recurrencias Fundamentos de análisis y diseño de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081507/551ce465550346497a8b4d73/html5/thumbnails/28.jpg)
Recurrencias
n2
(n/2)2 (n/2)2
T(n/4) T(n/4) T(n/4)
. . .
(n/4)2
T(n/8) T(n/8)
log2n
n2
n2/2
n2/4
Total=
n
i
in
i in
n 22 log
0
2log
0
2
2
1*
2
![Page 29: Recurrencias Fundamentos de análisis y diseño de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081507/551ce465550346497a8b4d73/html5/thumbnails/29.jpg)
Recurrencias
n
i
in
i in
nTotal 22 log
0
2log
0
2
2
1*
2
)(12/1
1)2/1(* 2
)1(log2
2
nnTotaln
![Page 30: Recurrencias Fundamentos de análisis y diseño de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081507/551ce465550346497a8b4d73/html5/thumbnails/30.jpg)
Recurrencias
Resuelva construyendo el árbol
T(n) = 2T(n/2) + 1, T(1)= (1)
T(n) = 2T(n/2) + n, T(1)= (1)
![Page 31: Recurrencias Fundamentos de análisis y diseño de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081507/551ce465550346497a8b4d73/html5/thumbnails/31.jpg)
Recurrencias
Resuelva la recurrencia T(n) = T(n/3) + T(2n/3) + n
Indique una cota superior y una inferior
![Page 32: Recurrencias Fundamentos de análisis y diseño de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081507/551ce465550346497a8b4d73/html5/thumbnails/32.jpg)
Recurrencias
Resuelva la recurrencia T(n) = T(n/3) + T(2n/3) + 1
Indique una cota superior y una inferior
![Page 33: Recurrencias Fundamentos de análisis y diseño de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081507/551ce465550346497a8b4d73/html5/thumbnails/33.jpg)
Recurrencias
Resuelva la recurrencia T(n) = T(3n/4) + T(n/4) + n
Indique una cota superior y una inferior
![Page 34: Recurrencias Fundamentos de análisis y diseño de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081507/551ce465550346497a8b4d73/html5/thumbnails/34.jpg)
Recurrencias
Método maestro
Permite resolver recurrencias de la forma:
T(n) = aT(n/b) + f(n), donde a1, b>1
![Page 35: Recurrencias Fundamentos de análisis y diseño de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081507/551ce465550346497a8b4d73/html5/thumbnails/35.jpg)
RecurrenciasDado T(n) = aT(n/b) + f(n), donde a1, b>1, se puede acotar asintóticamente como sigue:
1.
Si para algún real
2.
Si para algún real
3.
Si para algún y si af(n/b)cf(n)
para algun c<1
)()( log abnnT
)()( log abnOnf 0
)log()( 2log nnnT ab
)()( log abnnf 0
))(()( nfnT
)()( log abnnf 0
![Page 36: Recurrencias Fundamentos de análisis y diseño de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081507/551ce465550346497a8b4d73/html5/thumbnails/36.jpg)
RecurrenciasDado T(n) = 9T(n/3) + n
Es ?
Es ?
29log3 nn Vs nnf )(
)()( log abnOnf
)( 2 nOn
![Page 37: Recurrencias Fundamentos de análisis y diseño de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081507/551ce465550346497a8b4d73/html5/thumbnails/37.jpg)
RecurrenciasDado T(n) = 9T(n/3) + n
Es ?
Es ?
Si se cumple que , por lo tanto, se cumple que:
29log3 nn Vs nnf )(
)()( log abnOnf
)( 2 nOn
1 )(nOn
)()( 2nnT
![Page 38: Recurrencias Fundamentos de análisis y diseño de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081507/551ce465550346497a8b4d73/html5/thumbnails/38.jpg)
RecurrenciasT(n) = T(2n/3) + 1
Es ?
Es ?
No existe
101log 2/3 nn Vs 1)( nf
)()( log abnOnf
)(1 0 nO
0
![Page 39: Recurrencias Fundamentos de análisis y diseño de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081507/551ce465550346497a8b4d73/html5/thumbnails/39.jpg)
RecurrenciasT(n) = T(2n/3) + 1
Es ?
Es ?
Si, por lo tanto, se cumple que:
101log 2/3 nn Vs 1)( nf
)1(1
)()( log abnnf
)(log)log*1()( 22 nnnT
![Page 40: Recurrencias Fundamentos de análisis y diseño de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081507/551ce465550346497a8b4d73/html5/thumbnails/40.jpg)
RecurrenciasT(n) =3 T(n/4) + nlog2n
Es ?
Es ?
Es ?
Si, y además, af(n/b)cf(n)
3(n/4)log2(n/4) cnlog2n
c=3/4 y se concluye que
793.03log4 nn Vs nnnf 2log)(
)()( log abnnf )()( log abnOnf
)()( log abnnf
)log()( 2 nnnT
![Page 41: Recurrencias Fundamentos de análisis y diseño de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081507/551ce465550346497a8b4d73/html5/thumbnails/41.jpg)
RecurrenciasResuelva
T(n) =4T(n/2) + n
T(n) =4T(n/2) + n2
T(n) =4T(n/2) + n3
![Page 42: Recurrencias Fundamentos de análisis y diseño de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081507/551ce465550346497a8b4d73/html5/thumbnails/42.jpg)
Recurrencias
Método de sustitución
Suponer la forma de la solución y probar por inducción matemática