

Since \(XXXX\) and \(ZZZZ\) are stabilizers of this code, we should obtain the same state for the data qubits at the end of the circuit. This means that the two measurements on the syndrome qubit yield the \(XXXX\) and the \(ZZZZ\) observables on the data qubits. This circuit implements an X-check followed by a Z-check on the data qubits. Now imagine we have initialized our data qubits in the state \(|\Psi_i> = |0000>+|1111>\) (corresponding to the \(|0p0g>\) logical state) and we run the circuit shown in Fig.
Types of quantum error code#
This small code provides a good example of how errors can propagate within the code operations. Error propagation within a parity-check circuitĪs an example, the paper in implements the \(]\) code, using four physical qubits to encode 2 logical qubits, performing parity checks on those 4 physical qubits to detect errors during the computation. By construction of the stabilizer group and the code, we have extra degrees of freedom available in order to operate the logical qubit without confusing gates for errors.įig. In order to perform a logical gate, we do so with a set of operations that the stabilizers are blind to. We keep checking for these errors, either correcting them on the spot or keeping track and correcting them at the end. 0s represent no error, while 1s represent errors in the code.
Types of quantum error series#
In the standard notation, we can define a \(]\) QEC code as one that uses \(n\) physical qubits to encode \(k\) logical qubits and can correct up to \(floor(d-1)/2\) errors.Īs for how this might work in hardware, we initialize a logical qubit, then start querying its constituent physical qubits with all of the stabilizers as fast as we can, receiving a series of 0s and 1s from the stabilizer measurements. The physical degrees of freedom offered by the n physical qubits are countered by the constraints imposed by the stabilizers, resulting in a reduced number of degrees of freedom that may serve as logical qubits. In general, we can consider a logical codespace of \(2^k\) dimensions embedded into a physical space of \(2^n\) dimensions. These measurements yield the "error syndromes." Obviously, the above codespace is too small to host a logical qubit, but the principle is the same. If we were to prepare this codeword and subject it to noise (as done, for example, here ), we could identify errors by measuring the stabilizers mentioned above. This codeword is stabilized by the operators \(XX\) and \(ZZ\), meaning that we can use these operators to learn about its parity (both in the Z- and in the X-basis) without disturbing it, and we can do this as many times as we want. Additionally, whereas errors in classical information have only one form-0 flipping value to 1 or vice versa-there are two types of errors lurking within a quantum computation: bit-flips, |0> becoming |1> or vice versa, and phase-flips, \((|0> + |1>)/ \sqrt(|00> + |11>)$$

These two aspects make the application of classical error correction methods to the quantum realm unfeasible. And second, quantum measurements collapse the information into a basis set of outcomes, thus destroying any superposition or entanglement exploited by quantum algorithms. First, quantum information cannot be duplicated due to the no-cloning theorem. Among the many differences between quantum and classical information, two major aspects emerge when considering error correction protocols. Modern methods of error correction in computer science rely heavily on redundancy: by increasing the amount of data in a message in the form of check bits derived from the original data, the presence of errors can be detected (and possibly corrected) by the receiver. It is a truth universally acknowledged, that a noisy quantum computer in possession of a good algorithm, must be in want of a fault-tolerant quantum error correcting code.
