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 olma gibi bazı sezgisel özelliklere sahiptir. Ancak, kuantum bilgisayarda sahip olduğunuz tek şey tek kubitli geçitler olsaydı, bir hesap makinesi ve kesinlikle klasik bir süper bilgisayar hesaplama gücünü alt ederdi.
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
Biri durumunda, diğeri de durumunda $\psi=\begin{bmatrix}\\\alpha\beta\\\end{bmatrix}$\gamma$\phi=\begin{bmatrix}\delta\end{bmatrix}$ olmak üzere iki ayrı kubit'iniz varsa, karşılık gelen iki kubit durumu, aşağıdaki gibi tanımlanan vektörlerin tensor ürünü (veya Kronecker ürünü) tarafından verilir.
$$\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, n kubitlerin kuantum durumunun$, bu yapıyı kullanarak 2 \cdot 2 \cdot \cdots= 2 2^n$ boyut $v_n v_2\otimes\cdots$ \otimesbirim vektör v_1 \otimes $temsil ettiğini görebilirsiniz.$ Tek kubitlerde olduğu gibi, birden çok kubitin kuantum durum vektörleri de 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. Örneğin,
$$\begin{\begin{align}00 \equiv\begin{bmatrix}1 \\ 0\begin{bmatrix}\end{bmatrix}\otimes 1 \\ 0 \end{bmatrix}&=\begin{bmatrix}1 \\ 0 0\\\\ 0 \end{bmatrix},\qquad 01 \equiv\begin{bmatrix}1 \\ 0 0 \\ \end{bmatrix}\otimes\begin{bmatrix}1=\end{bmatrix}\begin{bmatrix} 0 \\ 1\\ 0 0\\ 0 \end{bmatrix},\\ 10\begin{bmatrix}\equiv 0 \\ 1 1 \end{bmatrix}\otimes\begin{bmatrix}\\ 0&\end{bmatrix} amp;=\begin{bmatrix}0 0 1 0 , 11\begin{bmatrix}\equiv 0 \\ 1\begin{bmatrix}\end{bmatrix}\otimes 0 \\ 1 \end{bmatrix}=\begin{bmatrix}0 0 \\ 0\\\\ 1 .\end{bmatrix}\qquad \end{bmatrix}\\\\ \\ \end{align} $$
İki tek kubit durumunun tensor çarpımını her zaman alıp iki kubitli bir durum oluşturabileceğinizi, ancak iki kubitli kuantum durumlarının tümünün iki tek kubitli durumun tensor ürünü olarak yazılamadığını unutmayın. Örneğin, hiçbir durum $\psi=\begin{bmatrix}\alpha\end{bmatrix}$\\\betayoktur ve\gamma$\phi=\begin{bmatrix}\\\delta\end{bmatrix}$ bunun için tensor ürünü eyalettir
$$\psi\otimes\phi=\begin{bmatrix}1/\sqrt{{2}\\0 \\ 0 \\ 1/.\sqrt{{2}\end{bmatrix}$$
Tek kubitli durumların tensor ürünü olarak yazılamayan böyle bir iki kubitli durum, quot olarak adlandırılır&; dolanık durum&çekirdeği;; 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 barındırdığı bilgiler tek tek kubitlerden 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 bilişime göre en önemli ayırt edici özelliklerinden biridir ve kuantum hata düzeltmesi de dahil olmak üzere bir dizi kuantum protokolü için gereklidir.
İki kubitli durumları ölçme
İki kubitli durumları ölçmek, tek kubitli ölçümlere çok benzer. Durumu ölçme
$$\begin{bmatrix}\alpha_{{00}\\\alpha___{{01}\\\alpha{{10}\\\alpha{{11}\end{bmatrix}$$
$_^2 olasılığıyla$|\alpha 00$, $_{{00}|^2$ olasılığıyla $|\alpha01$, $_{01}|^2$ olasılığıyla $|\alpha10$ ve $_{11}|{{10}|^2$$ olasılığıyla $|\alpha11$ verir. _, _{00}, \alpha\alpha_{{01}{{10}ve $\alpha_{11}$ değişkenleri$\alpha,$ bu bağlantıyı net hale getirmek için kasıtlı olarak adlandırılmıştır. Ölçümden sonra, sonuç $00$ise iki kubitli sistemin kuantum durumu daraltılmıştır 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. Bunun nedeni, tüm durumun hesaplama temeli durumuna daraltılmaması, bunun yerine yalnızca bir alt sisteme daraltılmasıdı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 quot olarak ayarlanan iki kubite Hadamard dönüşümü $H$ uygulanarak oluşturulan aşağıdaki durumun ilk kubitini ölçmeyi &göz önünde bulundurun; 0" durum:
$$H^{\otimes 2\left}( \begin{bmatrix}1 \\ 0 \end{bmatrix}\otimes\begin{bmatrix}1 \\ 0\right\end{bmatrix} ) ={1}{2}\begin{bmatrix}\frac{1 & 1 & 1 & 1 &\\ amp; -1 & 1 & -1 \\ 1 & -&1 amp; -1 &\\ amp; -1 & -1 amp; -1 & 1 &1\\ \end{bmatrix}\begin{bmatrix}0 0\\ 0\frac{\end{bmatrix}={1}{2}\begin{bmatrix}\\ 1 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 oluşma olasılığı %50'dir. Bu, ölçümden önceki kuantum durumunun ilk kubitte 0$ ile 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.}$ hesaplama temeli vektörü, $S$ ise söz konusu kubitin söz konusu k$ değeri $için 1$ değerini $alması için tüm $e_k$ kümesi olsun. Örneğin, ilk kubitin $ölçülmesiyle ilgileniyorsanız S$, e_1\equiv 10$ ve $e_3\equiv 11'i$ içermektedir$. Benzer şekilde, ikinci kubit $S$ e_2 01 ve $e_3 \equiv\equiv 11'i$$ içermektedir$. Ardından seçilen kubitin 1$ olma $olasılığının durum vektörünün olmasıdır$\psi$
$$S^ e_k e_k^\dagger kümesindeki } P}\psi(\text{sonuç}=1)\sum=_{e_k\dagger\psi.\text{ $$
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çimindeki dört sayısı, bit 001 dizesiyle temsil edilir.
Her kubit ölçümü yalnızca 0 veya 1 verimini $gösterebildiğinden, 0'ı$ ölçme $olasılığı yalnızca $1-P'dir (\text{sonuç}=1)$.$$$ Bu nedenle yalnızca 1'i$ ö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ümedeki } 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 hakkında endişelenmeniz gerekmez!
Yukarıda verilen tekdüzen durum vektöru olarak kabul $\psi$ ederseniz 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^\psi\dagger)=|e_1^^\psi|\dagger2+|e_3^^\dagger\psi|2. $$
Bunun yalnızca 10$ ve $$11 sonuçlarını $ölçmek için beklenen iki olasılığın toplamı olduğunu unutmayın. Örneğimiz için bu,
$$\frac{{1}{4}\left|\begin{bmatrix}0& 0& 1& 0\end{bmatrix}\begin{bmatrix}1 1\\\\ 1\\ 1\right|\end{bmatrix}^2+\frac{1}{{4}\left|\begin{bmatrix}0& 0& 0& 1 1\end{bmatrix}\begin{bmatrix}\\ 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{}{2}e_1+\frac{e_3}{2}}{\sqrt{\frac{1}{2}}}=\frac{1}{\sqrt{2}}\begin{bmatrix} 0\\ 0\\ 1\\ 1\end{bmatrix}$$
sezgilerimize uygun olarak tekrar.
İ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 \times$ boyutunda $bir U$ matrisidir $(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:
$$\operatorname{CNOT}=\begin{bmatrix} 1\ 0\ 0\ 0 \\ \ 0\ 1\ 0\ 0 \\ \ 0\ 0\ 1 \\ 0\ 0\ 0\ 0\ 0 \end{bmatrix}$$
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}$$
bu, sırasıyla, tensor ürünü tarafından verilen iki kubitli üniteyi uygulamaya 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 kapı tensor ürününü alarak iki kubitli bir kapı tanımlasa da, 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 denetlenen, _x(U)$ ile denetlenen bir $\Lambdaüniteyi belirtirsiniz.$ Örnek $\Lambdaolarak_0(U) e_{1}\otimes{{\psi}=e_{1}\otimes U{\psi}$ ve $\Lambda_0(U) e_{\psi}={{0}\otimese_{{0}\otimes{\psi}$; burada $e_0$ ve e_1$, 0$ ve $$1$ değerlerine karşılık gelen tek bir kubitin hesaplama temel 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. Bunu 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 genellikle oldukça boşa harcanabilir ve akıllı içgörüler genellikle aynı etkiyi elde etmek için yalnızca birkaç kapıyı kontrollü sürümlerle değiştirmek için 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-gate, sıradan bir kapı olmayan kapıdır, ancak yalnızca kuantum biti yerine klasik bir bit 1$ ise $uygulanı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, 4 4\times$ birim matris bu kümeden rastgele duyarlığa kadar olan bir kapı ürünü tarafından yaklaşık olarak belirlenebiliyorsa $evrenseldir. Evrensel kapı kümesine örnek olarak Hadamard kapısı, T kapısı ve CNOT kapısı yer alır. Bu geçitlerin ürünlerini alarak, iki kubit üzerindeki herhangi bir birim matrise yaklaşık olarak 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 eyaletlerin tensor ürünleri oluşturularak oluşturulur. Örneğin, bir kuantum bilgisayarda bit dizesi $1011001$ kodlamayı göz önünde bulundurun. Bunu şu şekilde kodlayabilirsiniz:
$$1011001 0 \\ 1 1 \end{bmatrix}\otimes\\\begin{bmatrix} 0\begin{bmatrix} \end{bmatrix}\otimes0 \\ 1\begin{bmatrix} \end{bmatrix}\otimes0 \\ 1 1 \end{bmatrix}\\\otimes\begin{bmatrix} 0 \end{bmatrix}\otimes\begin{bmatrix} 1 1 \\ 0 0\begin{bmatrix} \end{bmatrix}\otimes1.\end{bmatrix}\\ \equiv\begin{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{\begin{align}&Amp; (X \otimes\operatorname{CNOT}_{{12}\otimes\mathbf{1}\otimes \mathbf{\mathbf{1}\otimes \mathbf{\otimes\mathbf{1} \mathbf{\mathbf{1}) \begin{bmatrix} 0 \\ 1 1\begin{bmatrix} \\ \end{bmatrix}\otimes0 0 \\ \end{bmatrix}\otimes\begin{bmatrix} 1\begin{bmatrix} \end{bmatrix}\otimes0 0 \\ 1 1 \\ \end{bmatrix}\otimes\begin{bmatrix} 0 \end{bmatrix}\otimes\begin{bmatrix} 1 1 \\ 0 0\begin{bmatrix} \end{bmatrix}\otimes0 \\ 1 \end{bmatrix}\\&\qquad\qquad\equiv 0011001. \end{align}
Birçok kubit sisteminde genellikle kuantum bilgisayar için geçici bellek görevi görecek kubitleri ayırmaya ve serbest bırakmaya ihtiyaç vardır. Böyle bir kubitin yardımcı olduğu söylenir. Varsayılan olarak, kubit durumunun ayırma sırasında e_0$ olarak $başlatıldığını varsayabilirsiniz. Serbest bırakmadan önce yeniden e_0$ döndürüldüğünü $de 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 geçitleri $birçok kubit üzerinde ayarlanan evrensel bir kapı oluşturur çünkü herhangi bir genel ünitesel dönüşüm iki kubit döndürme dizisine bölünebilir. Daha sonra iki kubitli durum için geliştirilen teoriden yararlanabilir ve burada birçok kubit olduğunda tekrar kullanabilirsiniz.
Not
Şimdiye kadar kullanılan doğrusal cebirsel gösterimi, çok kubitli durumları tanımlamak için kesinlikle kullanılabilir olsa da, durumların boyutunu artırdı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 çok hantal 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.