Kod torik
Seterusnya kita akan membincangkan kod CSS tertentu yang dikenali sebagai kod torik, yang ditemui oleh Alexei Kitaev pada tahun 1997. Sebenarnya, kod torik bukan satu kod tunggal, tetapi merupakan satu keluarga kod, satu untuk setiap integer positif bermula dari 2. Kod-kod ini mempunyai beberapa sifat utama:
-
Penjana penstabilan mempunyai berat rendah, dan khususnya semuanya mempunyai berat 4. Dalam istilah teori pengekodan, kod torik adalah contoh kod semak pariti ketumpatan rendah kuantum, atau kod LDPC kuantum (di mana rendah bermaksud 4 dalam kes ini). Ini bagus kerana setiap pengukuran penjana penstabilan tidak perlu melibatkan terlalu banyak qubit.
-
Kod torik mempunyai lokaliti geometri. Ini bermakna bukan sahaja penjana penstabilan mempunyai berat rendah, tetapi juga boleh menyusun qubit secara ruang supaya setiap pengukuran penjana penstabilan hanya melibatkan qubit yang berdekatan. Pada dasarnya, ini menjadikan pengukuran ini lebih mudah dilaksanakan berbanding jika ia melibatkan qubit yang berjauhan secara ruang.
-
Ahli keluarga kod torik mempunyai jarak yang semakin besar dan boleh menoleransi kadar ralat yang agak tinggi.
Huraian kod torikβ
Biar menjadi integer positif, dan pertimbangkan kekisi dengan apa yang dipanggil sempadan berkala. Sebagai contoh, rajah ini menggambarkan kekisi untuk
Perhatikan bahawa garisan di sebelah kanan dan di bawah adalah garisan bertitik. Ini bertujuan untuk menunjukkan bahawa garisan bertitik di sebelah kanan adalah garisan yang sama dengan garisan di sebelah kiri, dan begitu juga, garisan bertitik di bawah adalah garisan yang sama dengan garisan di bahagian paling atas.
Untuk merealisasikan konfigurasi seperti ini secara fizikal memerlukan tiga dimensi. Khususnya, kita boleh membentuk kekisi itu menjadi silinder dengan terlebih dahulu menyamakan sisi kiri dan kanan, kemudian membengkokkan silinder itu supaya bulatan di hujungnya, yang dahulunya adalah tepi atas dan bawah kekisi, bertemu. Atau kita boleh menyamakan bahagian atas dan bawah terlebih dahulu kemudian bahagian sisinya; kedua-duanya berfungsi dan tidak kira mana yang kita pilih untuk tujuan perbincangan ini.
Apa yang kita perolehi ialah torus β atau dengan kata lain, donat (walaupun memikirkannya sebagai tiub dalam tayar mungkin gambaran yang lebih baik kerana ini bukan pepejal: kekisi itu telah menjadi hanya permukaan torus). Inilah asal-usul nama "kod torik".
Cara seseorang boleh "bergerak" pada torus seperti ini, antara titik bersebelahan pada kekisi, mungkin sudah biasa bagi mereka yang pernah bermain permainan video lama, di mana bergerak keluar dari bahagian atas skrin menyebabkan anda muncul di bawah, dan begitu juga untuk tepi kiri dan kanan skrin. Beginilah cara kita akan melihat kekisi dengan sempadan berkala ini, berbanding dengan bercakap secara khusus tentang torus dalam ruang 3-dimensi.
Seterusnya, qubit disusun pada tepi kekisi ini, seperti yang digambarkan dalam rajah berikut, di mana qubit ditunjukkan dengan bulatan biru pepejal.
Perhatikan bahawa qubit yang diletakkan pada garisan bertitik tidak pepejal kerana ia sudah diwakili pada garisan paling atas dan paling kiri dalam kekisi. Secara keseluruhan terdapat qubit: qubit pada garisan mendatar dan qubit pada garisan menegak.
Untuk menghuraikan kod torik itu sendiri, yang tinggal adalah menghuraikan penjana penstabilan:
-
Untuk setiap jubin yang dibentuk oleh garisan dalam kekisi, terdapat satu penjana penstabilan , yang diperoleh dengan mentensori matriks pada empat qubit yang menyentuh jubin itu bersama matriks identiti pada semua qubit yang lain.
-
Untuk setiap verteks yang dibentuk oleh garisan dalam kekisi, terdapat satu penjana penstabilan , yang diperoleh dengan mentensori matriks pada empat qubit bersebelahan dengan verteks itu bersama matriks identiti pada semua qubit yang lain.
Dalam kedua-dua kes, kita mendapat operasi Pauli berat-4. Secara individu, penjana penstabilan ini boleh digambarkan seperti berikut.
Berikut adalah ilustrasi yang menunjukkan beberapa contoh penjana penstabilan dalam konteks kekisi itu sendiri. Perhatikan bahawa penjana penstabilan yang melintasi sempadan berkala turut disertakan. Penjana yang melintasi sempadan berkala ini tidak istimewa atau berbeza dalam apa jua cara daripada yang tidak melintasinya.
Penjana penstabilan mestilah bertukar peringkat untuk ini menjadi kod penstabilan yang sah. Seperti biasa, semua penjana penstabilan bertukar peringkat antara satu sama lain, kerana bertukar peringkat dengan dirinya sendiri dan identiti bertukar peringkat dengan segalanya, dan begitu juga untuk penjana penstabilan . Penjana penstabilan dan jelas bertukar peringkat apabila ia bertindak secara bukan remeh pada set qubit yang tidak bertindih, seperti dalam contoh yang ditunjukkan dalam rajah sebelumnya. Kemungkinan yang tinggal ialah penjana penstabilan dan penjana penstabilan bertindih pada qubit di mana ia bertindak secara bukan remeh, dan apabila ini berlaku, penjana-penjana itu sentiasa bertindih pada dua qubit, seperti dalam rajah berikutnya.
Akibatnya, dua penjana penstabilan seperti ini bertukar peringkat, sama seperti dan bertukar peringkat. Oleh itu, semua penjana penstabilan bertukar peringkat antara satu sama lain.
Syarat kedua yang diperlukan pada penjana penstabilan untuk kod penstabilan ialah ia mestilah membentuk set penjanaan minimum. Syarat ini sebenarnya tidak dipenuhi oleh koleksi ini: jika kita darabkan semua penjana penstabilan bersama-sama, kita mendapat operasi identiti, dan begitu juga untuk penjana penstabilan . Oleh itu, mana-mana satu penjana penstabilan boleh dinyatakan sebagai hasil darab semua yang lain, dan begitu juga, mana-mana satu penjana penstabilan boleh dinyatakan sebagai hasil darab penjana penstabilan yang selebihnya. Namun, jika kita membuang mana-mana satu penjana penstabilan dan mana-mana satu penjana penstabilan , kita memang mendapat set penjanaan minimum.
Untuk jelaskan perkara ini, kita memang mengambil berat tentang semua penjana penstabilan secara sama rata, dan secara operasi yang ketat tidak ada keperluan untuk memilih satu penjana penstabilan setiap jenis untuk dibuang. Namun, demi menganalisis kod β dan mengira penjana khususnya β kita boleh bayangkan bahawa satu penjana penstabilan setiap jenis telah dibuang, supaya kita mendapat set penjanaan minimum, sambil ingat bahawa kita sentiasa boleh menyimpulkan keputusan penjana yang dibuang ini (dengan menganggapnya sebagai boleh cerapan) daripada keputusan semua boleh cerapan penjana penstabilan lain yang berjenis sama.
Ini meninggalkan penjana penstabilan setiap jenis, atau secara keseluruhan, dalam set penjanaan minimum (hipotetikal). Memandangkan terdapat qubit secara keseluruhan, ini bermakna kod torik mengekod qubit.
Syarat terakhir yang diperlukan pada penjana penstabilan ialah sekurang-kurangnya satu vektor keadaan kuantum ditetapkan oleh semua penjana penstabilan. Kita akan melihat bahawa ini memang berlaku apabila kita meneruskan analisis kod, tetapi juga boleh difikirkan bahawa tiada cara untuk menjana kali identiti pada semua qubit daripada penjana penstabilan.
Mengesan ralatβ
Kod torik mempunyai huraian yang mudah dan elegan, tetapi sifat pembetulan ralat kuantumnya mungkin tidak jelas pada pandangan pertama. Ternyata, ia adalah kod yang menakjubkan! Untuk memahami mengapa dan bagaimana ia berfungsi, mari kita mulakan dengan mempertimbangkan ralat yang berbeza dan sindrom yang dihasilkannya.
Kod torik adalah kod CSS, kerana semua penjana penstabilan kita sama ada penjana penstabilan atau . Ini bermakna ralat dan ralat boleh dikesan (dan mungkin diperbetulkan) secara berasingan. Sebenarnya, terdapat simetri yang mudah antara penjana penstabilan dan yang membolehkan kita menganalisis ralat dan ralat dengan cara yang pada dasarnya sama. Oleh itu, kita akan fokus pada ralat , yang mungkin dikesan oleh penjana penstabilan β tetapi keseluruhan perbincangan berikut boleh diterjemahkan daripada ralat kepada ralat , yang secara analoginya dikesan oleh penjana penstabilan .
Gambar rajah berikut menggambarkan kesan ralat pada satu qubit. Di sini, andaiannya ialah qubit kita sebelumnya berada dalam keadaan yang terkandung dalam ruang kod torik, menyebabkan semua pengukuran penjana penstabilan mengeluarkan Penjana penstabilan mengesan ralat , dan terdapat satu penjana penstabilan sedemikian untuk setiap jubin dalam rajah, jadi kita boleh menunjukkan keputusan pengukuran penjana penstabilan yang sepadan dengan warna jubin itu: keputusan ditunjukkan dengan jubin putih dan keputusan ditunjukkan dengan jubin kelabu. Jika ralat balik-bit berlaku pada salah satu qubit, kesannya ialah pengukuran penjana penstabilan yang sepadan dengan dua jubin yang menyentuh qubit yang terjejas kini mengeluarkan
Ini adalah intuitif apabila kita mempertimbangkan penjana penstabilan dan cara ia berkelakuan. Pada asasnya, setiap penjana penstabilan mengukur pariti empat qubit yang menyentuh jubin yang sepadan (berkenaan dengan asas piawai). Jadi, keputusan tidak menunjukkan bahawa tiada ralat telah berlaku pada empat qubit ini, tetapi sebaliknya menunjukkan bahawa bilangan genap ralat telah berlaku pada qubit ini, manakala keputusan menunjukkan bahawa bilangan ganjil ralat telah berlaku. Satu ralat oleh itu membalikkan pariti empat bit pada kedua-dua jubin yang disentuhnya, menyebabkan pengukuran penjana penstabilan mengeluarkan
Seterusnya mari kita perkenalkan berbilang ralat untuk melihat apa yang berlaku. Khususnya, kita akan mempertimbangkan rantaian ralat bersebelahan, di mana dua ralat adalah bersebelahan jika ia menjejaskan qubit yang menyentuh jubin yang sama.
Dua penjana penstabilan di hujung rantaian kedua-duanya memberikan keputusan dalam kes ini, kerana bilangan ganjil ralat telah berlaku pada dua jubin yang sepadan tersebut. Semua penjana penstabilan yang lain pula memberikan keputusan termasuk yang menyentuh rantaian tetapi bukan di hujungnya, kerana bilangan genap ralat telah berlaku pada qubit yang menyentuh jubin yang sepadan.
Oleh itu, selagi kita mempunyai rantaian ralat yang mempunyai hujung, kod torik akan mengesan bahawa ralat telah berlaku, menghasilkan keputusan pengukuran untuk penjana penstabilan yang sepadan dengan hujung rantaian. Perhatikan bahawa rantaian ralat yang sebenar tidak didedahkan, hanya hujung-hujungnya! Ini tiada masalah β dalam subseksyen berikutnya kita akan melihat bahawa kita tidak perlu tahu dengan tepat qubit mana yang terjejas oleh ralat untuk membetulkannya. (Kod torik adalah contoh kod yang sangat terdegenerasi, dalam erti kata bahawa ia umumnya tidak mengenal pasti secara unik ralat yang diperbetulkannya.)
Namun, adalah mungkin untuk rantaian ralat bersebelahan tidak mempunyai hujung, iaitu rantaian ralat boleh membentuk gelung tertutup, seperti dalam rajah berikut.
Dalam kes sedemikian, bilangan genap ralat telah berlaku pada setiap jubin, jadi setiap pengukuran penjana penstabilan menghasilkan keputusan . Gelung tertutup ralat bersebelahan oleh itu tidak dikesan oleh kod.
Ini mungkin kelihatan mengecewakan, kerana kita hanya memerlukan empat ralat untuk membentuk gelung tertutup (dan kita mengharapkan sesuatu yang jauh lebih baik daripada kod jarak 4). Namun, gelung tertutup ralat dalam bentuk seperti yang digambarkan dalam rajah sebelumnya sebenarnya bukan ralat β kerana ia berada dalam penstabilan! Ingat bahawa, selain penjana penstabilan , kita juga mempunyai penjana penstabilan untuk setiap verteks dalam kekisi. Dan jika kita darabkan penjana penstabilan yang bersebelahan bersama-sama, hasilnya ialah kita mendapat gelung tertutup operasi . Sebagai contoh, gelung tertutup dalam rajah sebelumnya boleh diperoleh dengan menggandakan penjana penstabilan yang ditunjukkan dalam rajah berikut.
Namun, ini bukan satu-satunya jenis gelung tertutup ralat yang boleh kita ada β dan bukan semua gelung tertutup ralat terkandung dalam penstabilan. Khususnya, jenis-jenis gelung yang berbeza boleh dicirikan seperti berikut.
-
Gelung tertutup ralat dengan bilangan genap ralat pada setiap garisan mendatar dan setiap garisan menegak qubit. (Contoh yang ditunjukkan di atas tergolong dalam kategori ini.) Gelung dalam bentuk ini sentiasa terkandung dalam penstabilan, kerana ia boleh dikecutkan menjadi tiada dengan menggandakannya dengan penjana penstabilan .
-
Gelung tertutup ralat dengan bilangan ganjil ralat pada sekurang-kurangnya satu garisan mendatar atau sekurang-kurangnya satu garisan menegak qubit. Gelung dalam bentuk ini tidak pernah terkandung dalam penstabilan dan oleh itu mewakili ralat bukan remeh yang tidak dikesan oleh kod.
Contoh gelung tertutup ralat dalam kategori kedua ditunjukkan dalam rajah berikut.
Rantaian ralat sedemikian tidak terkandung dalam penstabilan kerana setiap penjana penstabilan meletakkan bilangan genap operasi pada setiap garisan mendatar dan setiap garisan menegak qubit. Ini oleh itu adalah contoh sebenar ralat bukan remeh yang gagal dikesan oleh kod.
Kuncinya ialah satu-satunya cara untuk membentuk gelung jenis kedua ialah mengelilingi torus, sama ada mengelilingi lubang di tengah torus, melaluinya, atau kedua-duanya. Secara intuitif, rantaian ralat seperti ini tidak boleh dikecutkan menjadi tiada dengan menggandakannya dengan penjana penstabilan kerana topologi torus menghalangnya. Kod torik kadang-kadang dikategorikan sebagai kod pembetulan ralat kuantum topologi atas sebab ini. Panjang minimum gelung sedemikian ialah dan oleh itu inilah jarak kod torik: mana-mana gelung tertutup ralat dengan panjang kurang daripada mesti tergolong dalam kategori pertama, dan oleh itu terkandung dalam penstabilan; dan mana-mana rantaian ralat dengan hujung dikesan oleh kod.
Memandangkan kod torik menggunakan qubit untuk mengekod qubit dan mempunyai jarak maka ia adalah kod penstabilan .
Membetulkan ralatβ
Kita telah membincangkan pengesanan ralat untuk kod torik, dan kini kita akan membincangkan secara ringkas cara membetulkan ralat. Kod torik adalah kod CSS, jadi ralat dan ralat boleh dikesan dan diperbetulkan secara bebas. Dengan terus fokus pada penjana penstabilan , yang mengesan ralat , mari kita pertimbangkan bagaimana rantaian ralat boleh diperbetulkan. (Ralat diperbetulkan dengan cara yang simetri.)
Jika sindrom yang berbeza daripada sindrom muncul apabila penjana penstabilan diukur, keputusan mendedahkan hujung satu atau lebih rantaian ralat . Kita boleh cuba membetulkan ralat ini dengan memasangkan keputusan dan membentuk rantaian pembetulan di antara mereka. Apabila melakukan ini, masuk akal untuk memilih laluan terpendek di mana pembetulan berlaku.
Sebagai contoh, pertimbangkan rajah berikut, yang menggambarkan sindrom dengan dua keputusan , ditunjukkan oleh jubin kelabu, yang disebabkan oleh rantaian ralat yang digambarkan oleh garisan dan bulatan magenta. Seperti yang telah kita nyatakan, rantaian itu sendiri tidak didedahkan oleh sindrom; hanya hujungnya yang kelihatan.
Untuk mencuba membetulkan rantaian ralat ini, laluan terpendek antara keputusan pengukuran dipilih dan gate digunakan sebagai pembetulan pada qubit sepanjang laluan ini (ditunjukkan dengan warna kuning dalam rajah). Walaupun pembetulan mungkin tidak sepadan dengan rantaian ralat yang sebenar, ralat dan pembetulan bersama-sama membentuk gelung tertutup operasi yang terkandung dalam penstabilan kod. Oleh itu pembetulan berjaya dalam situasi ini, kerana kesan gabungan ralat dan pembetulan adalah tidak melakukan apa-apa pada keadaan yang dikodkan.
Strategi ini tidak akan selalu berjaya. Sebagai contoh, penjelasan yang berbeza untuk sindrom yang sama seperti dalam rajah sebelumnya ditunjukkan dalam rajah berikut.
Kali ini, rantaian pembetulan yang sama seperti sebelumnya gagal untuk membetulkan rantaian ralat ini, kerana kesan gabungan ralat dan pembetulan ialah kita mendapat gelung tertutup operasi yang mengelilingi torus, dan oleh itu mempunyai kesan bukan remeh pada ruang kod. Jadi, tiada jaminan bahawa strategi yang baru dihuraikan, iaitu memilih laluan terpendek pembetulan antara dua keputusan pengukuran sindrom , akan membetulkan ralat yang menyebabkan sindrom ini dengan betul.
Mungkin lebih kerap berlaku, bergantung pada model bunyi, ialah sindrom dengan lebih daripada dua entri diukur, seperti yang dicadangkan oleh rajah berikut.
Dalam kes sedemikian, terdapat strategi pembetulan yang berbeza yang diketahui. Satu strategi semula jadi ialah cuba memasangkan keputusan pengukuran dan melakukan pembetulan sepanjang laluan terpendek yang menghubungkan pasangan, seperti yang ditunjukkan dalam rajah dengan warna kuning. Khususnya, padanan sempurna berwajaran minimum antara keputusan pengukuran boleh dikira, kemudian pasangan dihubungkan oleh laluan terpendek pembetulan . Pengiraan padanan sempurna berwajaran minimum boleh dilakukan dengan cekap menggunakan algoritma klasik yang dikenali sebagai algoritma bunga, yang ditemui oleh Edmonds pada tahun 1960-an.
Pendekatan ini umumnya tidak optimum untuk model bunyi yang paling biasa dikaji, tetapi berdasarkan simulasi berangka ia berfungsi dengan sangat baik dalam praktik di bawah kadar bunyi kira-kira 10%, dengan mengandaikan ralat Pauli bebas di mana dan adalah sama berkemungkinan. Meningkatkan tidak memberi kesan ketara pada titik impas di mana kod mula membantu, tetapi mengakibatkan penurunan yang lebih pantas dalam kebarangkalian ralat logik apabila kadar ralat melepasi titik impas.