Code-Leerzeichen und Codewörter
Ein Quantenfehlerkorrekturcode wird oft mit dem Code-Raum identifiziert (Nielsen & Chuang scheinen dies sicherlich zu tun). Der Coderaum von beispielsweise einem n- Qubit-Quantenfehlerkorrekturcode ist ein Vektorsubraum C ≤ H ≤ n 2 .CnC⊆H⊗n2
Ein Codewort (Terminologie , die sich von der klassischen Theorie der Fehlerkorrektur entlehnt wurde) ist ein Zustand für einige Code-Raum , das heißt, es ist ein Zustand, der einige Daten kodiert.|ψ⟩∈C
Quantum Error Correction Codes
In der Praxis fordern wir einige nicht-triviale Eigenschaften, um einen Quantenfehlerkorrekturcode zu enthalten, wie zum Beispiel:
- Das , so dass eine Informationsmenge ungleich Null codiert wird;dimC⩾2
- Dass es eine Menge von mindestens zwei Operatoren gibt, einschließlich des Operators E 1 = 1 , so dass wir - wenn P der orthogonale Projektor auf C ist - P E j E k P = haben α j , k P
für einige Skalare α j , k (bekannt als Knill-Laflamme-Bedingungen ).E={E1,E2,…}E1=1PC
PEjEkP=αj,kP
αj,k
Dies bestimmt eine Menge von Fehlern Operatoren , gegen die man im Prinzip einen Zustand schützen , daß , wenn die Knill-Laflamme Bedingungen eine Menge von Operatoren halten E , und einige Betreiber E ∈ E auf Ihrem Zustand wirkt, ist es prinzipiell möglich , die Tatsache zu erkennen , dass E (im Gegensatz zu einigen aufgetreten ist anderer Operator in E ) und undo die Fehler, ohne die Daten in dem ursprünglichen Zustand gespeichert zu stören | & psgr; ⟩ .|ψ⟩∈CEE∈EEE|ψ⟩
Ein Quantenfehlerkorrekturcode ist ein Code-Raum , zusammen mit einem Satz von Fehlern Operatoren E , die die Knill-Laflamme Bedingungen erfüllen - das heißt, ein Quantenfehlerkorrekturcode muß es bestimmen , welche Fehler gemeint ist gegen zu schützen.CE
Warum ist es üblich, Quantenfehlerkorrekturcodes mit ihren Code-Räumen zu identifizieren
Sie können eine eindeutige Menge von Operatoren, die die Knill-Laflamme-Bedingungen erfüllen, nicht allein aus dem Code-Raum C bestimmen . Am häufigsten wird jedoch überlegt, welche Operatoren mit niedrigem Gewicht (diejenigen, die nur auf eine geringe Anzahl von Qubits einwirken) gleichzeitig durch einen Code korrigiert werden können, und in einem gewissen Ausmaß kann dies allein aus dem Code-Raum abgeleitet werden. Die Codedistanz eines Coderaums C ist die kleinste Anzahl von Qubits, auf die Sie einwirken müssen, um ein "Codewort" | zu transformieren & psgr; ⟩ & egr ; C in ein eindeutiges Codewort | ψ ′ ⟩ ∈ CECC| & psgr; ⟩ ∈ C| ψ′⟩ ∈ C. Wenn wir dann einen Code-Raum als Code besagt dies dann, dass C ⊆ H ⊗ n 2 die Dimension 2 k hat und dass die Menge E , die wir betrachten, die Menge aller Pauli-Operatoren mit einem Gewicht von höchstens ⌊ ( d - 1 ) / 2 ⌋ ist .[[ n , k , d]]C⊆ H⊗ n22kE⌊ ( d- 1) / 2⌋
In einigen Fällen wird ein Code als Code ist genug. Beispielsweise ist der 5-Qubit-Code ein [[[ n , k , d]] , und es kann gezeigt werden, dass fünf Qubits ein einzelnes Qubit nicht so codierenkönnen, dass zusätzlich zu allen Einzel-Qubit-Fehlern auchandere Fehlerkorrigiert werden können. Gleiches gilt jedoch nicht für die Steane [[[ 5 , 1 , 3 ]] Code, der sowohl gegen Single-Qubit-Pauli-Fehler als auch gegeneinige(aber nicht alle) Two-Qubit-Pauli-Fehlerschützenkann. Welche Zwei-Qubit-Pauli-Fehler Sieschützensollten, hängt von Ihrem Fehlermodell ab. und wenn Ihr Rauschen symmetrisch und unabhängig verteilt ist, spielt es keine Rolle, was Sie wählen (so dass Sie wahrscheinlich die konventionelle Wahl eines einzelnen X- Fehlers zusammen mit einem einzelnen Z- Fehlertreffen). Es ist jedoch eineWahl, die bestimmt, wie Sie Ihre Daten vor Lärm schützen.[[ 7 , 1 , 3 ]]XZ
Stabilisatorcodes
Ein Stabilisatorcode ist ein Quantenfehlerkorrekturcode, der durch eine Menge von Stabilisatorgeneratoren bestimmt wird , bei denen es sich um miteinander kommutierende Pauli-Operatoren handelt, und die einen Coderaum C durch den Schnittpunkt ihrer + 1-Eigenräume definieren. (Es ist oft nützlich, die Stabilisatorgruppe G zu betrachten, die durch Produkte von P ∈ S gebildet wird .)SC GP∈ S
Fast alle Quantenfehlerkorrekturcodes, die in der Praxis von Menschen in Betracht gezogen werden, sind Stabilisatorcodes. Dies ist einer der Gründe, warum Sie möglicherweise Probleme haben, die beiden Begriffe voneinander zu unterscheiden. Wir fordern jedoch nicht, dass ein Quantenfehlerkorrekturcode ein Stabilisatorcode ist - so wie wir im Prinzip keinen klassischen Fehlerkorrekturcode benötigen, um ein linearer Code zu sein. Stabilisatorcodes sind eine äußerst erfolgreiche Methode zur Beschreibung von Quantenfehlerkorrekturcodes, ebenso wie lineare Fehlerkorrekturcodes eine äußerst erfolgreiche Methode zur Beschreibung klassischer Fehlerkorrekturcodes sind. Tatsächlich können Stabilisatorcodes als natürliche Verallgemeinerung der Theorie der klassischen linearen Codes zur Quantenfehlerkorrektur angesehen werden.
Da die Leute oft nur an Bedienern mit geringem Gewicht interessiert sind, die weniger als die Hälfte des Codeabstands haben, ist der Satz von Stabilisatoren oft alles, was Leute über einen Stabilisatorkorrekturcode sagen. Um jedoch die Menge von Fehlern anzugeben, gegen die der Code schützen kann, ist es auch erforderlich, eine Beziehung & sgr; zwischen Pauli-Produktoperatoren E und Teilmengen S ⊆ S anzugeben , so dassEσES⊆S
- pendelt genau dannmit P ∈ S, wenn P ∈ S für σ ( E , S ) ist ;EP∈SP∈Sσ(E,S)
- Wenn erfüllen beide σ ( E , S ) und σ ( E ' , S ) , dann E E ' ∈ G = ⟨ S ⟩ .E,E′σ(E,S)σ(E′,S)EE′∈G=⟨S⟩
Dies definiert eine Menge von Fehlern, vor denen der Code schützen kann. Die Teilmengen S ⊆ S heißen Fehlersyndrome , und die Beziehung, die ich hier σ genannt habe (die Sie normalerweise nicht mit einem expliziten Namen sehen), assoziiert Syndrome mit einem oder mehreren Fehlern, die dieses Syndrom "verursachen" und deren Auswirkungen auf dem Code sind gleichwertig.
E={E∣∣∃S⊆S:σ(E,S)}
S⊆Sσ
"Syndrome" stellen Informationen dar, die tatsächlich durch "kohärente Messung" über einen Fehler erhalten werden können, dh durch Messen von Operatoren als Observablen (ein Prozess, der normalerweise durch Eigenwertschätzung simuliert wird). Ein Fehler E 'verursacht' ein Syndrom S ⊆ S, wenn für irgendein Codewort | & psgr; ⟩ & egr ; C , der Zustand E | & psgr; ⟩ ist in dem - 1 Eigenraum aller Operatoren P ∈ S und in der + 1 -eigenspace aller anderen Betreiber in SP∈SES⊆S|ψ⟩∈CE|ψ⟩−1P∈S+1S. (Diese Eigenschaft steht in direktem Zusammenhang mit der Antikommutation von mit allen Elementen von S ⊆ S und nur diesen Elementen.) ES⊆S
Ein Codewort (für einen Quantencode) ist ein Quantenzustand, der typischerweise einem Zustand in der logischen Basis zugeordnet ist. Also, du wirst einige Zustand haben Das entspricht dem Zustand 0 des Qubits codiert werden (Sie müssen Qubits nicht verwenden, aber sie sind wahrscheinlich), und Sie werden ein anderes haben , dass die | ψ 1 ⟩ Das entspricht den 1 - Zustand der Qubit - codiert werden.|ψ0⟩ |ψ1⟩
Der Coderaum ist der von den Codewörtern aufgespannte Raum, dh der gesamte Raum für alle möglichen α und β (normalisiert).α|ψ0⟩+β|ψ1⟩ α β
Ein Stabilisatorcode ist ein möglicher Formalismus, mit dem Sie lernen, wie Sie die Codewörter und damit den Code-Raum herausarbeiten. Für einen [[n, k, d]] Code erhalten Sie nk Stabilisatoroperatoren ( S 2 = I ), die sich gegenseitig austauschen und auf n Qubits einwirken. Jeder Staat | & psgr; ⟩ im Coderaum erfüllt S | & psgr; ⟩ = | & psgr; ⟩ . Sie haben weiterhin Operatoren Z m und X m für m = 1 , … k , die alle mit den Stabilisatoren S pendelnS S2=I |ψ⟩ S|ψ⟩=|ψ⟩ Zm Xm m=1,…k S aber paarweise anticommute, , für übereinstimmende Indizes. Diese definieren die logischen Pauli-Operatoren für den Code, und die Codewörter sind daher die Zustände, die Z m | erfüllen & psgr; ⟩ = & plusmn ; | & psgr; ⟩ .{Zm,Xm}=0 Zm|ψ⟩=±|ψ⟩
quelle
Der Coderaum ist der Hilbert-Raum, der von allen möglichen Codewörtern überspannt wird. Für einen Stabilisatorcode ist dieser Begriff gleichbedeutend mit dem Stabilisatorraum. Jeder Zustand innerhalb dieses Codebereichs ist ein Codewort
quelle