Surface codes with densely packed gauge operators
By forming composite stabilizers from gauge operators that commute with other stabilizers, the inefficiencies in conventional surface codes are overcome, enabling efficient error detection in quantum computing systems.
Patent Information
- Application Number
- JP2025529851
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2022-11-21
- Filing Date
- 2023-11-20
- Publication Date
- 2025-11-14
- Estimated Expiration
- 2043-11-20
AI Technical Summary
Conventional surface codes in quantum computing are inefficient in detecting errors due to the need for alternating layers of X-type and Z-type gauge operators, requiring at least three cycles to detect both X-type and Z-type errors, which is slower than conventional two-cycle measurements.
Combining two or more gauge operators to form composite stabilizers that commute with other stabilizers, allowing for simultaneous measurement of X-type and Z-type stabilizers in each cycle, thereby enhancing error detection efficiency.
This approach enables more efficient error detection by allowing each stabilizer to be measured in every cycle, improving the overall performance of quantum error correction codes.
Smart Images

Figure 2025537337000001_ABST
Abstract
Description
[Technical Field]
[0001] Priority claims This application claims priority to U.S. Provisional Application No. 63 / 426,951, entitled "Decoding Subsystem Surface Codes Where Gauge Operators Are Densly Packed," filed November 21, 2022, the contents of which are incorporated herein in their entirety.
[0002] The present disclosure relates generally to quantum computing and information processing systems, and more particularly to surface codes with densely packed gauge operators for quantum computing systems. [Background technology]
[0003] Quantum computing is a computing method that exploits quantum effects such as superposition and entanglement of basis states to perform certain calculations more efficiently than classical digital computers. In contrast to digital computers, which store and manipulate information in the form of bits, e.g., "1" or "0," quantum computing systems can manipulate information using quantum bits ("qubits"). A qubit can refer to a quantum device that allows for the superposition of data in multiple states, e.g., both "0" and "1," and / or the superposition of data in multiple states itself. According to conventional terminology, the superposition of "0" and "1" states in a quantum system can be expressed, for example, as a|0〉 + b|1〉. The "0" and "1" states of a digital computer are analogous to the |0〉 and |1〉 basis states of the qubit, respectively. Summary of the Invention
[0004] Aspects and advantages of embodiments of the present disclosure will be set forth in part in the description that follows, or may be learned from the description, or may be learned by practice of the embodiments.
[0005] One exemplary aspect of the present disclosure is directed to implementing quantum error correction (QEC) codes with a quantum computing system (QCS). The QCS may include a set of qubits, including a set of functional qubits and a set of non-functional qubits that are disjoint from the set of functional qubits. One non-limiting method for implementing QEC with a QCS includes forming a set of gauge operators that map around the set of non-functional qubits. Each gauge operator in the set of gauge operators includes a distinct subset of the set of functional qubits and a global sequence that indicates the order in which the gauge operators act on the subset of functional qubits. The gauge operators of one or more pairs of the set of gauge operators are non-commutative operators. A set of gauge operator combinations is determined from the set of gauge operators. Determining the set of gauge operator combinations may be based on the subset of functional qubits and the global sequence of each gauge operator in the set of gauge operators. Each gauge operator combination in the set of gauge operator combinations includes at least two gauge operators from the set of gauge operators. Furthermore, each gauge operator combination has a composite operator that commutes with the composite operator of each other gauge operator combination in the set of gauge operator combinations. A set of composite stabilizers may be generated, where each composite stabilizer in the set of composite stabilizers corresponds to a distinct gauge operator combination in the set of gauge operator combinations, and a QEC code may be implemented by a QCS based on the set of composite stabilizers.
[0006] Other aspects of the present disclosure are directed to various systems, methods, apparatus, non-transitory computer-readable media, computer-readable instructions, and computing devices.
[0007] These and other features, aspects, and advantages of various embodiments of the present disclosure will become better understood with reference to the following description and appended claims. The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate exemplary embodiments of the present disclosure and, together with the detailed description, explain associated principles.
[0008] Detailed descriptions of embodiments directed to those skilled in the art are set forth herein with reference to the accompanying drawings, in which: [Brief explanation of the drawings]
[0009] [Figure 1] FIG. 1 illustrates an exemplary quantum computing system, according to an exemplary embodiment of the present disclosure. [Figure 2] 1A-1C are schematic diagrams of surface code features, according to various embodiments. [Figure 3A] 1A-1C are schematic diagrams of features of a square Z-stabilizer, according to various embodiments. [Figure 3B] 1A-1C are schematic diagrams of features of a square X-shaped stabilizer, according to various embodiments. [Figure 4A] 10A-10C illustrate various nomenclature used herein to indicate the order of stabilizer and gauge operator measurement tiles, according to various embodiments. [Figure 4B] FIG. 10 illustrates that the temporal order of quantum circuits implementing surface codes need not be unique, according to various embodiments. [Figure 5] FIG. 1 is a schematic diagram of a non-limiting example of forming a subsystem surface signature in the presence of a defect qubit, according to various embodiments. [Figure 6] FIG. 10 illustrates a non-limiting example of labeling tiles to form a directed graph, according to various embodiments. [Figure 7A] FIG. 1 illustrates steps for assigning cycle offsets to nodes of a directed graph, according to various embodiments. [Figure 7B] 7B illustrates alternative selections of the initially selected node of FIG. 7A, according to various embodiments. [Figure 8] FIG. 1 is a flowchart diagram of an exemplary method for implementing a quantum error correcting code with a quantum computing device, according to various embodiments. DETAILED DESCRIPTION OF THE INVENTION
[0010] Exemplary aspects of the present disclosure are directed to methods, architectures, and hardware configurations for implementing quantum error correction (QEC) codes (e.g., surface codes and surface-like codes) using densely packed gauge operators. As used herein, the "density" of packing gauge operators may be a density defined in terms of time (rather than spatial density). Accordingly, embodiments include gauge operators that are dense in time. Typical surface code implementations rely on a regular 2D grid of physical qubits without defective or non-functional (e.g., non-working) qubits. However, due to current manufacturing limitations, at least some of the qubits in a 2D grid of qubits integrated on a quantum processor may be defective (e.g., non-functional). Therefore, conventional surface codes can be modified such that stabilizers are "mapped" around the defective or non-functional qubits so that the modified surface code avoids the defective qubits. Such modified surface codes are sometimes referred to as subsystem surface codes because the code "touches" only a subset of the qubits (e.g., functional qubits) of the 2D grid.
[0011] Previous attempts to correct surface codes with non-functioning qubits involve alternating layers of X-type and Z-type gauge operators. In these previous attempts, separate layers of X-type and Z-type stabilizers (formed from layers of X-type and Z-type gauge operators, respectively) are formed alternately due to the non-commutative properties of the X-type and Z-type Pauli operators. These previous attempts are inefficient because only a single layer of gauge operators (e.g., the X-type layer or the Z-type layer) can be measured per cycle. A detector is formed by two consecutive measurements of the stabilizers. Therefore, at least three cycles of measurements are required to detect both X-type and Z-type errors. That is, these previous attempts take longer to detect errors than a conventional two-cycle measurement.
[0012] As explained further throughout, a stabilizer is a single unit of a quantum error-correcting code. A stabilizer specifies a quantum operator with expected eigenvalues. For example, conventional surface codes (e.g., those implemented on a 2D grid of qubits without defects or non-functioning qubits) have square and semicircular stabilizers. There are two types of square and semicircular stabilizers, X-type stabilizers and Z-type stabilizers, respectively. A square stabilizer involves four data qubits (and a single measurement qubit), and a semicircular stabilizer involves two data qubits (and a single measurement qubit). Thus, the quantum operator specified by a square X-type stabilizer is the operator XXXX (where X denotes the X Pauli operator), and the quantum operator specified by a square Z-type stabilizer is the operator ZZZZ (where Z denotes the Z Pauli operator). The quantum operator specified by a semicircular X-type stabilizer is the operator XX, and the quantum operator specified by a semicircular Z-type stabilizer is the operator ZZ. In conventional surface codes, the quantum operator specified by any particular stabilizer of the code commutes with the quantum operators specified by other stabilizers of the code. The set of stabilizers defines the ability of the quantum code to detect errors by detecting changes in the eigenvalues of the stabilizers.
[0013] In contrast to stabilizers, gauge operators are quantum operators that function as "pieces" of the stabilizer. As described below, a square stabilizer, in which one of the four data qubits is a non-functioning qubit, can be "mapped" around the non-functioning qubit to form a gauge operator with three functioning qubits (e.g., XXX or ZZZ). Being "part" of the stabilizer, embodiments use combinations of gauge operators to detect errors. Measurements of gauge operators (also implemented in circuits in a similar manner to stabilizer measurements) are individually random, even in the absence of errors. This means, for example, that errors cannot be reliably detected by comparing two consecutive measurements of the same gauge operator. However, detectors can be formed by combining measurements across multiple gauge operators. Thus, detectors function as "pieces" of the stabilizer.
[0014] Embodiments overcome the above inefficiencies by combining two or more gauge operators to form a "composite" stabilizer. A composite stabilizer is formed by a combination of two or more gauge operators. The two or more gauge operators (e.g., a combination of gauge operators) forming the composite stabilizer are selected such that the "composite" quantum operator of the composite stabilizer commutes with the quantum operators of all other stabilizers in the code. Because the composite quantum operator commutes with the other operators of the stabilizer, measurements of the X-type and Z-type stabilizers can be performed every measurement cycle. Thus, by being able to measure each gauge operator in each measurement cycle, embodiments achieve more efficient error detection than previous methods of implementing subsystem surface codes.
[0015] Embodiments include methods for implementing QEC codes modified from "surface codes" that accommodate non-functioning qubits (e.g., manufacturing defects) more effectively than conventional methods. The modifications to the operation are methods for analyzing and comparing measurements to detect errors. Thus, improved (e.g., more efficient) QEC codes are realized. Embodiments further include methods for generating circuit control sequences for quantum circuits that implement the improved quantum codes.
[0016] A quantum computing system (QCS) may include a set of qubits, including a set of functional qubits and a set of non-functional qubits that are disjoint from the set of functional qubits. One non-limiting method for implementing QEC includes forming a set of gauge operators that map around the set of non-functional qubits. Each gauge operator in the set of gauge operators includes a distinct subset of the set of functional qubits and a global sequence that indicates the order in which the gauge operators act on the subset of functional qubits. The gauge operators of one or more pairs of the set of gauge operators are non-commutative operators. A set of combinations of gauge operators is determined from the set of gauge operators. A pair of gauge operators may include two or more gauge operators (e.g., a first gauge operator and a second gauge operator) from the set of gauge operators. Determining the set of combinations of gauge operators may be based on the subset of functional qubits and the global sequence of each gauge operator in the set of gauge operators. Each combination of gauge operators has a composite operator that commutes with the composite operator of each other combination of gauge operators in the set of gauge operator combinations. The composite operator of each gauge operator combination in the set of gauge operator combinations may be a product of each gauge operator in the gauge operator combination. A set of composite stabilizers may be generated. Each composite stabilizer in the set of composite stabilizers corresponds to one gauge operator combination in the set of gauge operator combinations. A QEC code may be implemented by a QCS based on the set of composite stabilizers.
[0017] The set of qubits may be arranged on a 2D grid of qubits. In such an embodiment, the method may further include constructing a set of tiles on the 2D grid of qubits. Each vertex of each tile in the set of tiles may correspond to one qubit in the set of qubits. The set of tiles includes a set of square tiles and a set of semicircular tiles. Each tile in the set of tiles corresponds to an X-type operator or a Z-type operator, such that the set of square tiles forms a checkerboard pattern of X-type operators and Z-type operators. Each vertex of each tile in the set of tiles may be assigned a global time position based on a set of circuit constraints. A global sequence of each gauge operator in the set of gauge operators may be based on the global time position of each vertex of each tile in the set of tiles. The global sequence of each gauge operator may indicate a circuit control sequence for a quantum circuit implementing QEC. When a vertex of a square tile corresponds to a non-functioning qubit in the set of qubits, the square tile may be transformed into a triangular tile that maps around the non-functioning qubit. For example, the vertices of a square tile corresponding to a non-functioning qubit may be "cut" or "cut" so that the square tile is mapped around the non-functioning qubit and the square tile is converted into a triangular tile. A set of triangular tiles is constructed with the previous square tile removed from the set of square tiles. Each triangular tile in the set of triangular tiles corresponds to a distinct gauge operator in the set of gauge operators. Note that the embodiments are not limited to scenarios in which a square tile is limited to a single non-functioning qubit; the embodiments are generalizable to more than one non-functioning qubit in a tile. For example, when there are two or three non-functioning qubits in the square tile, the square tile may be reduced to a "line" or a "point."
[0018] A set of square stabilizers may be formed based on the set of square tiles and the global time positions of each vertex of each square tile in the set of square tiles. A set of semicircular stabilizers may be formed based on the set of semicircular tiles and the global time positions of each vertex of each semicircular tile in the set of semicircular tiles. A QEC code may be executed by the QCS further based on the set of square stabilizers and the set of semicircular stabilizers. The method may further include assigning a cycle offset to each gauge operator in the set of gauge operators based on a breadth-first search of a directed graph generated from the set of triangular tiles. A set of composite detectors may be generated based on the cycle offset of each triangular tile in the set of triangular tiles.
[0019] A method for generating a circuit control sequence for a quantum circuit implementing QEC may include assigning a unique label to each gauge operator of a set of gauge operators based on a correspondence of the gauge operator to a triangular tile of the set of triangular tiles. A directed graph may be generated based on a global sequence of each gauge operator in the set of gauge operators. The directed graph includes a set of nodes and a set of directed edges between multiple nodes in the set of nodes. Determining each directed edge in the set of directed edges is described below. Each node in the set of nodes corresponds to a distinct gauge operator in the set of gauge operators and is labeled with a unique label of the corresponding gauge operator. The directed graph may be traversed. Traversing the directed graph includes visiting each node in the set of nodes by the set of directed edges. Each gauge operator in the set of gauge operators may be assigned a cycle offset based on a correspondence between a traversal direction and a direction of each directed edge in the set of directed edges. The cycle offset of each gauge operator in the set of gauge operators may be updated based on a detector template and the parity of the cycle offset of the gauge operator.
[0020] Note that the embodiments can be generalized to any stabilizer measurement, including flags. As described throughout, the embodiments are based on the order in which the quantum circuit contacts the data qubits (e.g., a global sequence of gauge operators indicating the order in which the gauge operators act on a subset of functional qubits). The embodiments can be further generalized to situations in which stabilizers can be reconstructed from gauge operators and other stabilizers, resets, or measurements, such as surface signature shifts or lattice surgery. The tiles can have any label for the time position in which they contact the data qubits. The tiles (and therefore the stabilizers and gauge operators) are not limited to "X-type" and "Z-type." They can be generalized to locally equivalent ones to X-type and Z-type. Locally equivalent means applying a transformation that is a single-qubit Clifford gate for each data qubit. This can be shown to preserve pairwise commutativity between stabilizers, pairwise commutativity between any stabilizer and gauge operator, and commutativity or non-commutativity between pairs of gauge operators, e.g., X / Y surface codes and / or XZZX surface codes. The method now generalizes to other circuit decompositions that use two-qubit entanglement operations, such as controlled Z gates or two-qubit parity measurements.
[0021] Other generalizations of the embodiments to note are as shown in the description, which focuses on the non-functioning qubits being data qubits of the stabilizer, not measurement qubits. For example, the scenario may be one in which the non-functioning qubits correspond to the "corners" of a square tile. However, the embodiments are not so limited, and the embodiments may be used in a scenario in which one of one or more measurement qubits of one or more stabilizers is a non-functioning qubit. The support qubit may be used to measure the stabilizer or gauge operator as part of a circuit (and would be located in the center of the square tile). If one of these is non-functional, some embodiments may use an approach that deactivates the entire tile by treating all data qubits as non-functional.
[0022] Aspects of the present disclosure provide many technical effects and benefits. For example, composite stabilizers are formed by combining gauge operators in this way into combinations of gauge operators. The operators of the resulting combinations of gauge operators commute with the operators of each of the other stabilizers. Thus, each stabilizer (X-type stabilizer and Z-type stabilizer) can be measured in each cycle of the quantum circuit. Therefore, errors can be detected more efficiently than in previous attempts at subsystem surface codes, which required alternating X-type and Z-type measurements.
[0023] 1 illustrates an exemplary quantum computing system 100. System 100 is one example of a system of one or more classical computers and / or quantum computing devices at one or more locations in which the systems, components, and techniques described below may be implemented. Using the disclosure provided herein, one skilled in the art will understand that other quantum computing devices or systems may be used without departing from the scope of the present disclosure.
[0024] System 100 includes quantum hardware 102 in data communication with one or more classical processors 104. Classical processor 104 may be configured to execute computer-readable instructions stored in one or more memory devices to perform operations, such as any of the operations described herein. Quantum hardware 102 includes components for performing quantum computations. For example, quantum hardware 102 includes quantum system 110, control device(s) 112, and readout device(s) 114 (e.g., readout resonator(s)). Quantum system 110 may include one or more multi-level quantum subsystems, such as a register of qubits (e.g., qubit 120). In some implementations, the multi-level quantum subsystem may include superconducting qubits, such as flux qubits, charge qubits, transmon qubits, gmon qubits, spin-based qubits, etc.
[0025] The type of multi-level quantum subsystem utilized by system 100 may vary. For example, in some cases it may be advantageous to include one or more readout device(s) 114 attached to one or more superconducting qubits, e.g., transmon, flux, gmon, xmon, or other qubits. In other cases, ion traps, photonic devices, or superconducting cavities (e.g., in which states may be prepared without the need for qubits) may be used. Further examples of multi-level quantum subsystem implementations include flux qubits, silicon quantum dots, or phosphorus impurity qubits.
[0026] Quantum circuits may be constructed and applied to a register of qubits included in quantum system 110 via multiple control lines coupled to one or more control devices 112. Exemplary control devices 112 operating on a register of qubits may be used to implement a quantum circuit having a quantum gate or multiple quantum gates, e.g., Pauli gates, Hadamard gates, controlled-NOT (CNOT) gates, controlled phase gates, T-gates, multi-qubit quantum gates, coupler quantum gates, etc. One or more control devices 112 may be configured to operate on quantum system 110 through one or more respective control parameters (e.g., one or more physical control parameters). For example, in some implementations, the multi-level quantum subsystem may be a superconducting qubit, and control device 112 may be configured to provide control pulses to the control lines to generate magnetic fields to tune the frequency of the qubit.
[0027] The quantum hardware 102 may further include a readout device 114 (e.g., a readout resonator). Measurement results 108 obtained by the measurement device may be provided to a classical processor 104 for processing and analysis. In some implementations, the quantum hardware 102 may include quantum circuits, and the control device(s) 112 and readout device(s) 114 may implement one or more quantum logic gates that act on the quantum system 102 through physical control parameters (e.g., microwave pulses) transmitted through wires included in the quantum hardware 102. Further examples of control devices include arbitrary waveform generators, and DACs (digital-to-analog converters) create signals.
[0028] The readout device(s) 114 may be configured to perform quantum measurements on the quantum system 110 and transmit the measurement results 108 to the classical processor 104. Additionally, the quantum hardware 102 may be configured to receive data specifying the physical control qubit parameter values 106 from the classical processor 104. The quantum hardware 102 may use the received physical control qubit parameter values 106 to update the action of the control device(s) 112 and the readout device(s) 114 on the quantum system 110. For example, the quantum hardware 102 may receive data specifying new values representing the voltage magnitudes of one or more DACs included in the control device 112 and may update the action of the DACs on the quantum system 110 accordingly. The classical processor 104 may be configured to initialize the quantum system 110 to an initial quantum state, e.g., by transmitting data specifying an initial set of parameters 106 to the quantum hardware 102.
[0029] In some implementations, readout device(s) 114 may measure the state of an element (e.g., a qubit) of a quantum system, such as a qubit, by utilizing the difference in impedance for the |0> and |1> states of the element. For example, the resonant frequency of the readout resonator may be different when the qubit is in the |0> or |1> state due to the nonlinearity of the qubit. Thus, microwave pulses reflected from readout device 114 carry amplitude and phase shifts that depend on the state of the qubit. In some implementations, a Purcell filter may be used in conjunction with readout device(s) 114 to prevent microwave propagation at the qubit frequency.
[0030] In some embodiments, quantum system 110 may include multiple qubits 120 arranged, for example, in a two-dimensional grid 122. For clarity, two-dimensional grid 122 shown in FIG. 1 includes 4x4 qubits, although in some implementations, system 110 may include a fewer or greater number of qubits. In some embodiments, multiple qubits 120 may interact through multiple qubit couplers, such as qubit coupler 124. The qubit coupler may define nearest-neighbor interactions between multiple qubits 120. In some implementations, the strength of the multiple qubit couplers is a tunable parameter. In some cases, multiple qubit couplers included in quantum computing system 100 may be couplers with fixed coupling strengths.
[0031] In some implementations, the plurality of qubits 120 may include data qubits, such as qubit 126, and measurement qubits, such as qubit 128. A data qubit is a qubit that participates in a computation being performed by system 100. A measurement qubit is a qubit that can be used to determine the result of a computation performed by a data qubit. That is, during a computation, the unknown state of a data qubit is transferred to a measurement qubit using an appropriate physical operation and measured by an appropriate measurement operation performed on the measurement qubit.
[0032] In some implementations, each qubit in plurality of qubits 120 may be operated using a respective operating frequency, such as an idle frequency, an interaction frequency, a readout frequency, and / or a reset frequency. The operating frequency may vary from qubit to qubit. For example, each qubit may idle at a different operating frequency. The operating frequency of qubit 120 may be selected before a computation is performed.
[0033] 1 illustrates one example quantum computing system that may be used to implement methods and operations according to example aspects of the present disclosure. Other quantum computing systems may be used without departing from the scope of the present disclosure.
[0034] FIG. 2 provides a schematic illustration of features of a surface code, according to various embodiments. More specifically, the “leftmost” diagram of FIG. 2 shows a set of qubits 200. The set of qubits 200 is arranged in a 2D grid. This non-limiting example of the set of qubits 200 includes 17 qubits, represented by filled (or closed) and unfilled (or open) “dots.” While there are some similarities to classical error-correcting codes, which use each bit as either a “data” bit or a “parity-check” bit, quantum error-correcting codes use each qubit in the set of qubits 200 as either a “data” qubit or a “measurement” qubit. As explained below, a “data” qubit is somewhat similar to a “data” bit in a classical code in that quantum information is stored in the quantum state of the data qubit. The "measurement" qubits are somewhat similar to "parity-check" bits in classical codes in that they are used (by stabilizer operations and stabilizer measurements, as described below) to check the parity of corresponding data qubits (both X-type and Z-type parity, as described below). The filled dots represent data qubits in the surface code (e.g., data qubit 202), and the unfilled dots represent measurement qubits in the surface code (e.g., measurement qubit 204). Note that for clarity, the 2D grid of qubits has been rotated by 45°. The qubits in qubit set 200 are enabled for "nearest-neighbor" entanglement interactions, and the dashed lines indicate the qubit connectivity of each qubit with its nearest neighbors.
[0035] The “middle” diagram of FIG. 2 illustrates a surface code 210 imposed on a set of qubits 200. The “right-most” diagram of FIG. 2 illustrates the surface code 210 without explicitly illustrating the set of qubits 200 (e.g., the set of qubits 200 is implied in the “right-most” diagram of FIG. 2). For purposes of the following discussion, a “surface code” (such as, but not limited to, the surface code 210) is a quantum error-correcting code. In a surface code (such as, but not limited to, the surface code 210), the qubits (e.g., the qubits of the set of qubits 200) are arranged on a square lattice. In a surface code, entanglement interactions (e.g., indicated by dashed lines) between qubits occur only between nearest neighbors. A surface code may be implemented by a quantum circuit. Thus, as used herein, a “quantum circuit” is a sequence of operations applied to implement a quantum computation, such as to implement a surface code. "Decoding" a surface code refers to the process of collecting error-detection measurements generated when executing a quantum code (e.g., a surface code) and using those measurements to identify and correct errors. A quantum circuit may implement a quantum code (e.g., surface code 210) that uses measurements of a subset of set of qubits 200 to detect errors. More specifically, a "detector" is a particular set of measurements (specified by a list of their positions in the circuit) whose combined parity has an expected value when no errors occur. Observing unexpected parity indicates an error. Identifying a detector is the step that performs decoding, since the input to the decoder is the detector value for the circuit being decoded.
[0036] A "stabilizer" is a single unit of a quantum error-correcting code. More specifically, a stabilizer specifies a quantum operator with expected eigenvalues. A quantum operator specified by a stabilizer may be called a stabilizer generator. A set of stabilizers defines the quantum code's ability to detect errors by detecting changes in the stabilizer's eigenvalues. A surface code (such as, but not limited to, surface code 210) may use X-type stabilizers (e.g., formed by a set of X Pauli operators) that operate on a subset of qubit set 200, and Z-type stabilizers (e.g., formed by a set of Z Pauli operators) that operate on a subset of qubit set 200. The eigenstates (and corresponding eigenvalues) of the X-type stabilizer correspond to the eigenstates (and corresponding eigenvalues) of the X operator. The eigenstates (and corresponding eigenvalues) of the Z-type stabilizer correspond to the eigenstates (and corresponding eigenvalues) of the Z operator. A quantum circuit is used to observe the stabilizer's eigenvalues. More specifically, stabilizer measurements are measurements applied to a quantum circuit to observe the stabilizer eigenvalues. The stabilizer operator's eigenvalues, which can be +1 or -1, are mapped to single-bit measurements, which take on values of 0 or 1. This is the mechanism by which quantum codes detect errors: the stabilizer eigenvalues are observed using the circuit, and an error flips one or more stabilizer measurements.
[0037] 2, light-shaded tiles (both square and semicircular tiles) represent X-type stabilizers, and dark-shaded tiles (both square and semicircular tiles) represent Z-type stabilizers. As mentioned above, filled dots represent data qubits, and unfilled dots represent measurement qubits, which are used to measure the eigenvalues of the corresponding stabilizers. Thus, for surface code 210, there are four “flavors” of stabilizers: square X-type stabilizers (e.g., square X-type stabilizer 216), semicircular X-type stabilizers (e.g., semicircular X-type stabilizer 218), square Z-type stabilizers (e.g., square Z-type stabilizer 212), and semicircular Z-type stabilizers (e.g., semicircular Z-type stabilizer 214). A square stabilizer (e.g., both X-type and Z-type square stabilizers) includes four data qubits (e.g., one at each of the four corners (or vertices) of the square tile) and one measurement qubit at the center of the square tile. A semicircular stabilizer (e.g., both X-type and Z-type semicircular stabilizers) includes two data qubits (e.g., one at each "antipodal" point of the semicircular tile) and one measurement qubit at the center of the semicircular "curve." Each data qubit is included in at least one X-type stabilizer and at least one Z-type stabilizer. Each measurement qubit is included in exactly one stabilizer (e.g., either an X-type or Z-type stabilizer). The square stabilizers form a "checkerboard" pattern of X-type and Z-type stabilizers, with each row and column being "capped" at one of the two ends by a semicircular stabilizer. The semicircular stabilizers may also be called "ear" stabilizers.
[0038] The square Z-shaped stabilizer includes quantum operator ZZZZ, with each of four Z Pauli operators applied to a separate one of four data qubits at the four vertices of the square tile. The semicircular Z-shaped stabilizer includes quantum operator ZZ, with each of two Z Pauli operators applied to one of two data qubits at two antipodal points of the semicircular tile. The order of the operators acting on the data qubits is described throughout.
[0039] For a given quantum circuit (e.g., a sequence of operations performed by an implementation of surface code 210), "detector formation" involves identifying the combination of measurements that form the detector for that code. For example, if the same stabilizer is measured twice, the two measurements are compared. If no errors occur, the results will be the same. However, if the measurements are different, an error has occurred somewhere (e.g., an error is detected). In this example, the detector is defined as the parity of the two measurements of the same stabilizer. Even parity means that no error was detected, and odd parity means that an error was detected. Determining the combination of measurements that form the detector requires careful analysis of the quantum code and its circuit.
[0040] A "gauge operator" is a quantum operator that serves as a "piece" of a stabilizer. When used in combination with other gauge operators, a gauge operator can detect errors. Measurements of a gauge operator (also implemented with circuits similar to stabilizer measurements) are individually random, even in the absence of errors. This means, for example, that errors cannot be reliably detected by comparing two consecutive measurements of the same gauge operator. However, a detector can be formed by a combination of measurements across multiple gauge operators. Thus, a detector serves as a "piece" of a stabilizer. Identifying which combinations of measurements form a detector requires careful analysis of the quantum code and circuitry.
[0041] A "commutative" pair of operators is a special property of pairs of quantum operators whereby reordering the operators has no effect and "applying A before B" has the same effect on a system as "applying B before A" on a system, such as measuring the eigenvalues of a stabilizer or gauge operator. Note that not all pairs of quantum operators are commutative. The stabilizers of surface code 210 are constructed such that pairs of quantum operators in the stabilizer are commutative. The gauge operators of surface code 210 are sometimes (but not always) commutative. That is, gauge operators may or may not be commutative. In the following example, the gauge operators of a given quantum code can be divided into subgroups such that members of each subgroup commute with each other, but two gauge operators from different subgroups do not commute.
[0042] A "subsystem surface code" is a type of surface code that uses a combination of stabilizers and gauge operators to detect errors. It is a property of subsystem codes that any pair of one stabilizer and one gauge operator commutes. That is, stabilizers and gauge operators may commute. Certain combinations of gauge operators can be combined to form a stabilizer. This occurs if, for a given subset of gauge operators, the product of the gauge operators in this subset forms an operator that commutes with all other stabilizers and gauge operators. This product operator is therefore a stabilizer, but it is composed of multiple gauge operators. Because there are combinations of gauge operators that form a stabilizer, and because the eigenvalues of the gauge operators can be measured, the parity combination of measurements of the gauge operators that make up the stabilizer implements a measurement of that stabilizer, which is a product of the gauge operators. Just as a detector is formed by the parity combination of two consecutive measurements of the same stabilizer, this procedure applies to measurements of two consecutive "composite" stabilizers of a stabilizer composed of gauge operators. The measurements of a composite stabilizer are a parity combination of the measurements of the constituent gauge operators.
[0043] As used herein, the terms "defective" qubit and "corrupted" qubit may be used interchangeably to refer to a non-functioning qubit in set 200 of qubits. Embodiments include generating (or forming) a subsystem surface code for the defective qubit. Generating a subsystem surface code for the defective qubit involves modifying a surface code originally composed only of stabilizers to use gauge operators at the locations in the square grid where the qubit is non-functioning. Each gauge operator is formed by "decoupling" a portion of the stabilizer that was dependent on the non-functioning qubit. The result is a set of stabilizers and gauge operators that depend only on the functioning qubits of the provided grid. Detectors may be formed for measurement of both the stabilizers and the gauge operators.
[0044] 3A provides a schematic diagram of features of a square Z-type stabilizer 300 according to various embodiments. The square Z-type stabilizer 300 (or square Z-type tile) may be similar to the square Z-type stabilizer of surface symbol 210 of FIG. 2 (e.g., square Z-type stabilizer 212 of surface symbol 210). Thus, the square Z-type stabilizer 300 has four data qubits (e.g., filled dots), each located at one of the four corners (or vertices) of the square tile, and a measurement qubit (e.g., unfilled dot) located in the center of the square tile. Each qubit of the square Z-type stabilizer 300 is labeled with an integer index. The data qubits are labeled with integer indices 1, 2, 3, and 4, and the measurement qubit is labeled with integer index 5.
[0045] As described in connection with FIG. 2, error detection is performed using a quantum circuit that measures the stabilizer's eigenvalues, comparing repeated measurements of the same stabilizer. FIG. 3A shows a quantum circuit 310 that can be used to measure a square Z-shaped stabilizer 300. Each horizontal line in the quantum circuit 310 corresponds to one of the five qubits in the square Z-shaped stabilizer 300. The mapping of integer indices 1 through 5 to the five qubits indicates which horizontal line maps to each of the five qubits. The quantum circuit 310 includes a sequence of quantum logic gates (e.g., entangled CNOT gates), and the order of the sequence is important to the operation of the surface code (e.g., surface code 210 of FIG. 2). The quantum circuit 310 (e.g., including the ordering of the sequence of logic gates) illustrates how to measure the square Z-shaped stabilizer 300.
[0046] More specifically, the time axis of quantum circuit 310 runs from left to right. Each time step in the operation of quantum circuit 310 is labeled with one of the labels a, b, c, d, e, or f, where a indicates the first operation and f indicates the last operation in the measurement of square Z-shaped stabilizer 300. Quantum operation 320 shows the operation of quantum circuit 310 in pseudocode format, with each line of the pseudocode labeled with the time order labels a, b, c, d, e, and f. In step a (of quantum circuit 310 and quantum operation 320), qubit 5 (e.g., the measurement qubit) is reset to its basis state (e.g., an eigenstate in the Z basis). In step b, an entangled CNOT gate is applied to data qubit 1 and measurement qubit 5, where qubit 1 is the control qubit. In step c, an entangled CNOT gate is applied to data qubit 2 and measurement qubit 5, where qubit 2 is the control qubit. In step d, an entangled CNOT gate is applied to data qubit 3 and measurement qubit 5, where qubit 3 is the control qubit. In step e, an entangled CNOT gate is applied to data qubit 4 and measurement qubit 5, where qubit 4 is the control qubit. In step f, the quantum state of measurement qubit 5 is measured. After step f, quantum circuit 310 (and therefore quantum operation 320) may return to step a.
[0047] Note that when measuring square Z-shaped stabilizer 300, the measurement qubit is first reset to its basis state in the Z basis. Each of the data qubits is then entangled with the measurement qubit by a CNOT operation, with the data qubit acting as the control qubit. After performing each of the CNOT entanglement operations, the measurement qubit is measured. As noted above, the order in which the entangled CNOT operations are performed is important. The labeling of the data qubits in square Z-shaped stabilizer 300 indicates the ordering of their entanglement operations with the measurement qubit, as they are shown in FIG. 3A.
[0048] 3B provides a schematic diagram of features of a square X-shaped stabilizer 350 according to various embodiments. The square X-shaped stabilizer 350 (or square X-shaped tile) may be similar to the square X-shaped stabilizer of surface symbol 210 of FIG. 2 (e.g., square X-shaped stabilizer 216 of surface symbol 210). Thus, the square X-shaped stabilizer 350 has four data qubits (e.g., filled dots), each located at one of the four corners (or vertices) of the square tile, and a measurement qubit (e.g., unfilled dot) located in the center of the square tile. Each qubit of the square X-shaped stabilizer 350 is labeled with an integer index. The data qubits are labeled with integer indices 1, 2, 3, and 4, and the measurement qubit is labeled with integer index 5.
[0049] As described in connection with FIG. 2, error detection is performed using a quantum circuit that measures the stabilizer's eigenvalues, and repeated measurements of the same stabilizer are compared. FIG. 3B shows a quantum circuit 360 that can be used to measure a square X-shaped stabilizer 350. Each horizontal line of the quantum circuit 360 corresponds to one of the five qubits of the square X-shaped stabilizer 350. The mapping of integer indices 1 through 5 to the five qubits indicates which horizontal line maps to each of the five qubits. The quantum circuit 360 includes a sequence of quantum logic gates (e.g., entangled CNOT gates), and the order of the sequence is important to the operation of the surface code (e.g., surface code 210 of FIG. 2). The quantum circuit 360 (e.g., including the ordering of the sequence of logic gates) illustrates how to measure the square X-shaped stabilizer 350.
[0050] More specifically, the time axis of quantum circuit 360 extends from left to right. Each time step in the operation of quantum circuit 360 is labeled with one of the labels a, b, c, d, e, f, g, or h, where a indicates the first operation and h indicates the last operation in the measurement of square X-type stabilizer 350. The reason square X-type stabilizer 350 has two additional operations compared to square Z-type stabilizer 300 of FIG. 3A is because the entangled CNOT operation of square X-type stabilizer 350 starts with the measurement qubit in an eigenstate in the X basis (e.g., by a first Hadamard gate) rather than the Z basis, and the measurement qubit is transformed back to the Z basis by a second Hadamard gate before its measurement. Quantum operation 370 shows the operation of quantum circuit 360 in pseudocode format, with each line of the pseudocode labeled with time order labels a, b, c, d, e, f, g, and h. In step a (of quantum circuit 360 and quantum operation 370), qubit 5 (e.g., the measurement qubit) is reset to its basis state (e.g., an eigenstate in the Z basis). In step b, a first Hadamard gate transforms the measurement qubit to an eigenstate in the X basis. In step c, an entangled CNOT gate is applied to data qubit 1 and measurement qubit 5, where qubit 5 is the control qubit. In step d, an entangled CNOT gate is applied to data qubit 2 and measurement qubit 5, where qubit 5 is the control qubit. In step e, an entangled CNOT gate is applied to data qubit 3 and measurement qubit 5, where qubit 5 is the control qubit. In step f, an entangled CNOT gate is applied to the data qubit 4 and the measurement qubit 5, where qubit 5 is the control qubit. In step g, a second Hadamard gate is applied to the measurement qubit 5. In step h, the quantum state of the measurement qubit 5 is measured. After step h, quantum circuit 360 (and therefore quantum operation 370) may return to step a.
[0051] Note that when measuring the square X-shaped stabilizer 350, the measurement qubit is first reset to its basis state in the Z basis. The measurement qubit is then transformed to an eigenstate in the X basis by a first Hadamard gate. Each of the data qubits is then entangled with the measurement qubit by a CNOT operation, and the measurement qubit serves as the control qubit. The measurement qubit is then transformed again by a second Hadamard gate. After each of the CNOT entanglement operations is performed and the second Hadamard gate is applied to the measurement qubit, the measurement qubit is measured. As mentioned above, the order in which the entangled CNOT operations are performed is important. The labeling of the data qubits in the square X-shaped stabilizer 350 indicates the ordering of their entanglement operations with the measurement qubit, as shown in FIG. 3B.
[0052] Quantum circuits can be used to measure gauge operators. That is, in addition to stabilizers, similar configurations of quantum circuits can be used to measure gauge operators. For a given tile (e.g., an X-type tile or a Z-type tile), if the operator of the tile commutes with the operator of another tile (e.g., of the surface code), the tile may be used as a stabilizer. Otherwise, if there is at least one other tile (of the surface code) that does not commute with the given tile, the tile may be used as a gauge operator. Thus, the quantum circuit properties of stabilizer measurement tiles apply to gauge operator measurement tiles.
[0053] FIG. 4A illustrates various nomenclature used herein to indicate the order of stabilizer and gauge operator measurement tiles, according to various embodiments. The order in which the stabilizer (or gauge operator) measurement circuits “touch” the data qubits is important for the stabilizer measurement circuits (e.g., quantum circuit 310 of FIG. 3A and / or quantum circuit 360 of FIG. 3B). The embodiments herein may be generalized to quantum circuits using different gates, as the embodiments depend only on the order of the circuits. In the following description, the order in which the data qubits are contacted by the circuits associated with the tile is indicated by placing numbers next to the vertices. The numbers describe the position in time and do not label the qubits. For example, FIG. 4A illustrates a square Z-shaped tile 400 and a square X-shaped tile 402. The order in which the corresponding measurement circuits (for the tile) “touch” the data qubits is indicated by the numbers at the vertices. Note that the locations of the data qubits at the corners (or vertices) and the measurement qubit at the center of square Z-tile 400 and square X-tile 402 are implied. For square Z-tile 400, the order in which the circuitry contacts the data qubits (e.g., by entangled CNOT gates) is (1) the top-left data qubit, (2) the top-right data qubit, (3) the bottom-left data qubit, and (4) the bottom-right data qubit. For square X-tile 402, the order in which the circuitry contacts the data qubits (e.g., by entangled CNOT gates) is (1) the top-left data qubit, (2) the bottom-left data qubit, (3) the top-right data qubit, and (4) the bottom-right data qubit. As described below, embodiments may vary the “contacting” of the data qubits depending on the tile type and / or the pattern of “corrupted” qubits.
[0054] Non-square tiles can represent either stabilizers or gauge operators and thus can be similarly measured by corresponding quantum circuits. For such non-square tiles, the order in which data qubits are contacted by stabilizer measurement circuits or gauge measurements can be indicated by the number of the tile's "corners" (e.g., the positions of the data qubits). The time positions need not be consecutive integers starting from 1, as each number refers to a "global" time position for the entire surface code. For example, FIG. 4A shows a semicircular Z-shaped tile 404 contacting two data qubits at "antipodal" points (the data qubits are implied in FIG. 4A). The two time positions, 3 and 4, are time-global positions. FIG. 4A also shows a triangular X-shaped tile 406 contacting three data qubits at the corners of the triangle. The three time positions, 1, 3, and 4, are time-global positions. Triangular tiles are discussed below in conjunction with corrupted qubits.
[0055] 4A also shows a surface code 410, which may be similar to the surface code 210 of FIG. 2. As shown in FIG. 4A, the surface code 410 is composed of various square and non-square tiles, such as, but not limited to, square Z-shaped tiles 400 (e.g., two copies), square X-shaped tiles 402 (e.g., two copies), semicircular Z-shaped tiles 404 (e.g., two copies), and X-shaped semicircular tiles (e.g., two copies). The global time position (or global time coordinate) of each of the data qubits is indicated by multiple global time positions. Note that each data qubit is part of multiple tiles (e.g., at least one X-shaped tile and at least one Z-shaped tile). The global time positions (e.g., such as those shown in tiles 400, 402, 404, and 406) indicate the order in which the data qubits participate in the multiple tiles. Because each data qubit is contacted by multiple tiles (e.g., stabilizers), each data qubit is entangled with (e.g., contacted by) multiple measurement qubits, and therefore each data qubit is marked with multiple global time positions. For example, the "center" data qubit (e.g., the data qubit implied at the center of the dashed circle) is involved in (e.g., or contacted by) four separate tiles. The center data qubit has global time position 1 with respect to the lower right square Z-shaped tile. The center data qubit has global time position 2 with respect to the upper right square X-shaped tile (e.g., square X-shaped tile 402). The center data qubit has global time position 3 with respect to the lower left square X-shaped tile. The center data qubit has global time position 4 with respect to the upper left square Z-shaped tile (e.g., square Z-shaped tile 400).
[0056] Note that there are constraints on constructing global time positions. One such constraint is the avoidance of gate “collisions.” As shown in FIG. 4A, constructing global time positions for data qubits in surface code 410 avoids gate “collisions.” That is, in embodiments, no two gates can act on the same (data or measurement) qubit simultaneously. This means that the two-qubit gates must be scheduled (1) within a tile to ensure that corner data qubits are contacted at different times and there is no collision at the central measurement qubit, and (2) for each data qubit at a vertex shared by several tiles, no two tiles can contact that data qubit simultaneously. For any pair of tiles A and B (e.g., square Z-shaped tile 400 and square X-shaped tile 402) that overlap on two data qubits, one tile (e.g., square X-shaped tile 402) must contact both qubits before the other (e.g., square Z-shaped tile 400). For example, A contacts both of the overlapping qubits before B contacts either, or B contacts both of the overlapping qubits before A contacts either. Note that while some choices of circuit order may have better performance than others, embodiments herein encompass all valid choices of circuit order.
[0057] A quantum circuit that implements circuit order (e.g., as indicated by global time position) has a valid global time position because (1) at each vertex, if multiple tiles contact the same data qubit, each time at a tile corner is unique. As an example, the central qubit is surrounded by the dashed circle, and (2) if any two tiles overlap on two data qubits, one tile contacts both data qubits before the other tile contacts either of these two data qubits. For example, the square Z-shaped tile at the bottom right and the semicircular X-shaped tile at the bottom right overlap on the two qubits surrounded by the dashed rectangle. The semicircular X-shaped tile contacts these data qubits at times 1 and 2, and the square Z-shaped tile contacts them at times 2 and 4, respectively. The semicircular X-shaped tile contacts both overlapping data qubits before the square Z-shaped tile contacts either.
[0058] FIG. 4B illustrates that the time order of a quantum circuit implementing a surface code, according to various embodiments, need not be unique. FIG. 4B illustrates the surface code 410 of FIG. 4A. FIG. 4B further illustrates an alternative surface code 420 having an alternative time order of the global time positions of the data qubits. Both the surface code 410 and the surface code 420 have valid orders of contacting the data qubits (e.g., both surface codes 410 / 420 satisfy the constraints described above). Embodiments herein generalize to other circuit decompositions that use two-qubit entanglement operations, such as controlled Z gates or two-qubit parity measurements. Embodiments include such generalizations.
[0059] Embodiments include descriptions of how to measure gauge operators more frequently and, therefore, how to better detect errors in subsystem surface codes for defective qubits. Embodiments provide improved performance of quantum codes in the presence of defective (e.g., broken) qubits, such as may result from manufacturing defects or disconnections in the wiring that transmits control signals to the qubits. More specifically, some embodiments pack gauge operator measurements more densely in time than previously achieved. Embodiments incorporate this modification into detector formation, whereby decoding may be performed. Some embodiments include both (1) a modified quantum circuit and (2) a modified detector formation implemented together.
[0060] As mentioned above, the previous method for forming a detector is to compare two consecutive measurements of the same stabilizer. However, using gauge operators, it is possible to form a stabilizer from several combinations of two or more gauge operators. Therefore, by knowing which combinations of gauge operators combine to form a stabilizer, a detector can be formed by combining measurements that are consecutive in the circuit and whose gauge operators combine to form the same stabilizer. This detector can be composed of four or more measurements, twice as many times as there are gauge operators that combine to form the stabilizer.
[0061] Forming a stabilizer from two or more gauge operators can depend on knowing which gauge operator measurements can be safely combined. Previous attempts have divided the gauge operators into two sets, such that the elements in each set commute with each other. These sets can be identified by the "Pauli type" of the gauge operators. For example, all gauge operators whose non-identity Pauli term is X commute with each other. Similarly, all gauge operators whose non-identity Pauli term is Z commute with each other. However, X-type and Z-type gauge operators may not commute, depending on whether they overlap with an even or odd number of qubits.
[0062] Forming a detector from gauge operators depends on being able to combine gauge operators to form a stabilizer. This may be possible if there are no other types of interfering gauge operators that do not commute with the gauge operators that make up the stabilizer. Previous attempts at stabilizers have alternated between measuring X-type gauge operators and measuring Z-type gauge operators. Because all X-type gauge operators are measured at once and no Z-type gauge operators occur in between, it is guaranteed that X-type gauge operators can be combined to form an X-type stabilizer. Similarly, if one measures Z-type gauge operators without interfering X-type gauge operators, one can easily form a Z-type stabilizer.
[0063] These previous attempts have often been problematic because the stabilizers are measured on every cycle of the circuit, while each gauge operator is measured once every other cycle. This means that stabilizers composed of gauge operators are formed every other cycle of measurement. Similarly, this means that detectors composed of gauge operator measurements are formed half as frequently as detectors composed of stabilizers, and therefore the former are less able to detect errors. Gauge operator detectors are already a weakness in the code because they arise from their proximity to manufacturing defects; measuring them half as frequently as stabilizer detectors further penalizes the performance of the quantum code.
[0064] In contrast to these previous attempts, embodiments measure all gauge operators, both X-type and Z-type, in every measurement cycle ("densely packed"). Embodiments achieve these densely packed gauge operators by combining X-type and Z-type gauge operators in a specific way to form a detector. Embodiments form a gauge detector as they measure the gauge operators every cycle. The detector may require combining gauge operators that are staggered across different measurement cycles. This staggering does not occur with previous methods that measure X-type and Z-type gauge operators separately.
[0065] As noted throughout, embodiments are directed to implementing error-correcting codes when corrupted or defective qubits are present in a 2D array of qubits. When a qubit is defective, a “subsystem” surface code (or simply, a subsystem code) may be used. FIG. 5 provides a schematic diagram of a non-limiting example of forming a subsystem surface code when a defective qubit is present, according to various embodiments. More specifically, FIG. 5 shows a surface code 510. The surface code 510 may be similar to the surface code 410 of FIGS. 4A-4B. Note that the global time positions of the data qubits in the surface code 510 are shown in FIG. 5. As discussed with respect to FIGS. 4A-4B, the global time positions are valid under global time position constraints (e.g., no gate collisions occur in the order in which the data qubits are “touched”). Thus, the surface code 510 may be referred to as a valid surface code. Assume that the “center” data qubit (e.g., the data qubit implied at the center of the dashed circle) is defective. Note that the effective surface code 510 is formed from 17 qubits: 9 data qubits and 8 measurement qubits. The surface code 510 is composed of four square stabilizers (e.g., two copies of a square Z-shaped stabilizer and two copies of a square X-shaped stabilizer) and four semicircular stabilizers (e.g., two copies of a semicircular Z-shaped stabilizer and two copies of a semicircular X-shaped stabilizer). Each of the eight measurement qubits is associated with a different one of the eight stabilizers. Each square stabilizer has four data qubits, each semicircular stabilizer has two data qubits, and each data qubit is associated with two or more stabilizers.
[0066] The set of tiles 520 can be constructed to map around the defect qubit 522 (e.g., explicitly shown in the set of tiles). The set of tiles 520 is formed by a combination of stabilizers and gauge operators, none of which include the defect qubit 522. More specifically, the set of tiles 520 includes two copies of a semicircular X-type stabilizer 528 and two copies of a semicircular Z-type stabilizer 530. The set of tiles 520 also includes two copies of an X-type gauge operator 524 and two copies of a Z-type gauge operator 526. Note that the gauge operators 524 / 526 are constructed from triangular tiles to "map around" the defect qubit 522. 16 functional (or defect-free) qubits of the stabilizer / gauge operators (e.g., 8 functional data qubits and 8 functional measurement qubits) are implicit in the set of tiles 520. Thus, comparing tile set 520 with the effective surface code 510, the four square stabilizers (e.g., two copies of the square X-type stabilizer and two copies of the square Z-type stabilizer) have been replaced by four gauge operators (e.g., two copies of the triangular X-type gauge operator and two copies of the triangular Z-type gauge operator). The triangular gauge operators are formed by the square stabilizers by mapping them around (or "chopping off") a central defect qubit 522.
[0067] Because the circuit configuration for measuring the stabilizer can also be applied to measure the gauge operator, it follows that the gauge operator can have a circuit order (e.g., as indicated by the valid global time positions for the remaining non-faulty data qubits). A circuit order for a subsystem code that uses gauge operator tiles is valid if it obeys the same requirements as a valid circuit order for a surface code with only stabilizer tiles. That is, once the valid global time positions for the remaining eight non-faulty data qubits have been determined, subsystem code 540 can be formed from set of tiles 520. A quantum circuit can implement subsystem surface code 540 based on the stabilizer, gauge operator, and effective global time positions of the data qubits. Subsystem surface code 540 includes the valid global time positions of the eight non-faulty data qubits, and thus subsystem surface code 540 exhibits a valid circuit order.
[0068] A general procedure for constructing a valid circuit sequence for a subsystem code is to start with a valid circuit sequence for a surface code (e.g., valid surface code 510) and form the gauge operator by cutting data qubits from tiles as needed and preserving the numerical positions of the remaining circuit sequence. For example, the subsystem circuit sequence for valid subsystem surface code 540 is derived by cutting out the central data qubit (e.g., defect qubit 522) from the four square tiles of valid surface code 510.
[0069] To be safe, a detector is constructed from the parity of two consecutive measurements of the same stabilizer. In a subsystem code (e.g., subsystem surface code 540), gauge operators can be combined to form a stabilizer. Thus, a detector can be formed by constructing two consecutive "composite" stabilizer measurements, which are composed of the correct combination of gauge operator measurements. Embodiments include procedures for correctly combining gauge operator measurements for a subsystem surface code. Correctly combining gauge operator measurements has to do with the circuit ordering of the gauge operator tiles.
[0070] Because gauge operators do not always commute with one another, "constructed" stabilizer measurements created from gauge operator measurements can combine gauge operator measurements from the correct position and time. Herein, a "position" corresponds to a tile within a set of tiles (e.g., set of tiles 520) that contains the subsystem code. A "time" corresponds to any cycle of measurements in a quantum, where a tile is repeatedly measured. Correct gauge and measurement combinations can result from cycles depending on the positions of the gauge tiles and their circuit order, as described below.
[0071] In an embodiment, gauge operator measurements may be grouped as follows: Given a subsystem code (e.g., subsystem surface code 540), first, the gauge operators may be identified and uniquely labeled. Next, a directed graph may be generated. In the directed graph, the nodes are gauge operator labels and the edges are priorities when pairs of non-commutative gauge operators contact mutual (non-fault) data qubits. Finally, the directed graph may be traversed to assign a "cycle offset" to each gauge operator.
[0072] In the first step above, gauge operators can be identified by iterating over all tiles (e.g., in tile set 520). For each tile, it is determined whether the tile commutes with all of its neighboring tiles. Neighboring tiles mean tiles that overlap on at least one data qubit. When using X-type and Z-type tiles in the subsystem surface code, two tiles do not commute if (a) one is X-type and the other is Z-type, and (b) they overlap on exactly one data qubit. In this case, both such tiles can be used to form two gauge operators (e.g., an X-type gauge operator and a Z-type gauge operator). In tile set 520, there are four gauge operators (triangles). This is because they each touch neighboring triangles on one qubit, and the neighbors are of different types (e.g., an X-type triangular tile touches a Z-type triangular tile).
[0073] FIG. 6 shows a non-limiting example of labeling tiles and forming a directed graph according to various embodiments. More specifically, FIG. 6 shows a set 600 of gauge operators formed by the set of tiles 520 of FIG. 5. Each gauge operator in the set 600 of gauge operators has been identified and labeled as described above. The gauge operators in the set 600 of gauge operators are uniquely labeled A, B, C, or D. The set 600 of gauge operators includes two X-type gauge operators (labeled B and C) and a Z-type gauge operator (labeled A and D). Note that the global time positions of the data qubits are populated from the starting position of the “valid” surface code (e.g., surface code 510 of FIG. 5 ). After the gauge operators have been identified and labeled (e.g., see the set 600 of gauge operators), a directed graph 610 can then be generated. The nodes of the directed graph 610 correspond to the labels of the gauge operators (e.g., A, B, C, and D). After the nodes of directed graph 610 are placed, directed edges can be placed between the nodes of two gauge operators that overlap on the same data qubit. Circuit ordering (e.g., as indicated by the global time positions of the data qubits) is used to direct edges from tiles that contact the data qubit later to tiles that contact the data qubit earlier. For example, gauge operator A contacts their shared (or common) data qubit after gauge operator B contacts them, so a directed edge is drawn from gauge operator A to gauge operator B. Similarly, gauge operator B contacts their shared data qubit after gauge operator D contacts them, so a directed edge is drawn from gauge operator B to gauge operator D. Gauge operator A contacts their shared data qubit after gauge operator C contacts them, so a directed edge is drawn from gauge operator A to gauge operator C.Gauge operator C contacts their shared data qubits after gauge operator D contacts their shared data qubits, and therefore a directed edge is drawn from gauge operator C to gauge operator D.
[0074] Another constraint on valid circuit ordering (or equivalently, valid global time positions of data qubits) is that the generated directed graph (e.g., directed graph 610) must not have any cycles. That is, the directed graph must not be cyclic. As shown in Figure 6, directed graph 610 does not have any cycles and therefore satisfies this constraint. A cycle detection algorithm can be used to determine whether the resulting directed graph has any cycles.
[0075] The next step in grouping gauge operator measurements involves traversing the directed graph and assigning a "cycle offset" to each gauge operator. That is, each node in the directed graph is associated with an integer (e.g., a cycle offset). FIG. 7A illustrates steps for assigning cycle offsets to nodes in a directed graph, according to various embodiments. Before traversing the directed graph, all integer entries (for nodes in the directed graph) are initialized to a sentinel value to indicate that this node has not been visited by the traversal described below. FIG. 7A illustrates an initialized directed graph 700. In the initialized directed graph 700, the sentinel is shown as "-", but in reality, it may be a large, unreachable number (e.g., 1000000). Sentinels (or sentinel indicators) are shown in rectangular boxes next to each node. A sentinel next to a node indicates that the node has not yet been visited in the graph traversal. Once a cycle offset is assigned to a node, the sentinel in the rectangular box next to the node is updated to an integer indicating the cycle offset. A directed graph (e.g., initialized directed graph 700) may be divided into a set of connected components. Dividing a directed graph into a set of connected components may be performed by a standard algorithm. In this non-limiting example, the directed graph (e.g., initialized directed graph 700) has only a single connected component that contains the entirety of initialized directed graph 700.
[0076] To continue assigning cycle offsets to nodes, for each connected component of the directed graph, as shown by first intermediate directed graph 702, select a node and assign it a value of 0. In some embodiments, this node selection may be subject to a random or pseudo-random process. In other embodiments, node selection may be based on one or more heuristics or a deterministic process. In a non-limiting example of first intermediate directed graph 702, node A (corresponding to the triangular Z-shaped gauge operator) is selected as the initial node, and the cycle offset is initially assigned to 0.
[0077] A breadth-first search algorithm may be performed from this initially selected node. To perform the breadth-first search algorithm, directed edges may be treated as simple edges. For example, the search need not be limited to searching in the direction of the edge (e.g., the search may treat each edge as bidirectional or undirected). When traversing an edge, if the edge points in the source-to-destination direction, the integer at the destination node may be set to one greater than the integer at the source node, as shown in the second intermediate directed graph 704 of FIG. 7A . Alternatively, if the edge points in the destination-to-source direction, the integer at the destination is set to one less than the integer at the source. In a non-limiting example of the second intermediate directed graph 704, because both the B and C nodes are “destination” nodes, the cycle offsets of the B and C nodes are both assigned a value of 1 (e.g., one greater than 0) with respect to the source A node, which has already been assigned an offset cycle value of 0.
[0078] The process of traversing the directed graph and assigning cycle offsets to nodes is iterative. That is, the process is repeated to traverse the directed graph (e.g., each node in the directed graph is visited to assign its offset cycle value). To repeat the process, another node that was visited in the last iteration is selected. In this non-limiting example, either node B or node C may be selected (e.g., probabilistically). Whichever is selected, move to node D. Because node D is the destination node, with respect to either node B or node C, the cycle offset value of node D is assigned a value of 2, as shown in third intermediate directed graph 706.
[0079] Next, the minimum value in the connected component may be found. Note that the minimum value in a connected component may be negative. To ensure that all integer values are non-negative, all integer values in the same connected component may be shifted by subtracting the minimum value from all integer values. This subtraction shifts all integers by the same amount, so that the new minimum value becomes zero. In the non-limiting example of FIG. 7A , no subtraction is needed because zero is the minimum assigned cycle offset. Thus, the third intermediate directed graph 706 may become the final directed graph, in which case the integer in the box represents the final cycle offset.
[0080] FIG. 7B illustrates an alternative selection of the initially selected node of FIG. 7A , according to various embodiments. More specifically, FIG. 7B illustrates that the final assignment of cycle offsets for nodes in a directed graph is unaffected by the initial selection (and subsequent selections) of nodes to be visited. FIG. 7B illustrates the directed graph 700 initialized from FIG. 7A . In the example of FIG. 7B , node D is initially selected as the node to begin the graph traversal, and therefore is initially assigned a cycle offset value of 0. An intermediate directed graph 712 illustrates the resulting cycle offset values after visiting each node in the graph traversal. A minimum cycle offset value of −2 is assigned to node A. Based on the above description, all cycle offset values may be shifted by a value of 2 in the positive direction (or by a value of −2 in the negative direction), resulting in a final directed graph 714. Note that the cycle offset values of the final directed graph 714 are equivalent to the cycle offset values of the third intermediate graph 708, which is also the final directed graph of FIG. 7A . Therefore, the method for determining the cycle offset value is independent of the initial node selection.
[0081] After completing the traversal of the directed graph, the integer offset values may be updated. To update the offset values, within each connected component of the directed graph, the nodes may be divided into subsets with odd or even integer values. This division separates X-type stabilizers from Z-type stabilizers, although which subtype is odd or even may vary. A table of nodes within each subset (even or odd) may be generated. In the table, an updated cycle offset value may be assigned to each node based on the previously assigned integer cycle offset value. The updated cycle offset value may be denoted as s, where for an odd integer value x, the cycle offset value is updated as s = (x - 1) / 2. For an even integer value y, the updated cycle offset is s = y / 2.
[0082] After calculating and updating the cycle offset values, a detector composed of gauge measurements can be generated. Each node in the directed graph corresponds to a gauge operator, which has an associated cycle offset value. We denote these as (n, sn) for each node (n). For each connected component, there is a resulting detector template for each of the two subsets. For a given subset, the detector template may be expressed as detector = sum_n[Mn(t+sn)+Mn(t+sn+1)], where sum_n denotes the parity combination (i.e., sum modulo 2). Mn(t) is the measurement of gauge operator n at time t, which is an integer corresponding to the measurement iteration of the stabilizer / gauge measurements associated with all tiles, and sn is the previously calculated cycle offset of gauge operator n. This detector formula is valid for all values of t for which there are minimum and maximum time gauge operator measurements. As explained below, if a template attempts to use an unavailable measurement time (a "time boundary"), it may be processed in an alternative format.
[0083] As mentioned above, previous attempts to use gauge operators do not perform X-type and Z-type measurements simultaneously. The detector arises from a subset of connected components as before, but the formula is changed to detector = sum_n[Mn(t) + Mn(t+2)]. Note that there is no need to calculate cycle offsets, but gauge operator measurements are performed every other time, rather than every time.
[0084] When operating on a quantum code, the stabilizer configuration eventually changes to implement other logic, such as logical measurements or logic gates. These scenarios can be denoted as time boundaries. Examples of time boundaries include logical qubit initialization by performing a reset on all data qubits in the appropriate Pauli basis, or logical qubit measurement by performing measurements on all data qubits. Other examples include lattice surgery and logical qubit movement. At time boundaries, the detector template can slide forward or backward in time by modifying the value of t in the formula detector = sum_n[Mn(t+sn)+Mn(t+sn+1)]. If some of the gauge operator measurements are absent (the time with the offset is before or after the start or end of the repeated sequence of tile measurements), an attempt to replace the missing measurements and form a modified detector may be performed as follows:
[0085] When t is large enough or small enough that neither Mn(t+sn) nor Mn(t+sn+1) exists, an attempt to form a detector can be performed by deleting node n from the formula detector = sum_n[Mn(t+sn) + Mn(t+sn+1)]. This can be repeated for all other nodes in the detector template. If there are no remaining nodes, a detector may not be formed.
[0086] If t is large enough that Mn(t+sn+1) does not exist but Mn(t+sn) does, an attempt to form a detector can be made by replacing Mn(t+sn) (e.g., in the formula detector = sum_n[Mn(t+sn) + Mn(t+sn+1)]) with a combination of other measurements or resets performed at a time when any operation touching a qubit of gauge operator n occurred in the quantum circuit before Mn(t+sn+1). This replacement may be applied to all nodes in the subset, as needed. For example, if all data qubits are measured with the same reference as gauge operator n at time t+sn+1, then Mn(t+sn+1) may be composed of a combination of measurements on the same data qubit.
[0087] If t is small enough that Mn(t+sn) does not exist but Mn(t+sn+1) does, an attempt to form a detector can be made by replacing Mn(t+sn) (e.g., in the equation detector = sum_n[Mn(t+sn) + Mn(t+sn+1)]) with a combination of other measurements or resets performed at a time when any operation touching a qubit of gauge operator n occurred in the quantum circuit before M(t+s+1). This replacement may be applied to all nodes in the subset, if necessary. For example, if all data qubits are reset at time t+sn with the same basis as gauge operator n, Mn(t+sn) may be composed of a combination of reset eigenvalues of the same data qubits. In this example, Mn(t+sn) is not replaced with a measurement result but instead with a parity offset of 0 or 1, depending on the reset combination that results in an eigenvalue of +1 or −1 for gauge operator n.
[0088] Exemplary Methods 8 shows a flowchart diagram of an exemplary method 800 for implementing quantum error correction (QEC) codes by a quantum computing device (QCS), according to various embodiments. The QCS may be similar to quantum computing system 100 of FIG. 1. Thus, the QCS includes a set of functional qubits and a set of non-functional qubits that are disjoint from the set of functional qubits.
[0089] Method 800 begins at block 802, where a set of gauge operators is formed that maps around a set of non-functional qubits. Each gauge operator in the set of gauge operators includes a distinct subset of the set of functional qubits and a global sequence that indicates the order in which the gauge operators act on the subset of functional qubits. One or more pairs of gauge operators in the set of gauge operators are non-commutative operators.
[0090] At block 804, a set of gauge operator combinations is determined from the set of gauge operators. A pair of gauge operators may include two or more gauge operators (e.g., a first gauge operator and a second gauge operator) from the set of gauge operators. Determining the set of gauge operator combinations may be based on a subset of functional qubits and a global sequence of each gauge operator in the set of gauge operators. Each gauge operator combination has a composite operator that commutes with the composite operator of each other gauge operator combination in the set of gauge operator combinations. The composite operator of each gauge operator combination in the set of gauge operator combinations may be a product of each gauge operator of the gauge operator combination.
[0091] At block 806, a set of composite stabilizers may be generated. Each composite stabilizer in the set of composite stabilizers corresponds to one gauge operator combination in the set of gauge operator combinations. At block 808, a QEC code may be executed by a QCS based on the set of composite stabilizers.
[0092] The set of qubits may be arranged on a 2D grid of qubits. In such an embodiment, the method may further include constructing a set of tiles on the 2D grid of qubits. Each vertex of each tile in the set of tiles may correspond to one qubit in the set of qubits. The set of tiles includes a set of square tiles and a set of semicircular tiles. Each tile in the set of tiles corresponds to an X-type operator or a Z-type operator, such that the set of square tiles forms a checkerboard pattern of X-type operators and Z-type operators. Each vertex of each tile in the set of tiles may be assigned a global time position based on a set of circuit constraints. A global sequence of each gauge operator in the set of gauge operators may be based on the global time position of each vertex of each tile in the set of tiles. The global sequence of each gauge operator may indicate a circuit control sequence for a quantum circuit implementing QEC. When a vertex of a square tile corresponds to a non-functioning qubit in the set of qubits, the square tile may be transformed into a triangular tile that maps around the non-functioning qubit. For example, the vertices of a square tile corresponding to a non-functioning qubit may be "cut" or "cut" so that the square tile is mapped around the non-functioning qubit and the square tile is converted into a triangular tile. A set of triangular tiles is constructed with the previous square tile removed from the set of square tiles. Each triangular tile in the set of triangular tiles corresponds to a distinct gauge operator in the set of gauge operators. Note that the embodiments are not limited to scenarios in which a square tile is limited to a single non-functioning qubit; the embodiments are generalizable to more than one non-functioning qubit in a tile. For example, when there are two or three non-functioning qubits in the square tile, the square tile may be reduced to a "line" or a "point."
[0093] A set of square stabilizers may be formed based on the set of square tiles and the global time positions of each vertex of each square tile in the set of square tiles. A set of semicircular stabilizers may be formed based on the set of semicircular tiles and the global time positions of each vertex of each semicircular tile in the set of semicircular tiles. A QEC code may be executed by the QCS further based on the set of square stabilizers and the set of semicircular stabilizers. The method may further include assigning a cycle offset to each gauge operator in the set of gauge operators based on a breadth-first search of a directed graph generated from the set of triangular tiles. A set of composite detectors may be generated based on the cycle offset of each triangular tile in the set of triangular tiles.
[0094] A method for generating a circuit control sequence for a quantum circuit implementing QEC may include assigning a unique label to each gauge operator of a set of gauge operators based on a correspondence of the gauge operator to a triangular tile of the set of triangular tiles. A directed graph may be generated based on a global sequence of each gauge operator in the set of gauge operators. The directed graph includes a set of nodes and a set of directed edges between multiple nodes in the set of nodes. Determining each directed edge in the set of directed edges is described below. Each node in the set of nodes corresponds to a distinct gauge operator in the set of gauge operators and is labeled with a unique label of the corresponding gauge operator. The directed graph may be traversed. Traversing the directed graph includes visiting each node in the set of nodes by the set of directed edges. Each gauge operator in the set of gauge operators may be assigned a cycle offset based on a correspondence between a traversal direction and a direction of each directed edge in the set of directed edges. The cycle offset of each gauge operator in the set of gauge operators may be updated based on a detector template and the parity of the cycle offset of the gauge operator.
[0095] Note that the embodiments can be generalized to any stabilizer measurement, including flags. As described throughout, the embodiments are based on the order in which the quantum circuit contacts the data qubits (e.g., a global sequence of gauge operators indicating the order in which the gauge operators act on a subset of functional qubits). The embodiments can be further generalized to situations in which stabilizers can be reconstructed from gauge operators and other stabilizers, resets, or measurements, such as surface signature shifts or lattice surgery. The tiles can have any label for the time position in which they contact the data qubits. The tiles (and therefore the stabilizers and gauge operators) are not limited to "X-type" and "Z-type." They can be generalized to locally equivalent ones to X-type and Z-type. Locally equivalent means applying a transformation that is a single-qubit Clifford gate for each data qubit. This can be shown to preserve pairwise commutativity between stabilizers, pairwise commutativity between any stabilizer and gauge operator, and commutativity or non-commutativity between pairs of gauge operators, e.g., X / Y surface codes and / or XZZX surface codes. The method here generalizes to other circuit decompositions that use two-qubit entanglement operations, such as controlled Z gates or two-qubit parity measurements.
[0096] The digital, classical, and / or quantum subject matter, and digital functional and quantum operational implementations described herein may be implemented in digital electronic circuitry, suitable quantum circuitry, or more generally, in a quantum computing system, in tangibly embodied digital and / or quantum computer software or firmware, in digital and / or quantum computer hardware, including the structures disclosed herein and their structural equivalents, or in one or more combinations thereof. The term "quantum computing system" may include, but is not limited to, a quantum computer / computing system, a quantum information processing system, a quantum cryptography system, or a quantum simulator.
[0097] The digital, classical, and / or quantum subject matter, and digital functional and quantum operational implementations described herein may be implemented in digital electronic circuitry, suitable quantum circuitry, or more generally, in a quantum computing system, in tangibly embodied digital and / or quantum computer software or firmware, in digital and / or quantum computer hardware, including the structures disclosed herein and their structural equivalents, or in one or more combinations thereof. The term "quantum computing system" may include, but is not limited to, a quantum computer / computing system, a quantum information processing system, a quantum cryptography system, or a quantum simulator.
[0098] Embodiments of the digital and / or quantum subject matter described herein may be implemented as one or more digital and / or quantum computer programs, i.e., as one or more modules of digital and / or quantum computer program instructions encoded on a tangible, non-transitory storage medium for execution by or controlling the operation of a data processing apparatus. The digital and / or quantum computer storage medium may be a machine-readable storage device, a machine-readable storage substrate, a random or serial access memory device, one or more qubits / qubit structures, or a combination of one or more thereof. Alternatively or additionally, the program instructions may be encoded on an artificially generated propagated signal (e.g., a machine-generated electrical, optical, or electromagnetic signal) capable of encoding digital and / or quantum information, generated to encode the digital and / or quantum information for transmission to an appropriate receiver device for execution by a data processing apparatus.
[0099] The terms quantum information and quantum data refer to information or data carried, held, or stored by a quantum system, with the smallest nontrivial system being a qubit, i.e., a system defining a unit of quantum information. The term "qubit" is understood to encompass all quantum systems that can be appropriately approximated as a two-level system in the corresponding context. Such quantum systems may include, for example, multi-level systems having two or more levels. By way of example, such systems may include atoms, electrons, photons, ions, or superconducting qubits. In many implementations, the computational ground state is identified as being identical to the ground state and the first excited state, although it is understood that other setups are possible in which the computational state is identified as being identical to a higher-level excited state (e.g., a qubit).
[0100] The term "data processing apparatus" refers to digital and / or quantum data processing hardware and encompasses all types of apparatus, devices, and machines for processing digital and / or quantum data, including, by way of example, a programmable digital processor, a programmable quantum processor, a digital computer, a quantum computer, or multiple digital and quantum processors or computers, as well as combinations thereof. An apparatus may also be or further include special-purpose logic circuits, such as an FPGA (field-programmable gate array), or an ASIC (application-specific integrated circuit), or a quantum simulator, i.e., a quantum data processing apparatus designed to simulate or generate information about a specific quantum system. In particular, a quantum simulator is a special-purpose quantum computer that does not have the ability to perform universal quantum computation. In addition to hardware, an apparatus may optionally include code that creates an execution environment for digital and / or quantum computer programs, such as code constituting processor firmware, a protocol stack, a database management system, an operating system, or one or more combinations thereof.
[0101] A digital or classical computer program may also be called or described as a program, software, software application, module, software module, script, or code, and may be written in any form of programming language, including compiled or interpreted languages, or declarative or procedural languages, and a computer program may be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a digital computing environment. A quantum computer program may also be called or described as a program, software, software application, module, software module, script, or code, and may be written in any form of programming language, including compiled or interpreted languages, or declarative or procedural languages, and may be converted to or written in a suitable quantum programming language, such as QCL, Quipper, Cirq, etc.
[0102] A digital and / or quantum computer program may, but need not, correspond to a file in a file system. A program may be stored as part of another program or data, e.g., a portion of a file holding one or more scripts stored in a markup language document, in a single file dedicated to the program in question, or in multiple coordinated files, e.g., files storing one or more modules, subprograms, or portions of code. A digital and / or quantum computer program may be deployed to run on one digital or quantum computer, or on multiple digital and / or quantum computers located at one location or distributed across multiple locations and interconnected by a digital and / or quantum data communication network. A quantum data communication network is understood to be a network that can transmit quantum data using quantum systems, e.g., qubits. While digital data communication networks generally cannot transmit quantum data, quantum data communication networks can transmit both quantum data and digital data.
[0103] The processes and logic flows described herein may, where appropriate, be performed by one or more programmable digital and / or quantum computers operating on one or more digital and / or quantum processors executing one or more digital and / or quantum computer programs that perform functions by performing operations on input digital and quantum data and generating outputs. The processes and logic flows may also be performed by, and apparatus may be implemented as, special purpose logic circuitry, e.g., FPGAs or ASICs, or quantum simulators, or a combination of special purpose logic circuitry or quantum simulators with one or more programmed digital and / or quantum computers.
[0104] A system of one or more digital and / or quantum computers or processors "configured to" or "operable to" perform a particular operation or action means that the system has software, firmware, hardware, or a combination thereof installed on the system that, when in operation, causes the system to perform the operation or action. A system of one or more digital and / or quantum computer programs configured to perform a particular operation or action means that the one or more programs contain instructions that, when executed by a digital and / or quantum data processing device, cause the device to perform the operation or action. A quantum computer may receive instructions from a digital computer that, when executed by a quantum computing device, cause the device to perform an operation or action.
[0105] A digital and / or quantum computer suitable for executing a digital and / or quantum computer program may be based on a general-purpose or a dedicated digital and / or quantum microprocessor, or both, or any other kind of central digital and / or quantum processing unit. Typically, the central digital and / or quantum processing unit receives instructions and digital and / or quantum data from a read-only memory, or a random access memory, or a quantum system suitable for transmitting quantum data, e.g., photons, or a combination thereof.
[0106] Some exemplary elements of a digital and / or quantum computer are a central processing unit for performing or executing instructions and one or more memory devices for storing instructions and digital and / or quantum data. The central processing unit and memory may be supplemented by, or incorporated into, special-purpose logic circuitry or a quantum simulator. Generally, a digital and / or quantum computer also includes one or more mass storage devices for storing digital and / or quantum data, such as, for example, magnetic, magneto-optical, or optical disks, or quantum systems suitable for storing quantum information, or is operably coupled to receive digital and / or quantum data from them, transfer digital and / or quantum data to them, or both. However, a digital and / or quantum computer need not have such devices.
[0107] Digital and / or quantum computer-readable media suitable for storing digital and / or quantum computer program instructions and digital and / or quantum data include, by way of example, all forms of non-volatile digital and / or quantum memories, media, and memory devices, including semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices, magnetic disks, e.g., internal hard disks or removable disks, magneto-optical disks, and CD-ROM and DVD-ROM disks, and quantum systems, e.g., trapped atoms or electrons. Quantum memory is understood to be a device capable of long-term storage of quantum data with high fidelity and efficiency, such as, for example, a light-matter interface where light is used for transmission and matter is used for storage and preservation of quantum properties of the quantum data, such as superposition or quantum coherence.
[0108] Control of the various systems described herein, or portions thereof, may be implemented in a digital and / or quantum computer program product including instructions stored on one or more tangible, non-transitory, machine-readable storage media and executable on one or more digital and / or quantum processing devices. The systems described herein, or portions thereof, may be implemented as apparatuses, methods, or electronic systems, each of which may include one or more digital and / or quantum processing devices and a memory for storing executable instructions for performing the operations described herein.
[0109] While this specification contains details of many specific embodiments, these should not be construed as limiting the scope of what may be claimed, but rather as descriptions of features that may be inherent to particular embodiments. Certain features described herein in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features of the invention that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable subcombination. Furthermore, even if features described above as functioning in a particular combination are initially claimed as such, one or more features of the claimed combination may be deleted from that combination, and the claimed combination may be directed to a subcombination or variations of the subcombination.
[0110] Similarly, while acts are shown in a particular order in the figures, this should not be understood as requiring that such acts be performed in the particular order or sequential order shown, or that all of the acts shown be performed, to achieve desirable results. In certain situations, multitasking and parallel processing may be advantageous. Furthermore, the separation of various system modules and components in the above-described embodiments should not be understood as requiring such separation in all embodiments, and it should be understood that the above-described program components and systems may generally be integrated into a single software product or packaged into multiple software products.
[0111] Specific implementations of the subject matter have been described. Other implementations are within the scope of the following claims. For example, the actions recited in the claims can be performed in a different order and still achieve desirable results. As an example, the processes depicted in the accompanying figures do not necessarily require the particular order or sequential order depicted to achieve desirable results. In some cases, multitasking and parallel processing may be advantageous.
Claims
1. 1. A method for implementing a quantum error correction (QEC) code on a quantum computing system (QCS), the QCS including a set of functioning qubits and a set of non-functioning qubits, the method comprising: generating at least one composite stabilizer, each composite stabilizer of the at least one composite stabilizer corresponding to a distinct gauge operator combination of a set of gauge operator combinations; executing, by the QCS, the QEC code based on the at least one composite stabilizer; A method comprising:
2. forming a set of gauge operators that map around the set of non-functional qubits, each gauge operator in the set of gauge operators comprising a distinct subset of the set of functional qubits and a global sequence that indicates the order in which the gauge operators act on the subset of functional qubits, and wherein one or more pairs of gauge operators in the set of gauge operators are non-commutative operators; determining a set of combinations of gauge operators from the set of gauge operators based on the subset of functional qubits and the global sequence of each gauge operator in the set of gauge operators, each gauge operator combination in the set of gauge operator combinations having a composite operator that commutes with the composite operator of each other gauge operator combination in the set of gauge operator combinations; generating a set of composite stabilizers including the at least one composite stabilizer, each composite stabilizer in the set of composite stabilizers corresponding to a distinct gauge operator combination in the set of gauge operator combinations; The method of claim 1 further comprising:
3. The method of claim 2 , wherein the composite operator of each gauge operator combination of the set of gauge operator combinations is a product of each gauge operator of the gauge operator combination.
4. 3. The method of claim 2, wherein the QCS comprises a set of qubits including the set of functioning qubits and the set of non-functioning qubits, the set of qubits being arranged in a 2D grid of qubits.
5. constructing sets of tiles on the 2D grid of qubits, each vertex of each tile in the set of tiles corresponding to one qubit in the set of qubits, the sets of tiles including a set of square tiles and a set of semicircular tiles, each tile in the set of tiles corresponding to an X-type operator or a Z-type operator such that the set of square tiles forms a checkerboard pattern of X-type and Z-type operators; assigning a global time position to each vertex of each tile of the set of tiles based on a set of circuit constraints; transforming square tiles into triangular tiles that map around the non-working qubits such that if a vertex of a square tile corresponds to a non-working qubit of the set of qubits, the square tile is removed from the set of square tiles and a set of triangular tiles is constructed, each triangular tile of the set of triangular tiles corresponding to a distinct gauge operator of the set of gauge operators; The method of claim 4 further comprising:
6. The method of claim 5 , wherein the global sequence of each gauge operator in the set of gauge operators is based on the global time position of each vertex of each tile in the set of tiles.
7. forming a set of square stabilizers based on the set of square tiles and the global time positions of each vertex of each square tile in the set of square tiles; forming a set of semicircular stabilizers based on the set of semicircular tiles and the global time positions of each vertex of each semicircular tile in the set of semicircular tiles; executing, by the QCS, the QEC code further based on the set of square stabilizers and the set of semicircular stabilizers; The method of claim 5 further comprising:
8. assigning a cycle offset to each gauge operator of the set of gauge operators based on a breadth-first search of a directed graph generated from the set of triangular tiles; generating a set of composite detectors based on the cycle offset of each triangular tile of the set of triangular tiles; The method of claim 5 further comprising:
9. assigning a unique label to each gauge operator in the set of gauge operators based on a correspondence of the gauge operator to a triangular tile in the set of triangular tiles; generating the directed graph based on the global sequence of each gauge operator in the set of gauge operators, the directed graph including a set of nodes and a set of directed edges between nodes in the set of nodes, each node in the set of nodes corresponding to a distinct gauge operator in the set of gauge operators and labeled with the unique label of the corresponding gauge operator; The method of claim 8 further comprising:
10. assigning the cycle offset to each gauge operator of the set of gauge operators comprises: traversing the directed graph, wherein traversing the directed graph includes visiting each node in the set of nodes by the set of directed edges; assigning the cycle offset to each gauge operator in the set of gauge operators based on a correspondence between a traversal direction and a direction of each directed edge in the set of directed edges; 10. The method of claim 9, comprising:
11. 1. A quantum computing system, comprising: a set of qubits including a set of functioning qubits and a set of non-functioning qubits; one or more processor devices; one or more memory devices; the one or more memory devices storing computer-readable instructions that, when executed by the one or more processor devices, cause the one or more processor devices to perform operations to implement a quantum error correction (QEC) code; The operation is generating a set of composite stabilizers, each composite stabilizer in the set of composite stabilizers corresponding to a distinct gauge operator combination of a set of gauge operator combinations; executing, by the quantum computing system (QCS), the QEC code based on the set of composite stabilizers; 1. A quantum computing system comprising:
12. The operation is forming a set of gauge operators that are mapped around the set of non-functional qubits; each gauge operator in the set of gauge operators comprises a distinct subset of the set of functional qubits and a global sequence indicating the order in which the gauge operator acts on the subset of functional qubits; forming a set of gauge operators, wherein one or more pairs of gauge operators in the set are non-commutative operators; determining a set of combinations of gauge operators from the set of gauge operators based on the subset of functional qubits and the global sequence of each gauge operator in the set of gauge operators, each gauge operator combination in the set of gauge operator combinations having a composite operator that commutes with the composite operator of each other gauge operator combination in the set of gauge operator combinations; 12. The quantum computing system of claim 11, further comprising:
13. The quantum computing system of claim 12 , wherein the composite operator of each gauge operator combination of the set of gauge operator combinations is a product of each gauge operator of the gauge operator combination.
14. 13. The quantum computing system of claim 12, wherein the set of qubits is arranged in a 2D grid of qubits.
15. The operation is constructing a set of tiles on the 2D grid of qubits, each vertex of each tile in the set of tiles comprising: constructing a set of tiles corresponding to one qubit of the set of qubits, the set of tiles including a set of square tiles and a set of semicircular tiles, each tile of the set of tiles corresponding to an X-type operator or a Z-type operator such that the set of square tiles forms a checkerboard pattern of X-type operators and Z-type operators; assigning a global time position to each vertex of each tile of the set of tiles based on a set of circuit constraints; transforming square tiles into triangular tiles that map around the non-working qubits such that if a vertex of a square tile corresponds to a non-working qubit of the set of qubits, the square tile is removed from the set of square tiles and a set of triangular tiles is constructed, each triangular tile of the set of triangular tiles corresponding to a distinct gauge operator of the set of gauge operators; 15. The quantum computing system of claim 14, further comprising:
16. 16. The quantum computing system of claim 15, wherein the global sequence of each gauge operator of the set of gauge operators is based on the global time position of each vertex of each tile of the set of tiles.
17. The operation is forming a set of square stabilizers based on the set of square tiles and the global time positions of each vertex of each square tile in the set of square tiles; forming a set of semicircular stabilizers based on the set of semicircular tiles and the global time positions of each vertex of each semicircular tile in the set of semicircular tiles; executing, by the QCS, the QEC code further based on the set of square stabilizers and the set of semicircular stabilizers; 17. The quantum computing system of claim 16, further comprising:
18. The operation is assigning a cycle offset to each gauge operator of the set of gauge operators based on a breadth-first search of a directed graph generated from the set of triangular tiles; generating a set of composite detectors based on the cycle offset of each triangular tile of the set of triangular tiles; 16. The quantum computing system of claim 15, further comprising:
19. The operation is assigning a unique label to each gauge operator in the set of gauge operators based on a correspondence of the gauge operator to a triangular tile in the set of triangular tiles; generating the directed graph based on the global sequence of each gauge operator in the set of gauge operators, the directed graph including a set of nodes and a set of directed edges between nodes in the set of nodes, each node in the set of nodes corresponding to a distinct gauge operator in the set of gauge operators and labeled with the unique label of the corresponding gauge operator; 20. The quantum computing system of claim 18, further comprising:
20. assigning the cycle offset to each gauge operator of the set of gauge operators comprises: traversing the directed graph, wherein traversing the directed graph includes visiting each node in the set of nodes by the set of directed edges; assigning the cycle offset to each gauge operator in the set of gauge operators based on a correspondence between a traversal direction and a direction of each directed edge in the set of directed edges; 20. The quantum computing system of claim 19, comprising:
Citation Information
Patent Citations
Optimizing Physical Parameters in Fault-Tolerant Quantum Computing to Reduce Spectrum Congestion
JP2020515970A
Reducing parasitic interactions in qubit grids
JP2020530163A
Quantum computer
JP2022057269A
Using flag qubits for fault-tolerant implementations of topological codes with reduced frequency collisions
US20210019223A1