Bagikan melalui


Pengantar koreksi kesalahan kuantum

Artikel ini menjelaskan dasar-dasar koreksi kesalahan kuantum, jenis kesalahan kuantum, dan beberapa kode koreksi kesalahan kuantum umum. Ini juga memberikan contoh cara memperbaiki kesalahan menggunakan kode tiga kubit.

Apa itu koreksi kesalahan kuantum?

Koreksi kesalahan Quantum (QEC) adalah teknik yang memungkinkan kami melindungi informasi kuantum dari kesalahan. Koreksi kesalahan sangat penting dalam komputer kuantum, karena algoritma kuantum yang efisien menggunakan komputer kuantum skala besar, yang sensitif terhadap kebisingan.

Prinsip dasar di balik koreksi kesalahan kuantum adalah bahwa jumlah bit yang digunakan untuk mengodekan sejumlah informasi tertentu ditingkatkan. Redundansi ini memungkinkan kode mendeteksi dan memperbaiki kesalahan.

Tingkat kesalahan untuk komputer kuantum biasanya lebih tinggi daripada kesalahan komputer klasik karena tantangan yang terkait dengan sistem kuantum bangunan dan pengoperasian. Kebisingan, dekoherensi, dan ketidaksempurnaan dalam gerbang kuantum dapat menyebabkan kesalahan dalam komputasi kuantum. Komputer kuantum saat ini memiliki tingkat kesalahan dalam kisaran 1% hingga 0,1%. Dengan kata lain, ini berarti bahwa rata-rata satu dari setiap 100 hingga 1000 operasi gerbang kuantum menghasilkan kesalahan.

Jenis kesalahan kuantum

Ada dua jenis mendasar kesalahan kuantum: flip bit dan flip fase.

Kesalahan flip bit terjadi ketika qubit berubah dari $\ket{0}$ ke $\ket{1}$ atau sebaliknya. Kesalahan flip bit juga dikenal sebagai \sigma_x-errors, karena memetakan status $qubit \sigma_x={1}$\ket{\ket{0} dan $\sigma_x .\ket{0}$\ket{={1}$$ Kesalahan ini dianalogikan dengan kesalahan flip bit klasik.

Kesalahan flip fase terjadi ketika qubit mengubah fasenya. Mereka juga dikenal sebagai $\sigma_z-errors$, karena memetakan status $qubit \sigma_z{0}$ \ket{0}=\ket{dan $\sigma_z{1}\ket{= -.\ket{1}$ Jenis kesalahan ini tidak memiliki analog klasik.

Dalam komputasi kuantum, kesalahan kuantum dapat bermanifestasi sebagai flip bit, flip fase, atau kombinasi keduanya.

Bagaimana cara kerja koreksi kesalahan kuantum?

Kode koreksi kesalahan quantum berfungsi dengan mengodekan informasi kuantum ke dalam serangkaian qubit yang lebih besar, yang disebut qubit fisik. Status bersama dari qubit fisik mewakili qubit logis.

Qubit fisik tunduk pada kesalahan karena decoherence dan ketidaksempurnaan di gerbang kuantum. Kode ini dirancang sehingga kesalahan dapat dideteksi dan diperbaik dengan mengukur beberapa kubit dalam kode.

Misalnya, bayangkan Anda ingin mengirim pesan $\ket{0}$qubit tunggal . Anda dapat menggunakan tiga qubit fisik untuk mengodekan pesan, mengirim $\ket{000}$, yang dikenal sebagai codeword. Kode koreksi kesalahan ini adalah kode pengulangan, karena pesan diulang tiga kali.

Sekarang, bayangkan bahwa kesalahan bit-flip tunggal terjadi selama transmisi sehingga apa yang diterima penerima adalah status $\ket{010}$. Dalam skenario ini, penerima mungkin dapat menyimpulkan bahwa pesan yang dimaksud adalah $\ket{000}$. Namun, jika pesan tunduk pada dua kesalahan bit-flip, penerima dapat menyimpulkan pesan yang salah. Akhirnya, jika ketiga bit dibalik sehingga pesan $\ket{000}$ asli menjadi $\ket{111}$, penerima tidak memiliki cara untuk mengetahui kesalahan terjadi.

Jarak kode kode kode QEC adalah jumlah kesalahan minimum yang mengubah satu codeword menjadi codeword lain, yaitu, jumlah kesalahan yang tidak dapat dideteksi. Jarak $kode d$ dapat didefinisikan sebagai

$$d = 2t + 1$$

di mana $t$ adalah jumlah kesalahan yang dapat dikoreksi kode. Misalnya, kode tiga-bit dapat mendeteksi dan memperbaiki satu kesalahan bit-flip, jadi $t = 1$, dan dengan demikian jarak kode adalah $d = 3$.

Perhatikan bahwa kode pengulangan, seperti kode tiga-bit yang digunakan dalam contoh ini, hanya dapat memperbaiki kesalahan bit-flip, dan bukan kesalahan balik fase. Untuk memperbaiki kedua jenis kesalahan, diperlukan kode koreksi kesalahan kuantum yang lebih canggih.

Jenis kode QEC

Ada banyak jenis kode QEC yang berbeda, masing-masing dengan properti dan keuntungannya sendiri. Beberapa kode QEC umum adalah:

  • Kode pengulangan: Kode koreksi kesalahan kuantum paling sederhana, di mana satu qubit dikodekan ke dalam beberapa qubit dengan mengulanginya beberapa kali. Kode pengulangan dapat memperbaiki kesalahan flip bit, tetapi bukan kesalahan flip fase.

  • Kode shor: Kode koreksi kesalahan kuantum pertama, dikembangkan oleh Peter Shor. Ini mengodekan satu qubit logis menjadi sembilan qubit fisik. Kode shor dapat memperbaiki kesalahan balik satu-bit atau kesalahan balik satu fase, tetapi tidak dapat memperbaiki kedua jenis kesalahan secara bersamaan.

  • Kode steane: Ini adalah kode tujuh-qubit yang dapat memperbaiki kesalahan flip bit dan fase balik. Ini memiliki keuntungan menjadi toleran terhadap kesalahan, yang berarti bahwa proses koreksi kesalahan itu sendiri tidak menimbulkan kesalahan tambahan.

  • Kode permukaan: Ini adalah kode koreksi kesalahan topologis yang menggunakan latensi qubit dua dimensi untuk mengodekan qubit logis. Ini memiliki ambang koreksi kesalahan yang tinggi dan dianggap sebagai salah satu teknik yang paling menjanjikan untuk komputasi kuantum skala besar yang toleran terhadap kesalahan. Kode permukaan digunakan oleh Azure Quantum Resource Estimator.

  • Kode Hastings-Haah: Kode koreksi kesalahan kuantum ini menawarkan biaya ruang-waktu yang lebih baik daripada kode permukaan pada kubit Majorana di banyak rezim. Untuk set instruksi berbasis gerbang, overhead lebih besar, yang membuat pendekatan ini kurang efisien daripada kode permukaan.

Contoh: Kode tiga kubit

Kode koreksi kesalahan tiga kubit adalah kode pengulangan sederhana yang dapat mendeteksi dan memperbaiki kesalahan balik satu bit. Ini mengodekan satu qubit logis menjadi tiga qubit fisik dengan mengulangi qubit tiga kali.

Tip

Lihat Q# sampel kode untuk kode tiga kubit.

Bayangkan Anda ingin mengirim qubit $\ket{\phi}=\alpha\ket{{0} tunggal arbitrer + . \beta\ket{1}$ Untuk menghindari kesalahan, Anda mengodekan status $\ket{0}$ dasar dan $\ket{1}$ ke dalam status bersama tiga qubit. Dua status dasar logis adalah $\ket{0_L}=\ket{000}$ dan $\ket{1_L.}=\ket{111}$

Oleh karena itu, qubit $\ket{\phi}={0}\alpha\ket{tunggal + \beta\ket{1}$ dikodekan sebagai:

$$\ket{\phi}{000}\ket{\alpha=_L + \beta\ket{\ket{\alpha{111}=0_L} + 1_L \beta\ket{}$$

Mari kita uraikan langkah-langkah kode tiga qubit.

Menyiapkan qubit

Pertama, Anda mengodekan qubit $\ket{\phi}=\alpha\ket{{0} tunggal Anda +\beta\ket{1}$ ke dalam status bersama tiga qubit.

Selanjutnya, Anda menyiapkan dua qubit lebih lanjut dalam status $\ket{0}$. Jadi, status global ketiga qubit adalah $(\alpha\ket{0} +\beta\ket{1}){000}\alpha\ket{\ket{0}\ket{0}= + . \beta\ket{{100}$

Terakhir, Anda mengodekan qubit tunggal ke dalam status bersama tiga qubit, dengan menerapkan dua operasi CNOT. CNOT pertama menggunakan qubit pertama sebagai kontrol dan bertindak pada qubit kedua, memproduksi $\alpha\ket{000} + \beta\ket{110}$. CNOT kedua menggunakan qubit pertama sebagai kontrol dan bertindak pada qubit ketiga. Status tiga qubit sekarang $\alpha\ket{000} + \beta\ket{111}$.

Mengirim qubit

Anda mengirim ketiga qubit. Dengan asumsi hanya kesalahan balik satu-bit yang dapat terjadi, kubit yang diterima berada di salah satu status berikut:

Provinsi Kesalahan
$\alpha\ket{000} + \beta\ket{111}$ Tidak ada kesalahan
$\alpha\ket{100} + \beta\ket{011}$ Qubit 1
$\alpha\ket{010} + \beta\ket{101}$ Qubit 2
$\alpha\ket{001} + \beta\ket{110}$ Qubit 3

Menambahkan kubit tambahan

Pertama, Anda memperkenalkan dua qubit lagi, yang disiapkan dalam keadaan $\ket{00}$. Pasangan kubit tambahan ini digunakan untuk mengekstrak informasi kesalahan tanpa langsung mengukur atau mendapatkan informasi tentang status logis.

Selanjutnya, Anda melakukan empat operasi CNOT: dua operasi pertama menggunakan qubit pertama dan kedua yang diterima sebagai kontrol dan bertindak pada kubit tambahan pertama, dan dua operasi terakhir menggunakan kubit pertama dan ketiga yang diterima sebagai kontrol dan bertindak pada bit tambahan kedua. Status total kelima qubit sekarang:

Provinsi Kesalahan
$(\alpha\ket{000} + \beta\ket{111})\ket{00}$ Tidak ada kesalahan
$(\alpha\ket{100} + \beta\ket{011})\ket{11}$ Qubit 1
$(\alpha\ket{010} + \beta\ket{101})\ket{10}$ Qubit 2
$(\alpha\ket{001} + \beta\ket{110})\ket{01}$ Qubit 3

Mengambil sindrom kesalahan

Untuk mengambil informasi kesalahan, Anda mengukur dua kubit tambahan dalam status $\ket{0}$ dasar komputasi dan $\ket{1}$. Dengan melakukan ini, Anda memulihkan status bersama, yang disebut sindrom kesalahan karena membantu mendiagnosis kesalahan dalam qubit yang diterima.

Sekarang Anda tahu mana dari empat kemungkinan menyatakan ketiga qubit yang diterima berada di. Anda dapat memperbaiki kesalahan dengan menerapkan operasi koreksi. Dalam hal ini Anda berurusan dengan kesalahan flip bit, jadi koreksinya adalah $operasi \sigma_x$ diterapkan ke satu (atau tidak ada) dari qubit.

Misalnya, jika sindrom kesalahan adalah $\ket{00}$, maka kubit yang diterima berada dalam status $\alpha{000}\ket{+ \beta\ket{{111}$, yang merupakan status yang awalnya Anda kirim. Jika sindrom kesalahan adalah $\ket{11}$, maka kubit yang diterima berada dalam status $\alpha{100}\ket{+ b.\ket{{011}$ Ada sedikit kesalahan balik pada qubit pertama, yang dapat Anda koreksi dengan menerapkan $operasi \sigma_x$ ke qubit pertama.

Sindrom kesalahan Ciutkan status Koreksi
$\ket{00}$ $\alpha\ket{000} + \beta\ket{111}$ Tidak perlu melakukan apa-apa
$\ket{01}$ $\alpha\ket{100} + \beta\ket{011}$ Terapkan $\sigma_x$ ke qubit 3
$\ket{10}$ $\alpha\ket{010} + \beta\ket{101}$ Terapkan $\sigma_x$ ke qubit 2
$\ket{11}$ $\alpha\ket{001} + \beta\ket{110}$ Terapkan $\sigma_x$ ke qubit 1

Mengekstrak qubit asli

Terakhir, untuk mengekstrak qubit tunggal yang ingin Anda kirimkan awalnya, Anda menerapkan dua operasi CNOT: satu menggunakan qubit pertama sebagai kontrol dan bertindak pada qubit kedua, dan yang lain menggunakan qubit pertama sebagai kontrol dan bertindak pada yang ketiga.

Status qubit pertama sekarang $\alpha\ket{0} + \beta\ket{1}$, yang merupakan qubit asli yang ingin Anda kirimkan.

Penting

Kode QEC tidak mendapatkan informasi apa pun mengenai koefisien $\alpha$ dan $\beta$, sehingga superposisi status komputasi tetap utuh selama koreksi.