Bagikan melalui


Operasi pada beberapa qubit

Artikel ini mengulas aturan yang digunakan untuk mem-build status multi-qubit dari status qubit tunggal dan membahas operasi gerbang yang diperlukan untuk memasukkan dalam gerbang yang ditetapkan untuk membentuk komputer kuantum qubit jamak universal. Alat-alat ini diperlukan untuk memahami set gerbang yang umum digunakan dalam Q# kode. Mereka juga penting untuk mendapatkan intuisi tentang mengapa efek kuantum seperti entanglement atau interferensi render komputasi kuantum lebih kuat daripada komputasi klasik.

Gerbang qubit tunggal dan multi-qubit

Kekuatan komputasi kuantum yang sebenarnya hanya menjadi jelas saat Anda meningkatkan jumlah qubit. Kubit tunggal memiliki beberapa fitur kontra-intuitif, seperti kemampuan untuk berada dalam lebih dari satu keadaan pada waktu tertentu. Namun, jika semua yang Anda miliki dalam komputer kuantum adalah gerbang qubit tunggal, maka kalkulator dan tentu saja superkomputer klasik akan mengerdilkan kekuatan komputasinya.

Daya komputasi kuantum muncul, sebagian, karena dimensi ruang vektor dari vektor keadaan kuantum berkembang secara eksponensial dengan jumlah qubit. Ini berarti bahwa sementara satu qubit dapat dimodelkan secara sepele, mensimulasikan perhitungan kuantum lima puluh qubit yang bisa dibilang akan mendorong batas superkomputer yang ada. Meningkatkan ukuran komputasi hanya dengan satu qubit tambahan menggandakan memori yang diperlukan untuk menyimpan status dan kira-kira menggandakan waktu komputasi. Penggandaan kekuatan komputasi yang cepat ini adalah mengapa komputer kuantum dengan jumlah qubit yang relatif kecil dapat jauh melampaui superkomputer paling kuat saat ini, besok, dan seterusnya untuk beberapa tugas komputasi.

Status dua kubit

Jika Anda memiliki dua kubit terpisah, satu dalam status $\psi=\begin{bmatrix}\\\beta\end{bmatrix}$\alphadan yang lain dalam status\end{bmatrix}$\\\gamma\delta$\phi=\begin{bmatrix} , status dua kubit yang sesuai diberikan oleh produk tensor (atau produk Kronecker) vektor, yang didefinisikan sebagai berikut

$$\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}. $$

Oleh karena itu, diberikan dua status qubit tunggal $\psi$ dan $\phi$, masing-masing dimensi 2, status dua qubit yang sesuai $\psi\otimes\phi$ adalah 4 dimensi. Vektor

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

mewakili status kuantum pada dua qubit jika

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

Secara lebih umum, Anda dapat melihat bahwa status kuantum dari$n$ qubit diwakili oleh vektor unit $v_1 \otimes v_2 \otimes\cdots\otimes v_n$ dimensi $2 \cdot 2 \cdot 2 \cdots= 2^n$ yang menggunakan konstruksi ini. Sama seperti qubit tunggal, vektor status kuantum dari beberapa qubit menyimpan semua informasi yang diperlukan untuk menggambarkan perilaku sistem. Untuk informasi selengkapnya tentang vektor dan produk tensor, lihat Vektor dan Matriks dalam Komputasi Kuantum.

Dasar komputasi untuk status dua kubit dibentuk oleh produk tensor dari status basis satu kubit. Misalnya, Anda memiliki

$$\begin{\begin{align}00 \equiv\begin{bmatrix}1 \\ 0\begin{bmatrix}\end{bmatrix}\otimes 1 \\ 0 \end{bmatrix}&=\begin{bmatrix}1 0 0 0 , 01 1 \equiv\begin{bmatrix}\\ 0 0\begin{bmatrix}\end{bmatrix}\otimes 1\begin{bmatrix}\end{bmatrix}=\\ 0 \\ 1\\ 0\\ 0 \end{bmatrix},\\ 10 \equiv\begin{bmatrix}0 \\ 1\begin{bmatrix}\end{bmatrix}\otimes 1 \\ 0 \end{bmatrix}&\begin{bmatrix}=\qquad \end{bmatrix}\\\\ \\0 0 1 0 , 11 \equiv\begin{bmatrix}0 1 \\\begin{bmatrix}\end{bmatrix}\otimes0 \\ 1 \end{bmatrix}\begin{bmatrix}=0 \\ 0\\ 0\\ 1 .\end{bmatrix}\qquad \end{bmatrix}\\\\ \\ \end{align} $$

Perhatikan bahwa meskipun Anda selalu dapat mengambil produk tensor dari dua status kubit tunggal untuk membentuk status dua kubit, tidak semua status kuantum dua-qubit dapat ditulis sebagai produk tensor dari dua status qubit tunggal. Misalnya, tidak ada status $\psi=\begin{bmatrix}\alpha\\\beta\end{bmatrix}$ dan$\phi=\begin{bmatrix}\gamma\\\delta\end{bmatrix}$ sehingga produk tensor mereka adalah status

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

Seperti status dua qubit, yang tidak dapat ditulis sebagai produk tensor dari status qubit tunggal, disebut &kutipan; kutipan status terikat&;; kedua qubit dikatakan akan terikat. Secara longgar, karena status kuantum tidak dapat dianggap sebagai produk tensor dari status qubit tunggal, informasi yang dipegang oleh status tidak terbatas pada salah satu qubit secara individual. Sebaliknya, informasi disimpan secara non-lokal dalam korelasi antara kedua status. Non-lokalitas informasi ini adalah salah satu fitur pembeda utama komputasi kuantum atas komputasi klasik dan sangat penting untuk sejumlah protokol kuantum termasuk koreksi kesalahan kuantum.

Mengukur status dua kubit

Mengukur status dua qubit sangat mirip dengan pengukuran qubit tunggal. Mengukur status

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

menghasilkan $00$ dengan probabilitas $|\alpha_{{00}|^2$, $01$ dengan probabilitas $|\alpha_{01}|^2$, $10$ dengan probabilitas $|\alpha_{{10}|^2$, dan $11$ dengan probabilitas $|\alpha_{11}|^2$. Variabel $\alpha_{00}, \alpha_{{01}, \alpha_{{10},$ dan $\alpha_{11}$ sengaja dinamai untuk memperjelas sambungan ini. Setelah pengukuran, jika hasilnya adalah $00$maka status kuantum dari sistem dua-qubit telah runtuh dan sekarang

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

Dimungkinkan juga untuk mengukur hanya satu qubit dari status kuantum dua-qubit. Ketika Anda hanya mengukur satu kubit dari status dua kubit, dampak pengukuran sangat berbeda dari mengukur dua qubit. Ini karena seluruh status tidak diciutkan ke status dasar komputasi, melainkan hanya diciutkan ke satu subsistem. Dengan kata lain, mengukur satu qubit dari status dua kubit hanya menciutkan subsistem terkait ke status dasar komputasi.

Untuk melihat ini, pertimbangkan untuk mengukur kubit pertama dari status berikut, yang dibentuk dengan menerapkan transformasi $Hadamard H$ pada dua qubit yang awalnya diatur ke &kuota; 0&kutipan; status:

$$H^{\otimes 2}\left( \begin{bmatrix}1 \\ 0 \end{bmatrix}\otimes\begin{bmatrix}1 \\ 0 \end{bmatrix}\right){1}{2}\begin{bmatrix}\frac{= 1 & 1 & 1 & 1 \\ 1 & -1 & -1 & -1 \\ 1 & -1 && -\\&1 & -1 amp; -1 & 1 \end{bmatrix}\begin{bmatrix}\\ 0\\ 0\end{bmatrix}{1}{2}\begin{bmatrix}=\frac{\\ 1 1\\ 1\\ 1 1 1\\ 1 1 1 }=\begin{cases}\text{\end{bmatrix}\mapsto0 & \frac{{1}{\sqrt{2}}\begin{bmatrix}1\\ 1\\ 0\\ 0 \end{bmatrix}\\\text{hasil }=1 & \frac{{1}{\sqrt{{2}}\begin{bmatrix}0\\ 0\\ 1\\ 1 \end{bmatrix}\\\end{cases}. $$ Kedua hasil memiliki probabilitas 50% terjadi. Itu dapat diintusiasi dari fakta bahwa status kuantum sebelum pengukuran tidak berubah jika $0$ ditukar dengan $1$ pada qubit pertama.

Aturan matematika untuk mengukur qubit pertama atau kedua sederhana. Biarkan e_k menjadi vektor dasar komputasi k^{\rm th}$ dan $S$ menjadi set dari semua $e_k$ sehingga qubit yang dimaksud mengambil nilai $1$ untuk nilai $k$ tersebut.$$$ Misalnya, jika Anda tertarik untuk mengukur kubit pertama maka $S$ akan terdiri dari $e_1\equiv 10$ dan $e_3\equiv 11$. Demikian pula, jika Anda tertarik pada qubit $kedua S$ akan terdiri dari $e_2\equiv 01$ dan $e_3 \equiv 11$. Maka probabilitas mengukur qubit yang dipilih menjadi $1$ adalah untuk vektor status $\psi$

$$ P(\text{hasil}=1)=\sum_{e_k \text{ ke dalam set} S}\psi^\dagger e_k e_k^\dagger\psi. $$

Catatan

Artikel ini menggunakan format little-endian untuk memberi label dasar komputasi. Dalam format endian kecil, bit yang paling tidak signifikan didahulukan. Misalnya, angka empat dalam format little-endian diwakili oleh string bit 001.

Karena setiap pengukuran qubit hanya dapat menangguhkan $0$ atau $1$, probabilitas mengukur $0$ hanyalah $1-P (\text{hasil}=1)$. Inilah sebabnya mengapa Anda hanya memerlukan rumus untuk probabilitas mengukur $1$.

Tindakan yang dilakukan pengukuran semacam itu pada status dapat dinyatakan secara matematis sebagai

$$\psi\mapsto\frac{\sum_{e_k \text{ ke dalam set } S} e_k e_k^\dagger\psi}{\sqrt{P(\text{hasil}=1)}}. $$

Pembaca yang berhati-hati mungkin khawatir tentang apa yang terjadi jika denominator adalah nol. Meskipun status seperti itu tidak terdefinisi, Anda tidak perlu khawatir tentang peristiwa seperti itu karena probabilitasnya adalah nol!

Jika Anda mengambil $\psi$ untuk menjadi vektor status seragam yang diberikan di atas dan tertarik untuk mengukur kubit pertama maka

$$ P(\text{pengukuran qubit pertama}=1) = (\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. $$

Perhatikan bahwa ini hanyalah jumlah dari dua probabilitas yang diharapkan untuk mengukur hasil $10$ dan $11$. Sebagai contoh, ini mengevaluasi untuk

$$\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}. $$

yang sangat cocok dengan intuisi kita. Demikian pula, status setelah qubit pertama diukur sebagai $1$ dapat ditulis sebagai

$$\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}$$

sekali lagi sesuai dengan intuisi kita.

Operasi dua qubit

Seperti dalam kasus qubit tunggal, setiap transformasi kesatuan adalah operasi yang valid pada qubit. Secara umum, transformasi kesatuan pada qubit $n$ qubit adalah matriks $U$ ukuran $2^n \times 2^n$ (sehingga bertindak pada vektor ukuran $2^n$), sehingga $U^{-1}= U^\dagger$. Misalnya, gerbang CNOT (controlled-NOT) adalah gerbang dua qubit yang umum digunakan dan diwakili oleh matriks kesatuan berikut:

$$\operatorname{CNOT}=\begin{bmatrix} 1\ 0\ 0\ 0 \\ 0\ 1\ 0\ 0 \\ 0\ 0\ 0\ 1 \\ 0\ 0\ 1\ 0 \end{bmatrix}$$

Kita juga dapat membentuk gerbang dua qubit dengan menerapkan gerbang qubit tunggal pada kedua qubit. Misalnya, jika Anda menerapkan gerbang

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

dan

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

untuk qubit pertama dan kedua, masing-masing, ini setara dengan menerapkan unitary dua-qubit yang diberikan oleh produk tensor mereka: $$\begin{bmatrix} a\ b\\ c\ d\otimes\begin{bmatrix} \end{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}$$

Dengan demikian, Anda dapat membentuk gerbang dua qubit dengan mengambil produk tensor dari beberapa gerbang qubit tunggal yang dikenal. Beberapa contoh gerbang dua qubit termasuk $H \otimes H$, $X \otimes\mathbf{1}$, dan $X \otimes Z$.

Perhatikan bahwa sementara dua gerbang qubit tunggal menentukan gerbang dua qubit dengan mengambil produk tensor mereka, kebalikannya tidak benar. Tidak semua gerbang dua qubit dapat ditulis sebagai produk tensor dari gerbang qubit tunggal. Gerbang seperti itu disebut gerbang yang mengikat. Salah satu contoh gerbang yang mengikat adalah gerbang CNOT.

Intuisi di balik gerbang yang tidak terkendali dapat digeneralisasikan ke gerbang arbiter. Gerbang terkontrol secara umum adalah gerbang yang bertindak sebagai identitas kecuali qubit tertentu adalah $1$. Anda menunjukkan uniter terkontrol, yang dikontrol dalam kasus ini pada qubit berlabel $x$, dengan $\Lambda_x(U)$. Sebagai contoh $\Lambda_0(U) e_{{1}\otimes{\psi}=e_{1}\otimes U{\psi}$ dan $\Lambda_0(U) e_{{0}\otimes{\psi}=e_{{0}\otimes{\psi}$, di mana $e_0$ dan $e_1$ adalah vektor dasar komputasi untuk satu qubit yang sesuai dengan nilai $0$ dan $1$. Misalnya, pertimbangkan gerbang Z$terkontrol$ berikut maka Anda dapat mengekspresikan ini sebagai

$$\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). $$

Mem-build kesatuan yang terkontrol secara efisien adalah tantangan besar. Cara paling sederhana untuk menerapkan ini membutuhkan pembentukan database versi terkontrol dari gerbang fundamental dan mengganti setiap gerbang fundamental dalam operasi kesatuan asli dengan mitranya yang dikontrol. Ini sering kali cukup boros dan wawasan cerdas sering dapat digunakan untuk hanya mengganti beberapa gerbang dengan versi terkontrol untuk mencapai dampak yang sama. Untuk alasan ini, kerangka kerja menyediakan kemampuan untuk melakukan metode pengontrol naif atau memungkinkan pengguna untuk menentukan versi uniter yang dikontrol jika versi yang dioptimalkan disetel tangan diketahui.

Gerbang juga dapat dikontrol menggunakan informasi klasik. Sebuah not-gate yang dikontrol secara klasik, misalnya, hanyalah sebuah not-gate biasa tetapi hanya diterapkan jika bit lama adalah $1$ sebagai lawan dari bit kuantum. Dalam pengertian ini, gerbang yang dikontrol secara klasik dapat dianggap sebagai pernyataan if dalam kode kuantum di mana gerbang hanya diterapkan di satu cabang kode.

Seperti dalam kasus qubit tunggal, set gerbang dua qubit bersifat universal jika ada $4\times 4$ matriks kesatuan yang dapat diperkirakan oleh produk gerbang dari set ini ke presisi sewenang-wenang. Salah satu contoh dari gerbang universal set adalah gerbang Hadamard, gerbang T, dan gerbang CNOT. Dengan mengambil produk dari gerbang ini, Anda dapat mempertanyakan matriks uniter pada dua qubit.

Sistem banyak qubit

Kami mengikuti pola yang sama persis dieksplorasi dalam kasus dua qubit untuk mem-build keadaan kuantum banyak qubit dari sistem yang lebih kecil. Status-status seperti itu di-build dengan membentuk produk tensor dari status-status yang lebih kecil. Misalnya, pertimbangkan untuk mengodekan string bit $1011001$ di komputer kuantum. Anda dapat mengodekan ini sebagai

$$ 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}. $$

Gerbang kuantum bekerja dengan cara yang persis sama. Misalnya, jika Anda ingin menerapkan $gerbang X$ ke kubit pertama dan kemudian melakukan CNOT antara qubit kedua dan ketiga, Anda dapat mengekspresikan transformasi ini sebagai

\begin{\begin{align}&Amp; (X \otimes\operatorname{CNOT}_{\mathbf{1}\otimes{12}\otimes \mathbf{\otimes\mathbf{1} \mathbf{\mathbf{1}\otimes \mathbf{\mathbf{1}) \begin{bmatrix} 0 \\ 1\begin{bmatrix} \end{bmatrix}\otimes1 \\ 0 \end{bmatrix}\otimes\begin{bmatrix} 0 \\ 1 \end{bmatrix}\otimes\begin{bmatrix} 0 \\ 1 \end{bmatrix}\begin{bmatrix}\otimes1 \\ 0\begin{bmatrix} \end{bmatrix}\otimes1 \\ 0\begin{bmatrix} \end{bmatrix}\otimes0 \\ 1 \end{bmatrix}\\&\qquad\qquad\equiv 0011001. \end{align}

Dalam banyak sistem qubit, sering ada kebutuhan untuk mengalokasikan dan membatalkan alokasi qubit yang berfungsi sebagai memori sementara untuk komputer kuantum. Qubit seperti itu dikatakan tambahan. Secara default, Anda dapat mengasumsikan status qubit diinisialisasi untuk $e_0$ setelah alokasi. Anda selanjutnya dapat mengasumsikan bahwa itu dikembalikan lagi ke $e_0$ sebelum alokasi. Asumsi ini penting karena jika qubit tambahan terikat dengan register qubit lain ketika menjadi batal dialokasikan maka proses pembatalan alokasi akan merusak qubit tambahan. Untuk alasan ini, Anda selalu berasumsi bahwa qubit tersebut dikembalikan ke keadaan awal sebelum dirilis.

Akhirnya, meskipun gerbang baru perlu ditambahkan ke gerbang kami yang ditetapkan untuk mencapai komputasi kuantum universal untuk dua komputer kuantum qubit, tidak ada gerbang baru yang perlu diperkenalkan dalam kasus multi-qubit. Gerbang $H$, $T$ dan CNOT membentuk gerbang universal yang ditetapkan pada banyak qubit karena setiap transformasi kesatuan umum dapat dipecah menjadi serangkaian dua rotasi qubit. Anda kemudian dapat memanfaatkan teori yang dikembangkan untuk kasus dua kubit dan menggunakannya lagi di sini ketika Anda memiliki banyak qubit.

Catatan

Sementara notasi aljabar linier yang telah digunakan sejauh ini tentu dapat digunakan untuk menggambarkan status multi-qubit, itu menjadi semakin rumit saat Anda meningkatkan ukuran status. Vektor kolom yang dihasilkan untuk string panjang 7 bit, misalnya, adalah $128$ dimensi, yang membuatnya mengekspresikannya menggunakan notasi yang dijelaskan sebelumnya sangat rumit. Sebaliknya, notasi Dirac, shorthand simbolis yang menyederhanakan representasi status kuantum, digunakan. Untuk informasi selengkapnya, lihat Notasi Dirac.