miércoles, 14 de abril de 2010

Algoritmo Schönhage – Strassen

Es un Algoritmo que agiliza la multiplicación de números enteros de gran tamaño. Este algoritmo consiste en multiplicar los elementos de la cantidad 1 por los de la cantidad 2, al igual que se haría en la multiplicación normal. A los valores resultantes no se les aplica la operación de carga de la cantidad, dejando los valores así como resultan de la operación. Por ejm:

3 2 5
X 3 1 8
______________
24 16 40
3 2 5
9 6 15
_______________
9 9 41 21 40

A este primer resultado se le conoce como convolución lineal o acíclico. Una vez hecha la primera operación. Continuamos con la segunda parte que es la parte innovadora de este algoritmo. Esto consiste en dejar el elemento de la derecha y trasladar al número siguiente el elemento de la izquierda. Por ejm de 40 dejamos el 0 y trasladamos el cuatro al 21 iterando esta misma operación hasta realizarla al último número resultante. Este proceso es casi similar al original realizado en la multiplicación original. La diferencia radica en que el elemento de la izquierda lo sumamos al valor resultante directamente después de la suma realizada; En cantidades pequeñas esta diferencia no parece ser tan significativa; Pero en cantidades de números enteros realmente grandes, este algoritmo simplifica y agiliza considerablemente la operación. Terminando la operación quedaría de la siguiente manera:
9 9 41 21 40
= 10 3 3 5 0


Referencias:

3 comentarios:

  1. Muy bueno! y está bien que lo haya abordado en post separados.

    ResponderEliminar
  2. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  3. Amigo, muy bueno tu post, solo que no comprendí esa parte de la convolución lineal ¿Me podrías explicar? Gracias

    ResponderEliminar