Documente Academic
Documente Profesional
Documente Cultură
algoritmos.
ESTRUCTURAS DE DATOS
Introduccin
Algoritmo:
Introduccin
Recursos consumidos:
Lo que se consigue: Resolver un problema de forma exacta, forma aproximada o algunos casos.
ESTRUCTURAS DE DATOS
Introduccin
Recursos consumidos: Ejemplo. Cuntos recursos de tiempo y memoria consume el siguiente algoritmo sencillo? i:= 0 a[n+1]:= x repetir i:= i + 1 hasta a[i] = x Respuesta: Depende. De qu depende? De lo que valga n y x, de lo que haya en a, de los tipos de datos, de la mquina...
ESTRUCTURAS DE DATOS
Introduccin
En general los recursos dependen de: Factores externos. El ordenador donde lo ejecutemos: 286, Pentium III, Cray,... El lenguaje de programacin y el compilador usado. La implementacin que haga el programador del algoritmo. En particular, de las estructuras de datos utilizadas. Tamao de los datos de entrada.
ESTRUCTURAS DE DATOS
Introduccin
Ejemplo. Calcular la media de una matriz de NxM. Contenido de los datos de entrada. Mejor caso. El contenido favorece una rpida ejecucin. Peor caso. La ejecucin ms lenta posible. Caso promedio. Media de todos los posibles contenidos. Los factores externos no aportan informacin sobre el algoritmo. Conclusin: Estudiar la variacin del tiempo y la memoria necesitada por un algoritmo respecto al tamao de la entrada y a los posibles casos, de forma aproximada (y parametrizada) no aportan informacin sobre el algoritmo.
ESTRUCTURAS DE DATOS M.C. BLANCA IDALIA MARTNEZ CAVAZOS
Introduccin
Normalmente usaremos la notacin T(N)=..., pero qu significa
T(N)? Tiempo de ejecucin en segundos. T(N) = bN + c. Suponiendo que b y c son constantes, con los segundos que tardan las operaciones bsicas correspondientes. Instrucciones ejecutadas por el algoritmo. T(N) = 2N + 4. Tardarn todas lo mismo? Ejecuciones del bucle principal. T(N) = N+1. Cunto tiempo, cuntas instrucciones,...? Sabemos que cada ejecucin lleva un tiempo constante, luego se diferencia en una constante con los anteriores.
ESTRUCTURAS DE DATOS
Introduccin
Asignacin de tiempos, para el conteo de instrucciones. Algunas reglas bsicas. Operaciones bsicas (+, -, *, :=,...): Una unidad de tiempo, o alguna constante. Operaciones de entrada salida: Otra unidad de tiempo, o una constante diferente. Bucles FOR: Se pueden expresar como una sumatoria, con los lmites del FOR. IF y CASE: Estudiar lo que puede ocurrir. Mejor caso y peor caso segn la condicin. Se puede predecir cundo se cumplirn las condiciones? Llamadas a procedimientos: Calcular primero los procedimientos que no llaman a otros. Bucles WHILE y REPEAT: Estudiar lo que puede ocurrir. Existe una cota inferior y superior del nmero de ejecuciones? Se puede convertir en un FOR?
ESTRUCTURAS DE DATOS M.C. BLANCA IDALIA MARTNEZ CAVAZOS
1. Caracterizar las operaciones bsicas del algoritmo. Operaciones bsicas constituyen el trabajo realizado para resolver el problema. 2. Debe considerarse sobre quien va a recaer la operacin. Se considera entonces los datos (tamao y configuracin).
Ejemplo: Establecer si un elemento Q pertenece a un vector (lista), depende del nmero de elementos del vector. Para un Dn conocido existirn mltiples instancias posibles.
En base a esto, se pueden clasificar los problemas que se someten al computador para ser solucionados desde el punto de vista del tamao y del esfuerzo.
La moneda tiene dos caras: La dificultad del problema y la eficiencia del algoritmo en resolverlo.
Nmero de operaciones realizadas por el algoritmo. Nmero de transiciones tomadas por la mquina turing que ejecuta el algoritmo. Cantidad de memoria utilizada Nmero y tamao de las variables Posicin extrema a la derecha que se llega a visitar en la cinta de la Mquina Turing durante la ejecucin.
Entrada
Salida
Para cada problema, hay varias instancias que son los datos particulares de entrada del problema.
18 ESTRUCTURAS DE DATOS M.C. BLANCA IDALIA MARTNEZ CAVAZOS
No todas las instancias son iguales en trminos de dificultad de resolucin. Por ejemplo, la Mquina Turing de incremento unitario toma una cantidad diferente de transiciones cuando est presentando con entradas diferentes. El tamao de la entrada evidentemente afecta, pero tambin afecta su estructura. La teora clsica de complejidad computacional se formula en trminos del tamao de la instancia.
19 ESTRUCTURAS DE DATOS M.C. BLANCA IDALIA MARTNEZ CAVAZOS
Para llegar a la comparabilidad, uno busca siempre calcular el tamao de instancia en los mismos trminos.
La manera ms confiable es convertir todo en binario y luego contar los bits. La manera ms fcil depende del problema, pero es tpicamente natural y evidente.
20 ESTRUCTURAS DE DATOS M.C. BLANCA IDALIA MARTNEZ CAVAZOS