¡Por supuesto! Todo lo que necesitas hacer es resolver la ecuación de Schroedinger. No he escrito nada para el modelo de compuerta, pero todo es un estado cuántico [matemático] | \ Psi \ rangle [/ matemático], que es un vector de coeficientes que corresponden a ciertos estados básicos (si lo expandió, [matemáticas] | \ Psi \ rangle = c_0 | \ psi_0 \ rangle + c_1 | \ psi_1 \ rangle +… + c_ {2 ^ n} | \ psi_ {2 ^ n} \ rangle [/ matemáticas] donde [matemáticas] n [/ math] es el número de qubits y [math] | \ psi_k \ rangle [/ math] es un vector base (o, en mecánica cuántica, uno de los vectores propios del hamiltoniano), que está siendo desarrollado por operadores unitarios (que son solo matrices hermitianas). Para un caso de 1 qubit, hay una gran visualización llamada esfera de Bloch:
Entonces, los coeficientes le dicen qué tan probable es que esté en el estado propio correspondiente (en este caso, es el estado cero o uno, o arriba y abajo). Luego aplica el operador a este estado. Un operador es como una función o mapeo de un espacio vectorial a otro. La matriz siempre debe ser cuadrada, de modo que se garantice el mapeo de un espacio vectorial [matemático] 2 ^ n [/ matemático] a otro espacio vectorial del mismo tamaño (piense en lo que le sucede al vector de estado si la matriz no cuadrado … no se mantendrá la misma longitud, lo que no tiene sentido físico).
Entonces, en computación cuántica, todo lo que está haciendo es aplicar estos operadores unitarios (podrían ser pulsos láser, por ejemplo) en su estado. Para el caso de un qubit, todo lo que sucede es que el vector de estado gira en la esfera Bloch de arriba. En términos matemáticos, es simple multiplicación matriz-vector. Si desea modelar más la física, tendrá que comenzar a pensar en otras cosas como la pérdida de información por ruido o decoherencia o algo así. No sé exactamente cómo hacer esos cálculos, pero probablemente pueda encontrarlo en este libro: Computación cuántica e información cuántica: Edición del décimo aniversario: Michael A. Nielsen, Isaac L. Chuang: 9781107002173: Amazon.com: Libros. O si desea pensar más en ello, puede comenzar con la ecuación de Schroedinger y luego pensar en cómo modelar todos estos otros efectos por separado con la mecánica cuántica, y luego descubrir cómo ponerlo todo junto. Hay mucho código por ahí, así que seguramente alguien ya lo ha hecho. Otra cosa interesante es que hay personas que trabajan en la construcción de lenguajes más abstractos para la computación cuántica de puerta lógica.
- ¿Cuál es la fuente del poder de las computadoras cuánticas?
- ¿Por qué el cribado (en física cuántica) es más efectivo a grandes distancias?
- Si muchos qubits entrelazados causan una medición, ¿cómo podemos construir computadoras cuánticas con muchos qubits?
- Soy estudiante universitario en el departamento de ingeniería mecánica en IIT, y quiero desarrollar una carrera en computación cuántica. ¿Qué pasos debo seguir?
- ¿La computación cuántica afectará a la minería de bitcoin?
Otra cosa que puede hacer es modelar el paradigma de optimización adiabática para la computación cuántica. Aquí es donde simplemente resuelve la ecuación de Schroedinger dependiente del tiempo:
[matemáticas] i \ hbar \ frac {\ partial \ Psi} {\ partial t} = \ hat {H} \ Psi [/ math]
Su Hamiltoniano comienza en una forma (el caso típico es un campo magnético transversal en el estado de giro [math] \ sigma_x [/ math]) y se reactiva a otro (el caso típico es el estado de giro [math] \ sigma_z [/ math]). También tiene coeficientes para esto y … bueno, se complica. Si está interesado, vea mis otras respuestas sobre computación cuántica adiabática aquí: la respuesta de Hadayat Seddiqi a ¿Cómo funciona la computación cuántica? ¿Qué lo hace diferente del paradigma informático actual? ¿Qué tipo de problemas podría resolver la computación cuántica? ¿Cómo se realiza la corrección de errores? y la respuesta de Hadayat Seddiqi a ¿Cómo funciona la computación cuántica adiabática en términos simples?
De todos modos, eso implica simplemente modelar la ecuación anterior. De hecho, eso ha sido parte de mi investigación recientemente y en realidad tengo un código que lo modela por completo (escrito en Python). Si tiene curiosidad acerca de cómo se resuelve exactamente la ecuación, mire el archivo solver.py. Aquí está el enlace:
https://github.com/hadsed/AdiaQC
Algunas cosas a tener en cuenta sin embargo. Por supuesto, tenemos que hacer aproximaciones para resolver la ecuación dependiente del tiempo. Esto significa que dos parámetros importan mucho: su tiempo de recocido total y su paso de tiempo. Otra cosa a considerar es que [matemáticas] 2 ^ n [/ matemáticas] es exponencial. Con [math] n = 16 [/ math], estás viendo un número de alrededor de 65,000, y 16 qubits no son nada. Haciendo un poco de aritmética manual, una simulación para [matemática] n = 42 [/ matemática] ocupará toda la memoria del Titán (la supercomputadora más rápida del mundo en este momento, alojada en el Laboratorio Nacional Oak Ridge). Y recuerde, también está almacenando el Hamiltoniano, que es [matemáticas] 2 ^ n \ veces 2 ^ n [/ matemáticas]. Y tiene que hacer una descomposición propia en cada paso de tiempo para ver su espectro de energía (que es cómo analizará su programa de recocido). Entonces estás viendo muchos problemas al simular estas cosas.
Espero haber cubierto lo suficiente, avíseme si tiene más preguntas y trataré de responder.