Langkau ke kandungan utama

Kod ulangan

Kita akan memulakan pelajaran dengan perbincangan tentang kod ulangan. Kod ulangan tidak melindungi maklumat kuantum daripada setiap jenis ralat yang boleh berlaku pada Qubit, tetapi ia membentuk asas kepada kod Shor 9-Qubit, yang akan kita lihat dalam pelajaran seterusnya, dan ia juga berguna untuk menerangkan asas-asas pembetulan ralat.

Pengekodan dan penyahkodan klasik​

Kod ulangan adalah contoh paling asas bagi kod pembetulan ralat. Ideanya ialah kita boleh melindungi bit daripada ralat dengan hanya mengulang setiap bit beberapa kali tetap.

Khususnya, marilah kita pertimbangkan dahulu kod ulangan 3-bit, hanya dalam konteks maklumat klasik untuk bermula. Kod ini mengekodkan satu bit ke dalam tiga dengan mengulang bit tiga kali, jadi 00 dikodkan sebagai 000000 dan 11 dikodkan sebagai 111.111.

0↦0001↦111\begin{aligned} 0 & \mapsto 000\\ 1 & \mapsto 111 \end{aligned}

Jika tiada yang berlaku, kita jelas boleh membezakan dua kemungkinan untuk bit asal daripada pengekodan mereka. Perkara yang penting ialah jika ada ralat dan salah satu daripada tiga bit terbalik, bermakna 0 bertukar menjadi 1 atau 1 bertukar menjadi 0, kita masih boleh mengetahui apa bit asal dengan menentukan nilai binari mana yang muncul dua kali. Secara setara, kita boleh menyahkodkan dengan mengira nilai majoriti (iaitu nilai binari yang paling kerap muncul).

abc↦majority⁑(a,b,c)a b c \mapsto \operatorname{majority}(a,b,c)

Sudah tentu, jika 2 atau 3 bit pengekodan terbalik, maka penyahkodan tidak akan berfungsi dengan betul dan bit yang salah akan dipulihkan, tetapi jika paling banyak 1 daripada 3 bit terbalik, penyahkodan akan betul. Ini adalah sifat biasa kod pembetulan ralat secara umum: ia mungkin membenarkan pembetulan ralat, tetapi hanya jika tidak terlalu banyak.

Pengurangan hingar untuk saluran simetri binari​

Sebagai contoh situasi di mana peluang membuat ralat boleh dikurangkan menggunakan kod ulangan, andaikan matlamat kita adalah untuk menyampaikan satu bit kepada penerima hipotetikal, dan kita boleh menghantar bit melalui saluran yang dipanggil saluran simetri binari, yang membalikkan setiap bit yang dihantar melaluinya secara bebas dengan kebarangkalian pp tertentu. Iaitu, dengan kebarangkalian 1βˆ’p,1-p, penerima mendapat bit yang dihantar melalui saluran, tetapi dengan kebarangkalian p,p, bit terbalik dan penerima mendapat nilai bit yang bertentangan.

Jadi, jika kita memilih untuk tidak menggunakan kod ulangan 3-bit, dan hanya menghantar bit yang kita fikirkan melalui saluran, penerima oleh itu menerima bit yang salah dengan kebarangkalian p.p. Sebaliknya, jika kita mula-mula mengekodkan bit yang ingin kita hantar menggunakan kod ulangan 3-bit, dan kemudian menghantar setiap tiga bit pengekodan melalui saluran, maka setiap satunya akan terbalik secara bebas dengan kebarangkalian p.p. Peluang bit-flip kini lebih besar kerana kini ada tiga bit yang mungkin terbalik dan bukannya satu, tetapi jika paling banyak satu bit terbalik, maka penerima akan menyahkod dengan betul. Oleh itu, ralat hanya kekal selepas penyahkodan jika dua atau lebih bit terbalik semasa penghantaran.

Kebarangkalian dua bit terbalik semasa penghantaran adalah 3p2(1βˆ’p),3p^2(1-p), iaitu p2(1βˆ’p)p^2(1-p) untuk setiap tiga pilihan bit yang tidak terbalik, manakala kebarangkalian ketiga-tiga bit terbalik adalah p3.p^3. Jumlah kebarangkalian dua atau tiga bit-flip adalah oleh itu

3p2(1βˆ’p)+p3=3p2βˆ’2p3.3 p^2 (1 - p) + p^3 = 3 p^2 - 2 p^3.

Untuk nilai pp yang lebih kecil daripada satu perdua, ini menghasilkan penurunan dalam kebarangkalian bahawa penerima akhirnya mendapat bit yang salah. Masih akan ada peluang ralat dalam kes ini, tetapi kod itu mengurangkan kemungkinannya. (Untuk nilai pp yang lebih besar daripada satu perdua, sebaliknya, kod itu sebenarnya meningkatkan kemungkinan bahawa penerima mendapat bit yang salah.)

Graf kebarangkalian ralat untuk kod ulangan 3-bit bagi saluran simetri binari

Pengekodan Qubit​

Kod ulangan 3-bit adalah kod pembetulan ralat klasik, tetapi kita boleh mempertimbangkan apa yang berlaku jika kita cuba menggunakannya untuk melindungi Qubit daripada ralat. Seperti yang akan kita lihat, ia bukan kod pembetulan ralat kuantum yang sangat bagus, kerana ia sebenarnya menjadikan beberapa ralat lebih berkemungkinan. Walau bagaimanapun, ia adalah langkah pertama ke arah kod Shor, dan akan berguna dari sudut pedagogi.

Untuk jelaskan, apabila kita merujuk kepada kod ulangan 3-bit yang digunakan untuk Qubit, kita membayangkan pengekodan Qubit di mana keadaan asas piawai diulang tiga kali, supaya vektor keadaan satu-Qubit dikodkan seperti berikut.

α∣0⟩+β∣1βŸ©β†¦Ξ±βˆ£000⟩+β∣111⟩\alpha \vert 0\rangle + \beta \vert 1\rangle \mapsto \alpha \vert 000\rangle + \beta \vert 111\rangle

Pengekodan ini mudah dilaksanakan oleh Circuit kuantum berikut, yang menggunakan dua Qubit ruang kerja yang diinialisasi dan dua Gate controlled-NOT.

Circuit pengekodan untuk kod ulangan 3-bit

Perhatikan, khususnya, bahawa pengekodan ini tidak sama dengan mengulang keadaan kuantum tiga kali, seperti vektor keadaan Qubit tertentu yang dikodkan sebagai βˆ£ΟˆβŸ©β†¦βˆ£ΟˆβŸ©βˆ£ΟˆβŸ©βˆ£ΟˆβŸ©.\vert\psi\rangle \mapsto \vert\psi\rangle\vert\psi\rangle\vert\psi\rangle. Pengekodan sedemikian tidak boleh dilaksanakan untuk keadaan kuantum yang tidak diketahui ∣ψ⟩\vert\psi\rangle oleh teorem tiada-pengklonan.

Ralat bit-flip​

Sekarang andaikan bahawa ralat berlaku selepas pengekodan dilakukan. Khususnya, marilah kita andaikan bahawa Gate XX, atau dengan kata lain bit-flip, berlaku pada salah satu Qubit. Sebagai contoh, jika Qubit tengah mengalami bit-flip, keadaan tiga Qubit diubah menjadi keadaan ini:

α∣010⟩+β∣101⟩.\alpha \vert 010\rangle + \beta \vert 101\rangle.

Sudah tentu, ini bukan satu-satunya jenis ralat yang boleh berlaku β€” dan ia juga wajar mempersoalkan andaian bahawa ralat mengambil bentuk operasi unitari yang sempurna. Kita akan kembali kepada isu-isu ini dalam bahagian terakhir pelajaran, dan buat masa ini kita boleh melihat ralat dalam bentuk ini sebagai hanya satu jenis ralat yang mungkin (walaupun yang paling penting secara asas).

Kita boleh melihat dengan jelas daripada ungkapan matematik untuk keadaan di atas bahawa bit tengah adalah yang berbeza di dalam setiap ket. Tetapi andaikan kita mempunyai tiga Qubit dalam pegangan kita dan tidak mengetahui keadaannya. Jika kita mengesyaki bahawa bit-flip mungkin telah berlaku, satu pilihan untuk mengesahkan bahawa bit terbalik ialah melakukan pengukuran asas piawai, yang, dalam kes yang dihadapi, akan menyebabkan kita melihat 010010 atau 101101 dengan kebarangkalian ∣α∣2\vert\alpha\vert^2 dan ∣β∣2,\vert\beta\vert^2, masing-masing. Dalam mana-mana kes, kesimpulan kita ialah bit tengah terbalik β€” tetapi, sayangnya, kita akan kehilangan keadaan kuantum asal α∣0⟩+β∣1⟩.\alpha\vert 0\rangle + \beta \vert 1\rangle. Inilah keadaan yang kita cuba lindungi, jadi mengukur dalam asas piawai adalah pilihan yang tidak memuaskan.

Yang boleh kita lakukan sebaliknya ialah menggunakan Circuit kuantum berikut, dengan memasukkan keadaan yang dikodkan ke dalam tiga Qubit atas. Circuit ini mengukur pariti keadaan asas piawai dua Qubit atas serta dua Qubit bawah daripada pengekodan tiga-Qubit secara tidak merosakkan.

Circuit pengesanan ralat untuk kod ulangan 3-bit

Dengan andaian bahawa paling banyak satu bit terbalik, seseorang boleh dengan mudah menyimpulkan daripada hasil pengukuran lokasi bit-flip (atau ketiadaannya). Khususnya, seperti yang ditunjukkan oleh empat gambar rajah Circuit berikut, hasil pengukuran 0000 menunjukkan tiada bit-flip berlaku, manakala tiga kemungkinan lain menunjukkan Qubit mana yang mengalami bit-flip.

Pengesanan ralat untuk kod ulangan 3-bit (tiada ralat)

Pengesanan ralat untuk kod ulangan 3-bit (ralat pada qubit 0)

Pengesanan ralat untuk kod ulangan 3-bit (ralat pada qubit 1)

Pengesanan ralat untuk kod ulangan 3-bit (ralat pada qubit 2)

Yang penting, keadaan tiga Qubit atas tidak runtuh dalam mana-mana kes, yang membolehkan kita membetulkan ralat bit-flip jika ia berlaku β€” dengan hanya menggunakan bit-flip yang sama lagi dengan Gate XX. Jadual berikut meringkaskan keadaan yang kita peroleh daripada paling banyak satu bit-flip, hasil pengukuran (yang dipanggil sindrom dalam konteks pembetulan ralat), dan pembetulan yang diperlukan untuk kembali ke pengekodan asal.

KeadaanSindromPembetulan
α∣000⟩+β∣111⟩\alpha\vert 000\rangle + \beta \vert 111\rangle0000IβŠ—IβŠ—I\mathbb{I}\otimes\mathbb{I}\otimes\mathbb{I}
α∣001⟩+β∣110⟩\alpha\vert 001\rangle + \beta \vert 110\rangle0101IβŠ—IβŠ—X\mathbb{I}\otimes\mathbb{I}\otimes X
α∣010⟩+β∣101⟩\alpha\vert 010\rangle + \beta \vert 101\rangle1111IβŠ—XβŠ—I\mathbb{I}\otimes X\otimes\mathbb{I}
α∣100⟩+β∣011⟩\alpha\vert 100\rangle + \beta \vert 011\rangle1010XβŠ—IβŠ—IX\otimes\mathbb{I}\otimes\mathbb{I}

Sekali lagi, kita hanya mempertimbangkan kemungkinan bahawa paling banyak satu bit-flip berlaku. Ini tidak akan berfungsi dengan betul jika dua atau tiga bit-flip berlaku, dan kita juga belum mempertimbangkan ralat lain selain bit-flip.

Ralat phase-flip​

Dalam tetapan kuantum, ralat bit-flip bukan satu-satunya ralat yang perlu kita bimbangkan. Sebagai contoh, kita juga perlu bimbang tentang ralat phase-flip, yang digambarkan oleh Gate ZZ. Seiring dengan ralat bit-flip, kita boleh memikirkan ralat phase-flip sebagai mewakili hanya satu lagi kemungkinan untuk ralat yang boleh mempengaruhi sesebuah Qubit.

Walau bagaimanapun, seperti yang akan kita lihat dalam bahagian terakhir pelajaran, yang berkaitan dengan pendiskretan ralat bagi kod pembetulan ralat kuantum, fokus pada ralat bit-flip dan ralat phase-flip ternyata sangat dijustifikasi. Khususnya, keupayaan untuk membetulkan ralat bit-flip, ralat phase-flip, atau kedua-dua ralat ini secara serentak secara automatik membawa kepada keupayaan untuk membetulkan sebarang ralat kuantum sewenang-wenang pada satu Qubit.

Malangnya, kod ulangan 3-bit tidak melindungi langsung terhadap phase-flip. Sebagai contoh, andaikan keadaan Qubit α∣0⟩+β∣1⟩\alpha\vert 0\rangle + \beta\vert 1\rangle telah dikodkan menggunakan kod ulangan 3-bit, dan ralat phase-flip berlaku pada Qubit tengah. Ini menghasilkan keadaan

(IβŠ—ZβŠ—I)(α∣000⟩+β∣111⟩)=α∣000βŸ©βˆ’Ξ²βˆ£111⟩,(\mathbb{I} \otimes Z \otimes \mathbb{I}) ( \alpha \vert 000\rangle + \beta \vert 111\rangle) = \alpha \vert 000\rangle - \beta \vert 111\rangle,

yang merupakan tepat keadaan yang kita akan peroleh daripada pengekodan keadaan Qubit α∣0βŸ©βˆ’Ξ²βˆ£1⟩.\alpha\vert 0\rangle - \beta\vert 1\rangle. Memang, ralat phase-flip pada mana-mana satu daripada tiga Qubit pengekodan mempunyai kesan yang sama, iaitu setara dengan ralat phase-flip yang berlaku pada Qubit asal sebelum pengekodan. Dengan andaian bahawa keadaan kuantum asal adalah keadaan yang tidak diketahui, oleh itu tiada cara untuk mengesan bahawa ralat telah berlaku, kerana keadaan yang terhasil adalah pengekodan yang sah sempurna bagi keadaan Qubit yang berbeza. Khususnya, menjalankan Circuit pengesanan ralat dari sebelumnya pada keadaan α∣000βŸ©βˆ’Ξ²βˆ£111⟩\alpha \vert 000\rangle - \beta \vert 111\rangle pasti akan menghasilkan sindrom 00,00, yang secara salahnya mencadangkan tiada ralat berlaku.

Sementara itu, kini terdapat tiga Qubit dan bukannya satu yang berpotensi mengalami ralat phase-flip. Jadi, dalam situasi di mana ralat phase-flip diasumsikan berlaku secara bebas pada setiap Qubit dengan kebarangkalian bukan sifar pp (serupa dengan saluran simetri binari kecuali untuk phase-flip dan bukannya bit-flip), kod ini sebenarnya meningkatkan kemungkinan ralat phase-flip selepas penyahkodan untuk nilai pp yang kecil. Lebih tepat lagi, kita akan mendapat ralat phase-flip pada Qubit asal selepas penyahkodan bila-bila masa terdapat bilangan ganjil ralat phase-flip pada tiga Qubit pengekodan, yang berlaku dengan kebarangkalian

3p(1βˆ’p)2+p3.3 p (1 - p)^2 + p^3.

Nilai ini lebih besar daripada pp apabila 0<p<1/2,0<p<1/2, jadi kod itu meningkatkan kebarangkalian ralat phase-flip untuk nilai pp dalam julat ini.

Kod ulangan yang diubahsuai untuk ralat phase-flip​

Kita telah memerhatikan bahawa kod ulangan 3-bit sama sekali tidak menyedari ralat phase-flip, jadi nampaknya tidak begitu membantu untuk menangani jenis ralat ini. Namun, kita boleh mengubahsuai kod ulangan 3-bit dengan cara yang mudah supaya ia mengesan ralat phase-flip. Pengubahsuaian ini akan menjadikan kod tidak menyedari ralat bit-flip β€” tetapi, seperti yang akan kita lihat dalam bahagian seterusnya, kita boleh menggabungkan kod ulangan 3-bit dengan versi yang diubahsuai ini untuk mendapatkan kod Shor, yang boleh membetulkan kedua-dua ralat bit-flip dan phase-flip.

Berikut adalah versi yang diubahsuai daripada Circuit pengekodan dari atas, yang kini akan dapat mengesan ralat phase-flip. Pengubahsuaiannya sangat mudah: kita hanya menggunakan Gate Hadamard pada setiap Qubit selepas melakukan dua Gate controlled-NOT.

Circuit pengekodan yang diubahsuai untuk kod ulangan 3-bit

Gate Hadamard mengubah keadaan ∣0⟩\vert 0\rangle kepada keadaan ∣+⟩\vert + \rangle, dan keadaan ∣1⟩\vert 1\rangle kepada keadaan βˆ£βˆ’βŸ©\vert - \rangle, jadi kesan keseluruhannya ialah keadaan Qubit tunggal α∣0⟩+β∣1⟩\alpha\vert 0\rangle + \beta \vert 1\rangle dikodkan sebagai

α∣+ + +⟩+Ξ²βˆ£βˆ’β€‰βˆ’β€‰βˆ’βŸ©\alpha \vert {+}\,{+}\,{+} \rangle + \beta \vert {-}\,{-}\,{-} \rangle

di mana ∣+ + +⟩=∣+βŸ©βŠ—βˆ£+βŸ©βŠ—βˆ£+⟩\vert {+}\,{+}\,{+} \rangle = \vert + \rangle \otimes \vert + \rangle \otimes\vert + \rangle dan βˆ£βˆ’β€‰βˆ’β€‰βˆ’βŸ©=βˆ£βˆ’βŸ©βŠ—βˆ£βˆ’βŸ©βŠ—βˆ£βˆ’βŸ©.\vert {-}\,{-}\,{-} \rangle = \vert - \rangle \otimes \vert - \rangle \otimes\vert - \rangle.

Ralat phase-flip, atau secara setara Gate ZZ, membalikkan antara keadaan ∣+⟩\vert + \rangle dan βˆ£βˆ’βŸ©\vert - \rangle, jadi pengekodan ini akan berguna untuk mengesan (dan membetulkan) ralat phase-flip. Khususnya, Circuit pengesanan ralat dari sebelumnya boleh diubahsuai seperti berikut.

Circuit pengesanan ralat fasa untuk kod ulangan 3-bit

Dengan kata lain, kita mengambil Circuit dari sebelumnya dan hanya meletakkan Gate Hadamard pada tiga Qubit atas di bahagian awal dan akhir. Ideanya ialah tiga Gate Hadamard pertama mengubah keadaan ∣+⟩\vert + \rangle dan βˆ£βˆ’βŸ©\vert - \rangle kembali kepada keadaan ∣0⟩\vert 0\rangle dan ∣1⟩\vert 1\rangle, semakan pariti yang sama seperti sebelumnya berlaku, dan kemudian lapisan kedua Gate Hadamard mengubah keadaan kembali kepada keadaan ∣+⟩\vert + \rangle dan βˆ£βˆ’βŸ©\vert - \rangle supaya kita memulihkan pengekodan kita. Untuk rujukan masa hadapan, marilah kita perhatikan bahawa Circuit pengesanan phase-flip ini boleh dipermudahkan seperti berikut.

Circuit pengesanan ralat fasa yang dipermudahkan

Empat gambar rajah Circuit berikut menerangkan bagaimana versi yang diubahsuai kod ulangan 3-bit kita, termasuk langkah pengekodan dan langkah pengesanan ralat, berfungsi apabila paling banyak satu ralat phase-flip berlaku. Tingkah lakunya serupa dengan kod ulangan 3-bit biasa untuk bit-flip.

Pengesanan ralat phase-flip untuk kod ulangan 3-bit yang diubahsuai (tiada ralat)

Pengesanan ralat phase-flip untuk kod ulangan 3-bit yang diubahsuai (ralat pada qubit 0)

Pengesanan ralat phase-flip untuk kod ulangan 3-bit yang diubahsuai (ralat pada qubit 1)

Pengesanan ralat phase-flip untuk kod ulangan 3-bit yang diubahsuai (ralat pada qubit 2)

Berikut adalah jadual yang serupa dengan yang di atas, kali ini mempertimbangkan kemungkinan paling banyak satu ralat phase-flip.

KeadaanSindromPembetulan
α∣+ + +⟩+Ξ²βˆ£βˆ’β€‰βˆ’β€‰βˆ’βŸ©\alpha\vert {+}\,{+}\,{+} \rangle + \beta \vert {-}\,{-}\,{-}\rangle0000IβŠ—IβŠ—I\mathbb{I}\otimes\mathbb{I}\otimes\mathbb{I}
α∣+ +β€‰βˆ’βŸ©+Ξ²βˆ£βˆ’β€‰βˆ’β€‰+⟩\alpha\vert {+}\,{+}\,{-}\rangle + \beta \vert {-}\,{-}\,{+}\rangle0101IβŠ—IβŠ—Z\mathbb{I}\otimes\mathbb{I}\otimes Z
α∣+β€‰βˆ’β€‰+⟩+Ξ²βˆ£βˆ’β€‰+β€‰βˆ’βŸ©\alpha\vert {+}\,{-}\,{+}\rangle + \beta \vert {-}\,{+}\,{-}\rangle1111IβŠ—ZβŠ—I\mathbb{I}\otimes Z\otimes\mathbb{I}
Ξ±βˆ£βˆ’β€‰+ +⟩+β∣+β€‰βˆ’β€‰βˆ’βŸ©\alpha\vert {-}\,{+}\,{+} \rangle + \beta \vert {+}\,{-}\,{-}\rangle1010ZβŠ—IβŠ—IZ\otimes\mathbb{I}\otimes\mathbb{I}

Malangnya, versi yang diubahsuai kod ulangan 3-bit ini kini tidak lagi boleh membetulkan ralat bit-flip. Namun, tidak semua harapan hilang. Seperti yang dicadangkan sebelumnya, kita akan dapat menggabungkan dua kod yang baru kita lihat menjadi satu kod β€” kod Shor 9-Qubit β€” yang boleh membetulkan kedua-dua ralat bit-flip dan phase-flip, malah sebarang ralat pada satu Qubit.

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. 26 Mac 2026