Para um exemplo simples, suponha que você tenha dois qubits em estados definidos e | 0 ⟩ . O estado combinado do sistema é | 0 ⟩ ⊗ | 0 ⟩ ou | 00 ⟩ em taquigrafia.|0⟩|0⟩|0⟩⊗|0⟩|00⟩
Então, se aplicarmos os seguintes operadores aos qubits (a imagem é cortada da página wiki de codificação superdensa ), o estado resultante é um estado emaranhado, um dos estados da campainha .
Primeiro na imagem, temos o portão hadamard atuando no primeiro qubit, que de forma mais longa é modo que ele é o operador de identidade no segundo qubit.H⊗I
A matriz hadamard se parece com
onde a base é ordenada{| 0⟩,| 1⟩}.
H=12–√(111−1)
{|0⟩,|1⟩}
Então, depois que o operador hadamard age, o estado é agora
(H⊗I)(|0⟩⊗|0⟩)=H|0⟩⊗I|0⟩=12–√(|0⟩+|1⟩)⊗(|0⟩)=12–√(|00⟩+|10⟩)
A próxima parte do circuito é um gate não controlado, que só atua no segundo qubit se o primeiro qubit for .1
Você pode representar como | 0 ⟩ ⟨ 0 | ⊗ I + | 1 ⟩ ⟨ 1 | ⊗ X , onde | 0 ⟩ ⟨ 0 | é um operador de projeção no bit 0 ou em forma de matriz ( 1 0 0 0 )CNOT|0⟩⟨0|⊗I+|1⟩⟨1|⊗X|0⟩⟨0|0(1000) . Da mesma forma é ( 0 0 0 1 ) .|1⟩⟨1|(0001)
O operador é o operador bit flip representado como ( 0 1 1 0 ) .X(0110)
No geral, a matriz é ( 1 0 0 0 0CNOT⎛⎝⎜⎜⎜1000010000010010⎞⎠⎟⎟⎟
Quando aplicamos , podemos usar a multiplicação de matrizes escrevendo nosso estado como um vetor ( 1CNOT, ou podemos apenas usar o formulário do produto tensorial.⎛⎝⎜⎜⎜⎜⎜12√012√0⎞⎠⎟⎟⎟⎟⎟
CNOT(12–√(|00⟩+|10⟩))=12–√(|00⟩+|11⟩)
Vemos que para a primeira parte do estado o primeiro bit é 0 , então o segundo bit é deixado sozinho; a segunda parte do estado | 10 ⟩ o primeiro bit é 1 , então o segundo bit é invertidas de 0 para 1 .|00⟩0|10⟩101
Nosso estado final é
12–√(|00⟩+|11⟩)
que é um dos quatro estados de Bell que são maximamente estados emaranhados.
Para ver o que significa para eles serem emaranhados, observe que, se você medir o estado do primeiro qubit, digamos, se você descobriu que era um ele imediatamente informa que o segundo qubit também deve ser um 0 , porque essa é a nossa única possibilidade.00
Compare com este estado, por exemplo:
12(|00⟩+|01⟩+|10⟩+|11⟩).
Se você medir que o primeiro qubit é zero, o estado cai para , em que ainda há uma chance 50-50 o segundo qbit é um 0 ou um 1 .12√(|00⟩+|01⟩)01
Espero que isso dê uma idéia de como os estados podem ser enredados. Se você quiser conhecer um exemplo específico, como emaranhar fótons ou elétrons, etc., terá que examinar como certos portões podem ser implementados, mas ainda assim você pode escrever a matemática da mesma maneira, os e 1 podem representar coisas diferentes em diferentes situações físicas.01
Atualização 1: Mini Guia da notação QM / QC / Dirac
Geralmente, há uma base computacional (orto-normal) padrão para um único qubit que é , dizer H = extensão {{|0⟩,|1⟩} é o espaço vectorial.H=span{|0⟩,|1⟩}
Nesta ordenação da base, podemos identificar com ( 1 0 ) e | 1 ⟩ com ( 0 1 ) . Qualquer operador de qubit único pode ser gravado em forma de matriz usando essa base. Por exemplo, um operador de inversão de bits X (após pauli- σ x ) que deve levar | 0 ⟩ ↦ | 1 ⟩ e | 1 ⟩ ↦ | 0 ⟩ , pode ser escrita como (|0⟩(10)|1⟩(01)Xσx|0⟩↦|1⟩|1⟩↦|0⟩ , a primeira coluna da matriz é a imagem do vetor de primeira base e assim por diante.(0110)
Quando você tem digamos múltipla -qubits que deveria pertencer ao espaço H ⊗ n : = n - t i m e s ⏞ H ⊗ H ⊗ ⋯ ⊗ H . Uma base para esse espaço é rotulada por seqüências de zeros e uns, por exemplo | 0 ⟩ ⊗ | 1 ⟩ ⊗ | 1 ⟩ ⊗ ... ⊗ | 0 ⟩ , que é normalmente abreviado para simplicidade como | 011 ... 0 ⟩ .nH⊗n:=H⊗H⊗⋯⊗Hn−times|0⟩⊗|1⟩⊗|1⟩⊗…⊗|0⟩|011…0⟩
Um exemplo simples para dois qubits, a base para , é { | 0 ⟩ ⊗ | 0 ⟩ , | 0 ⟩ ⊗ | 1 ⟩ , | 1 ⟩ ⊗ | 0 ⟩ , | 1 ⟩ ⊗ | 1 ⟩ } ou na forma abreviada { | 00 ⟩ , | 01 ⟩ , | 10 ⟩ ,H⊗2=H⊗H{|0⟩⊗|0⟩,|0⟩⊗|1⟩,|1⟩⊗|0⟩,|1⟩⊗|1⟩} .{|00⟩,|01⟩,|10⟩,|11⟩}
Existem diferentes maneiras de ordenar essa base para usar matrizes, mas uma natural é ordenar as cadeias como se fossem números em binário, como acima. Por exemplo, para qubits, você pode solicitar a base como { | 000 ⟩ , | 001 ⟩ , | 010 ⟩ , | 011 ⟩ , | 100 ⟩ , | 101 ⟩ , | 110 ⟩ , | 111 ⟩ } .3
{|000⟩,|001⟩,|010⟩,|011⟩,|100⟩,|101⟩,|110⟩,|111⟩}.
A razão pela qual isso pode ser útil é que corresponde ao produto Kronecker para as matrizes dos operadores. Por exemplo, primeiro olhando para os vetores de base:
|0⟩⊗|0⟩=(10)⊗(10):=⎛⎝⎜⎜⎜1⋅(10)0⋅(10)⎞⎠⎟⎟⎟=⎛⎝⎜⎜⎜1000⎞⎠⎟⎟⎟
e
|0⟩⊗|1⟩=(10)⊗(01):=⎛⎝⎜⎜⎜1⋅(01)0⋅(10)⎞⎠⎟⎟⎟=⎛⎝⎜⎜⎜0100⎞⎠⎟⎟⎟
e da mesma forma
|1⟩⊗|0⟩=⎛⎝⎜⎜⎜0010⎞⎠⎟⎟⎟,|1⟩⊗|1⟩=⎛⎝⎜⎜⎜0001⎞⎠⎟⎟⎟
X1X2:=X⊗X
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.