From bd94d56964530e2161c67fe14d6312715ea07587 Mon Sep 17 00:00:00 2001 From: "Victor V. Albert" Date: Wed, 1 Nov 2023 11:25:10 +1100 Subject: [PATCH] quasi G codes --- .../properties/block/cyclic/quasi_cyclic.yml | 2 ++ .../{ => group}/cyclic/q-ary_bch.yml | 0 .../{ => group}/cyclic/q-ary_cyclic.yml | 3 +- .../{ => group}/cyclic/q-ary_duadic.yml | 0 .../{ => group}/cyclic/q-ary_quad_residue.yml | 0 .../q-ary_digits/{cyclic => group}/group.yml | 16 +++++++--- .../q-ary_digits/group/quasi_group.yml | 32 +++++++++++++++++++ codes/quantum/qubits/mbqc/cluster_state.yml | 3 +- .../qldpc/homological/fiber_bundle.yml | 5 ++- .../qubits/stabilizer/qubit_stabilizer.yml | 1 + .../surface/two_dim/surface/surface.yml | 2 +- 11 files changed, 55 insertions(+), 9 deletions(-) rename codes/classical/q-ary_digits/{ => group}/cyclic/q-ary_bch.yml (100%) rename codes/classical/q-ary_digits/{ => group}/cyclic/q-ary_cyclic.yml (99%) rename codes/classical/q-ary_digits/{ => group}/cyclic/q-ary_duadic.yml (100%) rename codes/classical/q-ary_digits/{ => group}/cyclic/q-ary_quad_residue.yml (100%) rename codes/classical/q-ary_digits/{cyclic => group}/group.yml (78%) create mode 100644 codes/classical/q-ary_digits/group/quasi_group.yml diff --git a/codes/classical/properties/block/cyclic/quasi_cyclic.yml b/codes/classical/properties/block/cyclic/quasi_cyclic.yml index b7961adfd..1cfacc479 100644 --- a/codes/classical/properties/block/cyclic/quasi_cyclic.yml +++ b/codes/classical/properties/block/cyclic/quasi_cyclic.yml @@ -24,6 +24,8 @@ relations: parents: - code_id: block cousins: + - code_id: quasi_group + detail: 'A quasi group-algebra code for \(G\) being the cyclic group is a quasi-cyclic \(q\)-ary linear code.' - code_id: convolutional detail: 'Quasi-cyclic codes can be \textit{unwrapped} to obtain convolutional codes \cite{manual:{G. D. Forney, Jr., “Why quasi cyclic codes are interesting,” unpublished note, 1970.},doi:10.1137/0137027,manual:{R. Michael Tanner, “Error-correcting coding system,” U.S. Patent 4295218, 1981.},manual:{R. Michael Tanner. Convolutional codes from quasi-cyclic codes: A link between the theories of block and convolutional codes. University of California, Santa Cruz, Computer Research Laboratory, 1987.},manual:{“Generalized tail-biting convolutional codes,” Ph.D. dissertation, Univ. of Massachusetts, Amherst, 1985.},manual:{Y. Levy and J. Costello, Jr., “An algebraic approach to constructing convolutional codes from quasi-cyclic codes,” DIMACS Ser. Discr. Math. and Theor. Comp. Sci., vol. 14, pp. 189–198, 1993.},doi:10.1109/18.651076}.' - code_id: sc_qldpc diff --git a/codes/classical/q-ary_digits/cyclic/q-ary_bch.yml b/codes/classical/q-ary_digits/group/cyclic/q-ary_bch.yml similarity index 100% rename from codes/classical/q-ary_digits/cyclic/q-ary_bch.yml rename to codes/classical/q-ary_digits/group/cyclic/q-ary_bch.yml diff --git a/codes/classical/q-ary_digits/cyclic/q-ary_cyclic.yml b/codes/classical/q-ary_digits/group/cyclic/q-ary_cyclic.yml similarity index 99% rename from codes/classical/q-ary_digits/cyclic/q-ary_cyclic.yml rename to codes/classical/q-ary_digits/group/cyclic/q-ary_cyclic.yml index cd928c593..365a44731 100644 --- a/codes/classical/q-ary_digits/cyclic/q-ary_cyclic.yml +++ b/codes/classical/q-ary_digits/group/cyclic/q-ary_cyclic.yml @@ -47,10 +47,9 @@ notes: relations: parents: - - code_id: q-ary_linear - - code_id: cyclic - code_id: group detail: 'A length-\(n\) cyclic \(q\)-ary linear code is an Abelian group-algebra code for the cyclic group with \(n\) elements \( \mathbb{Z}_n \).' + - code_id: cyclic cousins: - code_id: q-ary_ltc detail: 'Cyclic linear codes cannot be \(c^3\)-LTCs \cite{doi:10.1109/TIT.2005.851735}. Codeword symmetries are in general an obstruction to achieving such LTCs \cite{doi:10.1007/978-3-642-16367-8_12}.' diff --git a/codes/classical/q-ary_digits/cyclic/q-ary_duadic.yml b/codes/classical/q-ary_digits/group/cyclic/q-ary_duadic.yml similarity index 100% rename from codes/classical/q-ary_digits/cyclic/q-ary_duadic.yml rename to codes/classical/q-ary_digits/group/cyclic/q-ary_duadic.yml diff --git a/codes/classical/q-ary_digits/cyclic/q-ary_quad_residue.yml b/codes/classical/q-ary_digits/group/cyclic/q-ary_quad_residue.yml similarity index 100% rename from codes/classical/q-ary_digits/cyclic/q-ary_quad_residue.yml rename to codes/classical/q-ary_digits/group/cyclic/q-ary_quad_residue.yml diff --git a/codes/classical/q-ary_digits/cyclic/group.yml b/codes/classical/q-ary_digits/group/group.yml similarity index 78% rename from codes/classical/q-ary_digits/cyclic/group.yml rename to codes/classical/q-ary_digits/group/group.yml index 11990f0ff..a37a81f81 100644 --- a/codes/classical/q-ary_digits/cyclic/group.yml +++ b/codes/classical/q-ary_digits/group/group.yml @@ -8,9 +8,9 @@ physical: q-ary_digits logical: q-ary_digits name: 'Group-algebra code' -#introduced: '' +introduced: '\cite{doi:10.1007/BF01072842}' alternative_names: - - 'Group code' + - '\(G\) code' description: | An \( [n,k]_q \) code based on a finite group \( G \) of size \(n \). @@ -36,6 +36,8 @@ description: | \subsection{Group-algebra code} A group-algebra code is a \( k \)-dimensional linear subspace of the \hyperref[topic:group-algebra]{group algebra} of \( G\) with coefficients in the field \(GF(q) = \mathbb{F}_q\) with \(q\) elements. To be precise, the code must be closed under permutations corresponding to the elements of the group \( G \); therefore, \( G \) must be a subgroup of the permutation automorphism group of the code, which is defined as the group of permutations of the physical bits that preserve the code space. This leads us to the formal definition of a group-algebra code: a group-algebra code is an ideal in the \hyperref[topic:group-algebra]{group algebra} \( \mathbb{F}_q G \). + A linear code is a group-algebra code for a group \(G\) if and only if \(G\) is isomorphic to a regular subgroup of the code''s permutation automorphism group \cite{doi:10.1007/s10623-008-9261-z}\cite[Thm. 16.4.7]{preset:HKSalgebra}. + #protection: 'The class of Abelian group-algebra codes is very general, for example including all group-algebra codes of size \(n \leq 23 \). As such it is very difficult to say anything about the distance of Abelian groups codes without specializing to a particular family' notes: @@ -44,8 +46,14 @@ notes: relations: parents: - - code_id: q-ary_linear - detail: 'A linear code is a group-algebra code for a group \(G\) if and only if \(G\) is isomorphic to a regular subgroup of the code''s permutation automorphism group \cite{doi:10.1007/s10623-008-9261-z}\cite[Thm. 16.4.7]{preset:HKSalgebra}.' + - code_id: quasi_group + detail: 'A quasi group-algebra code of index \(\ell=1\) is a group-algebra code.' + - code_id: group_orbit + detail: 'A \(q\)-ary group-orbit code hosts a transitive group action. If the action is also free, then the code is a group-algebra code.' + + +# - code_id: q-ary_linear +# detail: 'A linear code is a group-algebra code for a group \(G\) if and only if \(G\) is isomorphic to a regular subgroup of the code''s permutation automorphism group \cite{doi:10.1007/s10623-008-9261-z}\cite[Thm. 16.4.7]{preset:HKSalgebra}.' #Note that we have an isomorphism of \( \mathbb{F} \) algebras \( \mathbb{F}\mathbb{Z}_n \cong \mathbb{F}[x]/\langle x^n-1\rangle \) by taking \( x \) to be the generator of the cyclic group. Thus we can see how cyclic codes are an example of an Abelian group-algebra code.' diff --git a/codes/classical/q-ary_digits/group/quasi_group.yml b/codes/classical/q-ary_digits/group/quasi_group.yml new file mode 100644 index 000000000..dc7d2f141 --- /dev/null +++ b/codes/classical/q-ary_digits/group/quasi_group.yml @@ -0,0 +1,32 @@ +####################################################### +## This is a code entry in the error correction zoo. ## +## https://github.com/errorcorrectionzoo ## +####################################################### + +code_id: quasi_group +physical: q-ary_digits +logical: q-ary_digits + +name: 'Quasi group-algebra code' +introduced: '\cite{doi:10.1007/BF01072842}' +alternative_names: + - 'Quasi-\(G\) code' + +description: | + A \(q\)-ary linear code based on a finite group \( G \) of order \(n/\ell\) for some \textit{index} \(\ell\). + The code is a right submodule of the direct sum of \(\ell\) copies of the \hyperref[topic:group-algebra]{group algebra} \(\mathbb{F}_q G\). + A quasi group-algebra code for an Abelian group is called an \textit{Abelian quasi group-algebra code}. + + +relations: + parents: + - code_id: q-ary_linear + detail: 'A linear code is a quasi group-algebra code for a group \(G\) and index \(\ell\) if and only if \(G\) is isomorphic to a regular subgroup of the code''s permutation automorphism group which acts freely of index \(\ell\) on the coordinates \cite[Thm. 3.5]{arxiv:1912.09167}.' + + +# Begin Entry Meta Information +_meta: + # Change log - most recent first + changelog: + - user_id: VictorVAlbert + date: '2023-11-01' diff --git a/codes/quantum/qubits/mbqc/cluster_state.yml b/codes/quantum/qubits/mbqc/cluster_state.yml index 06e8c0140..6969b43d5 100644 --- a/codes/quantum/qubits/mbqc/cluster_state.yml +++ b/codes/quantum/qubits/mbqc/cluster_state.yml @@ -81,7 +81,8 @@ relations: cousins: - code_id: fusion detail: 'FBQC and MBQC are both computational models in which computation is done by measuring resource states (which are qubit stabilizer states). - The difference from ordinary MBQC is that error-correction two-qubit measurements are performed, which requires a foliation with more qubits but one which can be built by fusing smaller modules.' + The difference between the two is in how the states are constructed. + FBQC is based exclusively on two-qubit measurements tailored to photonic platforms. These measurements require a foliation with more qubits but one which can be built by fusing smaller modules.' - code_id: qubit_css detail: 'A resource cluster state can be constructed out of any qubit CSS code via foliation. Conversely, CSS codes can be constructed out of cluster states \cite{arxiv:1607.02579}.' - code_id: gkp-cluster-state diff --git a/codes/quantum/qubits/stabilizer/qldpc/homological/fiber_bundle.yml b/codes/quantum/qubits/stabilizer/qldpc/homological/fiber_bundle.yml index 643956ec3..aa4da6557 100644 --- a/codes/quantum/qubits/stabilizer/qldpc/homological/fiber_bundle.yml +++ b/codes/quantum/qubits/stabilizer/qldpc/homological/fiber_bundle.yml @@ -10,7 +10,8 @@ logical: qubits name: 'Fiber-bundle code' introduced: '\cite{arxiv:2009.03921}' -description: 'Also called a \textit{twisted product code}. CSS code constructed by combining a random LDPC code as the base and a cyclic repetition code as the fiber of a fiber bundle. After applying distance balancing, a QLDPC code with distance \(\Omega(n^{3/5}\text{polylog}(n))\) and rate \(\Omega(n^{-2/5}\text{polylog}(n))\) is obtained.' +description: 'Also called a \textit{twisted product code}. CSS code constructed by combining one code as the base and another as the fiber of a fiber bundle. +In particular, taking a random LDPC code as the base and a cyclic repetition code as the fiber yields, after distance balancing, a QLDPC code with distance \(\Omega(n^{3/5}\text{polylog}(n))\) and rate \(\Omega(n^{-2/5}\text{polylog}(n))\) is obtained.' #In addition, weight reduction can be used to make this an \([[n,\Omega(n^{3/5}/\text{polylog}(n),\Omega(n^{3/5}/\text{polylog}(n))]]\) QLDPC code family.' #protection: 'Pauli errors up to weight \(\Omega(n^{3/5}\text{polylog}(n))\).' @@ -27,6 +28,8 @@ relations: - code_id: balanced_product detail: 'Fiber-bundle codes can be formulated in terms of a balanced product \cite{arXiv:2012.09271}.' cousins: + - code_id: lifted_product + detail: 'The specific fiber-bundle QLDPC code achieving a distance scaling better than \(\sqrt{n}~\text{polylog}(n)\) can also be formulated as an LP code (see published version \cite{doi:10.1145/3406325.3451005}).' - code_id: distance_balanced detail: 'Fiber-bundle code constructions use distance balancing to increase distance.' - code_id: quantum_random diff --git a/codes/quantum/qubits/stabilizer/qubit_stabilizer.yml b/codes/quantum/qubits/stabilizer/qubit_stabilizer.yml index 763dbae7a..c6acf2390 100644 --- a/codes/quantum/qubits/stabilizer/qubit_stabilizer.yml +++ b/codes/quantum/qubits/stabilizer/qubit_stabilizer.yml @@ -46,6 +46,7 @@ features: - 'With pieceable fault-tolerance, any nondegenerate stabilizer code with a complete set of fault-tolerant single-qubit Clifford gates has a universal set of non-transversal fault-tolerant gates \cite{arXiv:1603.03948}.' decoders: - 'The structure of stabilizer codes allows for \textit{syndrome-based decoding}, where errors are corrected based on the results of stabilizer measurements (\textit{syndromes}). The size of the circuit extracting the syndrome depends on the weight of its corresponding stabilizer generator. \textit{Maximum-likelihood} (ML) decoding, i.e., the process of finding the most likely error, is \(NP\)-complete in general \cite{arxiv:1009.1319,manual:{Kuo, Kao-Yueh, and Chung-Chin Lu. "On the hardness of decoding quantum stabilizer codes under the depolarizing channel." 2012 International Symposium on Information Theory and its Applications. IEEE, 2012.}}. If the noise model is such that the most likely error is the lowest-weight error, then ML decoding is called \textit{minimum-weight} decoding. \textit{Degenerate maximum-likelihood} decoding, i.e., the process of finding the most likely error class (up to degeneracy of errors), is \(\#P\)-complete in general \cite{arxiv:1310.3235}.' + - 'Incorporating faulty syndrome measurements can be done by performing spacetime decoding, i.e., using data from past rounds for decoding syndromes in any given round. If a decoder does not process syndrome data sufficiently quickly, it can lead to the \textit{backlog problem} \cite{arxiv:1302.3428}, slowing down the computation.' - 'Trellis decoder, which builds a compact representation of the algebraic structure of the normalizer \(\mathsf{N(S)}\) \cite{arXiv:quant-ph/0512041}.' - 'Quantum extension of GRAND decoder \cite{arxiv:2208.02744}.' - 'Deep neural-network probabilistic decoder \cite{arxiv:1705.09334}.' diff --git a/codes/quantum/qubits/stabilizer/topological/surface/two_dim/surface/surface.yml b/codes/quantum/qubits/stabilizer/topological/surface/two_dim/surface/surface.yml index 81bf44439..b9c74f6a4 100644 --- a/codes/quantum/qubits/stabilizer/topological/surface/two_dim/surface/surface.yml +++ b/codes/quantum/qubits/stabilizer/topological/surface/two_dim/surface/surface.yml @@ -116,7 +116,7 @@ features: - 'Union-find \cite{arXiv:1709.06218}. A subsequent modification utilizes the continuous signal obtained in the physical implementation of the stabilizer measurement (as opposed to discretizing the signal into a syndrome bit) \cite{arxiv:2107.13589}. Belief union find is a combination of belief-propagation and union-find \cite{arxiv:2203.04948}. Strictly local (as opposed to partially local) union find \cite{arxiv:2305.18534} has a worst-case runtime of order \(O(d^3)\) in the distance \(d\).' - 'Decoders can be augmented with a pre-decoder \cite{arXiv:2001.11427,arXiv:2208.04660}, which can allow for some processing to be done inside the cryogenic environment of the quantum system \cite{arxiv:2208.08547}.' - - 'Sliding-window \cite{arxiv:2209.09219,arxiv:2209.08552} and parallel-window \cite{arxiv:2209.09219} parallelizable decoders can be combined with many inner decoders, such as MWPM or union-find.' + - 'Sliding-window \cite{arxiv:2209.09219,arxiv:2209.08552} and parallel-window \cite{arxiv:2209.09219} parallelizable decoders, designed to overcome the backlog problem, can be combined with many inner decoders, such as MWPM or union-find.' - 'Generalized belief propagation (GBP) \cite{arxiv:2212.03214} based on a classical version \cite{manual:{J. S. Yedidia, W. T. Freeman, and Y. Weiss, Generalized belief propagation, in NIPS, Vol. 13 (2000) pp. 689–695.}}. See Ref. \cite{doi:10.1109/MBITS.2023.3285848} for a review of BP decodes.' - 'Color-code decoder \cite{arxiv:2306.16476}.'