You are on page 1of 12

Evaluación

Perezosa
Olmos Vallejo Araceli
Sánchez Martínez Raúl de Jesús
¿QUÉ ÉS?
es una estrategia de evaluación que retrasa el cálculo
de una expresión hasta que su valor sea necesario, y
que también evita repetir la evaluación en caso de
ser necesaria en posteriores ocasiones. Esta
compartición del cálculo puede reducir el tiempo de
ejecución de ciertas funciones de forma exponencial,
comparado con otros tipos de evaluación.

PROCEDIMIENTO:
• El problema viene a ser el siguiente: reemplazar
los valores en los nodos de un árbol por el mínimo
valor de este mismo árbol, y solo recorriendo el
árbol una sola vez.

2
BENEFICIOS:
.

• El incremento en el rendimiento al evitar


cálculos innecesarios, y en tratar condiciones
de error al evaluar expresiones compuestas.
• La capacidad de construir estructuras de
datos potencialmente infinitas.
• La capacidad de definir estructuras de control
como abstracciones, en lugar de operaciones
primitivas

3
EVALUACIÓN PEREZOSA:
Algoritmo

• En la evaluación mediante paso de parámetros por


nombre los argumentos pueden evaluarse más
veces que en el paso por valor.
• Se puede usar punteros para compartir valores de
expresiones.
• La evaluación mediante paso de parámetros por
nombre usando punteros para compartir valores de
expresiones se llama evaluación perezosa.
• Evaluación perezosa del ejemplo anterior:

4
PROCEDIMIENTO:

• Con una estructura más sencilla, sustituir todos los


valores de una lista de números por el mínimo
valor de esta lista, recorriendo la lista una sola vez.
Y esto usando de manera muy inteligente
la evaluación perezosa.

5
TIPOS DE ESTRATEGIA:

• De adentro hacia afuera

• De afuera hacia adentro

6
¿SIMILITUDES?
TEORÍA DE GRAFOS:

Reducción de grafos:

7
TÉCNICAS DE EVALUACIÓN:

• Recuerda decisiones exitosas y aumenta su prioridad


• Si mas de una es cierta escoge cualquiera de ellas
• Si una alternativa falla retrocede hasta la ultima decisión e intenta de nuevo.

SU MAYOR APLICADOR: HASKELL, LENGUAJE PEREZOSO.

8
PROGRAMACIÓN TRADICIONAL:
En los lenguajes de programación tradicionales, lo que tenemos es evaluación ansiosa.
Con este tipo de evaluación, cuando asignamos un valor a una variable, o pasamos un
parámetro a una función, se calcula cual es el valor final a asignar o cual es el valor final del
parámetro. Por ejemplo:

EVALUACIÓN PEREZOSA:

9
VENTAJAS:

• Permite expresar estructuras de datos infinitas. En programación funcional, las estructuras de datos se
usan muchas veces como instrumentos de control de flujo. En lugar de decir «esto, luego aquello» a la
manera de un lenguaje imperativo, en los lenguajes como Haskell muchas veces se dice «haz esto para
cada uno de los elementos de esta lista». Esto es muy cómodo y da lugar a programas muy flexibles;
teniendo como caso extremo la posibilidad de una estructura de datos infinita que se procese con
instrucciones como «haz esto en tanto hayan elementos», sirviendo de bucles infinitos.
• incrementan el nivel de abstracción y acercan el lenguaje de programación a las matemáticas de pizarrón.
Se puede decir, «sean todos los números pares» o «sean todos los números de la secuencia de fibonachi»
para luego hacer operaciones útiles sobre ellos.
• ayudar a la hora de optimizar el código en tiempo de ejecución, pues nunca se ejecuta código que no
sea 100% necesario.

10
Gracias
Araceli Olmos, Raúl Sánchez

Instituto Tecnológico de Orizaba


1
Agregue sus imágenes

? Elimine esta diapositiva cuando


sepa cómo trabajar con
plantillas de patrón

Cómo
personalizar
esta plantilla.

Elimine la imagen del a continuación,


marcador de posición o seleccione o arrastre y
el icono, coloque su foto

2
Elija los colores
Cambie el color del
tema en la vista Patrón de diapositivas

Vista → Patrón de diapositivas → Colores (flecha


desplegable)
12