Estoy enfrentando un problema matemático que pensé que era fácil, pero estoy atascado con una solución que no parece ser óptima.
El problema es el siguiente: tengo "registros" que son la representación expandida de varios Qubits (bits cuánticos), y quiero separarlos. ¿Cuál es la manera más rápida de hacerlo?
Nota que el hecho de que estemos tratando con Qubits es secundario aquí.
Por ejemplo 0.707 |00>+0.707i |01>+0 |10>+0 |11> es una representación de los 2 Qubits (1 |0>+0 |1>)(0.707 |0>+0.707i |1>).
En el caso general, puedo tener n Qubits (así que la representación expandida tiene 2n términos).
Mi idea (con el ejemplo de α |00>+β |01>+γ |10>+δ |11> a ser convertido en (a |0>+b |1>)(a′ |0>+b′ |1>)) :
Tenemos el sistema :
- α=aa′
- β=ab′
- γ=a′b
- δ=bb′
Notando que la suma de los cuadrados de los módulos siempre es 1 en un Qubit, tenemos |\alpha|²+|\beta|² = |a|²*(|a'|²+|b'|²) = |a|², entonces |a| = \sqrt{|\alpha|²+|\beta|²} (lo mismo aplica para los otros).
La dificultad ahora es encontrar los argumentos de a,a',b,b'.
Hasta ahora, mi mejor idea es aplicar la función de argumento para transformar las primeras 2n ecuaciones anteriores en lineales (donde n es el número de Qubits, aquí 2), y luego hacer eliminación de Gauss-Jordan en estas, pero esto es tedioso y ni siquiera estoy seguro de que vaya a funcionar porque ya no estoy trabajando en el campo de los números complejos.
La cuestión es que realmente creo que me estoy perdiendo algo más fácil aquí. ¿Alguien tiene una idea, o puede validar la mía si no hay otra forma?
¡Gracias de antemano!