Error detection program, error detection method, and information processing device.

JP7900777B2Active Publication Date: 2026-08-05FUJITSU LTD +1
View PDF 5 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
FUJITSU LTD
Filing Date
2022-09-09
Publication Date
2026-08-05

AI Technical Summary

Benefits of technology

【0013】 1態様によれば、Yエラー発生個所を特定できる確率を向上させることができる。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007900777000013
    Figure 0007900777000013
  • Figure 0007900777000014
    Figure 0007900777000014
  • Figure 0007900777000015
    Figure 0007900777000015
Patent Text Reader

Abstract

To enhance a detection probability of a Y error.SOLUTION: An information processing device 10 determines a combination of a first data quantum bit and a second data quantum bit which further reduces energy represented by an energy formula 4. First - third energy terms 4a, 4b, 4c are included in the energy formula 4. The first energy term 4a is a term for identifying the first data quantum bit on which a Z error has occurred. The second energy term 4b is a term for identifying the second data quantum bit on which an X error has occurred. The third energy term 4c is the term which decreases energy as the third data quantum bit in which the Z error and the X error have simultaneously occurred increases. The information processing device 10 determines that a Y error has occurred on the third data quantum bit.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates to an error detection program, an error detection method, and an information processing device. [Background technology]

[0002] Quantum computers can be used for a variety of calculations. For example, a quantum computer can be used to find the minimum energy value of a model being calculated. Quantum computer calculations are performed by initializing, gate operating, and measuring multiple qubits. In quantum computers, errors (physical errors) occur in qubits during these operations due to environmental noise and other factors. Therefore, quantum computers employ qubit redundancy, similar to conventional computers (also called classical computers), to identify the erroneous qubit and the nature of the error.

[0003] Surface coding is one method for identifying error qubits and error types using redundant qubits. In surface coding, data qubits and auxiliary qubits are arranged alternately in a two-dimensional grid. The state of a data qubit among the multiple qubits (data qubits and auxiliary qubits) arranged in the grid is encoded into a single logical qubit. Each auxiliary qubit is used for either X error detection or Z error detection. When performing surface coding, the quantum computer first appropriately initializes the logical quantum state, and when detecting an error, it performs a gate operation between one auxiliary qubit and the four surrounding data qubits to measure the auxiliary qubit. Based on the value of the auxiliary qubit, the quantum computer detects either an X error (bit inversion error) or a Z error (phase inversion error). The quantum computer then uses information indicating the type of error and the position information of the data qubit identified as the error location to perform a gate operation for error correction on the qubit.

[0004] Regarding techniques for error correction of qubits, for example, quantum computing systems have been proposed that perform continuous optimization of quantum gate parameters while error correction is in progress. Techniques for reducing parasitic interactions in qubit grids for surface code error correction have also been proposed. Furthermore, systems that are easy to construct and can reduce error correction overhead have also been proposed.

[0005] Furthermore, technologies related to energy minimization using quantum computers include, for example, techniques for preparing correlated fermion states in a quantum computer to determine the ground state of a correlated fermion system. There are also technologies for forming coupled interactions between three or more information qubits. [Prior art documents] [Patent Documents]

[0006] [Patent Document 1] Japanese Patent Publication No. 2021-106029 [Patent Document 2] Special Publication No. 2020-530619 [Patent Document 3] Special Publication No. 2019-531531 [Patent Document 4] Special Publication No. 2021-507401 [Patent Document 5] U.S. Patent Application Publication No. 2019 / 0122133 [Overview of the Initiative] [Problems that the invention aims to solve]

[0007] In surface coding, X and Z errors can be detected as bit flips of auxiliary qubits, but in quantum computers, Y errors (errors due to malfunctions of the Pauli operator Y) can also occur. The Pauli operator Y can be expressed as "Y = iXZ" (where i is the imaginary unit) using the Pauli operators X and Z.

[0008] In surface coding, Y errors cannot be directly detected. Therefore, in surface coding, a Y error is determined to have occurred in a qubit only when both an X error and a Z error occur simultaneously in the same qubit.

[0009] However, if an X or Z error occurs in another qubit surrounding the qubit where a Y error occurred, the surface code may not be able to correctly identify the location of the Y error. For example, when two errors, a Z error and a Y error, occur simultaneously in adjacent qubits, there is an error pattern in which three qubits are incorrectly identified as the error location with a high probability. If the error location is incorrectly identified, error correction in the quantum computer will fail, and it will be impossible to obtain the correct computation result.

[0010] Furthermore, the difficulty in correctly identifying the location of Y errors is a problem that occurs not only in surface codes but in all CSS (Calderbank-Shor-Steane code) codes composed of stabilizers.

[0011] In one respect, this project aims to improve the probability of identifying the location where the Y error occurred. [Means for solving the problem]

[0012] One proposal provides an error detection program that instructs the computer to perform the following steps: The computer obtains first state data indicating the state of multiple first auxiliary qubits for detecting Z errors related to multiple data qubits contained in a logical qubit in quantum computation, and second state data indicating the state of multiple second auxiliary qubits for detecting X errors related to multiple data qubits. The computer determines a combination of first and second data qubits that will further reduce the energy shown in the energy formula, based on an energy formula that has a first energy term for identifying the first data qubit where a Z error occurred based on the first state data, a second energy term for identifying the second data qubit where an X error occurred based on the second state data, and a third energy term that reduces the energy as there are more third data qubits that correspond to both the first and second data qubits. The computer then determines that a Y error occurred in the third data qubit, a Z error occurred in the first data qubits other than those corresponding to the third data qubit, and an X error occurred in the second data qubits other than those corresponding to the third data qubit. [Effects of the Invention]

[0013] According to one embodiment, the probability of identifying the location where the Y error occurred can be improved. [Brief explanation of the drawing]

[0014] [Figure 1] This figure shows an example of an error detection method according to the first embodiment. [Figure 2] This figure shows an example of a system configuration. [Figure 3] This figure shows an example of the hardware of a classical computer. [Figure 4] This is a diagram explaining qubits. [Figure 5] This figure shows an example of a quantum circuit. [Figure 6] This figure shows an example of how errors can occur in a qubit. [Figure 7] This figure shows an example of qubit redundancy. [Figure 8] This figure shows an example of a measurement using an auxiliary qubit. [Figure 9] This figure shows an example of a qubit configuration for surface coding. [Figure 10] This figure shows an example of gate operation for detecting an X error. [Figure 11] This figure shows an example of a gate operation for detecting a Z error. [Figure 12] This figure shows an example of X-error detection. [Figure 13] This figure shows an example of how to identify the error location. [Figure 14] This figure shows an example of an error location identification method using the Ising model. [Figure 15] This figure shows an example of a case where the location of the error cannot be uniquely identified. [Figure 16] This figure shows an example of a logical error caused by incorrect correction. [Figure 17] This figure shows an example of error detection, including the Y error. [Figure 18] This figure shows an example of an Ising model capable of detecting both Z-errors and X-errors. [Figure 19] This figure shows an example of a Y error detection failure. [Figure 20] This figure shows an example of a logical error that occurs when a Y error cannot be detected. [Figure 21] This figure shows an example of how to correctly identify the Y error and pinpoint the location of the error. [Figure 22] This figure shows an example of how to determine the value of the coefficient J'i. [Figure 23] This figure shows an example of the functionality of a classical computer for directing quantum computations with error detection. [Figure 24] This is a sequence diagram showing the steps of quantum computing. [Figure 25] This is a sequence diagram showing an example of the procedure for quantum error correction. [Figure 26] This flowchart shows an example of the procedure for identifying the location of an error. [Figure 27] This figure shows an example of the arrangement of auxiliary qubits around a data qubit. [Figure 28] This figure shows the calculation results of the Y error identification rate. [Figure 29] This figure shows the results of calculating the probability of a logical error. [Figure 30] This figure shows an example of the system configuration of the third embodiment. [Figure 31] This is a sequence diagram showing the procedure for identifying the error location in the third embodiment. [Modes for carrying out the invention]

[0015] The following description of this embodiment will be made with reference to the drawings. Note that each embodiment can be implemented by combining multiple embodiments within a reasonable scope. [First Embodiment] The first embodiment is an error detection method that enables the location of a Y error occurring during quantum computation to be identified with high probability using a surface code.

[0016] Figure 1 shows an example of an error detection method according to the first embodiment. Figure 1 shows an information processing device 10 that implements the error detection method according to the first embodiment. The information processing device 10 can implement the error detection method, for example, by executing an error detection program.

[0017] The information processing device 10 includes a storage unit 11 and a processing unit 12. The storage unit 11 is, for example, a memory or storage device of the information processing device 10. The processing unit 12 is, for example, a processor or arithmetic circuit of the information processing device 10.

[0018] The information processing device 10, for example, instructs the quantum computer 1 to perform a quantum computation based on a predetermined quantum circuit. The quantum computer 1 performs gate operations on multiple physical qubits and executes the quantum computation. In doing so, the quantum computer 1 represents the state of the qubits to be operated on by the quantum circuit using logical qubits composed of multiple physical qubits. Hereinafter, the physical qubits used to represent the state of the logical qubits are the data qubits 5 (all of the solid rectangles in Figure 1).

[0019] Furthermore, quantum computer 1 uses some of its physical qubits as auxiliary qubits to detect errors in the data qubits contained within the logical qubits using surface coding. The auxiliary qubits are divided into multiple first auxiliary qubits 6 for Z-error detection (all the dotted rectangles in Figure 1) and multiple second auxiliary qubits 7 for X-error detection (all the dashed rectangles in Figure 1).

[0020] During a quantum computation in accordance with instructions from the information processing device 10, the quantum computer 1 performs a gate operation for error detection using surface codes and measures the states of the first auxiliary qubit 6 and the second auxiliary qubit 7. The quantum computer 1 then transmits first state data 2, which indicates the states of multiple first auxiliary qubits 6, and second state data 3, which indicates the states of multiple second auxiliary qubits 7, to the information processing device 10.

[0021] The information processing device 10 performs error detection processing based on the first state data 2 and the second state data 3 to detect the location of a Z error, X error, or Y error. For this purpose, the storage unit 11 stores an energy formula 4. The energy formula 4 is an equation that represents the energy of the Ising model when the problem of solving the error location in the surface code is replaced with the Ising model.

[0022] Energy equation 4 includes a first energy term 4a, a second energy term 4b, and a third energy term 4c. The first energy term 4a is used to identify the first data qubit among the multiple data qubits 5 that has experienced a Z error, based on the first state data 2. The second energy term 4b is used to identify the second data qubit among the multiple data qubits 5 that has experienced an X error, based on the second state data 3. The third energy term 4c is used to decrease the energy as the number of third data qubits that correspond to both the first and second data qubits increases.

[0023] Furthermore, the third energy term 4c also has the effect of decreasing energy, for example, as the number of data qubits in which no errors have occurred increases. In addition, the third energy term 4c also has the effect of increasing energy, for example, as the number of data qubits in which only Z errors or X errors have occurred increases.

[0024] The processing unit 12 of the information processing device 10 obtains the first state data 2 and the second state data 3 from the quantum computer 1. Next, based on the first state data and the second state data 3, the processing unit 12 determines the combination of the first and second data qubits that will further reduce the energy shown in energy equation 4. For example, the processing unit 12 finds the combination of the first and second data qubits that minimizes the energy by solving the combinatorial optimization problem shown in the Ising model.

[0025] The processing unit 12 then determines the location and nature of the error based on the combination of the first and second data qubits that minimizes the energy. For example, the processing unit 12 determines that a Z error occurred in a data qubit that corresponds to the first data qubit but not to the second data qubit. The processing unit 12 also determines that an X error occurred in a data qubit that corresponds to the second data qubit but not to the first data qubit. Furthermore, the processing unit 12 determines that a Y error occurred in a data qubit that corresponds to both the first and second data qubits.

[0026] The processing unit 12 instructs the quantum computer 1 to correct the detected errors. For example, the processing unit 12 specifies a data qubit in which a Z error has occurred and instructs the quantum computer 1 to correct the Z error (operate a Z gate) of that data qubit. The processing unit 12 also specifies a data qubit in which an X error has occurred and instructs the quantum computer 1 to correct the X error (operate an X gate) of that data qubit. Furthermore, the processing unit 12 specifies a data qubit in which a Y error has occurred and instructs the quantum computer 1 to correct the Y error (operate a Y gate) of that data qubit.

[0027] In this way, by performing error detection that includes Y errors, Y errors can be identified with a high probability. That is, because the third energy term 4c is included in energy equation 4, the energy is lower when a Y error occurs than when X errors and Z errors occur individually.

[0028] For example, assume that the initial state of multiple first auxiliary qubits 6 is "0" (b v =+1). Similarly, assume that the initial state of multiple second auxiliary qubits 7 is "0" (b f =+1). In the first state data 2, the states of two of the multiple first auxiliary qubits 6a and 6b are inverted (b vIt is shown that (=-1). In the second state data 3, the states of two of the multiple second auxiliary qubits 7a and 7b are inverted (b f It has been shown that it equals -1.

[0029] There are multiple data qubit error occurrence patterns that can reproduce the state of such auxiliary qubits. For example, if an X error occurs in one data qubit 5a and a Z error occurs in two data qubits 5c and 5d, the state of the auxiliary qubit will be as shown in Figure 1 (this error detection pattern will be called the first detection pattern). Similarly, if a Y error occurs in one data qubit 5a and a Z error occurs in one data qubit 5b, the state of the auxiliary qubit will also be as shown in Figure 1 (this error detection pattern will be called the second detection pattern).

[0030] In the error detection process, the locations where Z errors and X errors occur are determined. If both errors occur in the same data qubit, it is determined that a Y error occurred in that data qubit.

[0031] The first energy term 4a in energy equation 4 increases the energy if the number of Z errors of the data qubits surrounding the inverted first auxiliary qubits 6a and 6b is odd, and decreases the energy as the number of Z errors decreases. The value of the first energy term 4a is the same for the first error detection pattern and the second error detection pattern shown in Figure 1.

[0032] The second energy term 4b in energy equation 4 increases the energy if the number of X errors of the data qubits surrounding the inverted second auxiliary qubits 7a and 7b is odd, and decreases the energy as the number of X errors decreases. The value of the second energy term 4b is the same for both the first and second error detection patterns shown in Figure 1.

[0033] In the first error detection pattern, there is no third data qubit that corresponds to both the first and second data qubits. On the other hand, in the second error detection pattern, data qubit 5a becomes the third data qubit. Therefore, the third energy term 4c in energy equation 4 does not reduce the energy in the first error detection pattern, but it does reduce the energy in the second error detection pattern. As a result, the energy is lower in the second error detection pattern than in the first error detection pattern.

[0034] Ultimately, the combination of the first and second data qubits that further reduces the energy shown in energy equation 4 is determined to be the second error detection pattern. Then, it is determined that a Y error occurred at data qubit 5a and a Z error occurred at data qubit 5b.

[0035] In this way, Y errors can be identified with high probability. Moreover, improving the probability of identifying Y errors also improves the likelihood of correctly identifying the location of the error. For example, consider a case where the probability of Z errors, X errors, and Y errors occurring are all around 10% and there is no significant difference between them. In such a case, the probability of two errors occurring, as in the second error detection pattern, is higher than the probability of three errors occurring in close proximity, as in the first error detection pattern. If the probability of each error occurring becomes even lower, the second error detection pattern, which has a smaller total number of errors, is more likely to be correct.

[0036] Furthermore, the third energy term 4c can be configured to include coefficients that control the amount of energy depletion, corresponding to each of the multiple data qubits 5. In this case, the processing unit 12 calculates the value of the coefficient corresponding to each of the multiple data qubits 5 based on the states of the first and second auxiliary qubits adjacent to the corresponding data qubit.

[0037] For example, suppose the first state data 2 indicates whether the state of each of the multiple first auxiliary qubits 6 has been inverted from its initial state. Also, suppose the second state data 3 indicates whether the state of each of the multiple second auxiliary qubits 7 has been inverted from its initial state. At this time, the processing unit 12 determines whether the following two conditions are met. The first condition is that at least one of the first auxiliary qubits adjacent to one data qubit has been inverted from its initial state. The second condition is that at least one of the second auxiliary qubits adjacent to one data qubit has been inverted from its initial state. If both conditions are met, the processing unit 12 increases the value of the coefficient corresponding to one data qubit compared to the other case.

[0038] By determining the coefficients corresponding to each of the multiple data qubits 5 in this way, the coefficients of the data qubits most likely to be experiencing a Y error can be increased, thereby increasing the energy reduction due to the third energy term 4c. As a result, the likelihood of correctly identifying the location of the Y error is improved.

[0039] Furthermore, the processing unit 12 can also determine the combination of the first and second data qubits that further reduces energy using dedicated hardware. For example, the processing unit 12 transmits coefficient data, which shows the coefficient values ​​of each of the multiple data qubits 5, along with the first state data 2 and the second state data 3, to the Ising machine. The processing unit 12 then causes the Ising machine to solve the combination of the first and second data qubits that further reduces the energy shown in energy equation 4. The Ising machine can compute solutions to combinatorial optimization problems at high speed. Therefore, by having the Ising machine compute the combination of the first and second data qubits that further reduces energy, high-speed error detection becomes possible.

[0040] [Second Embodiment] The second embodiment is a computer system capable of performing error correction, including Y errors, during the quantum computation process.

[0041] Figure 2 shows an example of a system configuration. For example, a quantum computer 200 and a classical computer 100 are connected via a network 20. The quantum computer 200 has an arithmetic unit 210 and a control unit 220. The arithmetic unit 210 is a device that performs quantum computation using a QPU (Quantum Processing Unit) stored in a refrigerator. The control unit 220 is a device that instructs the arithmetic unit 210 to perform quantum computation according to a given quantum circuit.

[0042] Classical computer 100 is a computer that instructs quantum computer 200 to perform calculations according to quantum circuits. Classical computer 100 is a so-called von Neumann architecture computer. For example, classical computer 100 sends a quantum circuit specified by the user to quantum computer 200 and retrieves the calculation result from quantum computer 200.

[0043] Furthermore, the classical computer 100 can perform error correction using surface codes by working in conjunction with the quantum computer 200. For example, the control device 220 uses a portion of the QPU as auxiliary qubits and periodically measures the state of the auxiliary qubits used for error detection in surface codes. The control device 220 transmits information indicating the measured state of the auxiliary qubits to the classical computer 100. The classical computer 100 detects the qubit that has experienced an error based on the state of the auxiliary qubits. If the classical computer 100 detects the occurrence of an error, it instructs the quantum computer 200 to correct the error of the qubit in question.

[0044] Figure 3 shows an example of the hardware of a classical computer. The classical computer 100 is controlled as a whole by a processor 101. The processor 101 is connected to memory 102 and several peripheral devices via a bus 109. The processor 101 may be a multiprocessor. The processor 101 is, for example, a CPU (Central Processing Unit), an MPU (Micro Processing Unit), or a DSP (Digital Signal Processor). At least some of the functions that the processor 101 implements by executing a program may be implemented by electronic circuits such as an ASIC (Application Specific Integrated Circuit) or a PLD (Programmable Logic Device). PLDs also include FPGAs (field-programmable gate arrays).

[0045] Memory 102 is used as the main memory of the classical computer 100. Memory 102 temporarily stores at least a portion of the OS (Operating System) program and application programs that are to be executed by the processor 101. Memory 102 also stores various data used for processing by the processor 101. For memory 102, a volatile semiconductor memory device such as RAM (Random Access Memory) is used.

[0046] Peripheral devices connected to bus 109 include a storage device 103, a GPU (Graphics Processing Unit) 104, an input interface 105, an optical drive device 106, a device connection interface 107, and a network interface 108.

[0047] The storage device 103 electrically or magnetically writes and reads data from its built-in recording medium. The storage device 103 is used as an auxiliary storage device for the classical computer 100. The storage device 103 stores the OS program, application programs, and various data. For example, the storage device 103 can be an HDD (Hard Disk Drive) or an SSD (Solid State Drive).

[0048] The GPU104 is a processing unit that performs image processing and is also called a graphics controller. A monitor 21 is connected to the GPU104. The GPU104 displays images on the screen of the monitor 21 according to instructions from the processor 101. The monitor 21 can be a display device using organic EL (Electro Luminescence) or a liquid crystal display device.

[0049] The input interface 105 is connected to a keyboard 22 and a mouse 23. The input interface 105 transmits signals from the keyboard 22 and mouse 23 to the processor 101. Note that the mouse 23 is just one example of a pointing device; other pointing devices can also be used. Other pointing devices include touch panels, tablets, touchpads, and trackballs.

[0050] The optical drive device 106 uses laser light or the like to read data recorded on the optical disc 24 or write data to the optical disc 24. The optical disc 24 is a portable recording medium on which data is recorded in a way that makes it readable by the reflection of light. Examples of optical discs 24 include DVD (Digital Versatile Disc), DVD-RAM, CD-ROM (Compact Disc Read Only Memory), and CD-R (Recordable) / RW (ReWritable).

[0051] The device connection interface 107 is a communication interface for connecting peripheral devices to the classical computer 100. For example, a memory device 25 and a memory reader / writer 26 can be connected to the device connection interface 107. The memory device 25 is a recording medium equipped with a communication function with the device connection interface 107. The memory reader / writer 26 is a device that writes data to or reads data from the memory card 27. The memory card 27 is a card-type recording medium.

[0052] The network interface 108 is connected to the network 20. The network interface 108 transmits and receives data to and from other computers or communication devices via the network 20. The network interface 108 is a wired communication interface, for example, connected by cable to a wired communication device such as a switch or router. Alternatively, the network interface 108 may be a wireless communication interface, connected by radio waves to a wireless communication device such as a base station or access point.

[0053] The classical computer 100 can realize the processing functions of the second embodiment with the hardware described above. The information processing device 10 shown in the first embodiment can also be realized with the same hardware as the classical computer 100 shown in Figure 3.

[0054] The classical computer 100 implements the processing functions of the second embodiment by executing a program recorded on a computer-readable recording medium, for example. The program describing the processing to be executed by the classical computer 100 can be recorded on various recording media. For example, the program to be executed by the classical computer 100 can be stored in the storage device 103. The processor 101 loads at least a portion of the program in the storage device 103 into the memory 102 and executes the program. Alternatively, the program to be executed by the classical computer 100 can be recorded on a portable recording medium such as an optical disc 24, a memory device 25, or a memory card 27. The program stored on the portable recording medium becomes executable after being installed in the storage device 103, for example, under control from the processor 101. The processor 101 can also directly read and execute the program from the portable recording medium.

[0055] Before explaining quantum computation involving error correction using surface codes, we will refer to Figures 4 to 16 to explain error correction using surface codes in quantum computers and the causes of logical errors.

[0056] Figure 4 is a diagram illustrating a qubit. A qubit is the smallest unit of quantum information, corresponding to the smallest unit of information in conventional computers, the "bit" (classical bit). A qubit can exist in a quantum mechanical superposition state (quantum state) of "0" and "1". Mathematically, the quantum state of a qubit is represented by a two-dimensional vector as shown in equation (1) below, where |0> and |1> correspond to the "0" and "1" states of a classical bit, respectively.

[0057]

number

[0058] α and β are complex numbers. If we rewrite α and β using real numbers φ and θ and the imaginary unit i as in equation (2), the qubit can be represented by the Bloch sphere 31 shown in Figure 4.

[0059]

number

[0060] While classical bits can only exist in either a "0" or "1" state, qubits can take on any state on the 31 faces of the Bloch sphere. In quantum computers using a quantum gate approach, calculations can be performed according to the objective by performing gate operations on qubits.

[0061] A gate operation is an operation that modifies a quantum state, and mathematically it is expressed as applying a matrix operator to a vector of quantum states. An example of a gate operation is the X gate, which performs bit flipping of a qubit. The operation by the X gate can be expressed mathematically as follows:

[0062]

number

[0063] Furthermore, the operation performed by the Z gate to invert the phase of a qubit can be expressed mathematically as follows:

[0064]

number

[0065] The matrix operators corresponding to the X-gate operation and the Z-gate operation are known as Pauli operators. There are three such matrix operators:

[0066]

number

[0067] The product of Pauli operators has the property (XY=-YX, YZ=-ZY, ZX=-XZ). When such a relationship is satisfied, it is called a countercommutation relation. Also, when a relationship without a negative sign is satisfied (for example, the relationship with the identity operator I, XI=IX), it is called a commutation relation. Pauli operators are interdependent, and the relationship "Y=iXZ" holds.

[0068] Another operator used for gate operations is the Hadamard operator. The Hadamard operator is used for gate operations that create a superposition state between |0> and |1>. The Hadamard operator is represented by the following equation (6).

[0069]

number

[0070] The matrix operators described above are those that act on one qubit. There are also operators that act on two qubits. The state of two qubits is represented by the tensor product of the states of one qubit, "|a>×|b>" (where × represents the tensor product, and is more accurately written as an × inside a circle), and is usually written as |ab>. This is a 2×2 4-dimensional vector. An example of a matrix operator that acts on two qubits is the CNOT operator.

[0071] The CNOT operator flips the bit of one qubit (the target qubit) when one qubit (the control qubit) is set to 1 (|10>→|11>). Since the state of the two qubits is a 4-dimensional vector, the corresponding matrix operator is 4x4 dimensional. The CNOT operator is expressed by the following formula:

[0072]

number

[0073] A quantum circuit is used to collectively represent gate operations on multiple qubits. In a quantum circuit, the state transitions of qubits are represented by lines, and each gate operation is represented by a corresponding symbol.

[0074] FIG. 5 is a diagram showing an example of a quantum circuit. Each horizontal line of the quantum circuit 32 corresponds to a qubit. The input to the qubit is shown on the left side of the horizontal line. Above each horizontal line, symbols indicating the gate operations on the corresponding qubit are arranged horizontally (from left to right) in chronological order. Symbols 32a, 32b like meters on the right side of the horizontal line indicate measurement operations.

[0075] Among the gate operations shown in the quantum circuit 32, for example, the symbol 32c of X surrounded by a rectangle indicates the Pauli operator "X" (X gate operation). The symbol 32d of Z surrounded by a rectangle indicates the Pauli operator "Z" (Z gate operation). The symbol 32e of H surrounded by a rectangle indicates the Hadamard operator "H" (Hadamard gate operation).

[0076] The gate operation for two qubits is described across multiple horizontal lines. For example, the symbols 32f, 32g indicating the gate operation corresponding to the CNOT operator C X are those connecting a white circle with a plus sign and a black circle with a line. The black circle is placed above the horizontal line of the control qubit, and the white circle with a plus sign is placed on the horizontal line of the target qubit.

[0077] For example, the quantum circuit 32 shown in FIG. 5 indicates performing the gate operation "C X(2,1) Z (1) C X(1,2) H (2) X (1) " on two qubits in the state |ψφ>. In the expression indicating the gate operation, the matrix operators acting in the order from right to left are described. The lower right subscript of the matrix operator is the number of the qubit on which it acts.

[0078] In a quantum computer, gate operations shown in quantum circuit 32 are executed sequentially. During this process, errors can occur in the qubits. To obtain correct computation results, it is crucial to detect and correct these errors.

[0079] Figure 6 shows an example of an error occurring in a qubit. Qubit 33 is affected by various types of noise. These noises include environmental noise, noise during qubit operations, and interference from other qubits. The state of qubit 33 may change unintentionally due to the influence of noise. Such unintentional changes in state are called qubit errors. Of the errors that occur in qubits, those that can be directly detected are classified into the following two types. • Bit inversion error (X error): |0>→|1>, |1>→|0> • Phase inversion error (Z error): |+>→|->, |->→|+> A bit inversion error is mathematically equivalent to applying the Pauli operator X to a quantum state. Similarly, a phase inversion error is equivalent to applying the Pauli operator Z to a quantum state.

[0080] In other words, errors in a qubit can be corrected by applying the same Pauli operator (X,Z) as the error. This type of operation is called quantum error correction. For example, consider the case of correcting an X error in a qubit using the Pauli operator X. The X error is expressed by equation (8) below, and the gate operation for correction is expressed by equation (9).

[0081]

number

[0082]

number

[0083] Errors occur and are corrected, causing the quantum state to change as follows: "|0>→|1>→|0>". To perform such error correction, it is necessary to identify the qubit that caused the error (the error qubit) and the nature of the error (whether it is a bit inversion (X error) or a phase inversion (Z error)). Therefore, qubit redundancy is implemented to identify the error qubit and the nature of the error.

[0084] Figure 7 shows an example of qubit redundancy. Figure 7 shows an example of redundancy using 8 qubits. When qubits are made redundant, the quantum state |ψ> that was represented by one qubit 34 becomes a logical quantum state |ψ> represented by logical qubit 35. L It is represented as follows. Logical qubit 35 is composed of multiple qubits 35a to 35h.

[0085] Now, let's assume an error has occurred in one of the qubits 35h that make up logical qubit 35. In this case, the error qubit and the error content are identified through a process that identifies the error qubit and the error content.

[0086] If qubit 35h is correctly identified as an error qubit and the nature of the error is also correctly identified, an error correction gate operation is performed on qubit 35h. Error correction corrects the state of logical qubit 35 to the state it would be in if no error occurred.

[0087] In the example in Figure 7, the error qubit is assumed to have been correctly identified, but identifying the error qubit is not easy. Identifying the error qubit requires information about the states of qubits 35a to 35h that make up the logical qubit 35, but directly measuring the qubits would destroy their quantum states and prevent the computation from continuing. Therefore, an auxiliary qubit is introduced, and by measuring the state of the auxiliary qubit, information about the states of qubits 35a to 35h that make up the logical qubit 35 can be obtained.

[0088] Figure 8 shows an example of measurement using an auxiliary qubit. It is not possible to copy the state of qubit 36 ​​to auxiliary qubit 37. Therefore, a two-qubit operation is performed on qubit 36 ​​and auxiliary qubit 37. The two-qubit operation changes the state of auxiliary qubit 37 according to the state of qubit 36. By measuring the state of auxiliary qubit 37, it is possible to detect changes from the initial state of auxiliary qubit 37. By determining whether or not auxiliary qubit 37 has changed from its initial state, the state of qubit 36 ​​can be determined.

[0089] Surface coding is a method for identifying error qubits based on the state of qubits obtained using auxiliary qubits. Surface coding is a representative coding (redundancy) method in quantum error correction.

[0090] Figure 9 shows an example of a qubit configuration for surface coding. In the example in Figure 9, the qubits are arranged in a two-dimensional lattice. The data qubits 40a-40h and auxiliary qubits 41a-41d, 42a-42d are arranged alternately in both the row and column directions. The auxiliary qubits 41a-41d, 42a-42d are divided into auxiliary qubits 41a-41d for X error detection and auxiliary qubits 42a-42d for Z error detection. Then, in each column, the auxiliary qubits 41a-41d for X error detection and the auxiliary qubits 42a-42d for Z error detection are arranged alternately.

[0091] The qubits shown in Figure 9 are a portion of the qubits used for error correction using surface codes. When error correction is performed using surface codes, the number of qubits on one side of the 2D lattice containing all the qubits used to correct the error of one logical qubit (total of data qubits and auxiliary qubits) is odd, and data qubits are placed at the four corners (see Figure 13). One logical qubit is composed of all the data qubits placed in the corresponding 2D lattice.

[0092] Quantum computer 200 first properly initializes the logical quantum state, and when detecting an error, it performs a gate operation (2-qubit operation) between one auxiliary qubit and the four surrounding data qubits to measure the auxiliary qubit. Classical computer 100 can detect the presence or absence of an error based on the measurement result of the auxiliary qubit.

[0093] Figure 10 shows an example of a gate operation for X error detection. For example, consider the case where an error is detected in any of the data qubits 40d, 40e, 40h, or 40f adjacent to the auxiliary qubit 41d using the auxiliary qubit 41d. Here, the identifier of data qubit 40d is "a", the identifier of data qubit 40e is "b", the identifier of data qubit 40h is "c", the identifier of data qubit 40f is "d", and the identifier of auxiliary qubit 41d is "e".

[0094] By performing gate operations on these qubits as shown in quantum circuit 43, it becomes possible to detect X errors in data qubits 40d, 40e, 40h, and 40f. Quantum circuit 43 shows a CNOT gate operation where data qubits 40d, 40e, 40h, and 40f are used as control qubits, and auxiliary qubit 41d is used as the target qubit. Through such a gate operation, if an X error occurs in one of the data qubits 40d, 40e, 40h, or 40f, auxiliary qubit 41d changes from its initial state. In the example in Figure 10, the initial state of auxiliary qubit 41d is |0>. Therefore, if the state |1> is detected by measuring the Z basis state of auxiliary qubit 41d (from the perspective of whether the quantum state is |0> or |1>), it can be determined that an X error has occurred in one of the data qubits 40d, 40e, 40h, or 40f.

[0095] Figure 11 shows an example of a gate operation for Z-error detection. For example, consider the case where an error is detected in any of the data qubits 40a, 40c, 40d, or 40e adjacent to the auxiliary qubit 42a using the auxiliary qubit 42a. Here, the identifier of data qubit 40a is "g", the identifier of data qubit 40c is "f", and the identifier of auxiliary qubit 42a is "h". Similar to Figure 10, the identifier of data qubit 40d is "a", and the identifier of data qubit 40e is "b".

[0096] By performing gate operations on these qubits as shown in quantum circuit 44, it becomes possible to detect Z errors in data qubits 40a, 40c, 40d, and 40e. Quantum circuit 44 first shows that a Hadamard gate operation is performed on auxiliary qubit 42a. Subsequently, a CNOT gate operation is performed with data qubits 40a, 40c, 40d, and 40e as target qubits and auxiliary qubit 42a as the control qubit. Furthermore, a Hadamard gate operation is performed on auxiliary qubit 42a. In the situation shown in quantum circuit 44, the state of auxiliary qubit 42a, which is the control qubit, changes depending on the state of the target qubit during the CNOT gate operation between the data qubit where a Z error has occurred and auxiliary qubit 42a.

[0097] If a Z error occurs in one of the data qubits 40a, 40c, 40d, or 40e due to such a gate operation, the auxiliary qubit 42a will change from its initial state. In the example in Figure 11, the initial state of the auxiliary qubit 42a is |0>. Therefore, if the state |1> is detected by measuring the Z basis of the auxiliary qubit 42a, it can be determined that a Z error has occurred in one of the data qubits 40a, 40c, 40d, or 40e.

[0098] Next, we will explain the initialization of data qubits. Logical quantum state |ψ> LIf we arbitrarily determine this, the gate operation for error detection shown in Figure 10 or Figure 11 will change the state of the data qubit and auxiliary qubit even when there is no error. To avoid this, the logical quantum state |ψ> L It is initialized to an eigenstate (eigenvalue +1 or -1) of the stabilizer operator. The stabilizer operator is the product of the Z or X operators acting on the four data qubits surrounding the auxiliary qubit.

[0099] For example, the stabilizer operator for X error detection shown in Figure 10 is "Z (i1) Z (i2) Z (i3) Z (i4) |ψ> L =±|ψ> L This is how it works. i is the index of the auxiliary qubit used for X error detection. The number to the right of i is a number that distinguishes the data qubits surrounding the auxiliary qubit. For example, with respect to the auxiliary qubit, the data qubit above it is "1", the data qubit to the left is "2", the data qubit below it is "3", and the data qubit to the right is "4". For example Z (i1) This shows the Z operator acting on the data qubit above the i-th auxiliary qubit.

[0100] Furthermore, the stabilizer operator for Z error detection shown in Figure 11 is "X (j1) X (j2) X (j3) X (j4) |ψ> L =±|ψ> L This is the result. j is the index of the auxiliary qubit used for Z-error detection. The number to the right of j is a number that distinguishes the data qubits surrounding the auxiliary qubit.

[0101] Thus, logical quantum state |ψ> L Due to the initialization, measuring the auxiliary qubit does not affect the qubit's state. Next, we will explain the error detection method using surface codes. In surface codes, if an X error occurs in one data qubit, the state |ψ> LThe eigenstates |ψ'> have different eigenvalues ​​for the stabilizer operator. L It changes to.

[0102] Figure 12 shows an example of X error detection. For example, |ψ> L If the eigenvalue is +1, then if an X error occurs in one of the data qubits surrounding the i-th auxiliary qubit, then |ψ'> L =X (i1) |ψ> L This is the result. In the example in Figure 12, we assume that an error has occurred in data qubit 40d.

[0103] When the Z-stabilizer operator around auxiliary qubit 41d is applied to the data qubit 40d where the error occurred, the result is "Z (i1) Z (i2) Z (i3) Z (i4) |ψ'> L This is expressed as "|ψ'> L =X (i1) |ψ> L Using the relationship '', it can be transformed as follows.

[0104] Z (i1) Z (i2) Z (i3) Z (i4) |ψ'> L = Z (i1) Z (i2) Z (i3) Z (i4) X (i1) |ψ> L = Z (i1) X (i1) Z (i2) Z (i3) Z (i4) |ψ> L Since the X and Z operators satisfy the anticommutation relation (ZX = -XZ), they can be further transformed as follows.

[0105] Z (i1) X (i1) Z (i2) Z (i3) Z (i4) |ψ> L =-X (i1) Z(i1) Z (i2) Z (i3) Z (i4) |ψ> L =-X (i1) |ψ> L =-|ψ'> L "-|ψ'> L This indicates that the eigenvalue has changed to "-1". This change in eigenvalue can be detected as a bit inversion of the auxiliary qubit 41d using quantum circuit 43.

[0106] This explains how measuring an auxiliary qubit can detect an error in one of its surrounding data qubits. However, measuring only one auxiliary qubit does not tell us which of its surrounding data qubits the error occurred in. Therefore, the data qubit where the error occurred is identified based on the relative positions of two or more auxiliary qubits that detected the error.

[0107] Figure 13 shows an example of error location identification. While Figure 13 shows an example of error location identification for a Z error, the same error location can be identified for an X error. In Figure 13, the auxiliary qubit used for X error detection is omitted (the same applies to Figures 14 to 16).

[0108] Here, we assume that a Z error has occurred in data qubit 51. In the error detection process, error detection is performed on all auxiliary qubits using gate operations similar to those of quantum circuit 44 shown in Figure 11, and their states are measured. In Figure 13, the auxiliary qubit being measured and the data qubit whose error detection is being performed by that auxiliary qubit are enclosed in circles.

[0109] The data qubit 51 where the error occurred is located within the same circle as both auxiliary qubits 52 and 53. In this case, the state of auxiliary qubits 52 and 53 is detected to have been inverted by the measurement. Because the states of auxiliary qubits 52 and 53 have been inverted, data qubit 51, which is located between them, is identified as the location of the error. An error correction operation (Z-gate operation) is then performed on data qubit 51.

[0110] The location of the error can be identified using the classical computer 100 based on the measurement results of the auxiliary qubit state. As shown in Figure 13, if there is only one error location, the classical computer 100 can uniquely identify the error location. However, if there are many error qubits, the error location identification process by the classical computer 100 becomes very complex. One method of identifying the error location using surface codes is to solve the error location identification problem as an energy minimization problem of the Ising model.

[0111] Figure 14 shows an example of an error location method using the Ising model. In the example in Figure 14, we assume that a Z error is detected using the Ising model. For example, suppose a Z error occurs in two data qubits 60a and 60b, as shown in error occurrence pattern 60. In this case, when a gate operation for Z error detection is performed and the state of the auxiliary qubits is measured, an inverted state is detected for the auxiliary qubits 60c to 60f used for Z error detection around the data qubits 60a and 60b.

[0112] The classical computer 100, upon receiving the measurement results of the auxiliary qubits, replaces the data qubits with spins in the Ising model. It also uses the auxiliary qubits as lattice points and sets the measurement data of the auxiliary qubits to those lattice points. For example, if the state of the v-th auxiliary qubit (where v is a natural number) is not inverted, the measurement data b of the lattice point corresponding to that auxiliary qubit is set. vThis becomes "+1". Also, if the state of the v-th auxiliary qubit is inverted, the measurement data b of the lattice point corresponding to that auxiliary qubit will be inverted. v This becomes "-1".

[0113] At this time, the energy (Hamiltonian) of the Ising model used for Z-error detection is expressed by the following equation (10).

[0114]

number

[0115] Here, J and h are constants (positive real numbers). v E is the number of lattice points. v This is the spin σ adjacent to the v-th lattice point. i This is a set of indices. d σ is the number of spins. i If it is not inverted (upward arrow), the value is "+1". Also, spin σ i If it is inverted (downward arrow), the value is "-1". Classical computer 100 determines the spin orientation that minimizes the energy given by equation (10). Classical computer 100 identifies the data qubits 60a and 60b corresponding to the inverted spin when the energy is minimized as the error location.

[0116] The first term on the right-hand side of equation (10) is the measurement data b of the v-th grid point. v If it is "+1", then the inverted spin (σ) among the spins around it. i If the number of (=-1) is even, it acts to reduce the overall energy. Also, the first term on the right side is the measurement data b of the v-th lattice point. v If it is "-1", then the inverted spin (σ) among the spins around it. i If the number of (=-1) is odd, it acts to increase the overall energy.

[0117] The second term on the right-hand side of equation (10) acts to reduce the overall energy as the number of inverted spins decreases. The presence of the second term prevents the energy minimum from being reached when all spins are inverted, even if, for example, no error has occurred.

[0118] The error occurrence pattern 60 shown in Figure 14 is an example where the error location can be uniquely identified. However, if the error locations are close together, it may not be possible to uniquely identify the error.

[0119] Figure 15 shows an example of a case where the location of the error cannot be uniquely identified. In the error pattern 61 shown in Figure 15, errors occur at two data qubits 61a and 61b. These data qubits 61a and 61b are shifted by one row in the row direction and by one row in the column direction. In this case, error detection inverts the state of the auxiliary qubit 61c adjacent to data qubit 61a, and also inverts the state of the auxiliary qubit 61d adjacent to the right of data qubit 61b.

[0120] There are other error patterns besides the one where an error occurs in data qubits 61a and 61b (correct error detection example) that result in auxiliary qubits 61c and 61d inverting while the other auxiliary qubits do not. For example, an error may occur in data qubits 61e and 61f. Therefore, it is possible to mistakenly detect that an error occurred in data qubits 61e and 61f (incorrect error detection example).

[0121] When multiple error patterns exist that can reproduce the state of the auxiliary qubit, it is impossible to determine which error pattern is occurring from the measurement data of the auxiliary qubit. Therefore, there is a possibility of incorrect error detection, as shown in the example of incorrect error detection. Furthermore, if error correction is performed based on incorrect error detection, it may cause errors (logical errors) that cannot be detected by the measurement of the auxiliary qubit.

[0122] Figure 16 shows an example of a logical error due to erroneous correction. The error occurrence pattern 62 shown in Figure 16 is the case where three errors occur alternately in a system with six data qubits on one side. For example, a Z error occurs in data qubits 62a to 62c on the same row. In this case, the state of auxiliary qubits 62d to 62h adjacent to any of the data qubits 62a to 62c on the same row is inverted.

[0123] In this case, there are two error detection patterns that can reproduce the measurement data of the auxiliary qubits below. One is an error detection pattern that correctly detects data qubits 62a to 62c as error qubits. In this case, the errors that occurred can be correctly corrected by performing an error correction operation on the data qubits 62a to 62c that were detected as data qubits.

[0124] Another error detection pattern is when data qubits 62i to 62k, separate from the data qubits 62a to 62c that experienced the error, are detected as error qubits. When data qubits 62i to 62k are detected as error qubits, an error correction operation is performed on them. As a result, the sequence of error qubits or data qubits that have been inverted due to erroneous correction becomes connected from one boundary to the other. This state is called a logical error. In a state where a logical error has occurred, the logical quantum state is |ψ> L The value has changed. Therefore, continuing the calculation as is will not yield the correct result.

[0125] Thus, even with Z errors alone, it may not always be possible to correctly detect the location of the error. The same applies to X errors. And if we also consider correcting Y errors, correct error detection becomes even more complex.

[0126] Figure 17 shows an example of error detection including Y errors. In surface codes, X and Z errors are detected based on bit inversion of auxiliary qubits, but in quantum computer 200, Y errors (mathematically the action of the Pauli operator Y) can also occur. The Pauli operator Y is related to the Pauli operators X and Z by the equation Y = iXZ (where i is the imaginary unit). In surface codes, there is no stabilizer operator for detecting Y errors. Therefore, detection of Y errors is performed by combining detection of Z errors and detection of X errors. That is, in a data qubit where a Y error occurs, it is assumed that an X error and a Z error occurred simultaneously, and the data qubit where an X error and a Z error occurred simultaneously is identified as the location where the Y error occurred.

[0127] In the error occurrence pattern 63 shown in Figure 17, a Y error occurs in data qubit 63a and a Z error occurs in data qubit 63b. The positions of data qubits 63a and 63b are shifted by one row in the row direction and one column in the column direction. In this case, a gate operation for Z error detection inverts the states of auxiliary qubit 63c for Z error detection adjacent to data qubit 63b and auxiliary qubit 63d for Z error detection adjacent to data qubit 63a. Note that auxiliary qubit 63g is adjacent to both data qubits 63a and 63b where errors occurred, so its state is not inverted. In addition, a gate operation for X error detection inverts the states of auxiliary qubits 63e and 63f for X error detection adjacent to data qubit 63a.

[0128] Here, in the classical computer 100, it is assumed that the occurrence of Z errors in the data qubits 63a and 63b is detected based on the states of the auxiliary qubits 63c and 63d for Z error detection. Also, in the classical computer 100, the occurrence of an X error in the data qubit 63a can be detected based on the states of the auxiliary qubits 63e and 63f for X error detection. In this case, since both a Z error and an X error are detected in the data qubit 63a, the classical computer 100 can determine that the error that occurred in the data qubit 63a is a Y error.

[0129] Thus, it is possible to detect a Y error by combining Z error detection and X error detection. And error detection including a Y error can also be solved as an energy minimization problem using the Ising model.

[0130] FIG. 18 is a diagram showing an example of an Ising model capable of Z error detection and X error detection. For example, a stabilizer operator for Z error detection (v-th Z stabilizer operator 71) is defined in association with each of the auxiliary qubits for Z error detection. The measurement data b v of the eigenvalue of this stabilizer operator is +1 or -1. Also, a stabilizer operator for X error detection (f-th X stabilizer operator 72) is defined in association with each of the auxiliary qubits for X error detection. The measurement data b f of the eigenvalue of this stabilizer operator is +1 or -1.

[0131] To perform error detection using such a stabilizer operator, for each data qubit, a spin variable σ i for specifying a Z error and a spin variable σ' i for specifying an X error are prepared. The energy of the Ising model in this case can be given by, for example, the following equation.

[0132]

Equation

[0133] Spin variable σ i , σ’ i The initial state of is “+1”. N v is the number of lattice points corresponding to the auxiliary quantum bit for Z error detection. E v is the set of indices of the spin variable σ i adjacent to the v-th lattice point corresponding to the auxiliary quantum bit for Z error detection. N f is the number of lattice points corresponding to the auxiliary quantum bit for X error detection. E f is the set of indices of the spin variable σ’ i adjacent to the f-th lattice point corresponding to the auxiliary quantum bit for X error detection. N d is the spin variable σ i is the number of (the number of spin variables σ’[[ID=2)4]] i is also the same). The spin variable σ i , σ’ i The initial state of is “+1”.

[0134] The first and second terms on the right side of Equation (11) are the energy calculation parts for identifying the Z error location. Also, the third and fourth terms on the right side of Equation ()) are the energy calculation parts for identifying the X error location. In this way, in Equation (11), the energy calculation part for identifying the Z error location and the energy calculation part for identifying the X error location are separated. That is, the correlation regarding the location of the Z error and the location of the X error is not considered. Therefore, when identifying the X error and the Z error separately as in Equation (11), there may be cases where the original Y error cannot be detected.

[0135] Figure 19 is a diagram showing an example of Y error detection failure. For example, assume the same error occurrence pattern 63 as in the case of Figure 17. In this case, an X error may be detected in the data quantum bit 63a, and Z errors may be detected in two data quantum bits 63h, 63i. In this example, although the error actually occurred at two locations, three data quantum bits are identified as the error occurrence locations.

[0136] Even when an incorrect error detection occurs as shown in Figure 19, the energy shown by equation (11) is the same as when the error is correctly detected, as shown in Figure 17. Therefore, when calculating the energy using equation (11), there is an equal probability that the error will be correctly detected and that it will be incorrectly detected.

[0137] The inability to correctly identify the Y error that occurred can lead to the occurrence of a logical error. Figure 20 shows an example of a logical error that occurs when a Y error cannot be detected. In error occurrence pattern 64 in Figure 20, the data qubit 64a where the Y error occurred and the data qubit 64b where the Z error occurred are in the same row. The data qubits 64a and 64b where the errors occurred are separated by only two columns. In this case, the states of the auxiliary qubit 64c for Z error detection and the auxiliary qubits 64d and 64e for X error detection are inverted.

[0138] In such cases, using equation (11) to identify the error location may detect an X error in data qubit 64a and Z errors in data qubits 64f and 64g. If error correction is performed based on these detection results, a logical error will occur with respect to the Z error. In other words, the probability of a logical error occurring increases due to the inability to correctly identify the Y error.

[0139] Therefore, the classical computer 100 uses the same data qubit as the spin variable σ for the energy equation (11). i ,σ' i The data location is identified using equation (12), which includes a term that makes it easier to align the orientations.

[0140]

number

[0141] J' iThis is a coefficient (a positive real number) that represents the weight of the fifth term for each data qubit. The first to fourth terms on the right-hand side of equation (12) are the same as in equation (11). The fifth term is the spin variable σ corresponding to the same data qubit. i ,σ' i This term is used to align the orientation. The fifth term is the spin variable σ corresponding to the same data qubit. i ,σ' i The closer the values ​​are, the more it acts to decrease energy.

[0142] Figure 21 shows an example of error location identification that correctly identifies a Y error. For example, suppose an error with the same error occurrence pattern 63 as in Figures 17 and 19 occurs. In that case, suppose, for example, that data qubit 63a is identified as the location of the X error. In this case, the spin variable σ' for X error detection corresponding to data qubit 63a is... i The value of this value is "-1".

[0143] Here, we compare the energy of equation (12) when a different data qubit 63i is identified as the location of the Z error, and when the same data qubit 63a is identified as the location of the Z error.

[0144] Whether the Z error occurs at data qubit 63a or data qubit 63i, the values ​​of the first to fourth terms on the right-hand side of equation (12) are the same. Therefore, let ΔH be the change in the value of the differing fifth term.

[0145] If the location where the Z error occurs is data qubit 63i, then the spin variable σ for Z error detection corresponds to data qubit 63a. i The value of remains "+1". Therefore, the two spin variables σ corresponding to data qubit 63a i σ' i Each value is different. Then the change in the value of the 5th term on the right side is "ΔH = -J' i σ i σ' i =J' i >0

[0146] If the location where the Z error occurs is data qubit 63a, then the spin variable σ for detecting the Z error corresponding to data qubit 63a is used. i The value of becomes "-1". Then the two spin variables σ corresponding to data qubit 63a i ,σ' i The respective values ​​are the same. Therefore, the change in the value of the 5th term on the right-hand side is "ΔH = -J' i σ i σ' i =-J' i It becomes <0.

[0147] Thus, in equation (12), specifying the location of both the Z error and the X error on the same data qubit results in lower energy than specifying them on different data qubits. As a result, the probability of detecting the Y error improves.

[0148] Next, the coefficient J' i This explains how to determine the value of . For example, in classical computer 100, the coefficient J' is more important when Y errors occur in isolation. i Make the value of larger. Figure 22 shows the coefficient J' i This figure shows an example of how to determine the value of J'. For example, classical computer 100, if the measurement of the auxiliary qubit adjacent to the i-th data qubit shows that both the auxiliary qubit for Z error detection and the auxiliary qubit for X error detection are inverted, then J' i =J' a +J' b "The classical computer 100 also states that if, as a result of measuring the auxiliary qubit adjacent to the i-th data qubit, only one of the auxiliary qubits for Z error detection and the auxiliary qubit for X error detection has been inverted, then "J' i =J' a " and J' a and J' b This is a constant parameter (a positive real number).

[0149] In the error occurrence pattern 65 shown in Figure 22, a Y error occurs in two data qubits 65a and 65b, and a Z error occurs in one data qubit 65c. In this error occurrence pattern 65, the states of the auxiliary qubits 65d to 65g for X error detection and the auxiliary qubits 65h to 65j for Z error detection are inverted.

[0150] For the auxiliary qubit adjacent to data qubit 65a where a Y error occurred, both the auxiliary qubit for X error detection and the auxiliary qubit for Z error detection are inverted. Therefore, the coefficient when data qubit 65a becomes the i-th data qubit is "J' i =J' a +J' b This is what it becomes.

[0151] For the auxiliary qubits adjacent to data qubit 65b where a Y error occurred, the auxiliary qubit for X error detection is inverted, but the auxiliary qubit for Z error detection is not inverted. Therefore, the coefficient when data qubit 65b becomes the i-th data qubit is "J' i =J' a This is what it becomes.

[0152] In this way, the coefficient J' for the data qubits that are most likely to have a Y error i The value of this parameter is set to a high value. As a result, it becomes possible to properly detect Y errors.

[0153] Figure 23 shows an example of the functions of a classical computer for instructing quantum computation with error detection. The classical computer 100 has a storage unit 110, a quantum computation instruction unit 120, an error location identification unit 130, and an error correction instruction unit 140.

[0154] The memory unit 110 stores the quantum circuit 111 that the quantum computer 200 will perform calculations on. The quantum computation instruction unit 120 instructs the quantum computer 200 to perform a computation request for the quantum circuit 111. The quantum computation instruction unit 120 then retrieves the computation result of the quantum circuit from the quantum computer 200. When the quantum computation instruction unit 120 receives the measurement result of the auxiliary qubit state from the quantum computer 200, it transfers the received measurement result to the error location identification unit 130.

[0155] The error location identification unit 130 identifies the data qubit where an X error, Z error, or Y error occurred based on the measurement results of the auxiliary qubit's state. For example, the error location identification unit 130 finds the spin state that minimizes the energy equation of the Ising model shown in equation (12), and identifies the error location based on the data qubit corresponding to the spin whose spin state has been reversed. The error location identification unit 130 transmits the result of identifying the error location to the error correction instruction unit 140.

[0156] The error correction instruction unit 140 instructs the quantum computer 200 to perform gate operations to correct the errors that have occurred. For example, the error correction instruction unit 140 instructs the operation of the X gate on a data qubit where an X error has occurred. The error correction instruction unit 140 also instructs the operation of the Z gate on a data qubit where a Z error has occurred. Furthermore, the error correction instruction unit 140 instructs the operation of the Y gate on a data qubit where a Y error has occurred.

[0157] Furthermore, the functions of each element shown in Figure 23 can be realized, for example, by having a computer execute the program module corresponding to that element. Quantum computer 200 performs quantum computation according to quantum circuit 111. During the quantum computation, quantum computer 200 periodically performs gate operations for Z-error and X-error detection and measures the state of auxiliary qubits. Quantum computer 200 transmits the measurement results of the auxiliary qubits to classical computer 100.

[0158] Figure 24 is a sequence diagram showing the procedure for quantum computing. The classical computer 100 transmits a computation request from the quantum circuit 111 to the control unit 220 of the quantum computer 200 (step S11). The control unit 220 transmits a quantum operation instruction to the arithmetic unit 210 according to the quantum circuit 111 (step S12). The arithmetic unit 210 performs the quantum operation by performing gate operations on the qubits according to the quantum operation instruction (step S13). Then, at a predetermined timing, the classical computer 100 and the quantum computer 200 work together to perform quantum error correction processing (step S14).

[0159] Subsequently, the control device 220 issues a quantum operation instruction (step S15), and the arithmetic unit 210 performs a quantum operation (step S16). When a predetermined period ΔT has elapsed since the previous error correction process, a quantum error correction process (step S17) is performed. Similarly, the control device 220 issues a quantum operation instruction (step S18), and the arithmetic unit 210 performs a quantum operation (step S19). When a predetermined period ΔT has elapsed since the previous error correction process, a quantum error correction process (step S20) is performed.

[0160] This quantum operation and quantum error correction process is repeated until the calculation of the quantum circuit 111 is complete, at which point the computing unit 210 measures the state of the data qubits (step S21). The computing unit 210 then transmits the measurement result of the data qubits to the control unit 220 (step S22). The control unit 220 then transmits information indicating the measurement result to the classical computer 100 as the quantum operation result (step S23).

[0161] In this way, quantum error correction is performed periodically during quantum computation. In quantum error correction, the location of X errors, Z errors, and Y errors is identified using the Ising model, and the errors that have occurred are corrected.

[0162] Figure 25 is a sequence diagram showing an example of the procedure for quantum error correction. The control unit 220 of the quantum computer 200 transmits a command to measure stabilizer eigenvalues ​​to the arithmetic unit 210 (step S31). The arithmetic unit 210 performs two-qubit gate operations for X error detection and Z error detection and measures the state of the auxiliary qubits (step S32). The arithmetic unit 210 transmits measurement data indicating the measured state of the auxiliary qubits to the control unit 220 (step S33). The control unit 220 transmits the measurement data obtained from the arithmetic unit 210 to the classical computer 100 (step S34).

[0163] The classical computer 100 identifies the error location based on the measurement data (step S35). The classical computer 100 transmits error location data indicating the identified error location to the control device 220 (step S36).

[0164] The control device 220 transmits an error correction command to the arithmetic unit 210 for the data qubit in the error location data that is said to have an error (step S37). The arithmetic unit 210 performs error correction according to the error correction command (step S38).

[0165] Next, we will explain in detail the error location identification process using surface codes. Figure 26 is a flowchart showing an example of the error location identification process. The process shown in Figure 26 will be explained below according to the step numbers.

[0166] [Step S101] The error location identification unit 130 uses spin variable data σ i ,σ' i (i=1,···,N data Initialize the value of ) to "+1". data This is the number of data qubits.

[0167] [Step S102] The error location identification unit 130 uses the measurement data b of the auxiliary qubit. v ,b f (v=1,···,N Z, f = 1, ···, N X ), and J' a and J' b and the value of are set. N X is the number of auxiliary qubits for X error detection. N Z is the number of auxiliary qubits for Z error detection.

[0168] [Step S103] The error location specifying unit 130 increments i by 1 from 1 and repeats the processes of steps S104 to S107 until data is reached. The processes of steps S104 to S107 are determination processes for the coefficient J' i for each data qubit. The coefficient J' i of the i-th data qubit is determined based on the measurement data of the auxiliary qubits around that data qubit.

[0169] FIG. 27 is a diagram showing an example of the arrangement of auxiliary qubits around a data qubit. For example, assume that the data qubit 81 shown in FIG. 27 is the i-th data qubit. In this case, the auxiliary qubits 82 and 83 arranged on the left and right of the data qubit 81 are the surrounding auxiliary qubits for Z error detection. Also, the auxiliary qubits 84 and 85 arranged above and below the data qubit 81 are the surrounding auxiliary qubits for X error detection.

[0170] Hereinafter, return to the description of FIG. 26. [Step S104] The error location specifying unit 130 determines whether any of the values of the measurement data b v of the auxiliary qubits for Z error detection around the i-th data qubit is "-1". The error location specifying unit 130 proceeds to step S105 if the value of the measurement data b V is "-1" in at least one of the surrounding auxiliary qubits. Also, the error location specifying unit 130 proceeds to step S106 if the value of the measurement data b v is "1" for all of the surrounding auxiliary qubits.

[0171] [Step S105] The error location specifying unit 130 determines whether any of the measurement data b of the auxiliary qubits for X error detection around the i-th data qubit is "-1". When the measurement data b has a value of "-1" in at least one of the surrounding auxiliary qubits, the error location specifying unit 130 proceeds to step S107. Also, when the measurement data b has a value of "1" for all of the surrounding auxiliary qubits, the error location specifying unit 130 proceeds to step S106. f Among them, it is determined whether any value is "-1". When the measurement data b has a value of "-1" in at least one of the surrounding auxiliary qubits, the error location specifying unit 130 proceeds to step S107. Also, when the measurement data b has a value of "1" for all of the surrounding auxiliary qubits, the error location specifying unit 130 proceeds to step S106. f When the value of the measurement data b is "-1", the process proceeds to step S107. Also, when the value of the measurement data b is "1" for all of the surrounding auxiliary qubits, the error location specifying unit 130 proceeds to step S106. f When the value of the measurement data b is "1" for all of the surrounding auxiliary qubits, the error location specifying unit 130 proceeds to step S106.

[0172] [Step S106] The error location specifying unit 130 determines the value of the coefficient data J' to be "J' = J'". Then, the error location specifying unit 130 proceeds to step S108. i The error location specifying unit 130 determines the value of the coefficient data J' to be "J' = J'". Then, the error location specifying unit 130 proceeds to step S108. i The error location specifying unit 130 determines the value of the coefficient data J' to be "J' = J'". a Then, the error location specifying unit 130 proceeds to step S108.

[0173] [Step S107] The error location specifying unit 130 determines the value of the coefficient data J' to be "J' = J' + J'". i The error location specifying unit 130 determines the value of the coefficient data J' to be "J' = J' + J'". i ]The error location specifying unit 130 determines the value of the coefficient data J' to be "J' = J' + J'". a The error location specifying unit 130 determines the value of the coefficient data J' to be "J' = J' + J'". b The error location specifying unit 130 determines the value of the coefficient data J' to be "J' = J' + J'". [Step S108] When the processing of steps S104 to S107 is completed up to i = N, the error location specifying unit 130 proceeds to step S109. data When the processing of steps S104 to S107 is completed up to i = N, the error location specifying unit 130 proceeds to step S109.

[0174] Through the processing of steps S103 to S108, coefficient data indicating the value of the coefficient J' for each data qubit is generated. i Through the processing of steps S103 to S108, coefficient data indicating the value of the coefficient J' for each data qubit is generated. [Step S109] The error location specifying unit 130 obtains the values of the spin variables σ, σ' that minimize the energy of the Ising model represented by equation (12). For example, the error location specifying unit 130 can obtain the values of the spin variables σ, σ' that minimize the energy by using a solution search method for a combinatorial optimization problem. i ,σ' i For example, the error location specifying unit 130 can obtain the values of the spin variables σ, σ' that minimize the energy by using a solution search method for a combinatorial optimization problem. i ,σ' i For example, the error location specifying unit 130 can obtain the values of the spin variables σ, σ' that minimize the energy by using a solution search method for a combinatorial optimization problem.

[0175] [Step S110] The error location identification unit 130 identifies the spin variable σ whose value is "-1". i ,σ' i The data qubit corresponding to the error is identified as the error location. The error location identification unit 130 also identifies the type of error (X error, Z error, or Y error) that occurred in the data qubit that became the error location. In other words, the processing in steps S109 to S110 is the error location identification process for each error type.

[0176] For example, the error location identification unit 130 uses the spin variable σ' of the i-th data qubit. i The value of is "-1", and the spin variable σ i If the value is "+1", that data qubit is identified as the location of the Z error. The error location identification unit 130 also identifies the spin variable σ of the i-th data qubit. i The value of is "+1", and the spin variable σ' i If the value is "-1", that data qubit is identified as the location where the X error occurred. Furthermore, the error location identification unit 130 determines the spin variable σ of the i-th data qubit. i The value of is "-1", and the spin variable σ' i If the value of is "-1", then that data qubit is identified as the location where the Y error occurred.

[0177] In this way, the locations of Z errors, X errors, and Y errors can be identified. The error locations can be identified by solving the energy minimization problem of the Ising model shown in equation (12). This energy equation includes the spin variable σ of the i-th data qubit. i and spin variable σ' i The equation includes a term (the fifth term on the right-hand side) that reduces energy as the values ​​of the two sides become equal. As a result, the accuracy of identifying Y errors can be improved. Furthermore, by correctly correcting the errors that occur, the probability of logical errors occurring can be reduced.

[0178] The following will explain in detail the effects of improving the Y error identification rate and reducing the logical error occurrence rate. Figures 28 and 29 show the calculation results of the Y error identification rate and logical error probability when the positional relationship between Z errors and X errors is taken into consideration (applying equation (12)) and when it is not taken into consideration (applying equation (11)).

[0179] The Y-error identification rate is calculated as "number of identified Y-errors / actual number of Y-errors". To clarify the actual number of Y-errors, the error location identification process will be performed using the results of a simulation using classical computer 100, which generated error occurrence and auxiliary qubit state data. The logical error probability is calculated as "number of times a logical error occurred / number of trials".

[0180] The following example calculates the above evaluation values ​​(Y error identification rate and logic error probability) by simulating error correction using surface codes, with the number of data qubits on one side of a 2D qubit array for one logic qubit being "d=6". Simulated annealing (SA) is used to minimize energy. a and J' b While changing the value of J' a and J' b An evaluation value is calculated based on the value of J'. a and J' b For each combination of [elements], 1000 patterns of physical errors are generated and an evaluation value is calculated. The probability p of a physical error occurring is "p = 10%".

[0181] Figure 28 shows the calculation results of the Y error identification rate. In the Y error identification rate table 91, J' a The value of is set as the row label, J' b The value of J' is set as the column label. a The values ​​are smaller in the upper rows and larger in the lower rows. bThe values ​​are smaller in the left column and larger in the right column. At the intersection of each row and column in the Y Error Identification Rate Table 91, the J' of the corresponding row is located. a The value of J' in the corresponding column b The Y error identification rate is set when error correction is performed by setting the value of . Note that the Y error identification rate is shown as a percentage in Table 91.

[0182] J' in the first row of Y Error Identification Rate Table 91 a The value is "0.0", and the first column J' b The value of J' is also "0.0". a and J' b When both are "0", the value of the 5th term in the energy equation (12) is always "0". Therefore, the values ​​set in the first row and first column of the Y error identification rate table 91 correspond to the Y error identification rate when the positional relationship between the Z error and the X error is not taken into consideration (applying equation (11)). In the example in Figure 28, the Y error identification rate when the positional relationship between the Z error and the X error is not taken into consideration is "19.4%".

[0183] J' a and J' b The more you increase the value for each of these, the better the Y error identification rate becomes. For example, "J' a =4.0" and "J' b The Y error identification rate when "=2.0" is "49.4%". That is, "J' a =4.0" and "J' b By setting it to "=2.0", the Y error identification rate is approximately 2.5 times higher than when the positional relationship between the Z error and the X error is not taken into consideration.

[0184] Figure 29 shows the calculation results of the logical error probability. In the logical error probability table 92, J' a The value of is set as the row label, J' b The value of J' is set as the column label. a The values ​​are smaller in the upper rows and larger in the lower rows. bThe values ​​are smaller in the left column and larger in the right column. At the intersection of each row and column in the Logical Error Probability Table 92, the J' of the corresponding row is located. a The value of J' in the corresponding column b The probability of a logical error occurring when error correction is performed by setting the value of is set. Note that the probability of a logical error occurring is shown as a percentage in the logical error probability table 92.

[0185] J' in the first row of the logic error probability table 92 a The value is "0.0", and the first column J' b The value of is also "0.0". In the example in Figure 29, the probability of a logical error occurring when the positional relationship between the Z error and the X error is not taken into consideration (1st row, 1st column of the logical error probability table 92) is "65.0%".

[0186] J' a and J' b The more you increase the value for each of these, the lower the probability of a logical error occurring. For example, "J' a =4.0" and "J' b The probability of a logical error occurring when "=2.0" is "32.9%". That is, "J' a =4.0" and "J' b By setting it to "=2.0", the probability of a logical error occurring is reduced by approximately half compared to when the positional relationship between Z errors and X errors is not taken into consideration.

[0187] Note J' b If the value of is made too large, the probability of a logical error occurring increases. In the example in Figure 29, "J' a When "J' = 4.0" b If it is ≥4.0, then J' b As the number of errors increases, so does the probability of logical errors occurring.

[0188] [Third Embodiment] The third embodiment involves calculating the minimum energy value of the Ising model using dedicated hardware.

[0189] FIG. 30 is a diagram showing an example of the system configuration of the third embodiment. In the third embodiment, an annealing machine 300 is connected to a classical computer 100. The annealing machine 300 is a computer specialized for solving optimization problems using an annealing model. The annealing machine 300 can quickly obtain the minimum energy value of the annealing model using, for example, an ASIC, a PLD, a GPU, or other dedicated processors.

[0190] In the quantum computing process in the third embodiment, only the error location identification process is different from that in the second embodiment. Therefore, the error location identification process in the third embodiment will be described in detail.

[0191] FIG. 31 is a sequence diagram showing the procedure of the error location identification process in the third embodiment. The initialization process of the spin variable data in step S201 is the same as the process in step S101 of FIG. 26. After the initialization of the spin variable data, the error location identification unit 130 of the classical computer 100 sets the values of J’ a and J’ b (step S202). The process of the next step S203 is a summary of the coefficient data generation processes in steps S103 to S108 of FIG. 26.

[0192] When the coefficient data determination process ends, the classical computer 100 transmits the measurement data indicating the state of the auxiliary quantum bit and the coefficient data indicating the values of the coefficients J’ i for each data quantum bit to the annealing machine 300 (step S204). Based on the measurement data and the coefficient data, the annealing machine 300 searches for the minimum energy value of the annealing model and generates spin variable data indicating the values of the spin variables σ i , σ’ i that obtain the minimum value (step S205). The annealing machine 300 transmits the generated spin variable data to the classical computer 100 (step S206).

[0193] Based on the acquired spin variable data, the classical computer 100 determines the spin variable σ whose value becomes “-1”i ,σ' i The data qubit corresponding to the error is identified as the error location (step S207). This process is the same as the process in step S110 in Figure 26.

[0194] In this way, the spin variable σ of the Ising machine 300 i ,σ' i By calculating the value of [this value], the time required for error location identification can be reduced. As a result, the overall processing time for quantum computing is also reduced.

[0195] [Other embodiments] Although the above embodiment was explained using the example of surface codes, it can be directly applied not only to surface codes but also to all CSS codes composed of X and Z stabilizers.

[0196] Although embodiments have been illustrated above, the configurations of each part shown in the embodiments can be replaced with others having similar functions. Furthermore, other arbitrary components or processes may be added. Moreover, any two or more configurations (features) from the embodiments described above may be combined. [Explanation of Symbols]

[0197] 1. Quantum computer 2. First state data 3. Second state data 4 Energy formulas 4a First energy term 4b Second energy term 4c Third energy term 5,5a,5b,5c,5d data qubits 6,6a,6b First auxiliary qubits 7,7a,7b Second auxiliary qubits 10 Information Processing Devices 11 Storage section 12 Processing Units

Claims

1. In quantum computing, first state data is obtained that shows the state of a plurality of first auxiliary qubits for detecting Z errors related to a plurality of data qubits included in a logical qubit, and second state data is obtained that shows the state of a plurality of second auxiliary qubits for detecting X errors related to the plurality of data qubits. Based on an energy formula having a first energy term for identifying a first data qubit from the plurality of data qubits where a Z error has occurred based on the first state data, a second energy term for identifying a second data qubit from the plurality of data qubits where an X error has occurred based on the second state data, and a third energy term that lowers the energy as the number of third data qubits corresponding to both the first and second data qubits increases, a combination of the first and second data qubits that further lowers the energy shown in the energy formula is determined. It is determined that a Y error occurred in the third data qubit, a Z error occurred in the first data qubit other than the one corresponding to the third data qubit, and an X error occurred in the second data qubit other than the one corresponding to the third data qubit. An error detection program that instructs a computer to perform a process.

2. The third energy term includes a coefficient that controls the amount of energy reduction, corresponding to each of the plurality of data qubits. In the process of determining the combination of the first data qubit and the second data qubit, the value of the coefficient corresponding to each of the plurality of data qubits is calculated based on the states of the first auxiliary qubit and the second auxiliary qubit adjacent to the corresponding data qubit. The error detection program according to claim 1.

3. The first state data indicates whether the state of each of the plurality of first auxiliary qubits has been inverted from its initial state. The second state data indicates whether the state of each of the plurality of second auxiliary qubits has been inverted from its initial state. In the process of determining the combination of the first data qubit and the second data qubit, if the state of at least one of the first auxiliary qubits adjacent to one data qubit is inverted from its initial state, and the state of at least one of the second auxiliary qubits adjacent to one data qubit is also inverted from its initial state, the value of the coefficient corresponding to one data qubit is made larger than in other cases. The error detection program according to claim 1.

4. In the process of determining the combination of the first data qubit and the second data qubit, coefficient data indicating the coefficient values ​​of each of the plurality of data qubits, first state data, and second state data are transmitted to the Ising machine, causing the Ising machine to solve for a combination of the first data qubit and the second data qubit that further reduces the energy shown in the energy formula. The error detection program according to claim 2.

5. In the process of obtaining the first state data and the second state data, the first state data and the second state data are obtained from the quantum computer performing the quantum computation, Based on the judgment results of the data qubits where Y errors, Z errors, and X errors occurred, the quantum computer is instructed to perform error correction. An error detection program according to claim 1, which causes a computer to perform further processing.

6. In quantum computing, first state data is obtained that shows the state of a plurality of first auxiliary qubits for detecting Z errors related to a plurality of data qubits included in a logical qubit, and second state data is obtained that shows the state of a plurality of second auxiliary qubits for detecting X errors related to the plurality of data qubits. Based on an energy formula having a first energy term for identifying a first data qubit from the plurality of data qubits where a Z error has occurred based on the first state data, a second energy term for identifying a second data qubit from the plurality of data qubits where an X error has occurred based on the second state data, and a third energy term that lowers the energy as the number of third data qubits corresponding to both the first and second data qubits increases, a combination of the first and second data qubits that further lowers the energy shown in the energy formula is determined. It is determined that a Y error occurred in the third data qubit, a Z error occurred in the first data qubit other than the one corresponding to the third data qubit, and an X error occurred in the second data qubit other than the one corresponding to the third data qubit. A method for detecting errors when a computer performs a process.

7. In quantum computing, first state data is obtained that shows the state of a plurality of first auxiliary qubits for detecting Z errors related to a plurality of data qubits included in a logical qubit, and second state data is obtained that shows the state of a plurality of second auxiliary qubits for detecting X errors related to the plurality of data qubits. Based on an energy formula having a first energy term for identifying a first data qubit from the plurality of data qubits where a Z error has occurred based on the first state data, a second energy term for identifying a second data qubit from the plurality of data qubits where an X error has occurred based on the second state data, and a third energy term that lowers the energy as the number of third data qubits corresponding to both the first and second data qubits increases, a combination of the first and second data qubits that further lowers the energy shown in the energy formula is determined. It is determined that a Y error occurred in the third data qubit, a Z error occurred in the first data qubit other than the one corresponding to the third data qubit, and an X error occurred in the second data qubit other than the one corresponding to the third data qubit. Processing unit, An information processing device having