Académique Documents
Professionnel Documents
Culture Documents
Algorítmica III
Contenido
● Introducción.
● Principio de Invariancia.
● Operación Elemental.
● Introducción al Análisis de Eficiencia.
– Estructuras Secuenciales.
– Estructuras Condicionales Si.
– Estructuras Para ó Desde.
– Estructuras Mientras y Repetir.
CARRERA DE
INGENIERÍA
DE SISTEMAS
ALGORITMICA III
Contenido
● Estructuras complejas.
● Conclusiones.
CARRERA DE
INGENIERÍA
DE SISTEMAS
ALGORITMICA III
Introducción
● Existen problemas que no se conoce ningún algoritmo eficiente.
– El viajante de comercio,
– El coloreado óptimo de grafos,
– El problema de la mochila,
– Los ciclos hamiltoneanos,
– La programación entera,
– La búsqueda del camino más simple más largo de un
grafo.
● Algoritmo que resuelva cualquiera problema anterior
proporciona un algoritmo eficiente para todas las instancias.
CARRERA DE
INGENIERÍA
DE SISTEMAS
ALGORITMICA III
Introducción
● Es sencillo verificar la validez de una supuesta
solución que encontrar una solución partiendo de
cero.
● Un algoritmo es más eficiente si es mejor que un
algoritmo evidente ó se trata del mejor algoritmo
posible para resolver nuestro problema.
– Un algoritmo de tiempo polinomial puede no ser
práctico si se considera la constante multiplicativa
oculta es demasiado grande.
● Mientras que un algoritmo que requiera un tiempo
exponencial en el peor caso puede resultar sumamente
rápido en la mayoría de los casos.
CARRERA DE
INGENIERÍA
DE SISTEMAS
ALGORITMICA III
Principio de la Invariancia
● Dos implementaciones distintas de un
mismo algoritmo no diferirán en su
eficiencia en más de una constante
multiplicativa.
– Sean t1(n) y t2(n) tiempos de implementación
del algoritmo M, c y d constantes; entonces
t1(n) <= ct2(n) y t2(n) <= dt1(n). Entonces
toda implementación t(n) esta acotada
superiormente por kt(n)
● Concluimos, toda implementación t(n) esta
acotada superiormente por k*t(n).
CARRERA DE
INGENIERÍA
DE SISTEMAS
ALGORITMICA III
Operación Elemental
● Es aquella cuyo tiempo de ejecución se puede
acotar superiormente por una constante.
● Análisis algorítmico depende del número de
operaciones elementales, no nos preocupará
el tiempo empleado.
● Contabilizando el número de operaciones
elementales encontraremos la función del
algoritmo.
CARRERA DE
INGENIERÍA
DE SISTEMAS
ALGORITMICA III
Operación Elemental
● Criterio de Costo Logarítmico: El tiempo de
ejecución como proporcional al tamaño de los
datos (número de bits necesario para codificar
los datos).
● El número de bits necesario para representar
un número entero a esta dado por:
log 2 a + 1 a ∈ Z − { 0}
ω(a ) =
1 a= 0
CARRERA DE
INGENIERÍA
DE SISTEMAS
ALGORITMICA III
Operación Elemental
● Criterio de Costo Uniforme: Cada instrucción
de la maquina es ejecutada en una unidad de
tiempo.
● Sea x1, x2, ... xn instrucciones; entonces t(xi) =
1 para i = 1, 2, ..., n.
● Entonces el tiempo de ejecución es el número
de operaciones.
CARRERA DE
INGENIERÍA
DE SISTEMAS
ALGORITMICA III
Operación Elemental
● Algoritmo hace “a” adiciones, “m”
multiplicaciones y “s” asignaciones cuyos
tiempos ta(n), tm(n) y ts(n), tiempo total t para
el algoritmo es:
t <= ata + mtm + sts
t <= max(ta ,tm ,ts) x (a + m + s)
t <= (a + m + s)
CARRERA DE
INGENIERÍA
DE SISTEMAS
ALGORITMICA III
CARRERA DE
INGENIERÍA
DE SISTEMAS
ALGORITMICA III
Estructuras Secuenciales
● Sean P1 y P2 dos fragmentos de un algoritmo
(instrucciones simples ó una simple y una
compuesta).
● Sean t1 y t2 los tiempos requeridos por P1 y P2
respectivamente.
● Regla de la composición secuencial: El tiempo
necesario para calcular “P1;P2” (primero P1 y
luego P2) es simplemente t1+t2.
P1 Seguido de P2 = Max(T1, T2)
CARRERA DE
INGENIERÍA
DE SISTEMAS
ALGORITMICA III
Estructuras Secuenciales
● Si las instrucciones son compuestas sólo se
procede a sumar los tiempos respectivos.
P1 Seguido de P2 = T1 + T2
CARRERA DE
INGENIERÍA
DE SISTEMAS
ALGORITMICA III
Estructuras Condicionales Si
● Regla 1:
– El tiempo es el máximo de la condicional ó el
mayor de los tiempos de las alternativas (dos
instrucciones simples ó uno compuesto y
uno simple).
CARRERA DE
INGENIERÍA
DE SISTEMAS
ALGORITMICA III
Estructuras Condicionales Si
● Regla 2:
– El tiempo nunca es mayor que el tiempo de
ejecución de la condicional mas el mayor de
los tiempos de ejecución de las alternativas
(dos instrucciones compuestas).
CARRERA DE
INGENIERÍA
DE SISTEMAS
ALGORITMICA III
Estructuras Condicionales Si
Si (i = j) entonces T = 1
suma <- suma + 1 T = 2
Sino
suma <- suma + i * j T = 3
fSi
CARRERA DE
INGENIERÍA
DE SISTEMAS
ALGORITMICA III
CARRERA DE
INGENIERÍA
DE SISTEMAS
ALGORITMICA III
CARRERA DE
INGENIERÍA
DE SISTEMAS
ALGORITMICA III
CARRERA DE
INGENIERÍA
DE SISTEMAS
ALGORITMICA III
CARRERA DE
INGENIERÍA
DE SISTEMAS
ALGORITMICA III
Solución:
a). T = n – j + 1
b). J > n
c). J 1, B, B2, B3, …,Bk, por tanto Modulo A se repite k veces.
Bkk> n LogBBk > LogBn k > LogBn k = LogBn + c
TMIENTRAS = (m + 4) * ( Log B n + c) + 3
CARRERA DE
INGENIERÍA
DE SISTEMAS
ALGORITMICA III
CARRERA DE
INGENIERÍA
DE SISTEMAS
ALGORITMICA III
Conclusiones
● Un algoritmo es eficiente si existe un polinomio
p(n) talque el algoritmo puede resolver
cualquier caso de tamaño n en un tiempo que
esta en O(p(n))
● Los algoritmos de tiempo exponencial se
vuelven rápidamente inútiles en la práctica,
mientras que en general un algoritmo de tiempo
polinómicos nos permite resolver casos mucho
mayores.
CARRERA DE
INGENIERÍA
DE SISTEMAS