¿Cómo simulo este circuito cuántico simple en MATLAB?

Quiero simular un circuito similar al de abajo en MATLAB. Si tiene una matriz de estado que describe el estado de 3 qubits, entiendo que podría aplicar una matriz CNOT tensorizada con una matriz de identidad para ψ 0 conseguir ψ 1 , pero si desea aplicar una operación controlada al primer y tercer qubit para obtener ψ 2 , ¿cómo puedes hacer esto? Es como si necesitara "eliminar" la información sobre el segundo qubit, aplicar una puerta CNOT y luego, de alguna manera, integrar el resultado con la superposición del segundo qubit... No entiendo cómo hacer esto.

En general, si tengo una superposición de N qubits, ¿cómo aplico una operación controlada en los qubits i y j?

Circuito cuántico simple

Respuestas (2)

Creo que esto responderá a tu pregunta. ¿Cómo funciona el CNOT entre los qubits uno y tres?

| 000 | 000
| 001 | 001
| 010 | 010
| 011 | 011
| 100 | 101
| 101 | 100
| 110 | 111
| 111 | 110

Entonces su matriz se vería así:

( 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 )

Ese es un buen comienzo. Pero, ¿qué pasaría si quisiera simular un circuito más grande con, digamos, n qubits de entrada? ¿Existe una forma general que pueda simplificar y no necesite escribir una matriz (2^n)x(2^n)?
@Scott Permítame responder su pregunta con esto, si hubiera una forma eficiente de simular estados cuánticos genéricos y sus operadores en una computadora clásica, entonces...
@Scott Matlab tiene soporte para matrices "escasas" si muchas entradas son ceros.
@Scott rob tiene razón (en realidad, muchos lenguajes de programación modernos admiten matrices dispersas, incluidos Mathematica y Matlab). Hay algoritmos para matrices dispersas, pero incluso en ese caso necesitaría especificar O ( 2 norte ) elementos para sus matrices, que sigue siendo enorme.

La respuesta es | ψ F I norte A L = C norte O T 12 C norte O T 13 | ψ I norte I T I A L ;
dónde | ψ I norte I T I A L = | ψ | 00 .

Así que esta operación es la siguiente:

  • 1º) si | ψ esta en estado | 1 , luego realice NOT en el tercer qubit ( | 0 va a | 1 en la 3ra posición).
  • 2º) si | ψ esta en estado | 1 , luego realice NOT en el segundo qubit ( | 0 va a | 1 en la 2ª posición).

La representación matricial es:

1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0

@ZeroTheHero amigo, lo entiendo; pero la respuesta es en realidad la correcta. No es necesario el voto -1 solo porque no es elegante. Estaba corto de tiempo en este momento. Allá. Ahora está editado para que luzca elegante.
Su respuesta es diferente a la de @Ali y mucho menos detallada. Si hay un error con la otra respuesta (o con la tuya), no hay forma de rastrearlo desde tu publicación. ¿Quizás puedas ampliar tu respuesta? Podría ser que el orden de los estados básicos sea diferente entre el suyo y el de Ali y ambas respuestas concuerden, pero entonces, ¿por qué repetir otra respuesta?