Análisis de algoritmos

Análisis de algoritmos

Análisis de algoritmos

El análisis de algoritmos es una parte importante de la Teoría de complejidad computacional más amplia, que provee estimaciones teóricas para los recursos que necesita cualquier algoritmo que resuelva un problema computacional dado. Estas estimaciones resultan ser bastante útiles en la búsqueda de algoritmos eficientes.

A la hora de realizar un análisis teórico de algoritmos es corriente calcular su complejidad en un sentido asintótico, es decir, para un tamaño de entrada suficientemente grande. La cota superior asintótica, y las notaciones omega y theta se usan con esa finalidad. Por ejemplo, la búsqueda binaria decimos que se ejecuta en una cantidad de pasos proporcional a un logaritmo, en O(log(n)), coloquialmente "en tiempo logarítmico". Normalmente las estimaciones asintóticas se utilizan porque diferentes implementaciones del mismo algoritmo no tienen porque tener la misma eficiencia. No obstante la eficiencia de dos implementaciones "razonables" cualesquiera de un algoritmo dado están relacionadas por una constante multiplicativa llamada constante oculta.

La medida exacta (no asintótica) de la eficiencia a veces puede ser computada pero para ello suele hacer falta aceptar supuestos acerca de la implementación concreta del algoritmo, llamada modelo de computación. Un modelo de computación puede definirse en términos de un ordenador abstracto, como la Máquina de Turing, y/o postulando que ciertas operaciones se ejecutan en una unidad de tiempo. Por ejemplo, si al conjunto ordenado al que aplicamos una búsqueda binaria tiene n elementos, y podemos garantizar que una única búsqueda binaria puede realizarse en un tiempo unitario, entonces se requieren como mucho log2 N + 1 unidades de tiempo para devolver una respuesta.

Las medidas exactas de eficiencia son útiles para quienes verdaderamente implementan y usan algoritmos, porque tienen más precisión y así les permite saber cuanto tiempo pueden suponer que tomará la ejecución. Para algunas personas, como los desarrolladores de videojuegos, una constante oculta puede significar la diferencia entre éxito y fracaso.

Las estimaciones de tiempo dependen de cómo definamos un paso. Para que el análisis tenga sentido, debemos garantizar que el tiempo requerido para realizar un paso esté acotado superiormente por una constante. Hay que mantenerse precavido en este terreno; por ejemplo, algunos análisis cuentan con que la suma de dos números se hace en un paso. Este supuesto puede no estar garantizado en ciertos contextos. Si por ejemplo los números involucrados en la computación pueden ser arbitrariamente grandes, dejamos de poder asumir que la adición requiere un tiempo constante (usando papel y lápiz, compara el tiempo que necesitas para sumar dos enteros de 2 dígitos cada uno y el necesario para hacerlo con enteros de 1000 dígitos).

Véase también

Bibliografías

Obtenido de "An%C3%A1lisis de algoritmos"

Wikimedia foundation. 2010.

Игры ⚽ Нужно решить контрольную?

Mira otros diccionarios:

  • Análisis — Saltar a navegación, búsqueda Matemática Análisis matemático Análisis multivariante Análisis numérico Análisis real Análisis vectorial Ciencias biológicas Análisis clínico Química Análisis gravimétrico Análisis químico Análisis Pinch Análisis… …   Wikipedia Español

  • Análisis de errores — Saltar a navegación, búsqueda Al realizar cálculos mediante algoritmos más o menos complejos, es inevitable cometer errores. Estos errores pueden ser de tres tipos: Errores en los datos de entrada: Este tipo de error viene causado por los errores …   Wikipedia Español

  • Análisis de amortización — Saltar a navegación, búsqueda En ciencias de la computación, especialmente el análisis de algoritmos, el análisis de amortización considera el promedio de tiempo de ejecución por más de una operación peor de los casos, la secuencia de las… …   Wikipedia Español

  • Análisis asintótico — Saltar a navegación, búsqueda En matemáticas puras y aplicadas, en particular el análisis de algoritmos, el análisis asintótico es un método de descripción de la limitación de comportamiento. Limitar el comportamiento se expresa en el lenguaje de …   Wikipedia Español

  • algoritmos, análisis de — Disciplina básica de la ciencia computacional que facilita el desarrollo de programas eficientes. El análisis de algoritmos proporciona una comprobación de la exactitud de los algoritmos, permitiendo la predicción certera del desempeño del… …   Enciclopedia Universal

  • Análisis de estructura musical — Saltar a navegación, búsqueda Contenido 1 ¿Qué es y que aplicaciones tiene? 1.1 Esta información puede ser usada para las siguientes aplicaciones 2 …   Wikipedia Español

  • Análisis de frecuencias — Saltar a navegación, búsqueda Frecuencia de las letras en un texto inglés …   Wikipedia Español

  • Análisis sintáctico (lingüística) — Saltar a navegación, búsqueda El análisis sintáctico es el análisis de las funciones sintácticas o relaciones de concordancia y jerarquía que guardan las palabras agrupándose entre sí en sintagmas, oraciones simples y compuestas de proposiciones… …   Wikipedia Español

  • Análisis de primalidad AKS — Saltar a navegación, búsqueda El análisis de primalidad AKS o algoritmo AKS es un algoritmo determinista que decide en tiempo polinómico si un número natural es primo o compuesto. Fue diseñado por los científicos de computación Manindra Agrawal,… …   Wikipedia Español

  • Análisis numérico — El análisis numérico o cálculo numérico es la rama de las matemáticas que se encarga de diseñar algoritmos para, a través de números y reglas matemáticas simples, simular procesos matemáticos más complejos aplicados a procesos del mundo real. El… …   Wikipedia Español

Compartir el artículo y extractos

Link directo
Do a right-click on the link above
and select “Copy Link”