Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Clase 11
•COMPLEJIDA ALGORITMICA
ALGORITMO.-
Un algoritmo es una secuencia finita y ordenada de instrucciones
elementales que, dados los valores de entrada de un problema, en
algún momento finaliza y devuelve la solución.
Nota.-
El tiempo de ejecución de un algoritmo viene dado por
las entradas concretas que le introduzcamos.
Por esto distinguimos 3 alternativas: Mejor caso, Peor
caso y caso promedio.
Universidad de Ciencias y Humanidades 2
Algebra Computacional
ANÁLISIS DE ALGORITMOS
La Teoría de la Complejidad Computacional es la parte de la teoría
de la computación que estudia los recursos requeridos durante el
cálculo para resolver un problema. Un cálculo resulta complejo
si es difícil de realizar. En este contexto podemos definir la
complejidad de cálculo como la cantidad de recursos necesarios para
efectuar un cálculo.
Así, un cálculo difícil requerirá más recursos que uno de menor
dificultad. Los recursos comúnmente estudiados son el tiempo
(número de pasos de ejecución de un algoritmo para resolver un
problema) y el espacio (cantidad de memoria utilizada para resolver
un problema). Un algoritmo que resuelve un problema pero que
tarda mucho en hacerlo, difícilmente será de utilidad. Igualmente un
algoritmo que necesite mas de un gigabyte de memoria no será
probablemente utilizado. A estos recursos se les puede añadir otros,
tales como el número de procesadores necesarios para resolver el
problema en paralelo. Si un cálculo requiere más tiempo o espacio
(disco duro) que otro decimos que es más complejo
Donde:
C1: Costo de comparar dos números
C2: Costo de realizar una asignación
C3: Costo de realizar una multiplicación
Nota.-
Los algoritmos que no son correctos a veces pueden ser útiles
si, por ejemplo producen una respuesta aproximada a un
problema particularmente difícil en forma eficiente.
Universidad de Ciencias y Humanidades 7
Algebra Computacional
Ejemplo 4.-
La ordenación de la burbuja es uno de los algoritmos de busqueda
mas simples, pero no uno de los mas eficientes
Definición.-
Sean f y g dos funciones del conjunto de los enteros o de los
reales en el conjunto de los reales. Decimos que f(x) es
O(g(x)) si existen constantes C y k tales que
|f(x)|≤C|g(x)| siempre que x>k
Universidad de Ciencias y Humanidades 11
Algebra Computacional
Ejemplo 1.-
Demuestre que f(n)=n2+2n +1 es O(n2)
Solución:
Observamos que podemos estimar el tamaño de f(n) cuando n>1
y 1<n2 para n>1 por tanto
0≤n2+2n+1≤n2+2n2+n2=4n2
Siempre que n>1, por consiguiente podemos tomar C=4 y k=1
Para mostrara que f(n) es O(n2).
Es decir
f(n)=n2+2n+1<4n2 siempre que n>1
¿Qué medimos?
Coste Temporal y Coste Espacial