Mga stabilizer code
Ngayon ay tukuyin natin ang mga stabilizer code sa pangkalahatan. Tatalakayin din natin ang ilan sa kanilang mga pangunahing katangian at kung paano sila gumagana, kasama na kung paano ma-encode ang mga estado at kung paano natutuklas at naitatama ang mga error gamit ang mga code na ito.
Kahulugan ng mga stabilizer code
Ang isang -qubit stabilizer code ay tinutukoy ng isang listahan ng -qubit na mga Pauli operation, Ang mga operation na ito ay tinatawag na mga stabilizer generator sa kontekstong ito, at dapat nilang matugunan ang sumusunod na tatlong katangian.
-
Ang lahat ng stabilizer generator ay commute sa isa't isa.
-
Ang mga stabilizer generator ay bumubuo ng isang minimal generating set.
-
May hindi bababa sa isang quantum state vector na naayos ng lahat ng stabilizer generator.
(Hindi agad malinaw na ang pag-iral ng isang quantum state vector na na naayos ng lahat ng stabilizer generator, ibig sabihin ay katumbas ng ngunit totoong ganito ang kaso, at makikita natin kung bakit sa bandang huli ng aralin.)
Kung mayroon tayong ganoong listahan na ang code space na tinukoy ng mga stabilizer generator na ito ay ang subspace na na naglalaman ng bawat -qubit quantum state vector na naayos ng lahat ng na stabilizer generator na ito.
Ang mga quantum state vector sa subspace na ito ay eksakto ang mga maaaring ituring bilang mga wastong encoding ng mga quantum estado. Tatalakayin natin ang aktwal na proseso ng pag-encode sa bandang huli.
Sa wakas, ang stabilizer ng code na tinukoy ng mga stabilizer generator na ay ang set na binuo ng mga operation na ito:
Ang natural na paraan upang isipin ang isang stabilizer code ay ang tingnan ang mga stabilizer generator bilang mga observable, at kolektibong bigyang-kahulugan ang mga resulta ng mga sukat na nauugnay sa mga observable na ito bilang isang error syndrome. Ang mga wastong encoding ay -qubit quantum state vector kung saan ang mga resulta ng sukat, bilang mga eigenvalue, ay garantisadong lahat. Ang anumang iba pang syndrome, kung saan may kahit isang na resulta ng sukat, ay nagpapahiwatig na natuklas ang isang error.
Titingnan natin ang ilang halimbawa sa lalong madaling panahon, ngunit una ay ilang komento tungkol sa tatlong kondisyon sa mga stabilizer generator ang nararapat.
Ang unang kondisyon ay natural, sa liwanag ng interpretasyon ng mga stabilizer generator bilang mga observable, dahil ipinahihiwatig nito na hindi mahalaga kung sa anong pagkakasunod-sunod ginaganap ang mga sukat: ang mga observable ay commute, kaya ang mga sukat ay commute rin. Ang ito ay natural na nagpapataw ng ilang algebraic na hadlang sa mga stabilizer code na mahalaga sa kung paano sila gumagana.
Ang pangalawang kondisyon ay nangangailangan na ang mga stabilizer generator ay bumubuo ng isang minimal generating set, ibig sabihin, ang pag-aalis ng kahit isa sa kanila ay magreresulta sa isang mas maliit na stabilizer. Sa mahigpit na pagsasalita, ang kondisyong ito ay hindi talagang mahalaga sa paraan ng paggana ng mga stabilizer code sa isang operasyonal na kahulugan — at, tulad ng makikita natin sa susunod na aralin, minsan ay may saysay na pag-isipan ang mga set ng stabilizer generator para sa mga code na hindi aktwal na natutugunan ang kondisyong ito. Para sa kapakanan ng pagsusuri ng mga stabilizer code at pagpapaliwanag ng kanilang mga katangian, gayunpaman, ipagpapalagay natin na ang kondisyong ito ay nasa lugar. Sa madaling salita, tinitiyak ng kondisyong ito na ang bawat observable na sinusukat natin upang makuha ang error syndrome ay nagdadagdag ng impormasyon tungkol sa mga posibleng error, sa halip na maging redundante at gumagawa ng mga resulta na maaaring mahiwatig mula sa iba pang mga sukat ng stabilizer generator.
Ang ikatlong kondisyon ay nangangailangan na hindi bababa sa isang nonzero na vector ay naayos ng lahat ng stabilizer generator, na katumbas ng na hindi nakapaloob sa stabilizer. Ang pangangailangan para sa kondisyong ito ay nagmumula sa katotohanang posible talaga ang pumili ng isang minimal generating set ng -qubit na mga Pauli operation na lahat ay commute sa isa't isa, gayunpaman walang nonzero na vector ang naayos ng bawat isa sa mga operation. Hindi tayo interesado sa mga "code" na walang wastong encoding, kaya itinatanggal natin ang posibilidad na ito sa pamamagitan ng pag-aatas ng kondisyong ito bilang bahagi ng kahulugan.
Mga halimbawa
Narito ang ilang halimbawa ng mga stabilizer code para sa maliliit na halaga ng Makikita natin ang higit pang mga halimbawa, kasama na ang mga kung saan ang ay maaaring mas malaki, sa susunod na aralin.
3-bit repetition code
Ang 3-bit repetition code ay isang halimbawa ng isang stabilizer code, kung saan ang ating mga stabilizer generator ay at
Madali nating masusuri na ang dalawang stabilizer generator na ito ay natutugunan ang mga kinakailangang kondisyon. Una, ang dalawang stabilizer generator na at ay commute sa isa't isa.
Pangalawa, mayroon tayong minimal generating set (medyo maliwanag sa kasong ito).
At pangatlo, alam na natin na ang at pati na rin ang anumang linear na kombinasyon ng mga vector na ito, ay naayos ng parehong at Bilang alternatibo, maaari nating tapusin ito gamit ang katumbas na kondisyon mula sa kahulugan.
Ang mga kondisyong ito ay maaaring maging mas mahirap suriin para sa mas kumplikadong mga stabilizer code.
Binagong 3-bit repetition code
Sa nakaraang aralin, nakita natin na posible ang baguhin ang 3-bit repetition code upang maprotektahan laban sa mga phase-flip error sa halip na mga bit-flip error. Bilang isang stabilizer code, ang bagong code na ito ay madaling ilarawan: ang mga stabilizer generator nito ay at
Sa pagkakataong ito ang mga stabilizer generator ay kumakatawan sa mga observable sa halip na mga observable, kaya sila ay mahalagang mga parity check sa plus/minus basis sa halip na sa standard basis. Ang tatlong kinakailangang kondisyon sa mga stabilizer generator ay madaling mapatunayan, sa katulad na paraan tulad ng sa ordinaryong 3-bit repetition code.
9-qubit Shor code
Narito ang 9-qubit Shor code, na isa ring stabilizer code, na ipinahahayag ng mga stabilizer generator.
Sa kasong ito, mayroon tayong tatlong kopya ng 3-bit repetition code, isa para sa bawat isa sa tatlong bloke ng tatlong qubit, pati na rin ang huling dalawang stabilizer generator, na may hugis na kapareho ng Circuit para sa pag-detect ng mga phase flip para sa code na ito.
Ang alternatibong paraan upang pag-isipan ang huling dalawang stabilizer generator ay na sila ay may parehong hugis tulad ng para sa 3-bit repetition code para sa mga phase flip, maliban na ang ay kapalit ng na naaayon sa katotohanang ang ay tumutugma sa isang na operation sa mga logical qubit na na-encode gamit ang 3-bit repetition code.
Bago tayo lumipat sa iba pang mga halimbawa, dapat tandaan na ang mga tensor product symbol ay madalas na inalis kapag inilalarawan ang mga stabilizer code sa pamamagitan ng mga listahan ng stabilizer generator, dahil ito ay karaniwang nagpapagaan ng pagbabasa at pagkita ng kanilang mga pattern. Halimbawa, ang mga parehong stabilizer generator tulad ng nasa itaas para sa 9-qubit Shor code ay ganito ang hitsura nang hindi isinusulat nang malinaw ang mga tensor product symbol.
7-qubit Steane code
Narito ang isa pang halimbawa ng isang stabilizer code, na kilala bilang 7-qubit Steane code. Mayroon itong ilang kapansin-pansing katangian, at babalik tayo sa code na ito paminsan-minsan sa natitirang mga aralin ng kurso.
Sa ngayon, obserbahan lamang natin na ito ay isang wastong stabilizer code. Malinaw na nag-commute ang unang tatlong stabilizer generator sa isa't isa, dahil ang ay nag-commute sa sarili nito at ang identity ay nag-commute sa lahat, at katulad ang sitwasyon para sa huling tatlong stabilizer generator. Nananatili pang suriin na kung kukuha tayo ng isa sa mga -stabilizer generator (ibig sabihin, isa sa mga unang tatlo) at isa sa mga -stabilizer generator (ibig sabihin, isa sa mga huling tatlo), ang dalawang generator na ito ay nag-commute, at maaaring suriin ang 9 na posibleng pares upang patunayan iyon. Sa lahat ng kasong ito, ang isang at isang na Pauli matrix ay palaging nakahanay sa parehong posisyon nang pantay na bilang ng beses, kaya ang dalawang generator ay mag-co-commute, tulad ng at na nag-commute. Ito rin ay isang minimal generating set, at nagtatakda ito ng isang nontrivial na code space, na mga katotohanang iniiwan sa inyo upang pag-isipan.
Ang 7-qubit Steane code ay katulad ng 9-qubit Shor code sa na ini-encode nito ang isang solong qubit at nagpapahintulot ng pagwawasto ng isang arbitrary na error sa isang qubit, ngunit nangangailangan lamang ito ng 7 qubit sa halip na 9.
5-qubit code
Pitong ay hindi ang pinakamaliit na bilang ng mga qubit na kinakailangan upang mag-encode ng isang qubit at maprotektahan ito laban sa isang arbitrary na error sa isang qubit — narito ang isang stabilizer code na ginagawa ito gamit lamang ang 5 qubit.
Ang code na ito ay karaniwang tinatawag na ang 5-qubit code. Ito ang pinakamaliit na bilang ng mga qubit sa isang quantum error correcting code na maaaring magpahintulot ng pagwawasto ng isang arbitrary na single-qubit error.
Mga one-dimensional na stabilizer code
Narito ang isa pang halimbawa ng isang stabilizer code, kahit na hindi ito aktwal na nag-e-encode ng anumang qubit: ang code space ay one-dimensional. Gayunpaman, ito ay isang wastong stabilizer code pa rin ayon sa kahulugan.
Sa partikular, ang code space ay ang one-dimensional na espasyo na isinasaklaw ng isang e-bit na
Narito ang isang kaugnay na halimbawa ng isang stabilizer code na ang code space ay ang one-dimensional na espasyo na isinasaklaw ng isang GHZ state na
Dimensyon ng code space
Ipagpalagay na mayroon tayong isang stabilizer code, na inilalarawan ng -qubit na mga stabilizer generator na Marahil ang pinaka-unang tanong na pumapasok sa isip tungkol sa code na ito ay, "Ilang qubit ang ini-encode nito?"
Ang tanong na ito ay may simpleng sagot. Kung ipinapalagay na ang -qubit na mga stabilizer generator na ay natutugunan ang tatlong kinakailangan ng kahulugan (ibig sabihin, ang lahat ng stabilizer generator ay nag-commute sa isa't isa, ito ay isang minimal generating set, at ang code space ay hindi walang laman), dapat na ang code space para sa stabilizer code na ito ay may dimensyong kaya ang na mga qubit ay maaaring ma-encode gamit ang code na ito.
Sa intuitive na pagsasalita, mayroon tayong na qubit upang gamitin para sa encoding na ito, at ang bawat stabilizer generator ay epektibong "nag-aalis ng isang qubit" sa mga tuntunin ng kung ilang qubit ang maaari nating i-encode. Tandaan na hindi ito tungkol sa kung aling o gaano karaming mga error ang maaaring matuklas o maiwasto, ito ay isang pahayag lamang tungkol sa dimensyon ng code space.
Halimbawa, para sa parehong 3-bit repetition code at ang binagong bersyon ng code na iyon para sa mga phase-flip error, mayroon tayong na qubit at na stabilizer generator, at samakatuwid ang mga code na ito ay bawat isa ay maaaring mag-encode ng 1 qubit. Para sa isa pang halimbawa, isaalang-alang ang 5-qubit code: mayroon tayong 5 qubit at 4 na stabilizer generator, kaya muli ang code space ay may dimensyon 2, ibig sabihin, ang isang qubit ay maaaring ma-encode gamit ang code na ito. Para sa isang huling halimbawa, ang code na ang mga stabilizer generator ay at ay may one-dimensional na code space, na isinasaklaw ng estado na na naaayon sa pagkakaroon ng na qubit at na stabilizer generator.
Ngayon tingnan natin kung paano mapapatunayan ang katotohanang ito. Ang unang hakbang ay obserbahan na, dahil nag-commute ang mga stabilizer generator, at dahil ang bawat Pauli operation ay ang sariling inverse nito, ang bawat elemento sa stabilizer ay maaaring ipahayag bilang isang produkto
kung saan ang Katumbas nito, ang bawat elemento ng stabilizer ay nakuha sa pamamagitan ng pagpaparami ng ilang subset ng mga stabilizer generator. Sa katunayan, ang bawat elemento ng stabilizer ay maaaring ipahayag nang natatangi sa ganitong paraan, dahil sa kondisyon na ang ay isang minimal generating set.
Susunod, tukuyin ang bilang ang projection patungo sa espasyo ng mga -eigenvector ng para sa bawat Ang mga projection na ito ay maaaring makuha sa pamamagitan ng pag-average ng mga kaukulang Pauli operation kasama ang identity operation tulad ng sumusunod.
Ang code space na ay ang subspace ng lahat ng vector na naayos ng lahat ng na stabilizer generator na o katumbas nito, lahat ng na projection na
Dahil ang lahat ng stabilizer generator ay nag-commute sa isa't isa, ang mga projection na ay dapat ding nag-commute. Nagbibigay-daan ito sa atin na gumamit ng isang katotohanan mula sa linear algebra, na ang produkto ng mga projection na ito ay ang projection patungo sa interseksyon ng mga subspace na tumutugma sa mga indibidwal na projection. Ibig sabihin, ang produkto na ay ang projection patungo sa code space na
Maaari na nating palawakin ang produkto na gamit ang mga formula para sa mga projection na ito upang makuha ang sumusunod na ekspresyon.
Sa madaling salita, ang projection patungo sa code space ng isang stabilizer code ay katumbas, bilang isang matrix, sa average sa lahat ng mga elemento sa stabilizer ng code na iyon.
Sa wakas, maaari nating kalkulahin ang dimensyon ng code space sa pamamagitan ng paggamit ng katotohanang ang dimensyon ng anumang subspace ay katumbas ng trace ng projection patungo sa subspace na iyon. Kaya, ang dimensyon ng code space na ay ibinibigay ng sumusunod na formula.
Maaari nating suriin ang ekspresyong ito sa pamamagitan ng paggamit ng ilang pangunahing katotohanan.
-
Mayroon tayong at samakatuwid
-
Para sa ang produkto na ay dapat na beses ng isang Pauli operation — ngunit hindi tayo makakakuha ng dahil ito ay magsasalungat sa minimalidad ng set na at hindi tayo makakakuha ng dahil ipinagbabawal ito ng ikatlong kondisyon sa mga stabilizer generator. Samakatuwid, dahil ang trace ng bawat non-identity na Pauli operation ay zero, nakukuha natin
Ang dimensyon ng code space ay samakatuwid ay tulad ng sinabi:
Bilang karagdagan, makikita natin ngayon na ang pagpapalagay na ang ay hindi nakapaloob sa stabilizer ay nagpapahiwatig na ang code space ay dapat maglaman ng hindi bababa sa isang quantum state vector. Ito ay dahil, tulad ng napatunayan natin, ang pagpapalagay na ito ay nagpapahiwatig na ang code space ay may dimensyong na hindi maaaring maging zero. Ang kabaligtaran na implikasyon ay nangyayaring magiging trivial: kung ang ay nakapaloob sa stabilizer, ang code space ay hindi maaaring maglaman ng anumang quantum state vector, dahil walang nonzero na vector ang naayos ng operation na ito.
Mga Clifford na Operasyon at Encoding
Susunod, tatalakayin natin nang maikli kung paano naka-encode ang mga qubit gamit ang mga stabilizer code, pero para magawa iyon, kailangan muna nating ipakilala ang mga Clifford na operasyon.
Mga Clifford na Operasyon
Ang mga Clifford na operasyon ay mga unitary na operasyon, sa anumang bilang ng mga qubit, na maaaring ipatupad sa pamamagitan ng mga quantum circuit na gumagamit ng limitadong hanay ng mga Gate:
- Mga Hadamard gate
- Mga gate
- Mga CNOT gate
Pansinin na hindi kasama ang mga gate, ni ang mga Toffoli gate at Fredkin gate. Hindi lamang hindi sila kasama sa listahan — sa katunayan, hindi posibleng ipatupad ang mga gate na iyon gamit ang mga nakalistang dito; hindi sila mga Clifford na operasyon. Ang mga Pauli na operasyon naman ay mga Clifford na operasyon dahil maaari itong ipatupad gamit ang mga pagkakasunud-sunod ng Hadamard at gate.
Iyon ay isang simpleng paraan para tukuyin ang mga Clifford na operasyon, ngunit hindi nito ipinapaliwanag kung bakit ganito ang kanilang kahulugan o ano ang espesyal sa partikular na koleksyong ito ng mga gate. Ang tunay na dahilan kung bakit ganito ang kahulugan ng mga Clifford na operasyon ay ang mga ito, hanggang sa mga pandaigdigang phase factor, ay tiyak na ang mga unitary na operasyon na palaging nagko-conjugate ng mga Pauli na operasyon at nagreresulta sa mga Pauli na operasyon. Para maging mas tiyak, ang isang -qubit na unitary na operasyon ay katumbas ng isang Clifford na operasyon hanggang sa isang phase factor kung, at kung lamang, para sa bawat -qubit na Pauli na operasyon mayroon tayong
para sa ilang -qubit na Pauli na operasyon
(Pansinin na hindi posible na magkaroon ng para sa kapag ang ay unitary at ang at ay mga Pauli na operasyon. Sumusunod ito mula sa katotohanang ang matrix sa kaliwang bahagi ng equation ay parehong unitary at Hermitian, at ang at ang tanging mga pagpipilian para sa na nagpapahintulot sa kanang bahagi na maging unitary at Hermitian din.)
Madaling i-verify ang conjugation property na ito kapag ang ay isang Hadamard, o CNOT gate. Sa partikular, madali ito para sa mga Hadamard gate,
at mga gate,
Para sa mga CNOT gate, may 15 na di-pagkakakilanlan na Pauli na operasyon sa dalawang qubit na kailangang suriin. Natural, maaari silang suriin nang isa-isa — ngunit ang mga relasyon sa pagitan ng mga CNOT gate at mga at gate na nakalista (sa anyo ng circuit) sa nakaraang aralin, kasama ang mga patakaran sa pagpaparami ng mga Pauli matrix, ay nag-aalok ng shortcut patungo sa parehong konklusyon.
Kapag nalaman na natin na ang conjugation property na ito ay totoo para sa mga Hadamard, at CNOT gate, maaari tayong agad na magsimulang tapusin na ito ay totoo para sa mga circuit na binubuo ng mga gate na ito — ibig sabihin, lahat ng Clifford na operasyon.
Mas mahirap patunayan na ang relasyon ay gumagana sa kabilang direksyon, na kung ang isang ibinigay na unitary na operasyon ay nakakatugon sa conjugation property para sa mga Pauli na operasyon, kailangang posibleng ipatupad ito (hanggang sa isang global phase) gamit lamang ang Hadamard, at CNOT gate. Hindi ito ipapaliwanag sa araling ito, ngunit totoo ito.
Ang mga Clifford na operasyon ay hindi universal para sa quantum computation; hindi tulad ng mga universal na hanay ng quantum gate, hindi posible ang pag-aapproximate ng mga arbitrary na unitary na operasyon sa anumang nais na antas ng katumpakan gamit ang mga Clifford na operasyon. Sa katunayan, para sa isang ibinigay na halaga ng may limitadong bilang lamang ng mga -qubit na Clifford na operasyon (hanggang sa mga phase factor). Ang pagsasagawa ng mga Clifford na operasyon sa mga standard basis state na sinusundan ng mga standard basis measurement ay hindi rin nagbibigay-daan sa atin na magsagawa ng mga computation na wala sa abot ng mga klasikal na algorithm — dahil maaari tayong mahusay na mag-simulate ng mga computation na ganito nang klasikal. Ang katotohanang ito ay kilala bilang Gottesman-Knill theorem.
Mga Encoder para sa mga Stabilizer Code
Ang isang stabilizer code ay nagtatakda ng code space na may tiyak na dimensyon, at mayroon tayong kalayaang gamitin ang code space na iyon ayon sa ating kagustuhan — walang pumipigil sa atin na i-encode ang mga qubit sa code space na ito sa isang tiyak na paraan. Palagi itong posible, gayunpaman, na gumamit ng Clifford na operasyon bilang encoder, kung pipiliin nating gawin iyon. Para maging mas tiyak, para sa anumang stabilizer code na nagbibigay-daan sa pag-encode ng na qubit sa na qubit, may isang -qubit na Clifford na operasyon na, para sa anumang -qubit na quantum state vector mayroon tayong
na isang quantum state vector sa code space ng ating code na maaari nating interpretahin bilang encoding ng
Ito ay maganda dahil ang mga Clifford na operasyon ay medyo simple, kumpara sa mga arbitrary na unitary na operasyon, at may mga paraan para i-optimize ang kanilang implementasyon gamit ang mga teknik na katulad ng mga makikita sa patunay ng Gottesman-Knill theorem. Bilang resulta, ang mga circuit para sa pag-encode ng mga state gamit ang mga stabilizer code ay hindi kailangang maging masyadong malaki. Sa partikular, palaging posible na magsagawa ng encoding para sa isang -qubit na stabilizer code gamit ang isang Clifford na operasyon na nangangailangan ng gate. Ito ay dahil ang bawat Clifford na operasyon sa na qubit ay maaaring ipatupad ng isang circuit na may sukat na ito.
Halimbawa, narito ang isang encoder para sa 7-qubit Steane code. Ito ay talagang isang Clifford na operasyon, at gaya ng lumalabas, ang isa na ito ay hindi na kailangan pang ng mga gate.
Pagde-detect ng mga Error
Para sa isang -qubit na stabilizer code na inilalarawan ng mga stabilizer generator na ang pag-detect ng error ay gumagana sa sumusunod na paraan.
Para ma-detect ang mga error, lahat ng stabilizer generator ay sinusukat bilang mga observable. Mayroon na stabilizer generator, at samakatuwid na kinalabasan ng pagsukat, bawat isa ay o (o isang binary na halaga kung pipiliin nating iugnay ang sa at sa ayon sa pagkakasunud-sunod). Itinuturing natin ang na kinalabasan nang magkasama, bilang isang vector o string, bilang isang syndrome. Ang syndrome na ay nagpapahiwatig na walang nadetektang error, habang ang kahit isang sa loob ng syndrome ay nagpapahiwatig na may nadetektang error.
Ipagpalagay, sa partikular, na ang ay isang -qubit na Pauli na operasyon, na kumakatawan sa isang hypothetical na error. (Isinasaalang-alang lamang natin ang mga Pauli na operasyon bilang mga error, sa pamamagitan ng paraan, dahil ang discretization ng mga error ay gumagana sa parehong paraan para sa mga arbitrary na stabilizer code tulad ng para sa 9-qubit Shor code.) May tatlong kaso na nagtatakda kung nadetektahan ang bilang isang error o hindi.
Mga Kaso sa Pag-detect ng Error
-
Ang operasyon ay proporsyonal sa isang elemento sa stabilizer.
Sa kasong ito, ang ay kailangang mag-commute sa bawat stabilizer generator, kaya makukuha natin ang syndrome na Nangangahulugan ito na ang ay hindi nadetektahan bilang isang error.
-
Ang operasyon ay hindi proporsyonal sa isang elemento sa stabilizer, ngunit nagko-commute pa rin ito sa bawat stabilizer generator.
Ito ay isang error na nagbabago ng mga vector sa code space sa ilang di-trivial na paraan. Ngunit, dahil ang ay nagko-commute sa bawat stabilizer generator, ang syndrome ay kaya ang ay hindi nadetektahan ng code.
-
Ang operasyon ay nag-anti-commute sa kahit isa sa mga stabilizer generator.
Ang syndrome ay iba sa kaya ang error ay nadetektahan ng code.
Sa unang kaso, ang error ay hindi isang alalahanin dahil ang operasyong ito ay walang ginagawa sa mga vector sa code space, maliban sa posibleng mag-inject ng isang hindi-kaugnay na global phase: para sa bawat naka-encode na state na Sa esensya, hindi ito tunay na isang error — anumang di-trivial na aksyon ng ay nangyayari sa labas ng code space — kaya maganda na ang ay hindi nadetektahan bilang isang error, dahil wala namang kailangang gawin tungkol dito.
Ang ikalawang kaso, sa intuitive na pagsasalita, ay ang masamang kaso. Ito ay ang anti-commutation ng isang error sa isang stabilizer generator na nagdudulot ng na lumabas sa isang lugar sa syndrome, na nagpapahiwatig ng isang error, ngunit hindi iyon nangyayari sa kasong ito. Kaya, mayroon tayong error na nagbabago ng mga vector sa code space sa ilang di-trivial na paraan, ngunit ito ay hindi nadetektahan ng code. Halimbawa, para sa 3-bit repetition code, ang operasyon ay napapabilang sa kategoryang ito.
Ang katotohanan na ang ganitong error na ay kailangang magbago ng ilang vector sa code space sa isang di-trivial na paraan ay maaaring ipangalandakan tulad nito. Sa pamamagitan ng pagpapalagay na ang ay nagko-commute sa ngunit hindi proporsyonal sa isang stabilizer element, maaari tayong magsimulang tapusin na makakakuha tayo ng isang bago, valid na stabilizer code sa pamamagitan ng pagsasama ng bilang isang stabilizer generator kasama ang Ang code space para sa bagong code na ito, gayunpaman, ay may kalahating dimensyon lamang ng orihinal na code space, mula sa kung saan maaari tayong magsimulang tapusin na ang aksyon ng sa orihinal na code space ay hindi maaaring proporsyonal sa identity na operasyon.
Para sa huli sa tatlong kaso, na ang error ay nag-anti-commute sa kahit isa sa mga stabilizer generator, ang syndrome ay may kahit isang sa isang lugar dito, na nagpapahiwatig na may mali. Tulad ng napag-usapan na natin, ang syndrome ay hindi natatanging nagtatukoy sa sa pangkalahatan, kaya kinakailangan pa ring pumili ng correction operation para sa bawat syndrome, na maaaring o hindi makakatama sa error Tatalakayin natin ang hakbang na ito sa lalong madaling panahon, sa huling bahagi ng aralin.
Distansya ng isang Stabilizer Code
Bilang isang punto ng terminolohiya, kapag tinutukoy natin ang distansya ng isang stabilizer code, ang ibig sabihin natin ay ang pinakamababang weight ng isang Pauli na operasyon na napapabilang sa ikalawang kategorya sa itaas — ibig sabihin, nagbabago ito ng code space sa ilang di-trivial na paraan, ngunit hindi ito nadetektahan ng code. Kapag sinasabing ang isang stabilizer code ay isang na stabilizer code, gamit ang double square brackets, nangangahulugan ito ng sumusunod:
- Ang mga encoding ay may haba na na qubit,
- pinapahintulutan ng code ang pag-encode ng na qubit, at
- ang distansya ng code ay
Bilang halimbawa, isaalang-alang natin ang 7-qubit Steane code. Narito ang mga stabilizer generator para sa code na ito:
Ang code na ito ay may distansyang 3, at maaari nating ipangalandakan ito tulad nito.
Una, isaalang-alang ang anumang Pauli na operasyon na may weight na hindi hihigit sa 2, at ipagpalagay na nagko-commute ang operasyong ito sa lahat ng anim na stabilizer generator. Magsisimula tayong tapusin na ang ay kailangang maging identity na operasyon, na (tulad ng palagi) ay isang elemento ng stabilizer. Ipapakita nito na ang distansya ng code ay higit sa 2 nang mahigpit. Ipagpalagay, sa partikular, na ang ay may anyo
para sa at na posibleng di-identity na Pauli matrix. Ito ay isang kaso lamang, at kinakailangang ulitin ang argumento na sumusunod para sa lahat ng iba pang posibleng lokasyon para sa mga di-identity na Pauli matrix sa mga tensor factor ng ngunit ang argumento ay halos kapareho para sa lahat ng posibleng lokasyon.
Ang operasyon ay nagko-commute sa lahat ng anim na stabilizer generator, kaya nagko-commute ito sa dalawang ito sa partikular:
Ang tensor factor na sa ating error na ay naka-linya sa identity matrix sa parehong stabilizer generator (kaya naman sila napili). Dahil mayroon tayong mga identity matrix sa pinakakanan na 5 posisyon ng magsisimula tayong tapusin na ang ay kailangang mag-commute sa at dahil kung hindi, ang ay mag-anti-commute sa isa sa dalawang generator. Gayunpaman, ang tanging Pauli matrix na nagko-commute sa parehong at ay ang identity matrix, kaya
Ngayon na alam na natin ito, maaari tayong pumili ng dalawa pang stabilizer generator na may at sa ikalawang posisyon mula sa kaliwa, at makakakuha tayo ng katulad na konklusyon: Samakatuwid, ang ay ang identity na operasyon.
Kaya, walang paraan para ang isang error na may weight na hindi hihigit sa 2 ay hindi madetektahan ng code na ito, maliban kung ang error ay ang identity na operasyon (na nasa stabilizer at samakatuwid ay hindi tunay na isang error). Sa kabilang banda, mayroon mga weight 3 na Pauli na operasyon na nagko-commute sa lahat ng anim na stabilizer generator na ito, ngunit hindi proporsyonal sa mga stabilizer element, tulad ng at Pinapatunayan nito na ang code na ito ay may distansyang 3, gaya ng sinabi.
Pagwawasto ng mga Error
Ang huling paksa ng talakayan para sa araling ito ay ang pagwawasto ng mga error para sa mga stabilizer code. Tulad ng dati, ipagpalagay na mayroon tayong stabilizer code na tinukoy ng n-qubit na stabilizer generator na
Ang mga -qubit na Pauli na operasyon, bilang mga error na maaaring makaapekto sa mga state na naka-encode gamit ang code na ito, ay nahahati sa mga pantay na laking koleksyon ayon sa kung aling syndrome ang kanilang naisasanhi. Mayroon na natatanging syndrome at na Pauli na operasyon, na nangangahulugang mayroon na Pauli na operasyon na nagsasanhi ng bawat syndrome. Anuman sa mga error na ito ay maaaring responsable sa kaugnay na syndrome.
Gayunpaman, sa gitna ng na Pauli na operasyon na nagsasanhi ng bawat syndrome, mayroon ilang dapat ituring na katumbas. Sa partikular, kung ang produkto ng dalawang Pauli na operasyon ay proporsyonal sa isang stabilizer element, ang dalawang operasyong iyon ay epektibong katumbas bilang mga error.
Isa pang paraan para sabihin ito ay kung maglalapat tayo ng correction operation na para subukang itama ang isang error na ang pagwawasto na ito ay matagumpay hangga't ang komposisyon na ay proporsyonal sa isang stabilizer element. Dahil mayroon na elemento sa stabilizer, sumusunod na ang bawat correction operation na ay nagtutuwid ng na iba't ibang Pauli error. Nag-iiwan ito ng na hindi magkaparehong klase ng Pauli na operasyon, itinuturing bilang mga error, na naaayon sa bawat posibleng syndrome.
Nangangahulugan ito na, maliban kung ang (kung saan mayroon tayong trivial, isang-dimensional na code space), hindi natin maaaring itama ang bawat error na nadetektahan ng isang stabilizer code. Ang dapat nating gawin sa halip ay pumili ng isang correction operation para sa bawat syndrome, sa pag-asa na maitama ang isang klase lamang ng katumbas na mga error na nagsasanhi ng syndrome na ito.
Ang isang natural na estratehiya para pumili ng kung aling correction operation ang isasagawa para sa bawat syndrome ay ang pumili ng pinakamababang weight na Pauli na operasyon na, bilang isang error, ay nagsasanhi ng syndrome na iyon. Maaaring mayroon sa katunayan ng maramihang operasyon na nagtatali para sa pinakamababang weight na error na naaayon sa isang ibinigay na syndrome, kung saan anuman sa mga ito ay maaaring mapili. Ang ideya ay ang mga Pauli na operasyon na may mas mababang weight ay kumakatawan sa mas malamang na mga paliwanag para sa anumang syndrome na nasukat. Maaaring hindi ito ang kaso para sa ilang noise model, at ang isang alternatibong estratehiya ay ang mag-compute ng pinaka-malamang na error na nagsasanhi ng ibinigay na syndrome, batay sa piniling noise model. Para sa araling ito, gayunpaman, pinanatili nating simple ang mga bagay at isinasaalang-alang lamang ang mga pinakamababang weight na pagwawasto.
Para sa isang distansya na stabilizer code, ang estratehiyang ito ng pagpili ng correction operation na maging isang pinakamababang weight na Pauli na operasyon na naaayon sa nasukat na syndrome ay palaging nagbibigay-daan sa pagwawasto ng mga error na may weight na mahigpit na wala sa kalahati ng o sa ibang salita, weight na hindi hihigit sa Ipinapakita nito, halimbawa, na ang 7-qubit Steane code ay makakaitama ng anumang weight-one na Pauli error, at sa pamamagitan ng discretization ng mga error, nangangahulugan ito na ang Steane code ay makakaitama ng isang arbitrary na error sa isang qubit.
Para makita kung paano gumagana ito, isaalang-alang ang diagram sa ibaba. Ang bilog sa kaliwa ay kumakatawan sa lahat ng Pauli na operasyon na nagresulta sa syndrome na na ang syndrome na nagmumungkahi na walang naganap na error at walang mali. Sa gitna ng mga operasyong ito mayroon tayo mga elemento ng stabilizer (o mga operasyon na proporsyonal sa mga elemento ng stabilizer, para maging mas tiyak) at mayroon din tayong mga di-trivial na error na nagbabago ng code space sa ilang paraan ngunit hindi nadetektahan ng code. Sa kahulugan ng distansya, ang bawat Pauli na operasyon sa kategoryang ito ay kailangang may weight na hindi bababa sa dahil ang ay tinukoy bilang ang pinakamababang weight ng mga operasyong ito.
Ang bilog sa kanan ay kumakatawan sa mga Pauli na operasyon na nagresulta sa ibang syndrome na kabilang ang isang error na may weight na mahigpit na wala sa na ating isasaalang-alang.
Ang correction operation na na pinili para sa syndrome na ay ang pinakamababang weight na Pauli na operasyon sa koleksyon na kinakatawan ng bilog sa kanan sa diagram (o anuman sa kanila kung may tali). Kaya, maaaring ang ngunit hindi kinakailangan. Ang maaari nating sabihin nang may katiyakan, gayunpaman, ay ang ay hindi maaaring magkaroon ng weight na mas malaki kaysa sa weight ng dahil ang ay may minimal na weight sa gitna ng mga operasyon sa koleksyong ito — at samakatuwid ang ay may weight na mahigpit na wala sa
Ngayon isaalang-alang kung ano ang mangyayari kapag ang correction operation na ay inilapat sa anumang state na nakuha natin pagkatapos mangyari ang error na Ipagpalagay na ang orihinal na encoding ay naiwan tayong may Ang ating layunin ay ipakita na ang ay proporsyonal sa isang elemento sa stabilizer, na nagpapahiwatig na ang pagwawasto ay matagumpay at (hanggang sa isang global phase) naiwan tayo ng orihinal na naka-encode na state na
Una, dahil ang at ay nagsasanhi ng parehong syndrome, ang komposisyon na ay kailangang mag-commute sa bawat stabilizer generator. Sa partikular, kung ang ay anuman sa mga stabilizer generator, kailangan nating magkaroon ng
para sa parehong halaga ng dahil ito ang -th na entry sa syndrome na na parehong at ang nagge-generate. Samakatuwid, mayroon tayong
kaya nagko-commute ang sa Pinatunayan natin samakatuwid na ang ay napapabilang sa bilog sa kaliwa sa diagram, dahil nagge-generate ito ng syndrome na
Pangalawa, ang komposisyon na ay kailangang magkaroon ng weight na hindi hihigit sa kabuuan ng mga weight ng at — na sumusunod mula sa sandaling pag-iisip tungkol sa mga produkto ng Pauli na operasyon — at samakatuwid ang weight ng ay mahigpit na wala sa Nangangahulugan ito na ang ay proporsyonal sa isang elemento sa stabilizer ng ating code, na siyang nais nating ipakita. Sa pamamagitan ng pagpili ng ating mga correction operation na maging mga pinakamababang-weight na kinatawan ng hanay ng mga error na nagge-generate ng bawat syndrome, garantisado nating maitatama ang anumang Pauli error na may weight na wala sa kalahati ng distansya ng code.
Mayroon, gayunpaman, isang problema. Para sa mga stabilizer code sa pangkalahatan, ito ay isang computationally mahirap na problema ang mag-compute ng pinakamababang weight na Pauli na operasyon na nagsasanhi ng isang ibinigay na syndrome. (Sa katunayan, totoo ito kahit para sa mga klasikal na code, na sa kontekstong ito ay maaari nating isipin bilang mga stabilizer code kung saan may at lamang na matrix na lumalabas bilang mga tensor factor sa loob ng mga stabilizer generator.) Kaya, hindi tulad ng encoding step, ang mga Clifford na operasyon ay hindi darating para iligtas tayo sa pagkakataong ito.
Ang solusyon ay pumili ng mga tiyak na code kung saan ang mga magagandang pagwawasto ay maaaring ma-compute nang mahusay, na walang simpleng recipe para dito. Sa madaling salita, ang pagbuo ng mga stabilizer code kung saan ang mga magagandang correction operation ay maaaring ma-compute nang mahusay ay bahagi ng sining ng quantum code design.