• Like

Loading…

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

Los algoritmos rápidos y sus aplicaciones

  • 6,053 views
Uploaded on

 

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
6,053
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
11
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 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:=ansx 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:=xx If odd(n) then p:=x Else p:=1 Endif For i:=1 to (nDIV2) do p:=px2 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  2iuj / N ; u  0,1,2,..., N . – La transformada discreta inversa está dada por: N 1 f (n)   F ( j )e 2iuj / 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.