METÁFORA INFORMÁTICA
MEMOIZATION
ADRIÁN HERRERO BERNABÉU
MEJORANDO LA EFICIENCIA DE NUESTROSPROGRAMAS CON DICCIONARIOS
El térmiNo informático
Es la optimización de procesos o eficiencia en un programa, la facilidad de asociar los términos introducidos con los componentes de la vida real. Particularmente, esta metáfora guarda relación con los módulos de programación de ASIR, DAM y DAW.
Definición técnica
Memoization es un patrón de optimización que guarda los resultados de las funciones de manera persistente, generalmente en una tabla o diccionario, para que las llamadas subsiguientes con los mismos parámetros puedan acceder al resultado previamente sin necesidad de volver a calcularlo
LA METÁFORA
Imaginemos que la función recursiva es el archivador, y el diccionario es la libreta donde se apuntan las ubicaciones de los resultados (carpetas o documentos). Si la función ya ha sido llamada antes con los mismos parámetros, el "archivador" no vuelve a realizar el cálculo, sino que accede a su libreta(diccionario) para obtener el resultado rápidamente.
LA sucesión DE FIBONACCI
Leonardo de Pisa (Fibonacci) era un joven cuyo objetivo era conocer los hábitos de apareamiento de los conejos, esto llevo a una secuencia infinita de números naturales cuyos dos primeros términos son 1 y 1 y tal que, cualquier otro término se obtiene sumando los dos anteriores Su secuencia empezaría tal que así: 1, 1, 2, 3, 5, 8, 13, 21, 34…
VERSIÓN SIN MEMOIZATION
Tiempo aproximado con 40 iteraciones, un par de horas
VERSIÓN CON MEMOIZATION
Tiempo aproximado con 40 iteraciones, 1 segundo
GRACIAS A TODOS
confía en la recursividad