Bloque 1: Introduccion - PowerPoint PPT Presentation

1 / 9
About This Presentation
Title:

Bloque 1: Introduccion

Description:

Dados dos algoritmos distintos que solucionen en mismo problema, sus propiedades ... Dadas dos funciones tn y un que representan la eficiencia temporal (o espacial) ... – PowerPoint PPT presentation

Number of Views:24
Avg rating:3.0/5.0
Slides: 10
Provided by: fdi7
Category:

less

Transcript and Presenter's Notes

Title: Bloque 1: Introduccion


1
Bloque 1 Introduccion
  • Unidad 1 Consideraciones acerca de la eficiencia
    de algoritmos

2
Noción de eficiencia
  • Dados dos algoritmos distintos que solucionen en
    mismo problema, sus propiedades son probablemente
    distintas
  • Tardan tiempos distintos en solucionar el
    problema (eficiencia temporal)
  • Precisan de tamaños de almacenamiento distintos
    (eficiencia espacial)
  • Una pregunta obvia que surge a la hora de
    considerar ambos algoritmos es cuál de ambos es
    mejor?
  • Lógicamente, el que menos tiempo emplee y menos
    espacio de almacenamiento necesite
  • Habitualmente, nuestro objetivo principal será
    mejorar la eficiencia temporal
  • Existen dos formas de valorar la eficiencia de
    los algortimos
  • Empíricamente
  • Analíticamente (de forma teórica)

3
Determinación empirica de la eficiencia
  • Consiste en ejecutar cada algoritmo en una
    máquina real, para instancias de diferente tamaño
    del problema considerado, y obtener los
    resultados de tiempos consumidos y espacios
    utilizados
  • Posee varios inconvenientes
  • Requiere una adecuada selección de los datos de
    entrada, lo cual no es necesariamente fácil de
    realizar
  • Requiere múltiples ejecuciones de un mismo
    algoritmo, y por lo tanto, mucho tiempo
  • Está excesivamente ligado a una máquina concreta,
    por lo que en algunos casos los resultados no son
    extrapolables

4
Determinación teórica de la eficiencia
  • Consiste en determinar matemáticamente la
    cantidad de recursos (tiempo, espacio) que
    consume un algoritmo en función del tamaño de
    las instancias de problemas que resuelve
  • Por tamaño se pueen entender varias cosas
    Número de items de entrada, valor(es) de los
    items, espacio de almacenamiento, etc.
  • Escogeremos en cada caso, dependiendo cuánto de
    adecuadamente permita la entrada predecir la
    eficiencia del algoritmo
  • La eficiencia se convierte en una función tn que
    permite calcular el tiempo/espacio requerido por
    el algoritmo para problemas de tamaño n

5
Determinación de la función tn
  • La función tn se identifica a partir de una o un
    conjunto de operaciones básicas
  • Una operación básica es aquella tal que el
    trabajo total realizado por el algoritmo (en
    tiempo o espacio) es proporcional al número de
    veces que se ejecuta dicha instrucción
  • Ejemplo (temporal) tn n

function busquedaLineal(aarray1..k of integer
xinteger)integer var iinteger begin
i 1 while i lt k and ai ltgt x do
i i1 if i gt k then
busquedaLineal 0 else busquedaLineal i
end
Posibles operaciones básicas
6
Determinación de la función tn
  • Otro ejemplo (temporal) tn ?log2n?1

function busquedaBinaria(aarray1..k of
integer xinteger)integer var inf, med,
sup, locinteger begin inf 1 supk
loc 0 while inf lt sup and loc 0 do
begin med (infsup) DIV 2 if
amed x then loc med
else if x lt amed then
sup med-1 else inf med1
end busquedaBinaria loc end
Posibles operaciones básicas
7
Determinación de la función tn
  • La operación básica seleccionada sólo tiene que
    ser proporcional al trabajo que realiza el
    algoritmo
  • Podemos obviar el tiempo exacto que tarda en
    ejecutarse
  • Por ejemplo El algoritmo de búsqueda binaria
    anterior realiza
  • ?log2n?1 operaciones med (infsup) DIV 2
  • ?log2n?1 operaciones amed x
  • Si suponemos que la primera operación emplea i
    segundos y la segunda j segundos de cada vez, el
    algoritmo tardará ((?log2n?1)i)
    ((?log2n?1)j) segundos
  • O lo que es lo mismo, (ij)(?log2n?1), esto es,
    tn predice el tiempo consumido por el algoritmo
    con la precisión de un multiplicador (ij)
  • tn determina la eficiencia temporal (o espacial)
    del algoritmo a coste unitario

8
Comparación de la eficiencia de algoritmos
  • Dadas dos funciones tn y un que representan la
    eficiencia temporal (o espacial) de dos
    algoritmos t y u, el mejor algoritmo será el que
    proporcione un menor valor de la función para un
    n dado
  • Hablamos de una instancia concreta de un problema
  • Es necesario tener en cuenta los multiplicadores
    ocultos
  • En general, nos va a interesar el comportamiento
    asintótico, esto es, para valores de n muy
    grandes
  • Se obvia el efecto de las constantes
    multiplicadoras
  • Se pasa al límite

9
Notas finales
  • Un problema de la función tn es predice la
    eficiencia con coste unitario
  • Esto es, su precisión está limitada por un
    multiplicador constante
  • Un análisis empírico podría determinar tiempos
    exactos para instancias concretas
  • Ello proporcionaría (a priori) mejores resultados
    en la práctica
  • La realidad es que, por el principio de
    invariancia, dos implementaciones tn y un
    similares del mismo algoritmo, funcionado en
    máquinas distintas, pueden diferir en eficiencia
    en función de un multiplicador constante para n
    grandes
  • Esto es, si c y d son constantes
  • tn lt c un
  • un ltd tn
  • En consecuencia, la determinación empírica posee
    los mismos inconvenientes que la determinación
    teórica de tn
Write a Comment
User Comments (0)
About PowerShow.com