METÁFORA INFORMÁTICA
MEMOIZATION
ADRIÁN HERRERO BERNABÉU
MEJORANDO LA EFICIENCIA DE NUESTROSPROGRAMAS CON DICCIONARIOS
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.
El térmiNo informático
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
Definición técnica
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 METÁFORA
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 anterioresSu secuencia empezaría tal que así: 1, 1, 2, 3, 5, 8, 13, 21, 34…
LA sucesión DE FIBONACCI
Tiempo aproximado con 40 iteraciones, un par de horas
VERSIÓN SIN MEMOIZATION
Tiempo aproximado con 40 iteraciones, 1 segundo
VERSIÓN CON MEMOIZATION
GRACIAS A TODOS
confía en la recursividad