La transformación de Walsh-Hadamard (WHT) es una generalización de la transformación de Fourier, y es una transformación ortogonal en un vector de números reales o complejos de dimensión . La transformación es popular en la computación cuántica, pero se ha estudiado recientemente como una especie de preacondicionador para proyecciones aleatorias de vectores de alta dimensión para usar en la prueba del Lema de Johnson-Lindenstrauss. Su característica principal es que, aunque es una matriz cuadrada , se puede aplicar a un vector en el tiempo (en lugar de ) mediante un método similar a FFT.
Supongamos que el vector de entrada es escaso : solo tiene unas pocas entradas distintas de cero (por ejemplo, ). ¿Hay alguna manera para calcular la WHT en el tiempo tal que y para ?
Nota: estos requisitos son simplemente una forma de formalizar la idea de que me gustaría algo que se ejecute más rápido que para pequeño .
fuente
Respuestas:
Indice las filas WHT por un entero x, para . Entonces x tiene log d bits. Del mismo modo, indexe las columnas. La posición (x, y) es donde el exponente es el producto escalar del registro de longitud d. Suponga que r es una potencia de 2, redondeando si es necesario. Divida la matriz dxr en bloques rxr dejando que varíen los primeros bits log r y arreglando los otros bits log (d / r) en cada una de las formas d / r. Este bloque rxr es una matriz WHT más pequeña de tamaño r, excepto que pueden faltar algunas columnas, repetirse o negarse. En cualquier caso, preprocese el vector fácilmente y luego realice un rxr WHT en el tiempo r log r, luego repita d / r veces para el tiempo total d log r.0 ≤ x < d ( - 1 )⟨ X , y⟩
Ejemplo:
d = 4.
WHT H es
El conjunto arbitrario de columnas es 00 y 10 (más a la izquierda y dos más de eso):
Los bloques de fila son
y
En cada bloque, hay columnas repetidas, columnas faltantes y, en el segundo bloque, columnas negadas. Preprocesar un vector en y multiplicar por 2x2 WHT:( a , b )T ( a + b , 0 )T
Luego preprocese en y multiplique por 2x2 WHT:( a , b )T ( - a - b , 0 )T
fuente