Skip to content

Commit

Permalink
ampdamp
Browse files Browse the repository at this point in the history
  • Loading branch information
valbert4 committed Jul 14, 2024
1 parent 4cae914 commit f4c7e40
Show file tree
Hide file tree
Showing 12 changed files with 70 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ features:
- 'Error-detecting \(CCZ\) and \(cSWAP\) gates using three-level ancilla \cite{arxiv:2212.11196}.'

fault_tolerance:
- 'Dual-rail qubits can be used to convert leakage and amplitude damping noise into erasure noise \cite{arxiv:2208.05461}.'
- 'Dual-rail qubits can be used to convert leakage and amplitude damping noise into erasure noise \cite{arxiv:0710.1052,arxiv:2208.05461}.'

threshold:
- 'Between \(1.78\%\) and \(11.5\%\) with faulty photon detectors when repeatedly concatenating with the Steane code \cite{arxiv:quant-ph/0502101}.'
Expand All @@ -47,17 +47,18 @@ notes:


relations:

parents:
- code_id: one_hot_quantum
cousins:
- code_id: quantum_concatenated
detail: 'The KLM protocol, one of the first protocols for fault-tolerant quantum computation, utilizes concatenations of the dual-rail with a stabilizer code \cite{doi:10.1038/35051009}.
Concatenating the dual-rail code with an \([[n,k,d]]\) stabilizer code yields an \([[2n,k,d]]\) constant-excitation code \cite{arxiv:2010.00538} that protects against \(d-1\) amplitude damping errors \cite{arxiv:1001.2356}.'
- code_id: ampdamp
detail: 'Dual-rail qubits can be used to convert leakage and amplitude damping noise into erasure noise \cite{arxiv:0710.1052,arxiv:2208.05461}. Concatenating the dual-rail code with an \([[n,k,d]]\) stabilizer code yields an \([[2n,k,d]]\) constant-excitation code \cite{arxiv:2010.00538} that protects against \(d-1\) amplitude damping errors \cite{arxiv:1001.2356}.'
- code_id: quantum_parity
detail: 'An \([[8,1,2]]\) QPC correcting a single amplitude damping error is equivalent to a concatenation of the \(\{|\overline{01}\rangle,|\overline{11}\rangle\}\) (constant-excitation) subcode of the \([[4,2,2]]\) code with the dual-rail code \cite{arxiv:quant-ph/0103042,arxiv:quant-ph/0501184,arxiv:2010.00538}.'
detail: 'An \([[8,1,2]]\) QPC correcting a single amplitude damping error is equivalent to a concatenation of the \(\{|\overline{01}\rangle,|\overline{11}\rangle\}\) (constant-excitation) subcode of the \([[4,2,2]]\) code with the dual-rail code \cite{arxiv:quant-ph/0103042,arxiv:quant-ph/0501184,arxiv:2010.00538}. More generally, an \([[m^2,1,m]]\) QPC corrects \(m-1\) amplitude damping errors \cite{arxiv:1001.2356}.'
- code_id: stab_4_2_2
detail: 'An \([[8,1,2]]\) QPC correcting a single amplitude damping error is equivalent to a concatenation of the \(\{|\overline{01}\rangle,|\overline{11}\rangle\}\) (constant-excitation) subcode of the \([[4,2,2]]\) code with the dual-rail code \cite{arxiv:quant-ph/0103042,arxiv:quant-ph/0501184,arxiv:2010.00538}.'
detail: 'An \([[8,1,2]]\) QPC correcting a single amplitude damping error is equivalent to a concatenation of the \(\{|\overline{01}\rangle,|\overline{11}\rangle\}\) (constant-excitation) subcode of the \([[4,2,2]]\) code with the dual-rail code \cite{arxiv:quant-ph/0103042,arxiv:quant-ph/0501184,arxiv:2010.00538}. More generally, an \([[m^2,1,m]]\) QPC corrects \(m-1\) amplitude damping errors \cite{arxiv:1001.2356}.'
- code_id: cluster_state
detail: 'The KLM protocol can be combined cluster states in various ways \cite{arxiv:quant-ph/0303008,arxiv:quant-ph/0402005,arxiv:quant-ph/0405157}.'

Expand Down
2 changes: 2 additions & 0 deletions codes/quantum/oscillators/fock_state/fock_state.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ protection: 'Code distance \(d\) is the minimum distance (assuming some metric)
relations:
parents:
- code_id: qudits_into_oscillators
- code_id: ampdamp
detail: 'Fock-state codes are designed to protect against AD noise.'
cousins:
- code_id: bits_into_bits
detail: 'Fock-state code distance is a natural extension of Hamming distance between binary strings.'
Expand Down
4 changes: 3 additions & 1 deletion codes/quantum/oscillators/oscillators.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,9 @@ protection: |
\subsection{Loss and gain operators}
An error set relevant to \hyperref[code:fock_state]{Fock-state bosonic} codes is the set of loss operators associated with the \textit{amplitude damping} (a.k.a. \textit{photon loss} or \textit{attenuation}) noise channel, a common form of physical noise in bosonic systems. For a single mode, loss operators are proportional to powers of the mode's annihilation operator \(a=(\hat{x}+i\hat{p})/\sqrt{2}\), where \(\hat x\) (\(\hat p\)) is the mode's position (momentum) operator, and with the power signifying the number of particles lost during the error. For multiple modes, error set elements are tensor products of elements of the single-mode error set. A definition of distance associated with this error set is the minimum weight of a loss error that implements a nontrivial logical operation in the code.
An error set relevant to \hyperref[code:fock_state]{Fock-state bosonic} codes is the set of loss operators associated with the \hyperref[code:ampdamp]{amplitude damping channel}, a common form of physical noise in bosonic systems.
For a single mode, loss operators are proportional to powers of the mode's annihilation operator \(a=(\hat{x}+i\hat{p})/\sqrt{2}\), where \(\hat x\) (\(\hat p\)) is the mode's position (momentum) operator, and with the power signifying the number of particles lost during the error.
For multiple modes, error set elements are tensor products of elements of the single-mode error set.
\subsection{Number-phase operators}
Expand Down
42 changes: 42 additions & 0 deletions codes/quantum/properties/block/ampdamp.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
#######################################################
## This is a code entry in the error correction zoo. ##
## https://github.com/errorcorrectionzoo ##
#######################################################

code_id: ampdamp
# Qubit or bosonic

name: 'Amplitude-damping (AD) code'

description: |
Block quantum code on either qubits or bosonic modes that is designed to detect and correct qubit or bosonic amplitude (AD) errors, respectively.
The \textit{amplitude damping channel} is a bosonic channel that models loss of particles in the bosonic mode (a.k.a. \textit{photon loss} or \textit{attenuation}).
Its Kraus operators are proportional to powers of a mode's annihilation operator \(a\), with the power signifying the number of particles lost during the error,
\begin{align}
E_{\ell}=\left(\frac{\gamma}{1-\gamma}\right)^{\ell/2}\frac{a^{\ell}}{\sqrt{\ell!}}\left(1-\gamma\right)^{\hat{n}/2}\,,
\end{align}
where \(\gamma\in[0,1)\) is the noise rate \cite{doi:10.1088/0954-8998/1/2/005,arxiv:1708.05010}.
Restricting the channel to the first two Fock states \(\{|0\rangle,|1\rangle\}) yields the non-Pauli qubit amplitude damping channel, which requires protecting against the loss error \(E_1\propto X+iY\) instead of \(X\) and \(Y\) Pauli errors individually.
Both channels are called AD since the context makes clear which one is being referred to.
protection: |
A definition of distance associated with amplitude damping is the minimum weight of a tensor products of non-zero loss errors (\(\ell\neq 0\)) that implement a nontrivial logical operation in the code.
Certain codes also have intrinsic protection against AD, such as constant-excitation codes or self-complementary codes.
relations:
parents:
- code_id: block_quantum
cousins:
- code_id: qubit_css
detail: 'An \([[n,k,d_Z=t+1,d_X=2t+1]]\) qubit CSS code protects against \(t\) amplitude damping errors \cite[Sec. 8.7]{arxiv:quant-ph/9705052}\cite{arxiv:1001.2356}.'
- code_id: quantum_concatenated
detail: 'Concatenated quantum codes can protect against amplitude damping \cite{arxiv:1601.07423}.'


# Begin Entry Meta Information
_meta:
# Change log - most recent first
changelog:
- user_id: VictorVAlbert
date: '2024-07-14'
4 changes: 2 additions & 2 deletions codes/quantum/properties/hamiltonian/constant_excitation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,8 @@ relations:
Any \([[n,k,d]]\) CSS code can be made into an \([[mn,k,>d]]\) CE code \cite{doi:10.1109/ISIT45174.2021.9518206}.
- code_id: qsc
detail: 'QSC (CE) codewords are superpositions of coherent states (Fock states) with the same energy.'
- code_id: qubit_stabilizer
detail: 'Concatenating the dual-rail code with an \([[n,k,d]]\) stabilizer code yields an \([[2n,k,d]]\) constant-excitation code \cite{arxiv:2010.00538}.'
- code_id: ampdamp
detail: 'Fock-state CE codes are protected from identical amplitude damping acting on all modes because the damping acts on all codewords identically \cite{doi:10.1103/PhysRevA.56.1114}.'


# Begin Entry Meta Information
Expand Down
1 change: 1 addition & 0 deletions codes/quantum/qubits/nonstabilizer/jump.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ notes:
relations:
parents:
- code_id: qubits_into_qubits
- code_id: ampdamp
- code_id: constant_excitation
cousins:
- code_id: stab_4_2_2
Expand Down
4 changes: 3 additions & 1 deletion codes/quantum/qubits/nonstabilizer/self_complementary.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,14 @@ description: |
protection: |
Self-complementary codes automatically protect against a single \(Z\) error \cite{arxiv:quant-ph/0701065}, and can protect against a single amplitude damping error \cite{arxiv:0907.5149}.
Self-complementary codes automatically protect against a single \(Z\) error \cite{arxiv:quant-ph/0701065}, and can protect against a single amplitude damping error \cite{arxiv:0712.2586,arxiv:0907.5149}.
relations:
parents:
- code_id: qubits_into_qubits
- code_id: ampdamp
detail: 'Self-complementary quantum codes consisting of codewords that are sufficient spaced apart in the configuration space correct at least one amplitude damping error \cite[Thm. 2.5]{arxiv:0712.2586}\cite[Thm. 2]{arxiv:0907.5149}.'
cousins:
- code_id: binary_linear
detail: 'A linear binary code is called \textit{self-complementary} if, for each codeword \(c\), its negation \(\overline{c}\) is also a codeword.'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,8 @@ relations:
parents:
- code_id: qudit_gnu_permutation_invariant
detail: 'Qudit GNU codes encoding logical qubits reduce to GNU codes.'
- code_id: ampdamp
detail: 'GNU codes protect approximately against amplitude damping errors.'
cousins:
- code_id: combinatorial_permutation_invariant
detail: 'Combinatorial PI codes \(Q_{g,(m-1)/2,g-1,+}\) are GNU codes for odd \(m\) \cite[Prop. 5.4]{arxiv:2310.05358}.'
Expand Down
2 changes: 1 addition & 1 deletion codes/quantum/qubits/qubits_into_qubits.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ protection: |
A quantum channel whose Kraus operators are Pauli strings is called a \textit{Pauli channel}, and such channels are typically more tractable than general, non-Pauli channels.
Relevant Pauli channels include dephasing noise and depolarizing noise (a.k.a. Werner-Holevo channel \cite{arxiv:quant-ph/0203003}).
Relevant non-Pauli channels are amplitude damping (which requires protection against \(X+iY\) instead of \(X,Y\) individually), erasure (which maps all qubit states into a third state \(|e\rangle\) outside of the qubit Hilbert space), and biased erasure (in which case only the \(|1\rangle\) qubit state is mapped to \(|e\rangle\)).
Relevant non-Pauli channels are \hyperref[code:ampdamp]{amplitude damping channel}, erasure (which maps all qubit states into a third state \(|e\rangle\) outside of the qubit Hilbert space), and biased erasure (in which case only the \(|1\rangle\) qubit state is mapped to \(|e\rangle\)).
Noise can be correlated in space or in time, with the latter being an example of a non-Markovian phenomenon \cite{arxiv:2012.01894}.
\subsection{Bounds on code parameters}
Expand Down
4 changes: 3 additions & 1 deletion codes/quantum/qubits/small_distance/small/stab_4_2_2.yml
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,8 @@ relations:
detail: 'The \([[4,2,2]]\) code can be derived from the five-qubit code using a protocol that converts an \([[n,k,d]]\) code into an \([[n-1, k+1, d-1]]\) code \cite[Sec. 3.5]{arxiv:quant-ph/9705052}.'
- code_id: approximate_qecc
detail: 'The \([[4,1,2]]\) subcode \(\{|\overline{00}\rangle,|\overline{10}\rangle\}\) approximately corrects a single amplitude damping error \cite{arxiv:quant-ph/9704002}.'
- code_id: ampdamp
detail: 'The \([[4,1,2]]\) subcode \(\{|\overline{00}\rangle,|\overline{10}\rangle\}\) approximately corrects a single amplitude damping error \cite{arxiv:quant-ph/9704002}.'
- code_id: binomial
detail: '\([[4,1,2]]\) subcode consisting of \(|\overline{00}\rangle\) and any other codeword reduces to the \(0,2,4\) binomial code when the basis labels in each codeword are written as in base-ten.
Such a mapping can be generalized \cite{manual:{Linshu Li, private communication, 2018}}.'
Expand All @@ -114,7 +116,7 @@ relations:
Concatenations of quantum Hamming codes with the \([[4,2,2]]\) and \([[6,2,2]]\) \(C_6\) codes yield fault-tolerant quantum computation with constant space and quasi-polylogarithmic time overheads \cite{arxiv:2207.08826,arxiv:2402.09606}.'
Concatenating the \([[4,2,2]]\) code with the surface code is equivalent to removing stabilizer generators from the 4.8.8 color code \cite{arxiv:1604.04062}.
The \([[4,2,2]]\) code can be concatenated with two copies of the surface code to yield the 4.6.12 color code \cite{arxiv:1604.04062}.
An \([[8,1,2]]\) QPC correcting a single amplitude damping error is equivalent to a concatenation of the \(\{|\overline{01}\rangle,|\overline{11}\rangle\}\) (constant-excitation) subcode of the \([[4,2,2]]\) code with the dual-rail code \cite{arxiv:quant-ph/0103042,arxiv:quant-ph/0501184,arxiv:2010.00538}.
An \([[8,1,2]]\) QPC correcting a single amplitude damping error is equivalent to a concatenation of the \(\{|\overline{01}\rangle,|\overline{11}\rangle\}\) (constant-excitation) subcode of the \([[4,2,2]]\) code with the dual-rail code \cite{arxiv:quant-ph/0103042,arxiv:quant-ph/0501184,arxiv:2010.00538}. More generally, an \([[m^2,1,m]]\) QPC corrects \(m-1\) amplitude damping errors \cite{arxiv:1001.2356}.
- code_id: cws
detail: 'A \([[4,1,2]]\) subcode can be thought of as a CWS code
\cite{arxiv:1407.2777}.'
Expand Down
2 changes: 2 additions & 0 deletions codes/quantum/qubits/stabilizer/css/quantum_parity.yml
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,8 @@ notes:
relations:
parents:
- code_id: generalized_shor
- code_id: amdamp
detail: 'An \([[8,1,2]]\) QPC correcting a single amplitude damping error is equivalent to a concatenation of the \(\{|\overline{01}\rangle,|\overline{11}\rangle\}\) (constant-excitation) subcode of the \([[4,2,2]]\) code with the dual-rail code \cite{arxiv:quant-ph/0103042,arxiv:quant-ph/0501184,arxiv:2010.00538}. More generally, an \([[m^2,1,m]]\) QPC corrects \(m-1\) amplitude damping errors \cite{arxiv:1001.2356}.'
- code_id: group_quantum_parity
detail: 'A \([[m_1 m_2,1,\min(m_1,m_2)]]_G\) group-based QPC reduces to a QPC for \(G=\mathbb{Z}_2\).'
- code_id: quantum_lego
Expand Down
4 changes: 4 additions & 0 deletions codes/quantum/qubits/stabilizer/qubit_stabilizer.yml
Original file line number Diff line number Diff line change
Expand Up @@ -181,6 +181,10 @@ relations:
detail: 'Any stabilizer code can be single shot if sufficiently non-local high-weight stabilizer generators are used for syndrome measurements. These can be obtained with a Gaussian elimination procedure \cite{arxiv:1805.09271}.'
- code_id: t-designs
detail: 'Stabilizer states on \(n\) qubits form complex projective 3-designs \cite{arxiv:1510.02767}, while the Clifford group is a unitary 3-design \cite{arXiv:1510.02619,arXiv:1510.02769}.'
- code_id: constant_excitation
detail: 'Concatenating the dual-rail code with an \([[n,k,d]]\) stabilizer code yields an \([[2n,k,d]]\) constant-excitation code \cite{arxiv:2010.00538} that protects against \(d-1\) amplitude damping errors \cite{arxiv:1001.2356}.'
- code_id: ampdamp
detail: 'Concatenating the dual-rail code with an \([[n,k,d]]\) stabilizer code yields an \([[2n,k,d]]\) constant-excitation code \cite{arxiv:2010.00538} that protects against \(d-1\) amplitude damping errors \cite{arxiv:1001.2356}.'


# Begin Entry Meta Information
Expand Down

0 comments on commit f4c7e40

Please sign in to comment.