Dla prostego przykładu załóżmy, że masz dwa kubity w określonych stanach i . Połączony stan systemu to lub w skrócie.| 0 ⟩ | 0 ⟩ ⊗ | 0 ⟩ | 00 ⟩|0⟩|0⟩|0⟩⊗|0⟩|00⟩
Następnie, jeśli zastosujemy następujące operatory do kubitów (obraz zostanie wycięty ze strony superdense kodowania wiki), powstały stan będzie stanem splątanym, jednym ze stanów dzwonka .
Najpierw na zdjęciu mamy bramę hadamard działającą na pierwszy kubit, który w dłuższej formie to więc jest to operator tożsamości na drugim kubicie.H⊗I
Macierz hadamard wygląda następująco:
gdzie uporządkowano podstawę .{| 0⟩,| 1⟩}
H=12–√(111−1)
{|0⟩,|1⟩}
Więc po zadziałaniu operatora hadamarda stan jest teraz
( H⊗ Ja) ( | 0 ⟩ ⊗ | 0 ⟩ ) = H| 0⟩⊗I| 0⟩= 12)-√( | 0 ⟩ + | 1 ⟩ ) ⊗ ( | 0 ⟩ ) = 12)-√( | 00 ⟩ + | 10 ⟩ )
Kolejną częścią obwodu jest kontrolowana bramka, która działa tylko na drugi kubit, jeśli pierwszy kubit to .1
Możesz reprezentować jako , gdziejest operatorem projekcji na bit lub w postaci macierzy . Podobnieto .| 0 ⟩ ⟨ 0 | ⊗ I + | 1 ⟩ ⟨ 1 | ⊗ X | 0 ⟩ ⟨ 0 | 0 ( 1 0 0 0 ) | 1 ⟩ ⟨ 1 | ( 0 0 0 1 )doN.O T|0⟩⟨0|⊗I+|1⟩⟨1|⊗X|0⟩⟨0|0(1000)|1⟩⟨1|(0001)
operator operator bitowy klapki reprezentowane .( 0 1 1 0 )X(0110)
Ogólnie macierz to( 1 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 )CNOT⎛⎝⎜⎜⎜1000010000010010⎞⎠⎟⎟⎟
Kiedy zastosujemy , możemy albo użyć mnożenia macierzy, pisząc nasz stan jako wektor , lub możemy po prostu użyć formularza produktu tensor.( 1CNOT⎛⎝⎜⎜⎜⎜⎜12√012√0⎞⎠⎟⎟⎟⎟⎟
CNOT(12–√(|00⟩+|10⟩))=12–√(|00⟩+|11⟩)
Widzimy, że dla pierwszej części stanu pierwszy bit ma wartość , więc drugi bit pozostaje sam; druga część stanu pierwszy bit ma wartość , więc drugi bit jest odwracany od do .0 | 10 ⟩ 1 0 1|00⟩0|10⟩101
Nasz stan końcowy to który jest jednym z czterech stanów Bell, które są stanami maksymalnie splątanymi.
12–√(|00⟩+|11⟩)
Aby zobaczyć, co to znaczy, że są zaplątani, zauważ, że jeśli chcesz zmierzyć stan pierwszego kubita, powiedz, jeśli odkryłeś, że było to , natychmiast powie ci, że drugi kubit również musi być , ponieważ to nasza jedyna możliwość.000
Porównaj na przykład z tym stanem:
12(|00⟩+|01⟩+|10⟩+|11⟩).
Jeśli zmierzysz, że pierwszy kubit jest równy zero, to stan zapada się do , gdzie wciąż jest 50-50 szans na drugi qubit to lub .0112√(|00⟩+|01⟩)01
Mam nadzieję, że daje to wyobrażenie o tym, jak można zaplątać się w stany. Jeśli chcesz poznać konkretny przykład, na przykład splątanie fotonów lub elektronów itp., Musisz przyjrzeć się, w jaki sposób można zaimplementować pewne bramki, ale nadal możesz napisać matematykę w ten sam sposób, i mogą reprezentować różne rzeczy w różne sytuacje fizyczne.101
Aktualizacja 1: Mini przewodnik po notacji QM / QC / Dirac
Zwykle istnieje standardowa podstawa obliczeniowa (orto-normalna) dla pojedynczego kubita, który to , powiedzmy nazwa jest przestrzenią wektorową.H = rozpiętość { | 0 ⟩ , | 1 ⟩ }{|0⟩,|1⟩}H=span{|0⟩,|1⟩}
W tej kolejności podstaw możemy zidentyfikować pomocą i pomocą . Na tej podstawie można zapisać dowolnego operatora qubit w postaci macierzy. Np. Nieco odwrócony operator (po pauli- ), który powinien przyjąć i , można zapisać jako , pierwsza kolumna macierzy to obraz pierwszego wektora bazowego i tak dalej.|0⟩(10)|1⟩(01)Xσx|0⟩↦|1⟩|1⟩↦|0⟩(0110)
Gdy masz wiele powiedzmy qubits, powinny one należeć do spacji . Podstawa tego miejsca jest oznaczona ciągiem zer i jedynek, np. , który zwykle jest skracany dla uproszczenia jako .nH⊗n:=H⊗H⊗⋯⊗Hn−times|0⟩⊗|1⟩⊗|1⟩⊗…⊗|0⟩|011…0⟩
Prostym przykładem dla dwóch kubitów, podstawą dla , jest lub w skrócie .H⊗2=H⊗H{|0⟩⊗|0⟩,|0⟩⊗|1⟩,|1⟩⊗|0⟩,|1⟩⊗|1⟩}{|00⟩,|01⟩,|10⟩,|11⟩}
Istnieją różne sposoby porządkowania tej podstawy w celu użycia macierzy, ale jednym z naturalnych jest uporządkowanie łańcuchów tak, jakby były liczbami binarnymi, tak jak powyżej. Na przykład dla kubitów można zamówić podstawę jako3
{|000⟩,|001⟩,|010⟩,|011⟩,|100⟩,|101⟩,|110⟩,|111⟩}.
Może to być przydatne, ponieważ odpowiada produktowi Kronecker dla matryc operatorów. Na przykład, najpierw patrząc na wektory podstawowe:
|0⟩⊗|0⟩=(10)⊗(10):=⎛⎝⎜⎜⎜1⋅(10)0⋅(10)⎞⎠⎟⎟⎟=⎛⎝⎜⎜⎜1000⎞⎠⎟⎟⎟
i
|0⟩⊗|1⟩=(10)⊗(01):=⎛⎝⎜⎜⎜1⋅(01)0⋅(10)⎞⎠⎟⎟⎟=⎛⎝⎜⎜⎜0100⎞⎠⎟⎟⎟
i podobnie
|1⟩⊗|0⟩=⎛⎝⎜⎜⎜0010⎞⎠⎟⎟⎟,|1⟩⊗|1⟩=⎛⎝⎜⎜⎜0001⎞⎠⎟⎟⎟
Jeśli masz operator, np. który działa na dwa kubity, a podstawa jest uporządkowana jak wyżej, możemy wziąć iloczyn kroneckera macierzy, aby znaleźć macierz na tej podstawie:X1X2:=X⊗X
X1X2=X⊗X=(0110)⊗(0110)=⎛⎝⎜⎜⎜0⋅(0110)1⋅(0110)1⋅(0110)0⋅(0110)⎞⎠⎟⎟⎟=⎛⎝⎜⎜⎜0001001001001000⎞⎠⎟⎟⎟
Jeśli spojrzymy na przykład wyżej podane jako . Można to obliczyć w postaci macierzy jako , które można sprawdzić, to powyższa macierz .CNOT|0⟩⟨0|⊗I+|1⟩⟨1|⊗X∗(1000)⊗(1001)+(0001)⊗(0110)CNOT
Warto przyzwyczaić się do używania skrótów i produktów tensorowych zamiast przekształcania wszystkiego w reprezentację macierzy, ponieważ przestrzeń obliczeniowa rośnie jako dla kubitów, co oznacza, że dla trzech łokci macie macierzy, kubitów mają macierzy i szybko staje się mniej niż praktyczne przekształcanie do postaci macierzy.2nn8×8416×16
Poza : Istnieje kilka popularnych sposobów używania notacji dirac do reprezentowania wektorów takich jak ; podwójne wektory np., produkt wewnętrzny między wektorami i ; operatory w przestrzeni, takie jak.| 0 ⟩ ⟨ 0 | ⟨ 0 | 1 ⟩ | 0 ⟩ | 1 ⟩ X = | 0 ⟩ ⟨ 1 | + | 1 ⟩ ⟨ 0 |∗|0⟩⟨0|⟨0|1⟩|0⟩|1⟩X=|0⟩⟨1|+|1⟩⟨0|
Operator taki jakjest operatorem projekcji jest (prostopadłego) do operatora występ ponieważ spełnia i .P 2 = P P † = PP0=|0⟩⟨0|P2=PP†=P