Для простого примера предположим, что у вас есть два кубита в определенных состояниях и | 0 ⟩ . Комбинированное состояние системы | 0 ⟩ ⊗ | 0 ⟩ или | 00 ⟩ в стенографии.| 0⟩| 0⟩| 0⟩⊗ | 0⟩| 00⟩
Затем, если мы применим следующие операторы к кубитам (изображение вырезано из вики-страницы сверхплотного кодирования ), полученное состояние будет запутанным состоянием, одним из состояний колокольчика .
Сначала на изображении у нас есть ворота Адамара, действующие на первый кубит, который в более длинной форме - это так что он является оператором тождественности на втором кубите.ЧАС⊗ я
Матрица Хадамара выглядит как
где базис упорядочен{| 0⟩,| 1⟩}.
ЧАС= 12-√( 111- 1)
{ | 0 ⟩ , | 1 ⟩ }
Таким образом, после того, как оператор Hadamard действует, государство теперь
( H⊗ я) ( | 0 ⟩ ⊗ | 0 ⟩ ) = Н| 0⟩⊗I| 0⟩= 12-√(|0⟩+|1⟩)⊗(|0⟩)=12–√(|00⟩+|10⟩)
Следующая часть схемы является управляемым, а не гейтом, который действует только на второй кубит, если первый кубит равен .1
Вы можете представить как | 0 ⟩ ⟨ 0 | ⊗ я + | 1 ⟩ ⟨ 1 | ⊗ X , где | 0 ⟩ ⟨ 0 | является оператором проекции на бит 0 или в матричной форме ( 1 0 0 0 ) . Аналогично | 1 ⟩ ⟨ 1 | является ( 0 0 0 1 ) .СNO T| 0⟩⟨0 | ⊗я+ | 1 ⟩ ⟨ 1 | ⊗ X| 0⟩⟨0 |0( 1000)| 1⟩⟨1 |( 0001)
Оператор - это оператор переворота битов, представленный в виде ( 0 1 1 0 ) .Икс( 0110)
В целом матрица составляет ( 1 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 )СNO T⎛⎝⎜⎜⎜1000010000010010⎞⎠⎟⎟⎟
Когда мы применяем мы можем использовать умножение матриц, записывая наше состояние как вектор ( 1СNO T, или мы можем просто использовать форму тензорного произведения.⎛⎝⎜⎜⎜⎜⎜12√012√0⎞⎠⎟⎟⎟⎟⎟
СNOT(12–√(|00⟩+|10⟩))=12–√(|00⟩+|11⟩)
Мы видим, что для первой части государства первый бит равен 0 , поэтому второй бит оставили в покое; вторая часть государства | 10 ⟩ первый бит равен 1 , так что второй бит переворачивается от 0 до 1 .|00⟩0|10⟩101
Наше конечное состояние который является одним из четырех состояний Bellкоторые максимально запутанные состояния.
12–√(|00⟩+|11⟩)
Чтобы увидеть, что для них значит быть запутанным, обратите внимание, что если вы должны измерить состояние первого кубита, скажем, если вы обнаружили, что это был он сразу скажет вам, что второй кубит также должен быть 0 , потому что это наша единственная возможность.00
Сравните с этим состоянием, например:
12(|00⟩+|01⟩+|10⟩+|11⟩).
Если вы измеряете, что первый кубит равен нулю, то состояние падает до , где есть еще 50-50 шанс второй кубит является0или1.12√(|00⟩+|01⟩)01
Надеемся, что это дает представление о том, как государства могут быть запутаны. Если вы хотите знать конкретный пример, такой как запутывание фотонов или электронов и т. Д., То вам придется посмотреть, как можно реализовать определенные элементы, но все же вы можете написать математику одинаково, и 1 могут представлять разные вещи в разные физические ситуации.01
Обновление 1: Мини-руководство по обозначениям QM / QC / Dirac
Обычно для одного кубита существует стандартная вычислительная (орто-нормальная) база, которая является , скажем , H = продолжительность { | 0 ⟩ , | 1 ⟩ } есть векторное пространство.{|0⟩,|1⟩}H=span{|0⟩,|1⟩}
В этом упорядочении базы мы можем определить с ( 1 0 ) и | 1 ⟩ с ( 0 1 ) . Любой оператор одиночного кубита может быть записан в матричной форме с использованием этого базиса. Например, немного перевернуть оператор X (после pauli- σ x ), который должен принимать | 0 ⟩ ↦ | 1 ⟩ и | 1 ⟩ ↦ | 0 ⟩ , можно записать в виде ( 0 1 1 0|0⟩(10)|1⟩(01)Xσx|0⟩↦|1⟩|1⟩↦|0⟩ , первый столбец матрицы - это изображение первого базисного вектора и т. д.(0110)
nH⊗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.