Вы находитесь на странице: 1из 7

Que es un Algoritmo?

Webster: cualquier método especial para resolver cierta


clase de problemas.
Complejidad de los Algoritmos Horowitz: método preciso utilizable en una computadora
para la solución de un problema.

CONJUNTO FINITO DE PASOS UTILIZADO POR UNA


COMPUTADORA PARA RESOLVER UN PROBLEMA

Características de los Algoritmos


Preguntas
•Cada paso requiere una o más operaciones
‹ ¿Para todos los problemas, existe al menos un algoritmo?
• Operaciones definida (No ambiguas):
‹ Si existen varios algoritmos para un problema, ¿Cómo > 5/0, 6 + 7 ó tal vez 8: No se permiten
hacer una selección en términos de eficiencia?
• Cada paso puede realizarse en una cantidad finita de tiempo.

•Un algoritmo produce una o más salidas y requiere cero o más


entradas (externas).

• Un algoritmo siempre termina en un número finito de pasos


Características Áreas de Estudio de los Algoritmos
‹ Sin ambigüedad.
‹ ¿Cómo construir Algoritmos? -->Enfoques
‹ Efectividad: tiempo finito de cómputo. ‹ Divide y vencerás, Programación dinámica,
Exacta, estocástica, de vecindades,…
‹ Computabilidad. Alg que sea más listo que los ‹ ¿Cómo expresar algoritmos? -->Enfoques
humanos ‹ Programación estructurada, de objetos, de
agentes, funcional, lógica,..
‹ Complejidad. ‹ ¿Cómo validar algoritmos? -->Caminatas,
verificación formal,…-->¿Cómo probar un programa?
‹ Claridad: programación estructurada. ‹ ¿Cómo analizar algoritmos? -->Complejidad
computacional, amigabilidad, robustez,..

Tareas en el Análisis de Algoritmos


Análisis de Algoritmos
‹ Determinar qué operaciones se emplean y su costo
relativo.

‹ Estudia la complejidad espacial y ‹ Determinar conjuntos de datos para exhibir todos los
temporal de los algoritmos patrones posibles de comportamiento.

‹ Y las otras propiedades relevantes!!! ‹ Análisis a priori: se determina una función (de ciertos
parámetros) que acote el tiempo de cómputo del
algoritmo.

‹ Análisis a posteriori: estadísticas reales sobre tiempo y


memoria.
Desempeño de Algoritmos Tipos de Algoritmos
‹ Algoritmos determinísticos: El resultado de cada
operación está definido en forma única.

Eficiencia --> Rapidez ‹ Algoritmos no-determinísticos. El resultado de cada


operación esta determinado por un conjunto de
Eficacia --> Precisión posibilidades.

‹ Algoritmo polinomial. Es un algoritmo de complejidad


polinomial o inferior.

‹ Algoritmo No-Polinomial. Es un algoritmo de complejidad


exponencial o mayor.

Complejidad Computacional Complejidad Temporal Asintótica (Espacial).


•Clasifica los algoritmos en buenos o malos.
‹ comportamiento límite conforme el tamaño del problema
•Clasifica los problemas de acuerdo a la dificultad se incrementa:
inherente de resolverlos.
‹ determina el tamaño del problema que puede ser
Complejidad: resuelto por un algoritmo.
Temporal: Tiempo requerido por un algoritmo
para encontrar la solución.

Espacial: Almacenamiento requerido por un


algoritmo para encontrar la solución.
Complejidad Temporal Criterio de Análisis

Parámetro de medición Análisis del peor caso


Se toma el tamaño de la entrada n (descripción de la Se toma el tiempo de ejecución del peor caso.
instancia) para medir los requerimientos de tiempo de
un algoritmo. Ejemplo:
ALGORITMO TIEMPO
El tiempo de ejecución se describe como una función suma=0; 1
de la entrada T(n) for(i=1;i<=n;i++) 2n+1
suma+=i; 2n
Ejemplo:
T(n)=n2+2n T(n) = 4n+2

Orden de un Algoritmo Comparación de Orden

El orden de un algoritmo indica el grado de


complejidad de un algoritmo y que sirve de base para
comparar su eficiencia.

Ejemplo:
Un algoritmo cuya función de tiempo es :
T(n)=(n2-n)/2
Es de orden O(n2)
NOTACION ASINTOTICA O(n) Notación O(n)
‹ O(n2): si un algoritmo de complejidad temporal asintótica ‹ Conforme es mayor la velocidad de las computadoras:
para un problema de tamaño n procesa entradas en c n2,
su complejidad es O(n2).
‹ Los problemas a resolver son mayores.
‹ Una función f(n) es O(g(n)) si
| f(n) | <= c | g(n) | ‹ El análisis de la complejidad es más importante.
C = constante

Notación con O(n) Buenos y Malos Algoritmos


‹ O(1) CONSTANTE
‹ Convención 1: Todos los algoritmos, desde
‹ O(log log(n)) Log log(n) constantes hasta polinomiales, son polinomiales.
‹ O(log(n)) Logarítmica
‹ O(n) Lineal ‹ Convención 2 : Todos los algoritmos exponenciales y
factoriales, son exponenciales.
‹ O(nlog(n)) nlog (n)
‹ O(n2 ) Cuadrática ‹ Convención 3 : Los algoritmos polinomiales son
‹ O(n3 ) Cúbica "buenos" algoritmos.

‹ O (nm ) Polinomial ‹ Convención 4: Los algoritmos exponenciales son


‹ O(mn ) exponencial "malos" algoritmos.

‹ O(n!) factorial
Crecimiento de Funciones Polinomiales y
Exponenciales
Teorema:
Tiempo de evaluación de la función en unidades de
tiempo, en función del tamaño de la entrada n
‹ SI A(n) = amnm + .......+
Función Valores Aproximados
a1 n + a0 ,
n 10 100 1000
n log n 33 664 9966
n3 1,000 1,000,000 109 ‹ entonces A(n) = O( nm )
106 n8 1,014 1022 1030
2n 1,024 1.27 x 1030 1.05 x10301
nlog n 2,099 1.93 x 1013 7.89 x 1029
n! 3,628,800 10158 4X102567

Tipos de Algoritmos Ejemplo: t(n) = 60n2 + 5n + 1.


Peor Caso
Algoritmos de tiempo polinomial: Tiempo de evaluación de t(n) en unidades de tiempo en función del
Cuya función de tiempo tiene un orden O(nx). tamaño de la entrada n

Algoritmos de tiempo exponencial: n t(n) = 60n2+5n+1 60n2


Cuya función de tiempo tiene un orden O(xn)
10 6,051 6,000
100 600,501 600,000
Un problema está bien resuelto hasta que exista un
algoritmo de tiempo polinomial para él. 1,000 60,005,001 60,000,000
10,000 6,000,050,001 6,000,000,000
Efecto de la Tecnología
Modelos de Cómputo
Tamaño de la Tamaño de la Instancia
Instancia Solucionada
Función Solucionada en 1 en un Día en una
Día Computadora
10 Veces Más Rápida Máquina Determinista:
n 1012 1013 Es aquella en que para una misma entrada,
n log n 0.948 x 1011 0.87 x 1012 siempre se obtiene el mismo resultado.
n2 106 3.16 x 106
n3 104 2.15 x 104 Máquina no-determinista:
108 n4 10 18 Es aquella que para una misma entrada, se
2n 40 43 pueden obtener resultados diferentes.
10n 12 13 Fase de adivinación+Fase de verificación
Nlog n 79 95
n! 14 15

Вам также может понравиться