Aracılığıyla paylaş


Birden çok kubit üzerindeki işlemler

Bu makalede, tek kubit durumları dışında çok kubitli durumlar oluşturmak için kullanılan kurallar incelenir ve evrensel bir çok kubitli kuantum bilgisayar oluşturmak üzere bir geçit kümesine dahil etmek için gereken geçit işlemleri ele alınmaktadır. Bu araçlar, kodda Q# yaygın olarak kullanılan geçit kümelerini anlamak için gereklidir. Ayrıca dolanıklık veya girişim gibi kuantum efektlerinin kuantum bilişimini klasik bilgi işlemden daha güçlü hale getirdiğine dair sezgi kazanmak da önemlidir.

Tek kubitli ve çok kubitli geçitler

Kuantum bilişiminin gerçek gücü yalnızca kubit sayısını artırdıkça ortaya çıkar. Tek kubitler, belirli bir anda birden fazla durumda olabilme gibi bazı sezgilere aykırı özelliklere sahiptir. Ancak, eğer bir kuantum bilgisayarda yalnızca tek kubitli kapılara sahip olsaydınız, bir hesap makinesi ve kesinlikle klasik bir süper bilgisayar, onun hesaplama gücünü gölgesinde bırakırdı.

Kuantum durum vektörlerinin vektör alanının boyutu kubit sayısıyla üstel olarak arttığı için kuantum bilişim gücü kısmen ortaya çıkar. Bu, tek bir kubitin önemsiz bir şekilde modellenebileceği, ancak elli kubitli kuantum hesaplamasının simülasyonunun mevcut süper bilgisayarların sınırlarını zorlayabileceği anlamına gelir. Hesaplama boyutunun yalnızca bir ek kubitle artırılması, durumu depolamak için gereken belleği ikiye katlar ve işlem süresini kabaca iki katına çıkartır. Hesaplama gücünün bu hızlı şekilde ikiye katlanması, nispeten az sayıda kubite sahip bir kuantum bilgisayarın bazı hesaplama görevleri için bugünün, yarının ve ötesindeki en güçlü süper bilgisayarları aşmasının nedenidir.

İki kubitli durumlar

Aşağıdaki durumlarda iki ayrı kubit olduğunu varsayalım:

$$ \psi=\begin{bmatrix} \alpha \\ \beta \end{bmatrix} $$ $$ \phi=\begin{bmatrix} \gamma \\ \delta \end{bmatrix} $$

karşılık gelen iki kubit durumu, aşağıdaki gibi tanımlanan vektörlerin tensor ürününün veya Kronecker ürününün sonucudur:

$$ \psi \otimes \phi = \begin{bmatrix} \alpha \\ \beta \end{bmatrix} \otimes \begin{bmatrix} \gamma \\ \delta \end{bmatrix} =\begin{bmatrix} \alpha \begin{bmatrix} \gamma \\ \delta \end{bmatrix} \\ \beta \begin{bmatrix}\gamma \\ \delta \end{bmatrix} \end{bmatrix} = \begin{bmatrix} \alpha\gamma \\ \alpha\delta \\ \beta\gamma \\ \beta\delta \end{bmatrix}. $$

Bu nedenle, iki tek kubit durumu $\psi$ ve $\phi$, boyut 2'nin her biri verildiğinde, buna karşılık gelen iki kubit durumu $\psi\otimes\phi$ 4 boyutludur. Vektör

$$ \begin{bmatrix} \alpha_{{00}\\\alpha___{{01}\\\alpha{{10}\\\alpha{{11}\end{bmatrix}$$

iki kubit üzerindeki kuantum durumunu temsil eder

$$ |\alpha_{{00}|^2 + |\alpha_{{01}|^2 + |\alpha_{10}|^2 + |\alpha_{{11}|^2 = 1. $$

Daha genel olarak, boyutu $2 \cdot 2 \cdot 2 \otimes\otimes 2^n\cdots olan ve \otimesn$ kubitlerin kuantum durumunu temsil eden $v_1 \cdots v_2 =$$ v_n$ birim vektörünü bu yapıyı kullanarak görebilirsiniz. Tek kubitlerde olduğu gibi, birden çok kubitin kuantum durum vektöru da sistemin davranışını tanımlamak için gereken tüm bilgileri barındırıyor. Vektörler ve tensor ürünleri hakkında daha fazla bilgi için bkz . Quantum Computing'de Vektörler ve Matrisler.

İki kubitli durumlar için hesaplama temeli, tek kubitli temel durumların tensor ürünleri tarafından oluşturulur. İki kubitli bir sistem için aşağıdaki dört durum vardır:

$$00 \equiv\begin{bmatrix} 1 \\ 0 \end{bmatrix}\otimes\begin{bmatrix}1 \\ 0 \end{bmatrix}=\begin{bmatrix} 1 \\ 0 \\ 0 0 0 \\\end{bmatrix}$$

$$01 \equiv\begin{bmatrix} 1 \\ 0 \end{bmatrix}\otimes\begin{bmatrix}0 \\ 1 \end{bmatrix}=\begin{bmatrix} 0 \\ 1 \\ 0 \\\end{bmatrix}$$

$$10 \equiv\begin{bmatrix} 0 \\ 1 \end{bmatrix}\otimes\begin{bmatrix}1 \\ 0 \end{bmatrix}=\begin{bmatrix} 0 \\ 0 \\ 1 0 \\\end{bmatrix}$$

$$11 \equiv\begin{bmatrix} 0 \\ 1 \end{bmatrix}\otimes\begin{bmatrix}0 \\ 1 \end{bmatrix}=\begin{bmatrix} 0 \\ 0 \\ 0 1 \\\end{bmatrix}$$

her zaman iki tek kubit durumunun tensor çarpımını alarak iki kubitli bir durum oluşturabilirsiniz ancak iki kubitli kuantum durumlarının tümü iki tek kubitli durumun tensor ürünü olarak yazılamaz. Örneğin, tensor ürünü belirtilen durumu oluşturan hiçbir c0 ve c1 durumu yoktur.

$$ \psi \otimes \phi = \begin{bmatrix}1 / \sqrt{{2}\\ 0 \\ 0 \\ 1/.\sqrt{{2}\end{bmatrix} $$

Tek kubitli durumların tensor ürünü olarak yazılmayan bu tür iki kubitli durum, dolanık durum olarak adlandırılır; iki kubitin dolanık olduğu söylenir. Kısaca konuşmak gerekirse, kuantum durumu tek kubit durumlarının tensor ürünü olarak düşünülemediğinden, durumun içerdiği bilgiler tek tek kubitlerden herhangi biriyle sınırlı değildir. Bunun yerine, bilgiler iki durum arasındaki bağıntılarda yerel olmayan bir şekilde depolanır. Bilgilerin bu yerel olmayan özelliği, kuantum bilişiminin klasik bilgi işlemle arasındaki başlıca ayırt edici özelliklerinden biridir ve kuantum hata düzeltmesi de dahil olmak üzere birçok kuantum protokolü için gereklidir.

İki kubitli durumları ölçme

İki kubitli durumları ölçmek, tek kubitli ölçümlere benzer. Durumu ölçme

$$ \begin{bmatrix} \alpha_{{00}\\\alpha___{{01}\\\alpha{{10}\\\alpha{{11}\end{bmatrix}$$

$00$ olasılığı $|\alpha_{{00}|^2$, $01$ olasılığı $|\alpha_{{01}|^2$, $10$ olasılığı $|\alpha_{10}|^2$ ve $11$ olasılığı $|\alpha_{11}|^2$ verir. $\alpha_{00}$, $\alpha_{01}$, $\alpha_{10}$ ve $\alpha_{11}$ değişkenleri, bu bağlantıyı netleştirmek için kasıtlı olarak adlandırılmıştır. Ölçümden sonra, sonuç $00$ ise iki kubitli sistemin kuantum durumu çöker ve şimdi

$$ 00 \equiv\begin{bmatrix} 1 \\ 0 \\ 0 \\ 0 \end{bmatrix}. $$

İki kubitli kuantum durumunun yalnızca bir kubitini ölçmek de mümkündür. İki kubitli bir durumun yalnızca bir kubitini ölçtüyseniz ölçümün etkisi iki kubitin ölçülmesinden çok daha farklıdır. Bu durum farklıdır çünkü tüm durum hesaplama temeli durumuna daraltılmaz, yalnızca bir alt sisteme daraltılır. Başka bir deyişle, iki kubitli bir durumun bir kubitini ölçmek yalnızca ilgili alt sistemi hesaplama temeli durumuna daraltır.

Bunu görmek için, başlangıçta 0 durumuna ayarlanmış iki kubite Hadamard dönüşümü $H$ uygulanarak oluşturulan aşağıdaki durumun ilk kubitini ölçmeyi göz önünde bulundurun:

$$H^{\otimes 2}\left( \begin{bmatrix} 1 \\ 0\end{bmatrix}\otimes\begin{bmatrix} 1 \\ 0\end{bmatrix}\right )=\frac{{1}{2}\begin{bmatrix}1 & 1 & 1 & 1 \\ 1 & -1 & 1 & -1 \\ 1 & 1 & -1 & -1 \\ 1 & -1 & -1 & 1 \end{bmatrix}\begin{bmatrix} 1 \\ 0 \\ 0 \\ 0\end{bmatrix}=\frac{{1}{2}\begin{bmatrix} 1 \\ 1 \\ 1 \\ 1\end{bmatrix}\mapsto\begin{cases}\text{sonuç }= 0 & \frac{{1}{\sqrt{2}}\begin{bmatrix} 1 \\ 1 \\ 0 \\ 0 \end{bmatrix}\\\text{sonuç }= 1 & \frac{{1}{\sqrt{{2}}\begin{bmatrix} 0 \\ 0 \\ 1 \\ 1 \end{bmatrix}\\\end{cases}. $$

Her iki sonucun da 50% oluşma olasılığı vardır. Bu sonuç, ölçümden önceki kuantum durumunun, ilk kubitte $0$$1$ değiştirildiğinde değişmemesi gerçeğinden kaynaklanabilir.

birinci veya ikinci kubiti ölçmeye yönelik matematiksel kural basittir. $e_k$ k^{\rm'in hesaplama temeli vektörü ve $S$, üzerinde konuşulan kubitin k'nin her bir değeri için $1$ değerini aldığı tüm $e_k$ kümesi olsun. Örneğin, ilk kubiti ölçmek istiyorsanız $S$$e_1\equiv 10$ ve $e_3\equiv 11$oluşur. Benzer şekilde, ikinci kubitle ilgileniyorsanız $S$$e_2\equiv 01$ ve $e_3 \equiv 11$oluşur. Ardından, ölçülen seçilen kubitin $1$ olma olasılığı, durum vektörüne bağlıdır$\psi$.

$$P(\text{sonuç}= 1)=\sum_{e_k \text{ S}^}\psi e_k e_k^\dagger\dagger kümesinde.\psi $$

Not

Bu makalede hesaplama temelini etiketlemek için little-endian biçimi kullanılır. Küçük endian biçiminde, en az önemli bitler önce gelir. Örneğin, küçük endian biçiminde 001 bit dizesi dört sayısını temsil eder.

Her kubit ölçümü yalnızca $0$ veya $1$verilebildiğinden, $0$ ölçme olasılığı $1-P(\text{sonuç}=1)$$olur. Bu nedenle yalnızca $1ölçme olasılığı için bir formüle ihtiyacınız vardır.

Böyle bir ölçümün durum üzerinde yaptığı eylem matematiksel olarak şöyle ifade edilebilir:

$$ \psi \mapsto \frac{\sum_{e_k \text{ kümesindeki } S} e_k e_k^\dagger\psi}{\sqrt{P(\text{sonuç}= 1)}}. $$

Dikkatli okuyucu, payda sıfır olduğunda ne olacağı konusunda kaygılanabilir. Böyle bir durum tanımlanmamış olsa da, olasılık sıfır olduğundan bu tür olasılıklar konusunda endişelenmeniz gerekmez.

$\psi$'ı daha önce verilen bir tekdüzen durum vektörü olarak alıyorsanız ve ilk kubiti ölçmekle ilgileniyorsanız,

$$P(\text{ilk kubit}= 1'in ölçümü) = (\psi^\dagger e_1)(e_1^\dagger\psi)+(\psi^\dagger e_3)(e_3^\dagger\psi) =|e_1^^\dagger\psi|2 + |e_3^^\dagger\psi|2. $$

Bu, sadece $10$ ve $11$sonuçlarını ölçmek için beklenen iki olasılığın toplamıdır. Örneğimiz için bu, değerlendirildiğinde şu sonuca ulaşılır:

$$ \frac{ {1}{4} \left| \begin{bmatrix} 0 & 0 & 1 & 0 \end{bmatrix}\begin{bmatrix} 1 \\ 1 \\ 1 \\ 1 \end{bmatrix}\right|^2 + \frac{1}{{4}\left|\begin{bmatrix} 0 & 0 & 0 & 1 \end{bmatrix}\begin{bmatrix} 1 \\ 1 \\ 1 \\ 1 \end{bmatrix}\right|^2 =\frac{{1}{{2}. $$

Sezgilerimize mükemmel uyuyor. Benzer şekilde, ilk kubitin durumu 1$ olarak $ölçüldükten sonra şöyle yazılabilir:

$$ \frac{\frac{e_1}{2}+\frac{e_3}{2}}{\sqrt{\frac{1}{2}}}=\frac{1}{\sqrt{2}}\begin{bmatrix} 0 \\ 0 \\ 1 \\ 1 \end{bmatrix}$$

tekrar sezgilerimize uygun olarak.

İki kubitli işlemler

Tek kubitli durumda olduğu gibi, herhangi bir birim dönüştürmesi kubitler üzerinde geçerli bir işlemdir. Genel olarak, n kubit üzerindeki $birimsel dönüşüm, 2^n 2^n $$ boyutunda $bir U$ matrisidir \times(böylece 2^n$ boyutunda $vektörler üzerinde hareket eder), örneğin $U^${-1} U^=.\dagger$ Örneğin, CNOT (kontrollü-DEĞİl) kapısı yaygın olarak kullanılan iki kubitli bir kapıdır ve aşağıdaki ünite matrisi ile temsil edilir:

CNOT 1 & 0 & 0 & 0 0 & 1 & 0 & 0 0 & 0 & 0 & 1 0 & 0 & 1 & 0

Ayrıca her iki kubite de tek kubitli geçitler uygulayarak iki kubitli geçitler oluşturabiliriz. Örneğin, kapıları uygularsanız

$$ \begin{bmatrix} a & b \\ c & d \end{bmatrix}$$

ile

$$ \begin{bmatrix} e & f \\ g & h \end{bmatrix}$$

sırasıyla birinci ve ikinci kubitlere bu, tensor ürünü tarafından verilen iki kubitli ünitenin uygulanmasına eşdeğerdir:

$$ \begin{bmatrix}a & b \\ c & d \end{bmatrix}\otimes\begin{bmatrix}e & f \\ g & h \end{bmatrix}=\begin{bmatrix}ae & af & be & bf \\ ag & ah & bg & bh \\ ce & cf & de & df \\ cg & ch & dg & dh\end{bmatrix}. $$

Böylece, bilinen bazı tek kubitli kapıların tensor çarpımını alarak iki kubitli kapılar oluşturabilirsiniz. İki kubitli geçitlere örnek olarak $H \otimes H$, $X \otimes\mathbf{1}$ve $X \otimes Z$ verilebilir.

İki tek kubitli geçit tensor ürününü alarak iki kubitli bir geçit tanımlamasına rağmen, tersinin doğru olmadığını unutmayın. İki kubitli kapıların tümü tek kubitli kapıların tensor ürünü olarak yazılamaz. Böyle bir geçit, dolanık kapı olarak adlandırılır. Entangling gate örneklerinden biri CNOT kapısıdır.

Kontrollü olmayan bir kapının arkasındaki sezgi, rastgele kapılara genelleştirilebilir. Genel olarak denetimli bir kapı, belirli bir kubit 1$ olmadığı sürece kimlik işlevi gören bir kapıdır$. Bu durumda, $x$ etiketli kubitte kontrol edilen bir üniteyi $\Lambda_x(U)$ ile belirtirsiniz. Örnek $\Lambdaolarak _0(U) e_{1}\otimes{\psi}= e_{1}\otimes U{\psi}$ ve $\Lambda_0(U) e_ e_{{0}\otimes{\psi}={{0}\otimes{\psi}$; burada $e_0$ ve e_1$, 0$ ve $$1$ değerlerine karşılık gelen tek bir kubit için hesaplama temeli vektörleridir.$ Örneğin, aşağıdaki controlled-Z$$ geçidini göz önünde bulundurarak bunu şu şekilde ifade edebilirsiniz:

$$ \Lambda_0(Z) =\begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & -1 \end{bmatrix}=(\mathbf{\mathbf{1}\otimes H)\operatorname{CNOT}(\mathbf{1}\otimes H). $$

Etkili bir şekilde kontrollü üniteler oluşturmak büyük bir zorluk. Kontrollü üniteleri uygulamanın en basit yolu, temel kapıların denetimli sürümlerinden oluşan bir veritabanı oluşturulmasını ve özgün ünitesel işlemdeki her temel geçidin kontrollü karşılığıyla değiştirilmesini gerektirir. Bu yöntem genellikle israflıdır ve bu yüzden yalnızca birkaç kapıyı denetimli sürümlerle değiştirerek aynı etkiyi elde etmek için içgörü kullanılabilir. Bu nedenle çerçeve, el ile ayarlanmış iyileştirilmiş bir sürüm biliniyorsa, basit bir denetim yöntemi gerçekleştirme veya kullanıcının ünitenin denetimli bir sürümünü tanımlamasına izin verme olanağı sağlar.

Geçitler klasik bilgiler kullanılarak da denetlenebilir. Örneğin, klasik olarak denetlenen bir not kapısı, klasik bir bitin $1$ olduğunda kuantum biti yerine uygulanan sıradan bir not kapısıdır. Bu anlamda klasik olarak denetlenen bir geçit, kuantum kodunda bir if deyimi olarak düşünülebilir ve burada geçit kodun yalnızca bir dalında uygulanır.

Tek kubitli durumda olduğu gibi, iki kubitli bir geçit kümesi, herhangi bir $4\times 4$ birim matris, bu kümedeki kapıların bir ürünü ile keyfi bir hassasiyetle yaklaşıklıkla oluşturulabiliyorsa evrenseldir. Evrensel kapı kümesine örnek olarak Hadamard kapısı, T kapısı ve CNOT kapısı yer alır. Bu kuantum geçitlerinin ürünlerini alarak iki kubit üzerindeki herhangi bir birim matrise yaklaşık bir biçimde ulaşabilirsiniz.

Çok kubitli sistemler

Daha küçük sistemlerden çok kubitli kuantum durumları oluşturmak için iki kubitli örnekte keşfedilen desenlerin tam olarak aynısını takip ediyoruz. Bu tür durumlar, daha küçük durumların tensor çarpımları oluşturularak inşa edilir. Örneğin, bir kuantum bilgisayarda bit dizesi $1011001$ kodlamayı göz önünde bulundurun. Bunu şu şekilde kodlayabilirsiniz:

$$ 1011001 \equiv\begin{bmatrix} 0 \\ 1 \end{bmatrix}\otimes\begin{bmatrix} 1 \\ 0 \end{bmatrix}\otimes\begin{bmatrix} 0 \\ 1 \end{bmatrix}\otimes\begin{bmatrix} 0 \\ 1 \end{bmatrix}\otimes\begin{bmatrix} 1 \\ 0 \end{bmatrix}\otimes\begin{bmatrix} 1 \\ 0 \end{bmatrix}\otimes\begin{bmatrix} 0 \\ 1 \end{bmatrix}. $$

Kuantum geçitleri tam olarak aynı şekilde çalışır. Örneğin, $X$ geçidini ilk kubite uygulamak ve ardından ikinci ve üçüncü kubitler arasında bir CNOT gerçekleştirmek istiyorsanız, bu dönüşümü şöyle ifade edebilirsiniz:

$$ \begin{align}(X \otimes\operatorname{CNOT}_{12}\otimes\mathbf{1}\otimes \mathbf{\mathbf{1}\otimes \mathbf{\mathbf{1}\otimes\mathbf{1}) \begin{bmatrix} 0 \\ 1 \end{bmatrix}\otimes\begin{bmatrix} 1 \\ 0 \end{bmatrix}\otimes\begin{bmatrix} 0 \\ 1 \end{bmatrix}\otimes\begin{bmatrix} 0 \\ 1 \end{bmatrix}\otimes\begin{bmatrix} 1 \\ 0 \end{bmatrix}\otimes\begin{bmatrix} 1 \\ 0 \end{bmatrix}\otimes\begin{bmatrix} 0 \\ 1 \end{bmatrix}\equiv 0011001. \end{align} $$

Birçok kubit sisteminde, kuantum bilgisayar için geçici bellek görevi görecek kubitleri ayırmaya ve serbest bırakmaya genellikle ihtiyaç vardır. Böyle bir kubitin yardımcı olduğu söylenir. Varsayılan olarak, bir kubit durumunun ayırma sırasında $e_0$ olarak başlatıldığını varsayabilirsiniz. Ayrıca, serbest bırakmadan önce geçidin tekrar $e_0$ konumuna döndüğünü varsayabilirsiniz. Bu varsayım önemlidir, çünkü bir yardımcı kubit serbest bırakıldığında başka bir kubit yazmaç ile dolanık hale gelirse, serbest bırakma işlemi yardımcı kubite zarar verir. Bu nedenle, bu kubitlerin yayımlanmadan önce ilk durumlarına geri döndürüldüğünü her zaman varsayarsınız.

Son olarak, iki kubit kuantum bilgisayarı için evrensel kuantum bilişimi elde etmek için kapı kümemize yeni geçitlerin eklenmesi gerekse de, çok kubitli durumda yeni geçitler kullanılmamalıdır. H $,$, $T$ve CNOT birçok kubitte evrensel bir kapı seti oluşturur, çünkü herhangi bir genel üniter dönüşüm iki kubitlik dönüş serisine bölünebileceğinden. Daha sonra iki kubitli durum için geliştirilen teoriyi kullanabilir ve burada birçok kubit olduğunda tekrar kullanabilirsiniz.

Not

Bu noktaya kadar kullanılan doğrusal cebirsel gösterim, çok-kubitli durumları açıklamak için kesinlikle kullanılabilir olsa da, durumların boyutu arttıkça giderek daha hantal hale gelir. Örneğin, 7 bitlik bir dize için elde edilen sütun vektörü $128$ boyutludur ve bu da daha önce açıklanan gösterimi kullanarak ifadeyi zahmetli hale getirir. Bunun yerine, kuantum durumlarının gösterimini basitleştiren sembolik bir kısaltma olan Dirac gösterimi kullanılır. Daha fazla bilgi için bkz . Dirac gösterimi.