stringtranslate.com

Precomputación

Parte de una tabla matemática de logaritmos comunes precalculada del siglo XX .

En algoritmos , el precálculo es el acto de realizar un cálculo inicial antes del tiempo de ejecución para generar una tabla de búsqueda que un algoritmo puede usar para evitar cálculos repetidos cada vez que se ejecuta. El precálculo se usa a menudo en algoritmos que dependen de los resultados de cálculos costosos que no dependen de la entrada del algoritmo. Un ejemplo trivial de precálculo es el uso de constantes matemáticas codificadas , como π y e , en lugar de calcular sus aproximaciones con la precisión necesaria en el tiempo de ejecución.

En bases de datos , el término materialización se utiliza para referirse al almacenamiento de los resultados de un precálculo, [1] [2] como en una vista materializada . [3] [4]

Descripción general

El cálculo previo de un conjunto de resultados intermedios al comienzo de la ejecución de un algoritmo puede a menudo aumentar sustancialmente la eficiencia del algoritmo . Esto resulta ventajoso cuando una o más entradas están restringidas a un rango lo suficientemente pequeño como para que los resultados puedan almacenarse en un bloque de memoria de tamaño razonable. Debido a que el acceso a la memoria es esencialmente constante en complejidad temporal (excepto por los retrasos de almacenamiento en caché ), cualquier algoritmo con un componente que tenga una eficiencia peor que constante en un rango de entrada pequeño puede mejorarse mediante el cálculo previo de valores. En algunos casos, se pueden obtener algoritmos de aproximación eficientes calculando un subconjunto discreto de valores e interpolando para valores de entrada intermedios, ya que la interpolación también es una operación lineal.

Historia

Antes de la llegada de las computadoras, las tablas de búsqueda de valores impresas eran utilizadas por la gente para acelerar los cálculos manuales de funciones complejas, como en las tablas trigonométricas , las tablas de logaritmos y las tablas de funciones de densidad estadística [5]. A los niños en edad escolar se les suele enseñar a memorizar las " tablas de multiplicación " para evitar los cálculos de los números más utilizados (hasta 9 x 9 o 12 x 12). Incluso en el año 493 d. C., Victorio de Aquitania escribió una tabla de multiplicación de 98 columnas que daba (en números romanos ) el producto de cada número de 2 a 50 veces y las filas eran "una lista de números que empezaba con mil, descendía de centenas a cien, luego descendía de decenas a diez, luego de unos a uno, y luego las fracciones hasta 1/144" [6].

Ejemplos

Incluso las implementaciones informáticas modernas de funciones trigonométricas digitales a menudo utilizan tablas de búsqueda precalculadas para proporcionar coeficientes para algoritmos de interpolación o para inicializar algoritmos de aproximación sucesivos .

Muchos ataques a criptosistemas implican precomputación.

Algunos ejemplos de precomputación a gran escala como parte de algoritmos modernos y eficientes incluyen:

Los compiladores utilizan ampliamente el precálculo como un medio para aumentar la velocidad de ejecución del código resultante: este precálculo puede considerarse, en efecto, una forma de evaluación parcial del código del programa en sí. Algunos ejemplos de este tipo de precálculo incluyen el análisis del flujo de datos y los pasos de reducción de la fuerza .

Véase también

Referencias

  1. ^ Jiawei Han; Micheline Kamber (9 de junio de 2011). Minería de datos: conceptos y técnicas: conceptos y técnicas. Elsevier. pág. 159. ISBN 978-0-12-381480-7.
  2. ^ Sven Groppe (29 de abril de 2011). Gestión de datos y procesamiento de consultas en bases de datos de la Web semántica. Springer Science & Business Media. pág. 178. ISBN 978-3-642-19357-6.
  3. ^ Karen Morton; Kerry Osborne; Robyn Sands; Riyaj Shamsudeen; Jared Still (28 de octubre de 2013). Pro Oracle SQL. Apress. pág. 48. ISBN 978-1-4302-6220-6.
  4. ^ Marie-Aude Aufaure; Esteban Zimányi (16 de enero de 2012). Business Intelligence: First European Summer School, EBISS 2011, París, Francia, 3-8 de julio de 2011, Tutorial Lectures. Springer Science & Business Media. pág. 43. ISBN 978-3-642-27357-5.
  5. ^ Campbell-Kelly, Martin ; Croarken, Mary ; Flood, Raymond ; et al., eds. (2003). La historia de las tablas matemáticas desde el sumario hasta las hojas de cálculo . Oxford University Press. ISBN 978-0-19-850841-0.
  6. ^ Maher, David. WJ y John F. Makowski. "Evidencia literaria de la aritmética romana con fracciones", 'Classical Philology' (2001) Vol. 96 No. 4 (2001) pp. 376–399. (Véase la página p. 383.)