Lewati ke konten utama

Kode Shor 9-Qubit

Sekarang kita beralih ke kode Shor 9-Qubit, yang merupakan kode koreksi kesalahan kuantum yang diperoleh dengan menggabungkan dua kode yang dipertimbangkan di bagian sebelumnya: kode repetisi 3-bit untuk Qubit, yang memungkinkan koreksi satu kesalahan bit-flip, dan versi yang dimodifikasi dari kode tersebut, yang memungkinkan koreksi satu kesalahan phase-flip.

Deskripsi kode​

Kode Shor 9-Qubit adalah kode yang kita peroleh dengan menggabungkan dua kode dari bagian sebelumnya. Ini berarti kita pertama menerapkan satu encoding, yang meng-encode satu Qubit menjadi tiga, dan kemudian kita menerapkan encoding lainnya ke masing-masing dari tiga Qubit yang digunakan untuk encoding pertama, menghasilkan sembilan Qubit secara total.

Lebih tepatnya, meskipun kita bisa menerapkan dua kode dalam urutan mana pun dalam kasus khusus ini, kita akan memilih untuk pertama menerapkan versi yang dimodifikasi dari kode repetisi 3-bit (yang mendeteksi kesalahan phase-flip), dan kemudian kita meng-encode masing-masing dari tiga Qubit yang dihasilkan secara independen menggunakan kode repetisi 3-bit asli (yang mendeteksi kesalahan bit-flip). Berikut adalah representasi diagram Circuit dari encoding ini.

Encoding circuit for the 9-qubit Shor code showing three blocks

Seperti yang disarankan oleh gambar, kita akan memikirkan sembilan Qubit dari kode Shor sebagai dikelompokkan menjadi tiga blok tiga Qubit, di mana setiap blok diperoleh dari langkah encoding kedua (yang merupakan kode repetisi 3-bit biasa). Kode repetisi 3-bit biasa, yang di sini diterapkan tiga kali secara independen, disebut kode dalam dalam konteks ini, sedangkan kode luar adalah kode yang digunakan untuk langkah encoding pertama, yaitu versi yang dimodifikasi dari kode repetisi 3-bit yang mendeteksi kesalahan phase-flip.

Kita bisa secara alternatif menentukan kode dengan mendeskripsikan bagaimana dua keadaan basis standar untuk Qubit asli kita di-encode.

∣0βŸ©β€…β†¦β€…122(∣000⟩+∣111⟩)βŠ—(∣000⟩+∣111⟩)βŠ—(∣000⟩+∣111⟩)∣1βŸ©β€…β†¦β€…122(∣000βŸ©βˆ’βˆ£111⟩)βŠ—(∣000βŸ©βˆ’βˆ£111⟩)βŠ—(∣000βŸ©βˆ’βˆ£111⟩)\begin{aligned} \vert 0\rangle & \:\mapsto\: \frac{1}{2\sqrt{2}} (\vert 000\rangle + \vert 111\rangle) \otimes (\vert 000\rangle + \vert 111\rangle) \otimes (\vert 000\rangle + \vert 111\rangle) \\[4mm] \vert 1\rangle & \:\mapsto\: \frac{1}{2\sqrt{2}} (\vert 000\rangle - \vert 111\rangle) \otimes (\vert 000\rangle - \vert 111\rangle) \otimes (\vert 000\rangle - \vert 111\rangle) \end{aligned}

Begitu kita mengetahui ini, kita bisa menentukan dengan linieritas bagaimana vektor keadaan Qubit sembarangan di-encode.

Mengoreksi kesalahan bit-flip dan phase-flip​

Kesalahan dan gate CNOT​

Untuk menganalisis bagaimana kesalahan XX dan ZZ mempengaruhi encoding Qubit, baik untuk kode Shor 9-Qubit maupun kode lainnya, akan berguna untuk mengamati beberapa hubungan sederhana antara kesalahan-kesalahan ini dan gate CNOT. Saat kita mulai menganalisis kode Shor 9-Qubit, ini adalah momen yang tepat untuk berhenti sejenak dan melakukan ini.

Diagram Circuit berikut mengilustrasikan tiga hubungan dasar antara gate XX dan gate CNOT. Khususnya, menerapkan gate XX ke Qubit target sebelum CNOT setara dengan menukar urutan dan melakukan CNOT terlebih dahulu, tetapi menerapkan gate XX ke Qubit kontrol sebelum CNOT setara dengan menerapkan gate XX ke kedua Qubit setelah CNOT. Akhirnya, menerapkan gate XX ke kedua Qubit sebelum CNOT setara dengan melakukan CNOT terlebih dahulu dan kemudian menerapkan gate XX ke Qubit kontrol. Hubungan-hubungan ini bisa diverifikasi dengan melakukan perkalian matriks yang diperlukan atau menghitung efek Circuit pada keadaan basis standar.

X errors before and after CNOT gates

Situasinya serupa untuk gate ZZ, kecuali bahwa peran Qubit kontrol dan target bertukar. Khususnya, kita memiliki tiga hubungan yang digambarkan oleh Circuit kuantum berikut.

Z errors before and after CNOT gates

Mengoreksi kesalahan bit-flip​

Sekarang kita akan mempertimbangkan bagaimana kesalahan bisa dideteksi dan dikoreksi menggunakan kode Shor 9-Qubit, dimulai dengan kesalahan bit-flip β€” yang umumnya akan kita sebut kesalahan XX mulai sekarang demi keringkasan.

Untuk mendeteksi dan mengoreksi kesalahan XX, kita cukup memperlakukan masing-masing dari tiga blok dalam encoding secara terpisah. Setiap blok adalah encoding Qubit menggunakan kode repetisi 3-bit, yang melindungi terhadap kesalahan XX β€” sehingga dengan melakukan pengukuran sindrom dan koreksi kesalahan XX yang sudah dijelaskan sebelumnya ke setiap blok, kita bisa mendeteksi dan mengoreksi hingga satu kesalahan XX per blok. Khususnya, jika ada paling banyak satu kesalahan XX pada sembilan Qubit encoding, kesalahan ini akan dideteksi dan dikoreksi oleh prosedur ini.

Singkatnya, mengoreksi kesalahan bit-flip adalah hal yang sederhana untuk kode ini, karena kode dalam mengoreksi kesalahan bit-flip.

Mengoreksi kesalahan phase-flip​

Selanjutnya kita akan mempertimbangkan kesalahan phase-flip, atau kesalahan ZZ untuk keringkasan. Kali ini tidak begitu jelas apa yang harus kita lakukan karena kode luar adalah yang mendeteksi kesalahan ZZ, tetapi kode dalam tampaknya entah bagaimana "menghalangi", membuat deteksi dan koreksi kesalahan ini sedikit lebih sulit.

Misalkan kesalahan ZZ terjadi pada salah satu dari 9 Qubit kode Shor, seperti yang ditunjukkan dalam diagram ini.

Z error on a qubit for the 9-qubit Shor code

Kita sudah mengamati apa yang terjadi ketika kesalahan ZZ terjadi saat kita menggunakan kode repetisi 3-bit β€” ini setara dengan kesalahan ZZ yang terjadi sebelum encoding. Dalam konteks kode Shor 9-Qubit, ini berarti bahwa kesalahan ZZ pada salah satu dari tiga Qubit dalam satu blok selalu memiliki efek yang sama, yang setara dengan kesalahan ZZ yang terjadi pada Qubit yang bersesuaian sebelum kode dalam diterapkan.

Misalnya, diagram Circuit di atas setara dengan diagram berikut. Ini bisa dibuktikan menggunakan hubungan antara gate ZZ dan CNOT yang dijelaskan di atas, atau cukup dengan mengevaluasi Circuit pada keadaan Qubit sembarangan ∣ψ⟩.\vert\psi\rangle.

Z error prior to the inner code for the 9-qubit Shor code

Ini menyarankan satu pilihan untuk mendeteksi dan mengoreksi kesalahan ZZ, yaitu men-decode kode dalam, meninggalkan kita dengan tiga Qubit yang digunakan untuk encoding luar beserta enam Qubit workspace yang sudah diinisialisasi. Kita kemudian bisa memeriksa tiga Qubit kode luar ini untuk kesalahan ZZ, dan akhirnya kita bisa meng-encode ulang menggunakan kode dalam, untuk membawa kita kembali ke encoding 9-Qubit yang kita dapatkan dari kode Shor. Jika kita mendeteksi kesalahan ZZ, kita bisa mengoreksinya sebelum re-encoding dengan kode dalam, atau kita bisa mengoreksinya setelah re-encoding, dengan menerapkan gate ZZ ke salah satu Qubit dalam blok tersebut.

Berikut adalah diagram Circuit yang mencakup Circuit encoding dan kesalahan yang disarankan di atas bersama dengan langkah-langkah yang baru saja dijelaskan (tetapi bukan langkah koreksi yang sebenarnya).

Z error detection for the 9-qubit Shor code

Dalam contoh khusus ini, pengukuran sindrom adalah 11,11, yang menempatkan kesalahan ZZ sebagai telah terjadi pada salah satu Qubit di blok tengah.

Salah satu keuntungan mengoreksi kesalahan ZZ setelah langkah re-encoding daripada sebelumnya adalah bahwa kita bisa menyederhanakan Circuit di atas. Circuit berikut setara, tetapi membutuhkan empat gate CNOT lebih sedikit.

Simplified Z error detection for the 9-qubit Shor code

Sekali lagi, sindrom tidak menunjukkan Qubit mana yang telah terpengaruh oleh kesalahan ZZ, melainkan blok mana yang mengalami kesalahan ZZ, dengan efek yang sama terlepas dari Qubit mana dalam blok yang terpengaruh. Kita kemudian bisa mengoreksi kesalahan dengan menerapkan gate ZZ ke salah satu dari tiga Qubit dari blok mana pun yang terpengaruh.

Sebagai catatan sampingan, di sini kita melihat contoh degenerasi dalam kode koreksi kesalahan kuantum, di mana kita bisa mengoreksi kesalahan tertentu (kesalahan ZZ dalam kasus ini) tanpa bisa mengidentifikasinya secara unik.

Kesalahan bit-flip dan phase-flip secara bersamaan​

Kita sekarang telah melihat bagaimana kesalahan XX dan ZZ bisa dideteksi dan dikoreksi menggunakan kode Shor 9-Qubit, dan khususnya bagaimana paling banyak satu kesalahan XX atau paling banyak satu kesalahan ZZ bisa dideteksi dan dikoreksi. Sekarang misalkan kesalahan bit-flip dan phase-flip terjadi, mungkin pada Qubit yang sama. Ternyata, tidak ada yang berbeda yang perlu dilakukan dalam situasi ini dari apa yang sudah dibahas β€” kode ini mampu mendeteksi dan mengoreksi hingga satu kesalahan XX dan satu kesalahan ZZ secara bersamaan, tanpa modifikasi lebih lanjut.

Lebih tepatnya, kesalahan XX dideteksi dengan menerapkan pengukuran sindrom kode repetisi 3-bit biasa, yang dilakukan secara terpisah pada masing-masing dari tiga blok tiga Qubit; dan kesalahan ZZ dideteksi melalui prosedur yang dijelaskan tepat di atas, yang setara dengan mendekode kode dalam, melakukan pengukuran sindrom untuk kode repetisi 3-bit yang dimodifikasi untuk phase-flip, dan kemudian meng-encode ulang. Dua langkah deteksi kesalahan ini β€” serta koreksi yang bersesuaian β€” bisa dilakukan sepenuhnya secara independen satu sama lain, dan bahkan tidak masalah urutan mana yang dilakukan.

Untuk memahami mengapa ini terjadi, perhatikan contoh yang digambarkan dalam diagram Circuit berikut, di mana kesalahan XX dan ZZ telah mempengaruhi Qubit terbawah dari blok tengah.

An XZ error for the 9-qubit Shor code

Mari kita pertama-tama amati bahwa urutan kesalahan tidak masalah, dalam arti bahwa membalik posisi kesalahan XX dan ZZ menghasilkan Circuit yang setara. Untuk lebih jelasnya, XX dan ZZ tidak komut, mereka anti-komut:

XZ=(0110)(100βˆ’1)=(0βˆ’110)=βˆ’(100βˆ’1)(0110)=βˆ’ZX.XZ = \begin{pmatrix} 0 & 1\\[1mm] 1 & 0 \end{pmatrix} \begin{pmatrix} 1 & 0\\[1mm] 0 & -1 \end{pmatrix} = \begin{pmatrix} 0 & -1\\[1mm] 1 & 0 \end{pmatrix} = - \begin{pmatrix} 1 & 0\\[1mm] 0 & -1 \end{pmatrix} \begin{pmatrix} 0 & 1\\[1mm] 1 & 0 \end{pmatrix} = -ZX.

Ini berarti bahwa Circuit berikut setara dengan yang baru saja di atas hingga faktor fase global βˆ’1.-1.

A ZX error for the 9-qubit Shor code

Kita sekarang bisa memindahkan kesalahan ZZ seperti sebelumnya untuk mendapatkan Circuit setara lainnya.

A ZX error for the 9-qubit Shor code

Pada titik ini jelas bahwa jika prosedur untuk mendeteksi dan mengoreksi kesalahan XX dilakukan terlebih dahulu, kesalahan XX akan dikoreksi, setelah itu prosedur untuk mendeteksi dan mengoreksi kesalahan ZZ bisa dilakukan untuk menghilangkan kesalahan ZZ seperti sebelumnya.

Atau, prosedur untuk mendeteksi dan mengoreksi kesalahan ZZ bisa dilakukan terlebih dahulu. Fakta bahwa prosedur ini berfungsi seperti yang diharapkan, bahkan dengan adanya satu atau lebih kesalahan XX, mengikuti dari fakta bahwa gate XX pada salah satu dari sembilan Qubit yang digunakan untuk encoding komut dengan semua gate dalam Circuit yang disederhanakan kita untuk mengukur sindrom untuk kesalahan ZZ. Dengan demikian, pengukuran sindrom ini akan tetap mengidentifikasi dengan benar blok mana yang telah terpengaruh oleh kesalahan ZZ. Fakta bahwa kesalahan ZZ pada blok mana pun dikoreksi dengan menerapkan gate ZZ ke Qubit mana pun dari blok tersebut, bahkan jika kesalahan XX juga terjadi, mengikuti dari argumen yang sama di atas mengenai urutan gate XX dan ZZ yang memberikan Circuit setara hingga fase global.

Dengan demikian, kode Shor 9-Qubit bisa mengoreksi kesalahan XX, kesalahan ZZ, atau keduanya, pada salah satu dari sembilan Qubit yang digunakan untuk kode ini. Bahkan, kita bisa mengoreksi lebih banyak kesalahan dari itu, termasuk beberapa kesalahan XX (selama berada di blok yang berbeda) atau beberapa kesalahan ZZ (selama paling banyak satu blok mengalami jumlah ganjil dari mereka) β€” tetapi ke depannya, yang paling relevan untuk tujuan pelajaran ini adalah bahwa kita bisa mengoreksi kesalahan XX, kesalahan ZZ, atau keduanya pada satu Qubit mana pun.

Pengurangan kesalahan untuk kesalahan acak​

Sebelum kita beralih ke bagian terakhir pelajaran, yang berkaitan dengan kesalahan kuantum sembarangan, mari kita secara singkat mempertimbangkan kinerja kode Shor 9-Qubit ketika kesalahan yang direpresentasikan oleh matriks Pauli terjadi secara acak pada Qubit.

Lebih konkretnya, mari kita pertimbangkan model noise sederhana di mana kesalahan terjadi secara independen pada Qubit, dengan setiap Qubit mengalami kesalahan dengan probabilitas pp, dan tanpa korelasi antara kesalahan pada Qubit yang berbeda β€” sejalan dengan channel simetris biner untuk bit klasik. Kita bisa menetapkan probabilitas yang berbeda untuk kesalahan X,X, Y,Y, dan ZZ yang terjadi, tetapi untuk menjaga semuanya sesederhana mungkin, kita akan mempertimbangkan skenario terburuk untuk kode Shor 9-Qubit, yaitu bahwa kesalahan YY terjadi pada setiap Qubit yang terpengaruh. Omong-omong, kesalahan YY setara (hingga faktor fase global yang tidak relevan) dengan kesalahan XX dan ZZ yang terjadi pada Qubit yang sama, mengingat bahwa Y=iXZ.Y = iXZ. Ini menjelaskan pengabaian kesalahan YY yang tampak hingga titik ini.

Sekarang, misalkan Q\mathsf{Q} adalah Qubit dalam beberapa keadaan tertentu yang ingin kita lindungi dari kesalahan, kita bisa mempertimbangkan pilihan untuk menggunakan kode Shor 9-Qubit. Pertanyaan yang wajar untuk diajukan adalah, "Haruskah kita menggunakannya?"

Jawabannya tidak selalu "ya." Jika terlalu banyak noise, artinya dalam konteks ini bahwa pp terlalu besar, menggunakan kode Shor sebenarnya bisa memperburuk keadaan β€” sama seperti kode repetisi 3-bit lebih buruk daripada tidak ada kode ketika pp lebih besar dari setengah. Tetapi, jika pp cukup kecil, maka jawabannya adalah "ya," kita harus menggunakan kode, karena akan mengurangi kemungkinan keadaan yang di-encode menjadi rusak. Mari kita lihat mengapa ini terjadi, dan apa artinya pp terlalu besar atau cukup kecil untuk kode ini.

Kode Shor mengoreksi kesalahan Pauli mana pun pada satu Qubit, termasuk kesalahan YY tentu saja, tetapi tidak mengoreksi dengan benar dua atau lebih kesalahan YY. Untuk lebih jelasnya, kita mengasumsikan bahwa kita menggunakan koreksi kesalahan XX dan ZZ yang dijelaskan sebelumnya dalam bagian. (Tentu saja, jika kita tahu sebelumnya bahwa kita hanya perlu khawatir tentang kesalahan YY, kita akan secara alami memilih koreksi yang berbeda β€” tetapi itu curang terhadap model noise, dan kita selalu bisa mengubah model dengan memilih kesalahan Pauli yang berbeda untuk membuat pilihan koreksi baru ini gagal setiap kali dua atau lebih Qubit terpengaruh oleh kesalahan.)

Jadi, kode melindungi Q\mathsf{Q} selama paling banyak satu dari sembilan Qubit yang terpengaruh oleh kesalahan, yang terjadi dengan probabilitas

(1βˆ’p)9+9p(1βˆ’p)8.(1-p)^9 + 9 p (1-p)^8.

Jika tidak, dengan probabilitas

1βˆ’(1βˆ’p)9βˆ’9p(1βˆ’p)8,1 - (1-p)^9 - 9 p (1-p)^8,

kode gagal melindungi Q.\mathsf{Q}.

Khususnya, yang dimaksud dalam konteks ini adalah bahwa, hingga fase global, operasi Pauli non-identitas akan diterapkan ke Qubit kita Q\mathsf{Q} (sebagai Qubit logis). Artinya, jika kesalahan XX dan ZZ dideteksi dan dikoreksi untuk kode Shor seperti yang dijelaskan sebelumnya dalam pelajaran, kita akan dibiarkan dengan encoding keadaan yang setara, hingga fase global, dengan encoding operasi Pauli non-identitas yang diterapkan ke keadaan asli Q.\mathsf{Q}. Cara yang lebih ringkas untuk mengatakan ini adalah bahwa kesalahan logis telah terjadi. Itu mungkin atau tidak berpengaruh pada keadaan asli Q\mathsf{Q} β€” atau dengan kata lain Qubit logis yang telah kita encode dengan sembilan Qubit fisik β€” tetapi, demi analisis ini, kita menganggap peristiwa ini sebagai kegagalan.

Di sisi lain, jika kita tidak repot menggunakan kode, satu-satunya Qubit kita akan mengalami nasib serupa (berupa operasi Pauli non-identitas yang diterapkan) dengan probabilitas p.p. Kode membantu ketika probabilitas pertama lebih kecil dari yang kedua:

1βˆ’(1βˆ’p)9βˆ’9p(1βˆ’p)8<p.1 - (1-p)^9 - 9 p (1-p)^8 < p.

Berikut adalah plot yang mengilustrasikan, untuk nilai pp yang sangat kecil, bahwa kode memberikan keuntungan, dengan titik impas terjadi pada sekitar 0.0323.0.0323.

Error probability graph for independent Y errors using the Shor code

Jika pp lebih kecil dari titik impas ini, maka kode membantu; pada titik impas probabilitasnya sama, sehingga kita hanya membuang-buang waktu beserta 8 Qubit jika kita menggunakan kode; dan melewati titik impas kita sebaiknya sama sekali tidak menggunakan kode ini karena meningkatkan peluang kesalahan logis pada Q.\mathsf{Q}.

Tiga dan seperempat persen atau lebih mungkin tidak terlihat seperti titik impas yang sangat bagus, terutama bila dibandingkan dengan 50%,50\%, yang merupakan titik impas analogi untuk kode repetisi 3-bit untuk informasi klasik. Perbedaan ini, sebagian besar, karena informasi kuantum lebih rapuh dan lebih sulit dilindungi daripada informasi klasik. Tetapi juga β€” sambil mengakui bahwa kode Shor 9-Qubit merupakan penemuan brilian, sebagai kode koreksi kesalahan kuantum pertama di dunia β€” harus diakui bahwa sebenarnya ini bukan kode yang sangat bagus dari segi praktis.

Source: IBM Quantum docs β€” updated 15 Jan 2026
English version on doQumentation β€” updated 7 Mei 2026
This translation based on the English version of approx. 27 Mar 2026