La transformada de Hadamard (también conocida como transformada de Walsh-Hadamard , transformada de Hadamard-Rademacher-Walsh , transformada de Walsh o transformada de Walsh-Fourier ) es un ejemplo de una clase generalizada de transformadas de Fourier . Realiza una operación ortogonal , simétrica , involutiva y lineal sobre 2 m números reales (o complejos o hipercomplejos , aunque las matrices de Hadamard en sí mismas son puramente reales).
La transformada de Hadamard puede considerarse como construida a partir de transformadas de Fourier discretas (DFT) de tamaño 2, y de hecho es equivalente a una DFT multidimensional de tamaño 2 × 2 × ⋯ × 2 × 2 . [2] Descompone un vector de entrada arbitrario en una superposición de funciones de Walsh .
La transformada recibe su nombre del matemático francés Jacques Hadamard ( en francés: [adamaʁ] ), el matemático germano-estadounidense Hans Rademacher y el matemático estadounidense Joseph L. Walsh .
La transformada de Hadamard H m es una matriz de 2 m × 2 m , la matriz de Hadamard (escalada por un factor de normalización), que transforma 2 m números reales x n en 2 m números reales X k . La transformada de Hadamard se puede definir de dos maneras: recursivamente o utilizando la representación binaria ( base -2) de los índices n y k .
De forma recursiva, definimos la transformada de Hadamard 1 × 1 H 0 por la identidad H 0 = 1, y luego definimos H m para m > 0 por: donde 1/ √ 2 es una normalización que a veces se omite.
Para m > 1, también podemos definir H m por: donde representa el producto de Kronecker . Por lo tanto, además de este factor de normalización, las matrices de Hadamard están formadas en su totalidad por 1 y −1.
De manera equivalente, podemos definir la matriz de Hadamard por su entrada ( k , n )-ésima escribiendo
donde k j y n j son los elementos de bit (0 o 1) de k y n , respectivamente. Nótese que para el elemento en la esquina superior izquierda, definimos: . En este caso, tenemos:
Esta es exactamente la DFT multidimensional, normalizada para ser unitaria , si las entradas y salidas se consideran como matrices multidimensionales indexadas por n j y k j , respectivamente.
A continuación se presentan algunos ejemplos de matrices de Hadamard. donde es el producto escalar bit a bit de las representaciones binarias de los números i y j. Por ejemplo, si , entonces , lo que concuerda con lo anterior (ignorando la constante general). Nótese que el elemento de la primera fila y la primera columna de la matriz se denota por .
H 1 es precisamente la DFT de tamaño 2. También puede considerarse como la transformada de Fourier en el grupo aditivo de dos elementos de Z /(2).
Las filas de las matrices de Hadamard son las funciones de Walsh .
De acuerdo con la definición anterior de la matriz H , aquí dejamos H = H [ m , n ]
En la transformada de Walsh, solo aparecerán 1 y −1 en la matriz. Los números 1 y −1 son números reales, por lo que no es necesario realizar un cálculo con números complejos .
La DFT necesita multiplicación irracional, mientras que la transformada de Hadamard no. Ni siquiera se necesita multiplicación racional, ya que basta con invertir los signos.
En la matriz de transformada de Walsh, todas las entradas en la primera fila (y columna) son iguales a 1.
Transformada de Fourier discreta:
En la transformada de Fourier discreta, cuando m es igual a cero (media de la primera fila), el resultado de la DFT también es 1. En la segunda fila, aunque es diferente de la primera fila, podemos observar una característica de la matriz de que la señal en la primera matriz sin procesar es de baja frecuencia y aumentará la frecuencia en la segunda fila, aumentará más frecuencia hasta la última fila.
Si calculamos el cruce por cero:
Primera fila = 0 cruce por ceroSegunda fila = 1 cruce por ceroTercera fila = 2 cruces por cero ⋮Ocho filas = 7 cruces por cero
La transformada de Hadamard es de hecho equivalente a una DFT multidimensional de tamaño 2 × 2 × ⋯ × 2 × 2 . [2]
Otro enfoque es ver la transformada de Hadamard como una transformada de Fourier en el grupo booleano . [3] [4] Al utilizar la transformada de Fourier en grupos finitos (abelianos) , la transformada de Fourier de una función es la función definida por donde es un carácter de . Cada carácter tiene la forma para algún , donde la multiplicación es el producto punto booleano en cadenas de bits, por lo que podemos identificar la entrada con ( dualidad de Pontryagin ) y definir por
Esta es la transformada de Hadamard de , considerando la entrada a y como cadenas booleanas.
En términos de la formulación anterior, donde la transformada de Hadamard multiplica un vector de números complejos a la izquierda por la matriz de Hadamard, la equivalencia se ve tomando como entrada la cadena de bits correspondiente al índice de un elemento de , y teniendo como salida el elemento correspondiente de .
Compare esto con la transformada de Fourier discreta habitual que, cuando se aplica a un vector de números complejos, utiliza caracteres del grupo cíclico .
En el dominio clásico, la transformada de Hadamard se puede calcular en operaciones ( ), utilizando el algoritmo rápido de transformada de Hadamard .
En el dominio cuántico, la transformada de Hadamard se puede calcular en el tiempo, ya que es una puerta lógica cuántica que se puede paralelizar .
La transformada de Hadamard se utiliza ampliamente en la computación cuántica . La transformada de Hadamard 2 × 2 es la puerta lógica cuántica conocida como puerta de Hadamard, y la aplicación de una puerta de Hadamard a cada cúbit de un registro de cúbits en paralelo es equivalente a la transformada de Hadamard .
En computación cuántica, la puerta de Hadamard es una rotación de un cúbit , que asigna los estados base del cúbit y a dos estados de superposición con igual peso de los estados base computacionales y . Por lo general, las fases se eligen de modo que
en notación de Dirac . Esto corresponde a la matriz de transformación en la base, también conocida como base computacional. Los estados y se conocen como y respectivamente, y juntos constituyen la base polar en computación cuántica .
Una aplicación de la puerta de Hadamard a un cúbito 0 o 1 producirá un estado cuántico que, si se observa, será un 0 o un 1 con la misma probabilidad (como se ve en las dos primeras operaciones). Esto es exactamente como lanzar una moneda al aire en el modelo probabilístico estándar de computación . Sin embargo, si la puerta de Hadamard se aplica dos veces seguidas (como se está haciendo efectivamente en las dos últimas operaciones), entonces el estado final siempre es el mismo que el estado inicial.
Calcular la transformada cuántica de Hadamard es simplemente la aplicación de una compuerta de Hadamard a cada cúbit individualmente debido a la estructura del producto tensorial de la transformada de Hadamard. Este simple resultado significa que la transformada cuántica de Hadamard requiere operaciones, en comparación con el caso clásico de operaciones.
Para un sistema de -qubits, las puertas de Hadamard que actúan sobre cada uno de los qubits (cada uno inicializado en ) se pueden utilizar para preparar estados de superposición cuántica uniforme cuando tiene la forma . En este caso con qubits, la puerta de Hadamard combinada se expresa como el producto tensorial de las puertas de Hadamard:
El estado de superposición cuántica uniforme resultante es entonces: Esto generaliza la preparación de estados cuánticos uniformes utilizando puertas de Hadamard para cualquier . [5]
La medición de este estado cuántico uniforme da como resultado un estado aleatorio entre y .
Muchos algoritmos cuánticos utilizan la transformada de Hadamard como paso inicial, ya que, como se explicó anteriormente, asigna n qubits inicializados con a una superposición de los 2 n estados ortogonales en la base con igual peso. Por ejemplo, esto se utiliza en el algoritmo de Deutsch–Jozsa , el algoritmo de Simon , el algoritmo de Bernstein–Vazirani y en el algoritmo de Grover . Tenga en cuenta que el algoritmo de Shor utiliza tanto una transformada de Hadamard inicial como la transformada de Fourier cuántica , que son ambos tipos de transformadas de Fourier sobre grupos finitos ; la primera sobre y la segunda sobre .
Preparación de estados de superposición cuántica uniformes en el caso general, cuando ≠ no es trivial y requiere más trabajo. Recientemente se presentó un enfoque eficiente y determinista para preparar el estado de superposición con una complejidad de compuerta y una profundidad de circuito de solo para todos . [6] Este enfoque requiere solo cúbits. Es importante destacar que no se necesitan cúbits ancillarios ni ninguna compuerta cuántica con múltiples controles en este enfoque para crear el estado de superposición uniforme .
La transformada de Hadamard se puede utilizar para estimar árboles filogenéticos a partir de datos moleculares. [7] [8] [9] La filogenética es el subcampo de la biología evolutiva centrado en la comprensión de las relaciones entre los organismos. Una transformada de Hadamard aplicada a un vector (o matriz) de frecuencias de patrones de sitios obtenidos a partir de una alineación de secuencias múltiples de ADN se puede utilizar para generar otro vector que contenga información sobre la topología del árbol. La naturaleza invertible de la transformada de Hadamard filogenética también permite el cálculo de probabilidades de sitios a partir de un vector de topología de árbol, lo que permite utilizar la transformada de Hadamard para la estimación de máxima verosimilitud de árboles filogenéticos. Sin embargo, la última aplicación es menos útil que la transformación del vector de patrones de sitios al vector de árboles porque hay otras formas de calcular probabilidades de sitios [10] [11] que son mucho más eficientes. Sin embargo, la naturaleza invertible de la transformada de Hadamard filogenética proporciona una herramienta elegante para la filogenética matemática. [12] [13]
La mecánica de la transformada filogenética de Hadamard implica el cálculo de un vector que proporciona información sobre la topología y la longitud de las ramas del árbol utilizando el vector o matriz de patrón de sitio .
donde es la matriz de Hadamard del tamaño adecuado. Esta ecuación se puede reescribir como una serie de tres ecuaciones para simplificar su interpretación:
La naturaleza invertible de esta ecuación permite calcular un vector (o matriz) de patrón de sitio esperado de la siguiente manera:
Podemos utilizar el modelo de sustitución de dos estados de Cavender–Farris– Neyman (CFN) para el ADN codificando los nucleótidos como caracteres binarios (las purinas A y G se codifican como R y las pirimidinas C y T se codifican como Y). Esto permite codificar el alineamiento de secuencias múltiples como el vector de patrón de sitio que se puede convertir en un vector de árbol , como se muestra en el siguiente ejemplo:
El ejemplo que se muestra en esta tabla utiliza el esquema simplificado de tres ecuaciones y es para un árbol de cuatro taxones que se puede escribir como ((A,B),(C,D)); en formato newick . Los patrones de sitio se escriben en el orden ABCD. Este árbol en particular tiene dos ramas terminales largas (0,2 sustituciones de transversión por sitio), dos ramas terminales cortas (0,025 sustituciones de transversión por sitio) y una rama interna corta (0,025 sustituciones de transversión por sitio); por lo tanto, se escribiría como ((A:0,025,B:0,2):0,025,(C:0,025,D:0,2)); en formato newick. Este árbol exhibirá atracción de ramas largas si los datos se analizan utilizando el criterio de máxima parsimonia (asumiendo que la secuencia analizada es lo suficientemente larga para que las frecuencias de patrones de sitio observadas estén cerca de las frecuencias esperadas que se muestran en la columna). La atracción de rama larga refleja el hecho de que el número esperado de patrones de sitios con índice 6 - que apoyan el árbol ((A,C),(B,D)); - exceden el número esperado de patrones de sitios que apoyan el árbol verdadero (índice 4). Obviamente, la naturaleza invertible de la transformada filogenética de Hadamard significa que el vector del árbol significa que el vector del árbol corresponde al árbol correcto. El análisis de parsimonia después de la transformación es, por lo tanto , estadísticamente consistente , [15] como lo sería un análisis de máxima verosimilitud estándar utilizando el modelo correcto (en este caso, el modelo CFN).
Nótese que el patrón de sitios con 0 corresponde a los sitios que no han cambiado (después de codificar los nucleótidos como purinas o pirimidinas). Los índices con asteriscos (3, 5 y 6) son "parsimonia-informativos", y los índices restantes representan patrones de sitios donde un solo taxón difiere de los otros tres taxones (por lo que son el equivalente de las longitudes de las ramas terminales en un árbol filogenético de máxima verosimilitud estándar).
Si se desea utilizar datos de nucleótidos sin recodificarlos como R e Y (y, en última instancia, como 0 y 1), es posible codificar los patrones de sitios como una matriz. Si consideramos un árbol de cuatro taxones, hay un total de 256 patrones de sitios (cuatro nucleótidos a la cuarta potencia). Sin embargo, las simetrías del modelo de tres parámetros de Kimura (o K81) nos permiten reducir los 256 patrones de sitios posibles para el ADN a 64 patrones, lo que hace posible codificar los datos de nucleótidos para un árbol de cuatro taxones como una matriz de 8 × 8 [16] de una manera similar al vector de 8 elementos utilizado anteriormente para los patrones de sitios de transversión (RY). Esto se logra recodificando los datos utilizando el modelo de cuatro grupos de Klein :
Al igual que con los datos RY, los patrones de sitios se indexan en relación con la base en el primer taxón elegido arbitrariamente, y las bases en los taxones subsiguientes se codifican en relación con esa primera base. Por lo tanto, el primer taxón recibe el par de bits (0,0). Al utilizar esos pares de bits, se pueden producir dos vectores similares a los vectores RY y luego completar la matriz utilizando esos vectores. Esto se puede ilustrar utilizando el ejemplo de Hendy et al. (1994), [16], que se basa en una alineación de secuencias múltiples de cuatro pseudogenes de hemoglobina de primates:
El número mucho mayor de patrones de sitios en la columna 0 refleja el hecho de que la columna 0 corresponde a diferencias de transición , que se acumulan más rápidamente que las diferencias de transversión en prácticamente todas las comparaciones de regiones genómicas (y definitivamente se acumulan más rápidamente en los pseudogenes de hemoglobina utilizados para este ejemplo trabajado [17] ). Si consideramos el patrón de sitio AAGG, sería el patrón binario 0000 para el segundo elemento del par de bits del grupo Klein y 0011 para el primer elemento. En este caso, el patrón binario basado en el primer elemento corresponde al índice 3 (por lo tanto, la fila 3 en la columna 0; indicada con un solo asterisco en la tabla). Los patrones de sitio GGAA, CCTT y TTCC se codificarían exactamente de la misma manera. El patrón de sitio AACT se codificaría con el patrón binario 0011 basado en el segundo elemento y 0001 basado en el primer elemento; esto produce el índice 1 para el primer elemento y el índice 3 para el segundo. El índice basado en el segundo par de bits del grupo Klein se multiplica por 8 para obtener el índice de la columna (en este caso sería la columna 24). La celda que incluiría el recuento de patrones de sitios AACT se indica con dos asteriscos; sin embargo, la ausencia de un número en el ejemplo indica que la alineación de secuencia no incluye patrones de sitios AACT (del mismo modo, los patrones de sitios CCAG, GGTC y TTGA, que se codificarían de la misma manera, están ausentes).
La transformada de Hadamard también se utiliza en el cifrado de datos , así como en muchos algoritmos de procesamiento de señales y compresión de datos , como JPEG XR y MPEG-4 AVC . En aplicaciones de compresión de vídeo , se suele utilizar en forma de suma de diferencias transformadas absolutas . También es una parte crucial de un número significativo de algoritmos en computación cuántica. La transformada de Hadamard también se aplica en técnicas experimentales como RMN , espectrometría de masas y cristalografía . Además, se utiliza en algunas versiones de hash sensible a la localidad , para obtener rotaciones de matriz pseudoaleatorias.