Stabilizer code
Template:Short description Lua error in package.lua at line 80: module 'Module:Category handler/data' not found.
In quantum computing and quantum communication, a stabilizer code is a class of quantum codes for performing quantum error correction. The toric code, and surface codes more generally,[1] are types of stabilizer codes considered very important for the practical realization of quantum information processing. In fact, the toric code and surface codes also belong to a special class of stabilizer codes, CSS codes. An example of a stabilizer code that is not a CSS code is the five-qubit error correcting code.
Stabilizer codes are strikingly similar to classical linear block codes in their operation and performance. Just as a classical linear block code can be defined by its parity-check matrix, a quantum stabilizer code also has a "parity check" structure defined by its stabilizers. However, stabilizers for a n-qubit code are n-qubit Pauli operators instead of classical n-bit strings, and they must all commute with each other for the code to be valid.
The theory of stabilizer codes allows one to import some classical binary or quaternary codes for use as a quantum code. However, when importing the classical code, it must satisfy the dual-containing (or self-orthogonality) constraint. Researchers have found many examples of classical codes satisfying this constraint, but most classical codes do not. Nevertheless, it is still useful to import classical codes in this way. The entanglement-assisted stabilizer formalism can also overcome this difficulty.
Algebraic-geometry codes provide another source of stabilizer constructions. Matsumoto used algebraic curves to obtain asymptotically good binary stabilizer codes and to improve the Ashikhmin-Litsyn-Tsfasman bound for quantum codes.[2]
Definition
The stabilizer formalism is based on the n-qubit Pauli group ΠnScript error: No such module "Check for unknown parameters"., and extensively uses the facts that Hermitian operators (ones with scalar factors ±1Script error: No such module "Check for unknown parameters". instead of ±iScript error: No such module "Check for unknown parameters".) in ΠnScript error: No such module "Check for unknown parameters". have eigenvalues , and that two operators in ΠnScript error: No such module "Check for unknown parameters". either commute or anti-commute.
A stabilizer of a stabilizer code with n physical qubits is an n-qubit Pauli operator P ∈ ΠnScript error: No such module "Check for unknown parameters". such that all valid code states lie in the +1Script error: No such module "Check for unknown parameters".-eigenspace of P, i.e., . A stabilizer code is defined by its stabilizers in the sense that the converse is also true: A state is a valid code state for the stabilizer code if and only if holds for each stabilizer P. Therefore the simultaneous +1Script error: No such module "Check for unknown parameters".-eigenspace of the stabilizers constitutes the codespace of the stabilizer code.
Any two stabilizers P and Q must commute and PQ must also be a stabilizer. Therefore the stabilizers of a code form the stabilizer group , an abelian subgroup of ΠnScript error: No such module "Check for unknown parameters".. Conversely, any abelian subgroup of ΠnScript error: No such module "Check for unknown parameters". that does not contain [note 1] is a valid stabilizer group that defines a stabilizer code.
The number of logical qubits encoded in a stabilizer code is determined by the size of the codespace, which is in turn determined by the number of physical qubits and the size of the stabilizer group. For a n-qubit stabilizer code encoding k logical qubits (denoted as an [[n, k]]Script error: No such module "Check for unknown parameters". code), the codespace has 2kScript error: No such module "Check for unknown parameters". dimensions, and the stabilizer group has 2n − kScript error: No such module "Check for unknown parameters". elements. Since all non-unit Hermitian elements of ΠnScript error: No such module "Check for unknown parameters". have order 2, can be generated by n − kScript error: No such module "Check for unknown parameters". independent generators:
The generators must be independent in the sense that none of them are a product of any number of other generators, or the negation thereof (otherwise they would generate ). They are analogous to the rows of the parity-check matrix of a classical linear block code.
Examples
Classical repetition code
Script error: No such module "Labelled list hatnote". As a simple example, the 3-bit [3, 1, 3]Script error: No such module "Check for unknown parameters". classical repetition code can be regarded as a [[3, 1, 1]]Script error: No such module "Check for unknown parameters". quantum stabilizer code. It encodes k = 1Script error: No such module "Check for unknown parameters". logical qubit into n = 3Script error: No such module "Check for unknown parameters". physical qubits, and protects against a single bit-flip error (represented as a Pauli X operator Xi in a quantum information context). However, since it does not protect against single-qubit phase-flip errors Zi, its code distance as a quantum code is d = 1Script error: No such module "Check for unknown parameters"..
The stabilizer group of the 3-qubit repetition code has n − k = 2Script error: No such module "Check for unknown parameters". generators:
The stabilizer g1Script error: No such module "Check for unknown parameters". indicates that, if the first and second qubits in a valid code state are both measured in the Z basis, the results will always be the same (i.e., the product of Z eigenvalues will always be +1Script error: No such module "Check for unknown parameters".). Similarly, g2Script error: No such module "Check for unknown parameters". indicates that the Z basis measurement on the second and third qubits always yield the same result. Unsurprisingly, the codespace of this code is
- .
Usually, the physical state and are identified with the and states of the logical qubit respectively (often written as and to distinguish them from physical states). As a quantum code, the codespace also includes superpositions of and , such as and . Note that a phase-flip error Zi on any one physical qubit will change to , and vice versa.
Five-qubit code
Script error: No such module "Labelled list hatnote". An example of a stabilizer code is the five qubit [[5, 1, 3]]Script error: No such module "Check for unknown parameters". stabilizer code. It encodes k = 1Script error: No such module "Check for unknown parameters". logical qubit into n = 5Script error: No such module "Check for unknown parameters". physical qubits. Its stabilizer group has n − k = 4Script error: No such module "Check for unknown parameters". generators:
As we will show later, this code protects against an arbitrary single-qubit error, and thus it has code distance d = 3Script error: No such module "Check for unknown parameters"..
Logical operators
There are many ways to decompose a 2kScript error: No such module "Check for unknown parameters".-dimension codespace into k logical qubits, and one way to specify such a decomposition is by giving Pauli Z and X operators for each logical qubit. For stabilizer codes, there exists decompositions where these logical Z and X operators are also elements of ΠnScript error: No such module "Check for unknown parameters"..
By definition, a logical operator P must map a valid code state into a valid code state . This means that for each stabilizer S, (the second equality holds since is itself a valid code state), which is always true when P and S commute and never true when they anti-commute. Therefore the set of valid logical operators in ΠnScript error: No such module "Check for unknown parameters". is , the centralizer of (i.e., the subgroup of elements that commute with all members of , also known as the commutant).
However, not all these logical operators act non-trivially on the logical qubit. In particular, since is an abelian subgroup, is also contained in . In fact, when , , meaning that S implements the logical identity operator . Furthermore, for any other logical operator P, PS acts identically to P on the code state, and thus they implement the same logical operator. Factoring out this equivalence gives the quotient group , which is isomorphic to ΠkScript error: No such module "Check for unknown parameters".. Therefore all k-qubit logical Pauli operators can be chosen to be n-qubit physical Pauli operators.
To explicitly specify the logical qubit decomposition, one usually chooses logical operators Z1, X1, ..., Zk, Xk ∈ ΠnScript error: No such module "Check for unknown parameters".. Each of these operators Zi or Xi is a representative for the equivalence class or implementing the same logical operator. These operators need to satisfy the following conditions:
- Z1, X1, ..., Zk, Xk, g1, ..., gn − kScript error: No such module "Check for unknown parameters". are all independent: The product of any nonempty subset of these operators cannot be a scalar multiple of .
- Among Z1, X1, ..., Zk, Xk, g1, ..., gn − kScript error: No such module "Check for unknown parameters"., the only pairs that anti-commute are Zi and Xi for the same i. Other pairs — two logical operators on different logical qubits, one logical operator and one stabilizer generator, or two stabilizer generators — all commute.
Examples
For the 3-qubit repetition code described above, the stabilizer generators (repeated for convenience) and logical operator representatives can be chosen as:
Other single-qubit Z operators are alternative implementations of the logical Z operator: Z2 = Zg1Script error: No such module "Check for unknown parameters"., Z3 = Zg1g2Script error: No such module "Check for unknown parameters".. This is consistent with the above observation that any single-qubit phase-flip error changes to , and vice versa. It is also straightforward to check that applying X = XXXScript error: No such module "Check for unknown parameters"., i.e., bit-flipping all three qubits, changes to , and vice versa.
For the five-qubit code, the logical operator representatives are usually chosen as:
Note, however, that these are not the logical operator representative candidates with the lowest weight (number of non-I Pauli factors). For example, Zg1 = −YIIYZScript error: No such module "Check for unknown parameters". has weight 3.
Stabilizer error-correction conditions
One of the fundamental notions in quantum error correction theory is that it suffices to correct a discrete error set with support in the Pauli group . Suppose that the errors affecting an encoded quantum state are a subset of the Pauli group :
Because and are both subsets of , an error either commutes or anti-commutes with any particular element . If E anti-commutes with an element S, then which means that is in the −1Script error: No such module "Check for unknown parameters".-eigenspace of S rather than the +1Script error: No such module "Check for unknown parameters".-eigenspace, and thus E is detectable by measuring S. Actually it suffices to measure each stabilizer generator g, since if E commutes with every g, then E will also commute with the product of any number of them. In this case is a logical operator and thus cannot be detected by the code.
However, is again a special case, where E implements the logical identity operator: Even though it is not detectable, it also does not corrupt the encoded state. This also holds for any scalar multiple of , since a global phase has no physical effect. We define an undetectable logical error E as one that is undetectable but does corrupt the encoded state, i.e.,
The equality above gives an alternative characterization of an undetectable logical error E: E must commute with all stabilizers, but not with all logical operators. This characterization is often more convenient since one only need to check commutativity with the generators Z1, X1, ..., Zk, Xk, g1, ..., gn − kScript error: No such module "Check for unknown parameters"., instead of solving a system of linear equations to determine if E is the product of some subset of {gi}Script error: No such module "Check for unknown parameters". up to global phase.
Operationally, each stabilizer generator g can be measured via a parity measurement without disturbing states in the codespace. The combination of results of measuring each g is known as the syndrome , represented as a binary vector with length whose elements indicate whether the error E commutes or anti-commutes with each stabilizer generator g.
Knill–Laflamme conditions
When using a stabilizer code as an error correction code, one must also choose a correction E1†Script error: No such module "Check for unknown parameters".[note 2] for each syndrome. If there exists another possible error E2Script error: No such module "Check for unknown parameters". with the same syndrome as E1Script error: No such module "Check for unknown parameters"., then after correction there may be a residual error E1†E2Script error: No such module "Check for unknown parameters".. The condition that E2Script error: No such module "Check for unknown parameters". has the same syndrome as E1Script error: No such module "Check for unknown parameters". is equivalent to that E1†E2Script error: No such module "Check for unknown parameters". is undetectable, i.e., . However, if E1†E2Script error: No such module "Check for unknown parameters". does not corrupt the logical qubits, then the error correction will be successful anyway. Therefore, a stabilizer code can perfectly correct a set of Pauli errors as long as there does not exist such that E1†E2Script error: No such module "Check for unknown parameters". is an undetectable logical error.[note 3]
Examples
The 3-qubit repetition code can correct single-qubit bit-flip errors, which means that it satisfies the error-correction conditions for . Indeed, the only undetectable logical error that consists only of I and X is XXX with weight 3, and the product of two errors in . This can also be verified by explicitly checking the corrections corresponding to each syndrome:
| Syndrome | Correction |
|---|---|
| +1, +1Script error: No such module "Check for unknown parameters". | I |
| −1, +1Script error: No such module "Check for unknown parameters". | X1Script error: No such module "Check for unknown parameters". |
| −1, −1Script error: No such module "Check for unknown parameters". | X2Script error: No such module "Check for unknown parameters". |
| +1, −1Script error: No such module "Check for unknown parameters". | X3Script error: No such module "Check for unknown parameters". |
The five-qubit code can correct any single-qubit error, i.e., it satisfies the error-correction conditions for (1 + 5 × 3 = 16Script error: No such module "Check for unknown parameters". distinct errors). This can be verified either by showing that all undetectable logical errors of this code has weight at least 3, or by explicitly checking the 24 = 16Script error: No such module "Check for unknown parameters". syndromes. For the five-qubit code again each syndrome corresponds to one error in , although this is not typical for stabilizer codes: For codes like the surface code with high code distances and relatively low-weight stabilizers, one syndrome will usually correspond to many correctable errors that differ from each other by stabilizers.
Relation between Pauli group and binary vectors
Script error: No such module "Labelled list hatnote".
The Pauli group has a binary vector representation based on the following mapping:
-
This mapping maps to vectors in , such that multiplication of Pauli operators is equivalent to addition of binary vectors up to a global phase. Furthermore, can be equipped with a symplectic algebra, such that the symplectic product of two binary vectors indicate whether the corresponding Pauli operators commute.
The above binary representation and symplectic algebra are especially useful in making the relation between classical linear error correction and quantum stabilizer codes more explicit. In the language of symplectic vector spaces, a symplectic subspace corresponds to a direct sum of Pauli algebras (i.e., encoded qubits), while an isotropic subspace corresponds to a set of stabilizers.
Notes
References
Page Template:Reflist/styles.css has no content.
Script error: No such module "Check for unknown parameters".
- D. Gottesman, "Stabilizer codes and quantum error correction," quant-ph/9705052, Caltech Ph.D. thesis. https://arxiv.org/abs/quant-ph/9705052
- Lua error in package.lua at line 80: module 'Module:Citation/CS1/Utilities' not found.
- Lua error in package.lua at line 80: module 'Module:Citation/CS1/Utilities' not found.
- Lua error in package.lua at line 80: module 'Module:Citation/CS1/Utilities' not found.
- A. Calderbank, E. Rains, P. Shor, and N. Sloane, “Quantum error correction via codes over GF(4),” IEEE Trans. Inf. Theory, vol. 44, pp. 1369–1387, 1998. Available at https://arxiv.org/abs/quant-ph/9608006
Lua error in package.lua at line 80: module 'Module:Navbox/configuration' not found.
Lua error in package.lua at line 80: module 'Module:Namespace detect/data' not found.