Para un ejemplo simple, suponga que tiene dos qubits en estados definidos y | 0 ⟩ . El estado combinado del sistema es | 0 ⟩ ⊗ | 0 ⟩ o | 00 ⟩ en taquigrafía.|0⟩|0⟩|0⟩⊗|0⟩|00⟩
Luego, si aplicamos los siguientes operadores a los qubits (la imagen se corta de la página wiki de codificación superdensa ), el estado resultante es un estado enredado, uno de los estados de campana .
Primero en la imagen tenemos la puerta hadamard que actúa en el primer qubit, que en una forma más larga es para que sea el operador de identidad en el segundo qubit.H⊗I
La matriz de hadamard se parece a
donde se ordena la base{| 0⟩,| 1⟩}.
H=12–√(111−1)
{|0⟩,|1⟩}
Entonces, después de que el operador hadamard actúa, el estado ahora
(H⊗I)(|0⟩⊗|0⟩)=H|0⟩⊗I|0⟩=12–√(|0⟩+|1⟩)⊗(|0⟩)=12–√(|00⟩+|10⟩)
La siguiente parte del circuito es una puerta no controlada, que solo actúa en el segundo qubit si el primer qubit es un .1
Puede representar como | 0 ⟩ ⟨ 0 | ⊗ I + | 1 ⟩ ⟨ 1 | ⊗ X , donde | 0 ⟩ ⟨ 0 | es un operador de proyección en el bit 0 , o en forma de matriz ( 1 0 0 0 ) . De manera similar | 1 ⟩ ⟨ 1 | es ( 0 0 0 1 ) .CNOT|0⟩⟨0|⊗I+|1⟩⟨1|⊗X|0⟩⟨0|0(1000)|1⟩⟨1|(0001)
El operador es el operador de cambio de bit representado como ( 0 1 1 0 ) .X(0110)
En general, la matriz es ( 1 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 )CNOT⎛⎝⎜⎜⎜1000010000010010⎞⎠⎟⎟⎟
Cuando aplicamos podemos usar la multiplicación de matrices escribiendo nuestro estado como un vector ( 1CNOT, o simplemente podemos usar la forma del producto tensorial.⎛⎝⎜⎜⎜⎜⎜12√012√0⎞⎠⎟⎟⎟⎟⎟
CNOT(12–√(|00⟩+|10⟩))=12–√(|00⟩+|11⟩)
Vemos que para la primera parte del estado el primer bit es 0 , por lo que el segundo bit se queda solo; la segunda parte del estado | 10 ⟩ el primer bit es 1 , por lo que el segundo bit se invierte a partir de 0 a 1 .|00⟩0|10⟩101
Nuestro estado final es que es uno de los cuatro estados de Bell que son máximamente estados entrelazados.
12–√(|00⟩+|11⟩)
Para ver qué significa para ellos estar enredados, observe que si midiera el estado del primer qubit diga, si descubrió que era un , inmediatamente le dice que el segundo qubit también debe ser un 0 , porque Esa es nuestra única posibilidad.00
Compare con este estado, por ejemplo:
12(|00⟩+|01⟩+|10⟩+|11⟩).
Si mide que el primer qubit es cero, entonces el estado colapsa a , donde todavía hay una posibilidad de 50-50 el segundo qubit es un0o un1.12√(|00⟩+|01⟩)01
Esperemos que esto dé una idea de cómo se pueden enredar los estados. Si desea conocer un ejemplo en particular, como enredar fotones o electrones, etc., entonces debería investigar cómo se pueden implementar ciertas puertas, pero aún así podría escribir las matemáticas de la misma manera, el y el 1 podrían representar cosas diferentes en Diferentes situaciones físicas.01
Actualización 1: Mini guía de notación QM / QC / Dirac
Por lo general, hay una base computacional estándar (orto-normal) para un solo qubit que es , por ejemplo H = lapso { | 0 ⟩ , | 1 ⟩ } es el espacio vectorial.{|0⟩,|1⟩}H=span{|0⟩,|1⟩}
En este ordenamiento de la base podemos identificar con ( 1 0 ) y | 1 ⟩ con ( 0 1 ) . Cualquier operador de qubit único se puede escribir en forma de matriz utilizando esta base. Por ejemplo, un operador de cambio de bit X (después de pauli- σ x ) que debería tomar | 0 ⟩ ↦ | 1 ⟩ y | 1 ⟩ ↦ | 0 ⟩ , se puede escribir como ( 0 1 1 0|0⟩(10)|1⟩(01)Xσx|0⟩↦|1⟩|1⟩↦|0⟩(0110), the first column of the matrix is the image of the first basis vector and so on.
When you have multiple say n-qubits they should belong to the space H⊗n:=H⊗H⊗⋯⊗Hn−times. A basis for this space is labelled by strings of zeros and ones, e.g. |0⟩⊗|1⟩⊗|1⟩⊗…⊗|0⟩, which is usually abbreviated for simplicity as |011…0⟩.
H⊗2=H⊗H{|0⟩⊗|0⟩,|0⟩⊗|1⟩,|1⟩⊗|0⟩,|1⟩⊗|1⟩}{|00⟩,|01⟩,|10⟩,|11⟩}.
There's different ways to order this basis in order to use matrices, but one natural one is to order the strings as if they are numbers in binary so as above. For example for 3 qubits you could order the basis as
{|000⟩,|001⟩,|010⟩,|011⟩,|100⟩,|101⟩,|110⟩,|111⟩}.
The reason why this can be useful is that it corresponds with the Kronecker product for the matrices of the operators. For instance, first looking at the basis vectors:
|0⟩⊗|0⟩=(10)⊗(10):=⎛⎝⎜⎜⎜1⋅(10)0⋅(10)⎞⎠⎟⎟⎟=⎛⎝⎜⎜⎜1000⎞⎠⎟⎟⎟
and
|0⟩⊗|1⟩=(10)⊗(01):=⎛⎝⎜⎜⎜1⋅(01)0⋅(10)⎞⎠⎟⎟⎟=⎛⎝⎜⎜⎜0100⎞⎠⎟⎟⎟
and similarly
|1⟩⊗|0⟩=⎛⎝⎜⎜⎜0010⎞⎠⎟⎟⎟,|1⟩⊗|1⟩=⎛⎝⎜⎜⎜0001⎞⎠⎟⎟⎟
If you have an operator e.g. X1X2:=X⊗X which acts on two qubits and we order the basis as above we can take the kronecker product of the matrices to find the matrix in this basis:
X1X2=X⊗X=(0110)⊗(0110)=⎛⎝⎜⎜⎜0⋅(0110)1⋅(0110)1⋅(0110)0⋅(0110)⎞⎠⎟⎟⎟=⎛⎝⎜⎜⎜0001001001001000⎞⎠⎟⎟⎟
If we look at the example of CNOT above given as |0⟩⟨0|⊗I+|1⟩⟨1|⊗X.∗ This can be computed in matrix form as (1000)⊗(1001)+(0001)⊗(0110), which you can check is the CNOT matrix above.
It's worthwhile getting used to using the shorthands and the tensor products rather than converting everything to matrix representation since the computational space grows as 2n for n-qubits, which means for three cubits you have 8×8 matrices, 4-qubits you have 16×16 matrices and it quickly becomes less than practical to convert to matrix form.
Aside∗: There are a few common ways to use dirac notation, to represent vectors like |0⟩; dual vectors e.g. ⟨0|, inner product ⟨0|1⟩ between the vectors |0⟩ and |1⟩; operators on the space like X=|0⟩⟨1|+|1⟩⟨0|.
An operator like P0=|0⟩⟨0| is a projection operator is a (orthogonal) projection operator because it satisfies P2=P and P†=P.