EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
Los algoritmos rápidos y sus aplicaciones
1. LOS ALGORITMOS RÁPIDOS Y
SUS APLICACIONES
Alejandro Domínguez
Departamento de Sistemas Geográficos
Octubre de 1993
2. ALGORITMOS RÁPIDOS
• Un algoritmos rápido
– Es una descripción detallada de un procedimiento
computacional, el cual contiene una forma obvia
de calcular el resultado a partir de datos de
entrada.
– Estos algoritmos sacrifican la claridad en las
operaciones a favor de cálculos que son
computacionalmente más eficientes.
3. ALGORITMOS RÁPIDOS
• Ejemplo 1.
– Supongamos que se necesita calcular (muchas
veces) un número A dado por:
• A=ac+ad+bc+bd
– Para esto se requieren 4 multiplicaciones y 3
sumas.
– Factorizando, una forma equivalente de A es:
• A=(a+b)(c+d)
– Esta forma requiere 1 multiplicación y 2 sumas.
– Esta última forma es más eficiente o rápida.
4. ALGORITMOS RÁPIDOS
• Ejemplo 2.
– El producto de números complejos
• (e+if)=(a+ib)(c+id) i2=-1
– Se puede escribir de forma natural en términos de
multiplicaciones y sumas reales con:
• e=ac-bd
• f=ad-bc
– Estas fórmulas requieren 4 multiplicaciones reales
y dos sumas reales.
5. ALGORITMOS RÁPIDOS
• Ejemplo 2. (continuación)
– Un algoritmo más eficiente es:
• e=(a-b)d+a(c-d); f=(a-b)d+b(c+d)
– Si y sólo sí la multiplicación requiere más tiempo de
cómputo que la suma.
– La forma anterior requiere de 3 multiplicaciones y 5
sumas.
– Si c y d son constantes, entonces c+d y c-d son también
constantes y se pueden calcular fuera del algoritmo.
– Esta forma requiere de 3 multiplicaciones reales y 3 sumas
reales para efectuar una multiplicación compleja.
6. ALGORITMOS RÁPIDOS
• Ejemplo 3.
– Un algoritmo para calcular xn, con n natural, es:
Input x, n {n número natural}
ans:=1
For i:=1 to n do
ans:=ansx
EndFor
Output ans and stop
– Este algoritmo requiere de exactamente n
multiplicaciones.
7. ALGORITMOS RÁPIDOS
• Ejemplo 3. (continuación)
– Tomemos la siguiente implementación:
Input x, n {n número natural}
If n=0 then ans:=1
Else
x2:=xx
If odd(n) then p:=x
Else p:=1
Endif
For i:=1 to (nDIV2) do p:=px2
Endfor
ans:=p
Endif
– Este algoritmo requiere de (n+1)/2 multiplicaciones si n es
impar y de n/2 si n es par.
8. ALGORITMOS RÁPIDOS
• Ejemplo 4.
– La Transformada Discreta de Fourier de una
función (discretizada) está dada por:
N 1
1
F ( n)
N
f ( j )e
j 0
2iuj / N
; u 0,1,2,..., N .
– La transformada discreta inversa está dada por:
N 1
f (n) F ( j )e 2iuj / N ; j 0,1,2,..., N 1.
u 0
9. ALGORITMOS RÁPIDOS
• Ejemplo 4. (continuación)
– El número de multiplicaciones complejas es
proporcional a N2.
– El número de sumas complejas es proporcional a N2.
– Una descomposición adecuada puede hacer que el
número de multiplicaciones y sumas se reduzca a un
número proporcional a Nlog2N.
– El procedimiento de descomposición se llama
“Algoritmo de la Transformada Rápida de Fourier
(FFT)”.
10. ALGORITMOS RÁPIDOS
• Ejemplo 4. (continuación)
– La reducción en proporcionalidad de N2 a Nlog2N
representa un ahorro significativo en tiempo de cómputo.
N N2 (TF directa) Nlog2N (FFT)
2 4 2
4 16 8
8 64 24
16 256 64
32 1024 160
64 4096 384
128 16384 896
256 65536 2048
512 262144 4068
1024 1048576 10240
11. ALGORITMOS RÁPIDOS
• Ejemplo 4. (continuación)
– La implementación de FFT para 8 puntos.
FFT de 8
puntos
FFT de dos FFT de dos
puntos puntos
FFT de dos FFT de dos FFT de dos FFT de dos
puntos puntos puntos puntos
F(0) F(4) F(2) F(6) F(1) F(5) F(3) F(7)
12. ALGORITMOS RÁPIDOS
Se requiere conocimiento en Se requiere conocimiento en
matemáticas sobre: computación sobre:
• Teoría de números. • Programación.
• Campos y anillos finitos sobre • Programación avanzada.
los números enteros.
• Estructura de datos.
• Polinomios mínimos y
conjugados.
• Polinomios ciclotómicos.
• Campos y anillos de
polinomios.
• Grupos.
• Espacios vectoriales.
• Algebra lineal.
13. ALGORITMOS RÁPIDOS
• Los algoritmos rápidos se requieren en
programación de sistemas asociados a:
– Sonar.
– Radar.
– Procesamiento sísmico.
– Tomografía computarizada.
– Procesamiento digital de imágenes y señales.
– Cualquier aplicación que requiere un gran
volumen de cálculos numéricos.