LOGO
Kvantum-hibajavítás II. Gyöngyösi László BME Villamosmérnöki és Informatikai Kar
A Shor-kódolás
QECC Quantum Error Correction Coding A Shor-féle kódolás segítségével egyidejűleg mindkét típusú hiba javítható Steane-kódolás Ezen kódok összefoglaló csoportját a CSS-kódok (Calderbank, Shor, Steane) alkotják
Shor-kódolás Egyidejű védelem megvalósítása bit-hiba és fázis-hiba ellen Egyesítjük az előzőekben ismertetett megoldásokat Shor-féle 9 kvantumbites kódolás Lényege: A kódolási eljárások egyesítése
• I. Fázis-hiba elleni védelmi kód megkonstruálása • II. A kapott kvantumbitekre alkalmazzuk a bit-hiba elleni védelmi kódolást Az ismeretlen kvantumállapotot így a következő formában kódoljuk:
α 0 +β 1 6 1 α ( 000 + 111 )( 000 + 111 )( 000 + 111 ) + 2 2 1 β ( 000 − 111 )( 000 − 111 )( 000 − 111 ) . 2 2
Shor-féle hibajavító kódolás A bithibák és fázishibák együttes javításához mindkét kódolási eljárást felhasználjuk A kódoláshoz 9 kvantumbitre lesz szükségünk
α⎟0〉 + β⎟1〉 → α(⎟000〉 + ⎟111〉)⊗3 + β(⎟000〉 - ⎟111〉)⊗3 A 000, 111 állapotokkal egy bithiba, a +++, --- állapotokkal pedig egy fázishiba javítható A kód így az Y hibák javítására is alkalmas:
Y = iXZ: Y⎟0〉 = i⎟1〉, Y⎟1〉 = -i⎟0〉
Shor-féle hibajavító kódolás Az előállított kódok hogyan dekódolhatjuk? A kódolás által felhasznált 9 kvantumbitet három darab 3 kvantumbites blokkokba szervezzük Az egyes blokkok a α + + + + β − − − állapot egy-egy kódolt kvantumbitjét reprezentálják. A dekódolás eredménye 3 kvantumbit: Minden blokk legelső kvantumbitje
Feltesszük, hogy blokkonként legfeljebb egyetlen bit-flip jellegű hiba lép fel A további 6 kvantumbit állapota:0 Ezen kvantumállapotok újból felhasználhatóak, vagy eldobhatóak
Konvenció: A dekódolás lépéseit 2 csoportra osztjuk Bit-flip hiba javítása Fázisfordulás javítása
Shor-féle hibajavító kódolás Az M mérés eredményeként kapott szindróma megadja a három blokk közül melyikben lépett fel fázis-fordulás Javítása: A Z -transzformáció segítségével
Akár egyszerre mindhárom kvantumbitet is javíthatjuk az adott blokkon belül! Összefoglalva A 9 kvantumbites Shor-kód minden blokkra egyidejű védelmet biztosít az egy egyszeres bithiba és a többszörös fázisfordulási hibákkal szemben. A 9 kvantumbites Shor-kód így az összes lehetséges egy kvantumbites I,σ X ,σ Z ,σ XZ hiba ellen védelmet nyújt.
Az adott blokkon belül bármilyen fázishiba javítható, bármelyik kvantumbiten. A 9 kvantumbites kód dekódolási folyamata
Példa: Shor-féle hibajavító kódolás Tegyük fel, hogy a hiba a 4. kvantumbiten lép fel A hiba jellege: bit és fázishiba együttesen Æ
σ Xσ Z
A helyes kódolt kvantumállapot:
1 α 0 +β 1 6 α ( 000 + 111 )( 000 + 111 )( 000 + 111 ) + 2 2 1 β ( 000 − 111 )( 000 − 111 )( 000 − 111 ). 2 2 A hiba utáni kódolt kvantumállapot:
1 α ( 000 + 111 )( 100 − 011 )( 000 + 111 ) + 2 2 1 β ( 000 − 111 )( 100 + 011 )( 000 − 111 ) . 2 2
Példa: Shor-féle hibajavító kódolás Javítás menete Bit-flip hiba javítás minden blokkra Eredménye: 3 x 2 bites szindróma
• 00: Első blokkban nincs bit-hiba • 01: HIBA a második blokk az első pozícióján • 00: Harmadik blokkban nincs bit-hiba A blokkok javítása utáni állapot:
1 α ( 000 + 111 )( 000 − 111 )( 000 + 111 ) + 2 2 1 β ( 000 − 111 )( 000 + 111 )( 000 − 111 ) . 2 2
Példa: Shor-féle hibajavító kódolás Javítás menete Fázishiba javítás minden blokkra Eredménye: 1 x 2bites szindróma 10: A HIBA a második blokkon belül történt
A blokkon belüli bármelyik kvantumbitre alkalmazhatjuk a javítást végrehajtó Ztranszformációt A javítás eredménye:
1 α ( 000 + 111 )( 000 + 111 )( 000 + 111 ) + 2 2 1 β ( 000 − 111 )( 000 − 111 )( 000 − 111 ) . 2 2 Azonban továbbra is csak egyetlen kvantumbit javítható…
Konstruálhatunk többszörös hibákat javító kódrendszert?
Shor-féle hibajavító kódolás H
H
H
H
H
H
bithiba javítás fázishiba javítás
Összefoglalás: Bithiba javítás
A kódolás során redundanciát alkalmazunk
100
0
Kódolás
→ 000 →
010 001
Helyreállítás
→
000 .
Összefoglalás: Fázishiba javítás 0 HIBA
Kódolás1
→
(0
+ 1 )( 0 + 1 )( 0 + 1 )
Z1
→ ( 0 − 1 )( 0 + 1 )( 0 + 1 )
Szindróma meghatározása X1X 2
)( 0
+ 1
)( 0
+ 1
)
X2X3
)( 0
+ 1
)( 0
+ 1
)
+ 1
)
→ ( − 1) ( 0 − 1
Javítás
→ ( + 1) ( 0 − 1 Z1
→( 0 + 1
)( 0
+ 1
)( 0
Shor kód 0
Kódolás1
→
Fázis hiba
( 000
+ 111 )( 000 + 111 )( 000 + 111 )
Z1
→ ( 000 − 111 )( 000 + 111 )( 000 + 111 )
Szindróma meghatározás X1 X 2 X 3 X 4 X 5 X 6
→
( −1) ( 000 − 111 )( 000 + 111 )( 000 + 111 )
X 4 X5 X6 X7 X8 X9
→
Javítás Z1
( +1) ( 000 − 111 )( 000 + 111 )( 000 + 111 )
→ ( 000 + 111 )( 000 + 111 )( 000 + 111 )
Shor kód 0 Bithiba
Kódolás1
→
( 000
+ 111 )( 000 + 111 )( 000 + 111 )
X1
→ ( 100 + 011 )( 000 + 111 )( 000 + 111 )
Szindróma meghatározás Z1Z2
→ ( −1) ( 100 + 011 )( 000 + 111 )( 000 + 111 )
Z2Z3
Javítás
→ ( +1) ( 100 + 011 )( 000 + 111 )( 000 + 111 ) X1
→(| 000〉+ | 111〉 )(| 000〉+ | 111〉 )(| 000〉+ | 111〉 )
Stabilizátor kódok
Stabilizátor kódok A ψ állapoton fellépő E bithiba hatására: E ψ = − ψ . A kvantum-hibajavító kódolással egyértelműen detektálható a hiba jelenléte. A hiba detektálásán túl azonban annak pontos azonosítására is szükségünk lesz Az állapot megfelelő javításához az E hibát egyértelműen meg kell tudnunk különböztetni az F hibától Hogyan különböztethetjük meg egymástól az E és F hibákat?
Hibamátrix A hibákat leíró Pauli-mátrixok: anti-kommutatívak, ha AB+BA=0, azaz AB= - BA. kommutatívak, ha AB=BA, így [A,B]= AB-BA=0.
Példa : Az X és Z Pauli-művelet kommutatív?
[ X,Z ] = ⎛ 0 1 ⎞⎛ 1 0 ⎞ ⎛ 1 1 ⎞ ⎛ 0 1 ⎞ ⎜ 1 0 ⎟⎜ 0 −1⎟ − ⎜ 1 −1⎟ ⎜ 1 0 ⎟ = ⎝ ⎠⎝ ⎠ ⎝ ⎠⎝ ⎠ ⎛ 0 −2 ⎞ =⎜ ≠ 0. ⎟ ⎝2 0 ⎠
Az X és Z mátrixok tehát antikommutatívak:
{ X , Z} = ⎛ 0 1 ⎞⎛ 1 0 ⎞ ⎛ 1 ⎜ 1 0 ⎟⎜ 0 −1⎟ + ⎜ 1 ⎝ ⎠⎝ ⎠ ⎝ ⎛ 0 −1⎞ ⎛ 0 =⎜ +⎜ ⎟ ⎝0 0 ⎠ ⎝0
1 ⎞⎛ 0 1 ⎞ = ⎟⎜ ⎟ −1⎠⎝ 1 0 ⎠ 1⎞ = 0. ⎟ 0⎠
Hibamátrix A hibák típusának bevezetjük a hibamátrixok tenzorszorzatából generált M operátort. M lehetséges sajátértékei: +1, -1. Az M operátor a Pauli-mátrixokkal anti-kommutatív, így:
ψ EF ϕ = ψ EF M ϕ = ψ EF ϕ = 0, illetve ψ EF ϕ = ψ M EF ϕ = − ψ EF ϕ = 0. Milyen M operátorokat használhatunk? Az M1 és M2 operátoroknak azonban egymással kommutatívnak kell lenniük, így
AB-BA=0, azaz M1M2 − M2M1 = 0, M1M2 = M2M1.
Tenzorszorzat alakja Példa : Legyen M az X és Y Pauli-mátrixok tenzorszorzata:
⎛ 0 1⎞ ⎛ 0 −i ⎞ X= ⎜ és Y= ⎜ . ⎟ ⎟ ⎝ 1 0⎠ ⎝i 0⎠ ⎛ 0 1 ⎞ ⎛ 0 −i ⎞ M = X ⊗Y = ⎜ ⊗⎜ = ⎟ ⎟ ⎝ 1 0⎠ ⎝ i 0 ⎠ ⎛ 0 0 0 −i ⎞ ⎜0 0 i 0 ⎟ ⎟. = ⎜ ⎜ 0 −i 0 0 ⎟ ⎜ ⎟ i 0 0 0 ⎝ ⎠
Stabilizátor mátrix A stabilizátor kódokra tehát: Ha M⎟ψ〉 = ⎟ψ〉 és N⎟ψ〉 = ⎟ψ〉, akkor MN⎟ψ〉 = ⎟ψ〉. Mivel N és M operátorok kommutatívak, így: ha M⎟ψ〉 = ⎟ψ〉 és N⎟ψ〉 = ⎟ψ〉, akkor (MN-NM)⎟ψ〉 = MN⎟ψ〉 - NM⎟ψ〉 = 0
MN = NM
Az S stabilizátor kóddal csak a stabilizátor elemeivel antikommutatív hibák detektálhatóak. Azaz, a stabilizátor elemeivel kommutatív hibák nem, hiszen az S halmazon belüli M operátorok nem minősülnek hibának. A kódszó így valójában nem változik.
Hibadetektálás stabilizátorral Tegyük fel, hogy M ∈ S, valamint a fellépő E Pauli hiba anti-kommutatív az M operátorral. Ekkor: M (E⎟ψ〉) = - EM⎟ψ〉 = - E⎟ψ〉, azaz M sajátértéke -1. Hasonlóképpen, ha M és E kommutatívak minden M ∈ S esetén, akkor M (E⎟ψ〉) = EM⎟ψ〉 = E⎟ψ〉 ∀ M ∈ S, vagyis M sajátértéke +1, az összes stabilizátorbeli M-re. Az M operátor sajátértéke alapján detektálhatóak az M-el anti-kommutatív hibák. Az S halmazt a Pauli operátorok alkotják, az S stabilizátor kód k bitet n fizikai biten tárol, így S-nek összesen n-k generátora van (mérete 2n-k).
Hibadetektálás stabilizátorral Hogyan használhatjuk fel az M (E⎟ψ〉) = EM⎟ψ〉 = E⎟ψ〉, illetve M (E⎟ψ〉) = -ME⎟ψ〉 = - E⎟ψ〉 összefüggést? A hibák javításához szükséges szindrómát a kapott sajátértékek alapján hozzuk létre. Így: -ha E kommutatív az M operátorral, az M sajátértéke +1; (Nincs hiba) -ha E és az M operátor nem kommutatívak, akkor M sajátértéke -1. (Hiba)
Hibajavítás stabilizátorral A satbilizátor kóddal az összes stabilizátoron kívüli E†F hiba javítható, minden lehetséges (E, F) párosítás mellett Ha az E és F hibákhoz tartozó szindróma azonos Akkor az E és F hibák az S ugyanazon elemeivel kommutatívak
E†F ∈ S
E†F⎟ψ〉 = ⎟ψ〉
F⎟ψ〉 = E⎟ψ〉
Ekkor az E és F hibák hatása ugyanaz, így nincs szükség azok megkülönböztetésére A d távolsűgú S stabilizátor ⎣(d-1)/2⎦ hibát képes javítani, így t hiba javításához d = 2t+1 kódtávolság szükséges
Az S stabilizátor mátrix
A Z operátorokkal az X-hibákat, az X operátorokkal pedig a Z-hibákat vizsgáljuk
Az M7 és M8 méréssel az első 6, ill. az utolsó 6 kvantumbiten bekövetkezett Z-hibát detektálhatjuk.
Szindróma meghatározása A 9 kvantumbites Shor-kódolás során a helyes⎟0〉 és⎟1〉 kódszavakra az M1-M8 operátorok sajátértéke minden esetben +1. Bármilyen hiba javítása leírható az M1-M8 operátorok sorozatával
A hibajavításra használt M1-M8 operátorok halmaza alkotja az S stabilizátort Az M1-M8 operátorok a csoport generátorelemei
Összefoglalás Shor-féle 9 kvantumbites kódolás 1 kvantumbit kódolása 9 kvantumbiten • 3 blokk x 3 kvantumbit Védelem: • 1 bit-flip hiba javítása minden blokkban • 1 fázishiba javítása egyetlen adott blokkon belül, tetszőleges számú kvantumállapotra • A 3-féle hiba ellen nyújt védelmet: X, Z, Y=XZ • A védelem egyetlen kvantumbitre terjed ki A kód így egy tetszőleges, egyszeres (egy-kvantumbites) hiba ellen megfelelő védelmet nyújt Többszörös (több-kvantumbites) hibák azonban nem javíthatók
5 kvantumbites kód Az 5 kvantumbites Shor-kód S stabilizátor mátrixa: n = 5 kvantumbit - 4 generátor elem k = 1 kódolt kvantumbit A kódtávolság d=3. Jelölés: [[n,k,d]], ahol k: logikai bitek száma, n: fizikai kvantumbitek száma, kódtávolság: d. Az 5 kvantumbites kódra: [[5,1,3]]. … és az alsó két sor?
5 kvantumbites kód Az alsó 2 operátor kommutatív a stabilizátorral, azonban annak nem eleme. Az X illetve Z Pauli kapuknak feleltethetőek meg. Tulajdonságok:
X
Z⊗Z⊗Z⊗Z⊗ I⊗ I⊗ I Z⊗Z⊗ I⊗ I⊗Z⊗Z⊗ I Z⊗ I⊗Z⊗ I⊗Z⊗ I⊗Z X⊗X⊗X⊗X⊗I⊗ I⊗ I X⊗X⊗ I⊗ I⊗X⊗X⊗I X⊗ I⊗X⊗ I⊗X⊗ I⊗X X⊗X⊗X⊗X⊗X⊗X⊗X
Az 1 általános hiba javíthatóságához szükséges legkisebb méretű stabilizátor kód. Egy Mx operátor és egy tetszőleges, kétkvantumbites Pauli mátrix szorzata antikommutatív a 4 operátor legalább egyikével (AB = -BA)
X és Z operátorok Az alsó 2 operátor kommutatív a stabilizátorral, azonban annak nem eleme. Az X illetve Z Pauli kapuknak feleltethetőek meg.
X
Z⊗Z⊗Z⊗Z⊗ I⊗ I⊗ I Z⊗Z⊗ I⊗ I⊗Z⊗Z⊗ I Z⊗ I⊗Z⊗ I⊗Z⊗ I⊗Z X⊗X⊗X⊗X⊗I⊗ I⊗ I X⊗X⊗ I⊗ I⊗X⊗X⊗I X⊗ I⊗X⊗ I⊗X⊗ I⊗X X⊗X⊗X⊗X⊗X⊗X⊗X
Feladatuk: A szindrómaszámítás során fellépő hibák javítása, a hibaterjedés megakadályozása
Hibaterjedés megakadályozása Z ⊗ Z ⊗ Z ⊗ Z mérése, hibaterjedés-javítás nélkül Kódolt állapot ⎟0〉
Az itt fellépő hiba 2 kvantumbitre is kihatással lesz.
Hibaterjedés megakadályozása Z ⊗ Z ⊗ Z ⊗ Z mérése, hibaterjedés-javítással
Kódolt állapot
⎟0000〉 + ⎟1111〉
H H H H
Paritás meghatározása
5 kvantumbites Shor-kód Példa: A bázis kódszavakat jelöljük a következőképpen: A kódszavakat az M1-M4 generátorelemekkel állítjuk elő:
5 kvantumbites Shor-kód Valamint:
Vajon készíthető az 5 kvantumbites a [[5,1,3]] kódnál hatékonyabb kvantum-kód?
Felhasznált összefüggések
Optimálisabb kód? 1. No-cloning tétel: Nem létezik olyan n kvantumbites hibajavító kódolás, amellyel n/2 törléses hiba javítható
2. Hibajavító kódok tulajdonsága: Amely kód képes t hiba javítására, azzal 2t törléses hiba javítható. (ttörléses = (1/2) x thiba)
1+2. Nem létezik olyan n kvantumbites hibajavító kód, amellyel (n/2)*1/2 hiba javítható. Ha t≥n/4, a hiba nem javítható! Így n=4 esetén 1 hiba sem javítható
Optimálisabb kód? Törléses hiba: A hiba helye ismert, annak típusa (I, X, Y, vagy Z) azonban nem
A hibajavító kódok tulajdonságaiból adódóan: t hiba javítása
2t törléses hiba javítása
Tegyük fel, hogy létezik olyan 4kvantumbites kód, amellyel 2 törléses hiba javítható. Ekkor páronként 1 törléses hiba lenne javítható, amellyel klónoznánk az eredeti állapotot.