Operasi pada beberapa qubit

Artikel ini mengulas aturan yang digunakan untuk membangun status multi-qubit dari status qubit tunggal dan membahas operasi gerbang yang diperlukan untuk dimasukkan dalam satu set gerbang guna membentuk komputer kuantum multi-qubit 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 keterjeratan atau gangguan menjadikan 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 Anda hanya memiliki gerbang qubit tunggal dalam komputer kuantum, maka kalkulator dan tentu 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 dengan mudah, mensimulasikan perhitungan kuantum lima puluh qubit mungkin 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

Misalkan Anda memiliki dua qubit terpisah dalam status berikut:

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

Keadaan dua kubit yang sesuai adalah hasil dari produk tensor, atau produk Kronecker, dari 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_{{00}\\\alpha___{{01}\\\alpha{{10}\\\alpha{{11}\end{bmatrix}$$

mewakili status kuantum pada dua qubit jika

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

Lebih umum, Anda dapat melihat bahwa vektor satuan $v_1 \otimes v_2 \otimes\cdots\otimes v_n$ dari dimensi $2 \cdot 2 \cdot 2 \cdots= 2^n$ mewakili status kuantum dari $n$ qubit menggunakan konstruksi ini. Seperti halnya kubit tunggal, vektor status kuantum dari beberapa kubit 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 keadaan dua kubit dibentuk oleh produk tensor dari keadaan basis satu kubit. Untuk sistem dua qubit, ada empat status berikut:

$$00 \equiv\begin{bmatrix} 1 \\ 0 \end{bmatrix}\otimes\begin{bmatrix}1 \\ 0 \end{bmatrix}=\begin{bmatrix} 1 \\ 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}$$

Meskipun Anda selalu dapat mengambil produk tensor dari dua status kubit tunggal untuk membentuk status dua-kubit, tidak semua status kuantum dua-kubit dapat ditulis sebagai produk tensor dari dua status kuantum tunggal. Misalnya, tidak ada keadaan $\psi$ dan $\phi$ sedemikian rupa sehingga produk tensor mereka adalah keadaan

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

Status dua kubit seperti itu, yang tidak dapat ditulis sebagai produk tensor dari status kubit tunggal, disebut status terjerat; kedua kubit dikatakan terjerat. Secara umum, karena keadaan kuantum tidak dapat dianggap sebagai produk tensor dari keadaan qubit tunggal, informasi yang dimiliki keadaan tidak terbatas pada masing-masing qubit secara individu. Sebaliknya, informasi disimpan secara non-lokal dalam korelasi antara kedua status. Non-lokalitas informasi ini adalah salah satu fitur pembeda utama komputasi kuantum dibandingkan komputasi klasik, dan sangat penting untuk banyak protokol kuantum, termasuk koreksi kesalahan kuantum.

Mengukur keadaan dua kubit

Mengukur status dua kubit mirip dengan pengukuran kubit tunggal. Mengukur status

$$ \begin{bmatrix} \alpha_{{00}\\\alpha___{{01}\\\alpha{{10}\\\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 hubungan ini. Setelah pengukuran, jika hasilnya adalah $00$ maka status kuantum dari sistem dua qubit runtuh dan sekarang

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

Dimungkinkan juga untuk mengukur hanya satu qubit dari keadaan kuantum dua qubit. Ketika Anda hanya mengukur satu kubit dari status dua kubit, dampak pengukuran sangat berbeda dari mengukur dua qubit. Ini berbeda karena seluruh status tidak diciutkan ke status dasar komputasi, melainkan hanya runtuh 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 status 0:

$$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{hasil}= 0 &\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 50% kemungkinan terjadi. Hasil itu dapat diintuisiasi dari fakta bahwa status kuantum sebelum pengukuran tidak berubah jika $0$ ditukar dengan $1$ pada kubit pertama.

Aturan matematika untuk mengukur qubit pertama atau kedua sederhana. Biarkan $e_k$ menjadi $vektor dasar komputasi k^{\rm th}$ dan $S$ menjadi set 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 dengan kubit kedua $S$ akan terdiri dari $e_2\equiv 01$ dan $e_3 \equiv 11$. Maka probabilitas mengukur kubit yang dipilih menjadi $1$ adalah untuk vektor status $\psi$

$$ P(\text{outcome}= 1) =\sum_{e_k \text{ dalam himpunan } S}\psi^\dagger e_k e_k^\dagger\psi. $$

Catatan

Artikel ini menggunakan format little-endian untuk memberi label dasar komputasi. Dalam format little-endian, bit yang paling tidak signifikan menjadi yang pertama. Misalnya, dalam format little-endian, rangkaian bit 001 mewakili angka empat.

Karena setiap pengukuran kubit hanya dapat menghasilkan $0$ atau $1$, kemungkinan mengukur $0$ adalah $1-P( hasil\text{}=1)$, itulah sebabnya Anda hanya memerlukan rumus untuk probabilitas mengukur $1$.

Tindakan yang dimiliki pengukuran semacam itu terhadap keadaan dapat dinyatakan secara matematis sebagai

$$ \psi \mapsto \frac{\sum_{e_k \text{ 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 menganggap $\psi$ sebagai vektor keadaan dengan keseragaman yang diberikan sebelumnya dan tertarik untuk mengukur kubit pertama, maka

$$P(\text{pengukuran kubit 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. $$

Ini hanyalah jumlah dari dua probabilitas yang diharapkan untuk mengukur hasil $10$ dan $11$. Sebagai contoh, hasil dari ini adalah

$$ \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 uniter adalah operasi yang valid pada qubit. Secara umum, transformasi uniter pada $n$ qubit adalah matriks $U$ berukuran $2^n \times 2^n$ (sehingga bertindak pada vektor berukuran $2^n$), sedemikian rupa sehingga $U^{-1}= U^\dagger$. Misalnya, gerbang CNOT (controlled-NOT) adalah gerbang dua qubit yang umum digunakan dan diwakili oleh matriks kesatuan berikut:

$$ \text{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 kubit pertama dan kedua, masing-masing, ini setara dengan menerapkan uniter dua kubit berdasarkan produk tensor mereka:

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

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 meskipun dua gerbang satu qubit dapat membentuk gerbang dua qubit melalui produk tensor mereka, sebaliknya tidak berlaku. 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_ e_{{0}\otimes{\psi}={{0}\otimes{\psi}$, di mana $e_0$ dan $e_1$ adalah vektor dasar komputasi untuk satu kubit 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 mengimplementasikan unitaris terkontrol membutuhkan pembentukan database versi gerbang dasar yang terkontrol dan mengganti setiap gerbang mendasar dalam operasi unitaris asli dengan rekan terkontrolnya. Metode ini sering boros, dan wawasan dapat sering kali digunakan hanya untuk mengganti beberapa gerbang dengan versi terkontrol saja untuk mencapai dampak yang sama. Untuk alasan ini, kerangka menyediakan kemampuan untuk melakukan metode pengontrolan naif atau memungkinkan pengguna untuk menentukan versi unitaris yang dikontrol jika versi yang dioptimalkan disetel manual diketahui.

Gerbang juga dapat dikontrol menggunakan informasi klasik. Not-gate yang dikontrol secara klasik, misalnya, hanyalah not-gate biasa yang hanya diterapkan jika bit klasik adalah $1$ berlawanan dengan quantum bit. 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, satu set gerbang dua qubit bersifat universal jika setiap matriks kesatuan $4\times 4$ dapat diperkirakan oleh produk gerbang dari set ini dengan presisi sewenang-wenang. Salah satu contoh set gerbang universal adalah gerbang Hadamard, gerbang T, dan gerbang CNOT. Dengan mengambil produk dari gerbang ini, Anda dapat mendekati matriks uniter pada dua qubit.

Sistem banyak qubit

Kami mengikuti pola yang persis dieksplorasi dalam kasus-kasus dua qubit untuk membangun keadaan kuantum dengan banyak qubit dari sistem yang lebih kecil. Keadaan-keadaan seperti itu dibangun dengan membentuk produk tensor dari keadaan-keadaan 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{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} $$

Dalam banyak sistem qubit, sering kali ada kebutuhan untuk mengalokasikan dan membatalkan alokasi qubit yang berfungsi sebagai memori sementara untuk komputer kuantum. Kubangan seperti itu dikatakan sebagai tambahan. Secara default, Anda dapat mengasumsikan status qubit diinisialisasi untuk $e_0$ pada saat alokasi. Anda selanjutnya dapat mengasumsikan bahwa gerbang kembali ke $e_0$ sebelum dealokasi. Asumsi ini penting karena jika kubit tambahan terikat dengan kubit register lain ketika di-dealokasi, maka proses dealokasi merusak kubit tambahan. Untuk alasan ini, Anda selalu berasumsi bahwa qubit tersebut dikembalikan ke keadaan awal sebelum dirilis.

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

Catatan

Sementara notasi aljabar linier yang digunakan sampai saat ini tentu dapat digunakan untuk menggambarkan keadaan multi-kubit, notasi tersebut menjadi semakin sulit digunakan saat ukuran keadaan bertambah. Vektor kolom yang dihasilkan untuk string 7-bit, misalnya, $128$ dimensi, yang membuatnya rumit untuk mengekspresikannya menggunakan notasi yang dijelaskan sebelumnya. Sebaliknya, notasi Dirac, shorthand simbolis yang menyederhanakan representasi status kuantum, digunakan. Untuk informasi selengkapnya, lihat Notasi Dirac.