ERROR DETECTION METHOD AND INFORMATION PROCESSING APPARATUS

An information processing apparatus determines a combination of a first data qubit and a second data qubit that further reduces the energy represented by an energy equation. The energy equation includes first to third energy terms. The first energy term is used to identify the first data qubit on which a Z error has occurred. The second energy term is used to identify the second data qubit on which an X error has occurred. The third energy term reduces the energy as the number of data qubits each being a third data qubit on which both a Z error and an X error have simultaneously occurred increases. The information processing apparatus determines that a Y error has occurred on the third data qubit.

CROSS-REFERENCE TO RELATED APPLICATION

This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2022-143513, filed on Sep. 9, 2022, the entire contents of which are incorporated herein by reference.

FIELD

The embodiments discussed herein relate to an error detection method and an information processing apparatus.

BACKGROUND

Quantum computers are used for a variety of computations. For example, a quantum computer may be used to find the minimum value of energy in a model of computation. The quantum computer implements the computation by performing initialization, gate operations, and measurement on a plurality of qubits. In the quantum computer, errors (physical errors) occur on qubits due to environmental noise and others during the qubit manipulation. In order to identify error qubits and the types of the errors, the quantum computer introduces qubit redundancy, as in conventional computers (which may be called classical computers).

Surface code is a method of identifying error qubits and the types of the errors using redundant qubits. In a surface code, data qubits and ancilla qubits are alternately arranged in a two-dimensional lattice. Among the plurality of qubits (data qubits and ancilla qubits) arranged in the lattice, the states of the data qubits are encoded into one logical qubit. The ancilla qubits are used, column by column, either for X error detection or for Z error detection. In the surface code, the quantum computer first initializes the logical quantum state properly, and for error detection, performs gate operations between one ancilla qubit and its four neighboring data qubits and measures the ancilla qubit. The quantum computer detects an X error (bit flip error) or a Z error (phase flip error) on the basis of the value of the ancilla qubit. Then, using information indicating the type of the error and positional information of a data qubit identified as the error location, the quantum computer performs a gate operation for qubit error correction.

As a technique for the qubit error correction, there has been proposed a quantum computing system of continuously optimizing quantum gate parameters while performing error correction, for example. Further, there has been proposed a technique for reducing parasitic interactions in a qubit grid for surface code error correction. Still further, there has been proposed a system that is easy to build and has lower error correction overhead.

In this connection, as a technique for energy minimization by a quantum computer, for example, there is a technique of preparing correlated fermionic states on a quantum computer for determining a ground state of a correlated fermionic system. In addition, there is also a technique relating to a method of forming coupling interactions between three or more information qubits.

See, for example, Japanese Laid-open Patent Publication No. 2021-106029, Japanese National Publication of International Patent Application No. 2020-530619, Japanese National Publication of International Patent Application No. 2019-531531, Japanese National Publication of International Patent Application No. 2021-507401, and U.S. patent application publication No. 2019/0122133.

SUMMARY

According to one aspect, there is provided a non-transitory computer-readable storage medium storing a computer program that causes a computer to perform a process including: obtaining first state data and second state data, the first state data indicating states of a plurality of first ancilla qubits used for Z error detection on a plurality of data qubits included in a logical qubit in quantum computation, the second state data indicating states of a plurality of second ancilla qubits used for X error detection on the plurality of data qubits; determining, based on an energy equation, a combination of a first data qubit with a Z error and a second data qubit with an X error that further reduces an energy represented by the energy equation, the energy equation including a first energy term, a second energy term, and a third energy term, the first energy term being used to identify the first data qubit among the plurality of data qubits, based on the first state data, the second energy term being used to identify the second data qubit among the plurality of data qubits, based on the second state data, the third energy term being to reduce the energy as a number of data qubits each being a third data qubit increases, the third data qubit being identified both as the first data qubit and as the second data qubit; and determining that a Y error has occurred on the third data qubit, the Z error has occurred on the first data qubit that is not identified as the third data qubit, and the X error has occurred on the second data qubit that is not identified as the third data qubit.

DESCRIPTION OF EMBODIMENTS

In the surface code, the X error and the Z error are each detected as a bit flip of the ancilla qubit. In addition, in the quantum computer, a Y error (an error due to an erroneous action of a Pauli operator Y) may also occur. The Pauli operator Y may be expressed as “Y=iXZ” (i is an imaginary unit) using Pauli operators X and Z.

The surface code is not able to directly detect Y errors. Therefore, when X and Z errors occur simultaneously on a certain qubit, the surface code determines that a Y error has occurred on the qubit.

However, if an X or Z error occurs on a qubit neighboring a qubit with a Y error, the surface code may fail to correctly identify the location of the Y error. For example, there is an error occurrence pattern in which two errors, a Z error and a Y error, occur simultaneously on adjacent qubits. In this pattern, three qubits are incorrectly identified as error locations with a high probability. If error locations are incorrectly identified, the quantum computer fails the subsequent error correction and is thus unable to obtain a correct computation result.

Note that the problem that it is difficult to correctly identify the locations of Y errors arises not only in surface codes but also in general Calderbank-Shor-Steane (CSS) codes with stabilizers.

Embodiments will be described with reference to the accompanying drawings. Some of the embodiments may be combined unless they exclude each other.

First Embodiment

A first embodiment relates to an error detection method that is able to identify the locations of Y errors that occur in the course of quantum computation, in a surface code with a high probability.

FIG.1illustrates an example of an error detection method according to the first embodiment. An information processing apparatus10illustrated inFIG.1executes the error detection method of the first embodiment. The information processing apparatus10is able to execute the error detection method by, for example, running an error detection program.

The information processing apparatus10includes a storage unit11and a processing unit12. The storage unit11is a memory or storage device provided in the information processing apparatus10, for example. The processing unit12is a processor or computing circuit provided in the information processing apparatus10, for example.

For example, the information processing apparatus10instructs a quantum computer1to perform quantum computation according to a predetermined quantum circuit. The quantum computer1performs the quantum computation by performing gate operations on a plurality of physical qubits. At this time, the quantum computer1represents the states of the qubits to be manipulated by the quantum circuit as a logical qubit that is made up of the plurality of physical qubits. In the following, the physical qubits that define the state of the logical qubit are data qubits5(represented as all solid-line rectangles inFIG.1).

In addition, the quantum computer1uses some physical qubits as ancilla qubits for detecting errors occurring on the data qubits included in the logical qubit in the surface code. The ancilla qubits are classified into a plurality of first ancilla qubits6(represented as all dash-dotted rectangles inFIG.1) used for Z error detection and a plurality of second ancilla qubits7(represented as all broken-line rectangles inFIG.1) used for X error detection.

In the course of the quantum computation performed in response to the instruction from the information processing apparatus10, the quantum computer1performs gate operations for error detection in the surface code and measures the states of the first ancilla qubits6and second ancilla qubits7. Then, the quantum computer1sends first state data2indicating the states of the plurality of first ancilla qubits6and second state data3indicating the states of the plurality of second ancilla qubits7to the information processing apparatus10.

The information processing apparatus10performs an error detection process on the basis of the first state data2and second state data3to thereby detect the locations of Z errors, X errors, and Y errors. To this end, an energy equation4is stored in the storage unit11. The energy equation4represents the energy of an Ising model into which a solving problem of identifying error locations in a surface code is formulated.

The energy equation4includes a first energy term4a, a second energy term4b, and a third energy term4c. The first energy term4ais used to identify first data qubits with Z errors among the plurality of data qubits5on the basis of the first state data2. The second energy term4bis used to identify second data qubits with X errors among the plurality of data qubits5on the basis of the second state data3. The third energy term4creduces the energy as the number of third data qubits increases. Here, the third data qubits are data qubits that are each identified both as a first data qubit and as a second data qubit.

In this connection, the third energy term4calso acts to reduce the energy as the number of data qubits without any error increases, for example. In addition, the third energy term4calso acts to increase the energy as the number of data qubits each with only a Z error or an X error increases, for example.

The processing unit12of the information processing apparatus10obtains the first state data2and second state data3from the quantum computer1. Then, the processing unit12determines a combination of first data qubits and second data qubits that further reduces the energy represented by the energy equation4, on the basis of the first state data2and second state data3. For example, the processing unit12obtains a combination of first data qubits and second data qubits that minimizes the energy by solving a combinatorial optimization problem expressed as an Ising model.

The processing unit12then determines the locations of errors and the types of the errors on the basis of the combination of first data qubits and second data qubits that minimizes the energy. For example, the processing unit12determines that a Z error has occurred on a data qubit that is identified as a first data qubit but is not identified as a second data qubit. Further, the processing unit12determines that an X error has occurred on a data qubit that is identified as a second data qubit but is not identified as a first data qubit. Still further, the processing unit12determines that a Y error has occurred on a data qubit that is identified both as a first data qubit and as a second data qubit.

The processing unit12instructs the quantum computer1to correct the detected errors. For example, the processing unit12designates a data qubit determined to have a Z error and makes an instruction to correct the Z error of the data qubit (Z gate operation). Further, the processing unit12designates a data qubit determined to have an X error and makes an instruction to correct the X error of the data qubit (X gate operation). Still further, the processing unit12designates a data qubit determined to have a Y error and makes an instruction to correct the Y error of the data qubit (Y gate operation).

The above-described approach of detecting errors including Y errors makes it possible to identify Y errors with a high probability. More specifically, since the energy equation4includes the third energy term4c, the energy obtained in the case where a Y error has occurred is lower than that obtained in the case where an X error and a Z error have occurred separately.

Assume, for example, that the plurality of first ancilla qubits6have an initial state of “0” (bv=+1) and the plurality of second ancilla qubits7also have an initial state of “0” (bf=+1). The first state data2indicates that, among the plurality of first ancilla qubits6, the states of two first ancilla qubits6aand6bhave been flipped (bv=−1). The second state data3indicates that, among the plurality of second ancilla qubits7, the states of two second ancilla qubits7aand7bhave been flipped (bf=−1).

There are a plurality of error occurrence patterns on the data qubits that are able to reproduce these states of the ancilla qubits. For example, one is that an X error occurs on one data qubit5aand Z errors occur on two data qubits5cand5d(this detection pattern of errors is referred to as a first error detection pattern), and this pattern produces the states of the ancilla qubits illustrated inFIG.1. Another is that a Y error occurs on one data qubit5aand a Z error occurs on one data qubit5b(this detection pattern of errors is referred to as a second error detection pattern), and this pattern also produces the states of the ancilla qubits illustratedFIG.1.

The error detection process identifies the locations of Z errors and the locations of X errors, and when detecting that both a Z error and an X error have occurred on the same data qubit, determines that a Y error has occurred on the data qubit.

The first energy term4ain the energy equation4increases the energy when the number of Z errors occurring on the data qubits neighboring the flipped first ancilla qubits6aand6bis odd, and reduces the energy as the number of Z errors decreases. The first error detection pattern and the second error detection pattern inFIG.1have the same value in the first energy term4a.

The second energy term4bin the energy equation4increases the energy when the number of X errors occurring on the data qubits neighboring the flipped second ancilla qubits7aand7bis odd, and reduces the energy as the number of X errors decreases. The first error detection pattern and the second error detection pattern inFIG.1have the same value in the second energy term4b.

The first error detection pattern does not include any third data qubit, which is identified both as a first data qubit and as a second data qubit. The second error detection pattern, on the other hand, includes the data qubit5aas a third data qubit. Therefore, the third energy term4cin the energy equation4does not act to reduce the energy with respect to the first error detection pattern, but reduces the energy with respect to the second error detection pattern. As a result, the second error detection pattern has a lower energy than the first error detection pattern.

The second error detection pattern is finally determined as the combination of first data qubits and second data qubits that further reduces the energy represented by the energy equation4. Therefore, it is determined that a Y error has occurred on the data qubit5aand a Z error has occurred on the data qubit5b.

In the manner described above, it is possible to identify Y errors with a high probability. In addition, since the probability of identifying Y errors is increased, the success probability of identifying error locations correctly is increased accordingly. Assume, for example, that the Z error, X error, and Y error each have an occurrence rate of approximately 10% without any big difference. In such a case, a pattern in which two errors occur as in the second error detection pattern is more likely to happen than a pattern in which three errors occur at locations close to each other as in the first error detection pattern. If the occurrence rate of each error type decreases, the second error detection pattern with fewer errors in total is more likely to be a correct pattern.

In this connection, in the third energy term4c, a coefficient of controlling an energy reduction amount may be set corresponding to each of the plurality of data qubits5. In this case, the processing unit12computes the value of the coefficient for each of the plurality of data qubits5on the basis of the states of the first ancilla qubits and second ancilla qubits adjacent to the data qubit.

For example, assume now that the first state data2indicates whether the state of each of the plurality of first ancilla qubits6has flipped from the initial state. Likewise, assume that the second state data3indicates whether the state of each of the plurality of second ancilla qubits7has flipped from the initial state. The processing unit12determines whether the following two conditions are satisfied. The first condition is that at least one state of the first ancilla qubits adjacent to one data qubit has flipped from the initial state. The second condition is that at least one state of the second ancilla qubits adjacent to the one data qubit has flipped from the initial state. In the case where these two conditions are both satisfied, the processing unit12sets the coefficient for the one data qubit to a higher value than the other cases.

Since the coefficient is set for each of the plurality of data qubits5in this way, a higher value may be set as the coefficient for a data qubit that is more likely to have had a Y error, so as to increase the energy reduction amount in the third energy term4c. As a result, the success probability of identifying the locations of Y errors correctly is increased.

In this connection, the processing unit12is able to determine the combination of first data qubits and second data qubits that further reduces the energy, using dedicated hardware. For example, the processing unit12sends coefficient data indicating the value of the coefficient for each of the plurality of data qubits5, the first state data2, and the second state data3to an Ising machine. Then, the processing unit12causes the Ising machine to find the combination of first data qubits and second data qubits that further reduces the energy represented by the energy equation4. The Ising machine is able to solve a combinatorial optimization problem at a high speed. Therefore, the use of the Ising machine for finding the combination of first data qubits and second data qubits that further reduces the energy achieves high-speed error detection.

Second Embodiment

A second embodiment relates to a computer system that is able to correct errors including Y errors in the course of quantum computation.

FIG.2illustrates an example of a system configuration. For example, a quantum computer200and a classical computer100are connected to each other over a network20. The quantum computer200includes a computing device210and a control device220. The computing device210performs quantum computation using a quantum processing unit (QPU) housed in a refrigerator. The control device220instructs the computing device210to perform the quantum computation according to a given quantum circuit.

The classical computer100instructs the quantum computer200to perform computation according to the quantum circuit. The classical computer100is a so-called von Neumann machine. For example, the classical computer100sends a quantum circuit specified by a user to the quantum computer200and receives a computation result from the quantum computer200.

In this connection, the classical computer100and quantum computer200perform error correction in a surface code in collaboration with each other. For example, the control device220uses part of the QPU as ancilla qubits, and periodically measures the states of the ancilla qubits for error detection in the surface code. The control device220sends information indicating the measured states of the ancilla qubits to the classical computer100. The classical computer100detects qubits with errors on the basis of the states of the ancilla qubits. When detecting an error, the classical computer100instructs the quantum computer200to perform error correction on the qubit with the error.

FIG.3illustrates an example of the hardware configuration of the classical computer. The classical computer100is entirely controlled by a processor101. A memory102and a plurality of peripheral devices are connected to the processor101with a bus109. The processor101may be a multiprocessor. For example, the processor101may be a central processing unit (CPU), a micro processing unit (MPU), or a digital signal processor (DSP). At least some of functions implemented by the processor101running programs may be implemented by using an electronic circuit such as an application specific integrated circuit (ASIC) or a programmable logic device (PLD). PLDs include field-programmable gate arrays (FPGAs).

The memory102serves as a primary storage device of the classical computer100. The memory102temporarily stores therein at least part of operating system (OS) programs and application programs that the processor101runs. The memory102also stores therein various data that the processor101uses in its processing. For example, a random access memory (RAM) or another volatile semiconductor storage device may be used as the memory102.

The peripheral devices connected to the bus109include a storage device103, a graphics processing device (GPU)104, an input interface105, an optical drive device106, a device interface107, and a network interface108.

The storage device103writes and reads data electrically or magnetically on a built-in storage medium. The storage device103serves as a secondary storage device of the classical computer100. The storage device103stores therein the OS programs, application programs, and various data. For example, a hard disk drive (HDD) or a solid state drive (SSD) may be used as the storage device103.

The GPU104is a computing device that performs image processing, and may be called a graphics controller. A monitor21is connected to the GPU104. The GPU104displays images on the monitor21in accordance with commands from the processor101. The monitor21may be an organic electro-luminescence (EL) display device, a liquid crystal display device, or another.

A keyboard22and a mouse23are connected to the input interface105. The input interface105supplies signals from the keyboard22and mouse23to the processor101. The mouse23is an example of a pointing device, and another pointing device may be used. Other pointing devices include a touch panel, a tablet, a touchpad, a trackball, and others.

The optical drive device106performs data read and write on an optical disc24by using laser light or the like. The optical disc24is a portable storage medium on which data is recorded such as to be readable with reflection of light. The optical disc24may be a digital versatile disc (DVD), DVD-RAM, compact disc read-only memory (CD-ROM), CD-Recordable (CD-R), CD-Rewritable (CD-RW), or another.

The device interface107is a communication interface to connect peripheral devices to the classical computer100. For example, the device interface107allows connections from a memory device25and a memory reader-writer26. The memory device25is a storage medium having a function of communicating with the device interface107. The memory reader-writer26is used to perform data read and write on a memory card27that is a card-type storage medium.

The network interface108is connected to the network20. The network interface108communicates data with other computers and communication devices over the network20. For example, the network interface108is a wired communication interface that is connected to a wired communication device such as a switch or a router with a cable. Alternatively, the network interface108may be a wireless communication interface that is connected to a wireless communication device such as a base station or an access point with radio waves.

The classical computer100with the above hardware configuration is able to implement the processing functions of the second embodiment. In this connection, the information processing apparatus10of the first embodiment may be configured with the same hardware as the classical computer100illustrated inFIG.3.

The classical computer100implements the processing functions of the second embodiment by, for example, running programs stored in a computer-readable storage medium. The programs describing the processing functions to be executed by the classical computer100may be stored in a variety of storage media. For example, the programs that run on the classical computer100may be stored in the storage device103. The processor101loads at least part of a program from the storage device103into the memory102and runs the loaded program. The programs that run on the classical computer100may be stored in the optical disc24, memory device25, memory card27, or another portable storage medium. The programs stored in such a portable storage medium are installed in the storage device103under the control of the processor101, so that they are ready to run. In addition, the processor101is able to run the programs while reading the programs directly from the portable storage medium.

Before describing quantum computation involving error correction in a surface code, the following describes how a quantum computer performs error correction in the surface code and why a logical error occurs, with reference toFIGS.4to16.

FIG.4is a view for describing a qubit. A qubit is the minimum unit of quantum information, which corresponds to the minimum unit “bit” (classical bit) of an information amount in conventional computers. A qubit is 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 given by equation (1), where “0>” and “1>” respectively correspond to the classical bits “0” and “1.”

Here, α and β are complex numbers. By defining α and β as in equation (2) using real numbers φ and θ and an imaginary unit i, the qubit is represented by a Bloch sphere31illustrated inFIG.4.

A classical bit has a state of either “0” or “1” only. On the other hand, a qubit has a certain state on the Bloch sphere31surface. A quantum gate-type quantum computer is able to perform a desired computation by performing gate operations on qubits.

A gate operation changes a quantum state, and mathematically means applying a matrix operator to a vector representing the quantum state. An example of the gate operation is an X gate that flips the bit value of a qubit. The operation of the X gate is represented by the following equation.

In addition, the operation of a Z gate that flips the phase of a qubit is represented by the following equation.

Matrix operators respectively corresponding to the X gate operation and Z gate operation are known as Pauli operators. The following three matrix operators are used as the Pauli operators.

These Pauli operators have the following multiplication properties: XY=−YX, YZ=−ZY, and ZX=−XZ. Satisfaction of these relations means satisfaction of anticommutation relations. In addition, satisfaction of a relation without a minus sign (for example, a relation XI=IX with an identity operator I) means satisfaction of a commutation relation. The Pauli operators are in dependency relation with each other and satisfy a relation “Y=iXZ.”

Other than the above operators, a Hadamard operator is used in gate operations. The Hadamard operator is used for a gate operation that generates a superposition state of “|0>” and “|1>.” The Hadamard operator is represented by equation (6).

The above matrix operators each act on a single qubit. On the other hand, there is an operator that acts on two qubits.

The state of two qubits is represented by a tensor product “|a>⊗|b>” (⊗ denotes a tensor product) of single-qubit states and is generally written as |ab>. This is a four (=2×2)-dimensional vector. An example of the matrix operator that acts on two qubits is a CNOT operator.

If the first qubit (control qubit) of two qubits is one, the CNOT operator flips the bit value of the second qubit (target qubit) (|10>→|1>). Since the state of the two qubits is a four-dimensional vector, the corresponding matrix operator is a matrix of dimensions 4×4. The CNOT operator is represented by the following equation.

A quantum circuit is used for collectively representing gate operations that act on a plurality of qubits. In the quantum circuit, the state transitions of each qubit are represented by a line, and each gate operation is represented by a corresponding symbol.

FIG.5illustrates an example of a quantum circuit. Each horizontal line in a quantum circuit32corresponds to a qubit. An input to a qubit is indicated on the left side of the corresponding horizontal line. On each horizontal line, symbols representing gate operations on the corresponding qubit are arranged in chronological order in the horizontal direction (from left to right). Meter symbols32aand32bat the right ends of the horizontal lines represent a measurement operation.

For example, among the gate operations included in the quantum circuit32, an X symbol32cin a rectangular box represents a Pauli operator “X” (X gate operation). A Z symbol32din a rectangular box represents a Pauli operator “Z” (Z gate operation). An H symbol32ein a rectangular box represents a Hadamard operator “H” (Hadamard gate operation).

A gate operation that acts on two qubits is represented by a line straddling a plurality of horizontal lines. For example, symbols32fand32grepresenting gate operations corresponding to a CNOT operator Cxare each formed of a white circle with a plus sign and a black circle connected to each other. A black circle is placed on the horizontal line of a control qubit, and a white circle with a plus sign is placed on the horizontal line of a target qubit.

For example, the quantum circuit32illustrated inFIG.5represents performing gate operations “CX(2,1)Z(1)CX(1,2)H(2)X(1)” on two qubits in a state |ψφ>. An expression representing such gate operations includes matrix operators that are applied in order from right to left. A subscript at the lower right of a matrix operator denotes the number of a qubit on which the matrix operator acts.

The quantum computer performs the gate operations represented by the quantum circuit32in order. At this time, there is a possibility that errors occur on qubits. To obtain a correct computation result, it is important to detect the occurrence of the errors and correct the errors.

FIG.6illustrates an example of error-causing situations in a qubit. A qubit33is affected by a variety of noise. Noise types include environmental noise, noise during qubit manipulation, and interference from other qubits. There is a possibility that the state of the qubit33is changed unintentionally due to effects of noise. Such an unintentional state change of a qubit is an error on the qubit. Errors that are directly detectable among errors that occur on qubits are classified into the following two types:Bit flip error (X error): |0>→1>, |1>→|0>Phase flip error (Z error): |+>→|−>, |−>→|+>

Mathematically, the bit flip error is equivalent to applying the Pauli operator X to a quantum state. Similarly, the phase flip error is equivalent to applying the Pauli operator Z to a quantum state.

That is, an error on a qubit is correctable by applying the same Pauli operator (X, Z) as the error to the qubit. This operation is called a quantum error correction. Assume now, for example, the case of correcting an X error occurring on a qubit with the Pauli operator X. The X error is described by equation (8), and the gate operation for the correction is represented by equation (9).

Through the error occurrence and correction, the quantum state changes like “|0>→|1>→|0>.” To perform such error correction, a qubit (error qubit) with an error and the type of the error (bit flip (X error) or phase flip (Z error)) need to be identified. For identifying an error qubit and the type of the error, qubit redundancy is performed.

FIG.7illustrates an example of qubit redundancy.FIG.7illustrates an example of redundancy using eight qubits. When the qubit redundancy is performed, a quantum state |ψ> that is represented by one qubit34is represented as a logical quantum state |ψ>Lby a logical qubit35. The logical qubit35is made up of a plurality of qubits35ato35h.

Assume now that an error has occurred on one qubit35hof the qubits forming the logical qubit35. In this case, the error qubit and error type are identified through a process of identifying an error qubit and error type.

In the case where the qubit35his correctly identified as an error qubit and the error type is also correctly identified, a gate operation for error correction is performed on the qubit35h. Through the error correction, the state of the logical qubit35is corrected to an error-free state.

FIG.7illustrates an example in which the error qubit is correctly identified. However, it is not easy to identify an error qubit. To identify an error qubit, information on the states of the qubits35ato35hforming the logical qubit35is used. However, direct measurement of a qubit breaks the quantum state, which renders the subsequent computation useless. To avoid this, ancilla qubits are introduced. By measuring the states of the ancilla qubits, information on the states of the qubits35ato35hforming the logical qubit35is obtained.

FIG.8illustrates an example of measurement using an ancilla qubit. It is not possible to copy the state of a qubit36to an ancilla qubit37. Therefore, a two-qubit operation is performed on the qubit36and ancilla qubit37. The two-qubit operation changes the state of the ancilla qubit37according to the state of the qubit36. Then, the state of the ancilla qubit37is measured to detect a change in the state of the ancilla qubit37from the initial state. By determining whether the state of the ancilla qubit37has changed from the initial state, it is possible to obtain the state of the qubit36.

Surface code is a method of identifying error qubits on the basis of the states of qubits obtained using ancilla qubits. The surface code is a representative encoding (redundancy) approach in quantum error correction.

FIG.9illustrates an example of the arrangement of qubits for implementing a surface code. Referring to the example ofFIG.9, qubits are arranged in a two-dimensional lattice. Data qubits40ato40hand ancilla qubits41ato41dand42ato42dare alternately arranged both in the row direction and in the column direction. The ancilla qubits41ato41dand42ato42dare classified into the ancilla qubits41ato41dused for X error detection and the ancilla qubits42ato42dused for Z error detection. In addition, the ancilla qubits41ato41dfor X error detection and the ancilla qubits42ato42dfor Z error detection are alternately arranged column by column.

In this connection, the qubits illustrated inFIG.9are some of qubits used for error correction in the surface code. In the case of performing the error correction in the surface code, the number of qubits (the total number of data qubits and ancilla qubits) arranged in one dimension of a two-dimensional lattice including all qubits used for the error correction of one logical qubit is odd, and data qubits are arranged at the four corners (seeFIG.13). In this connection, one logical qubit is made up of all data qubits arranged in the corresponding two-dimensional lattice.

The quantum computer200first initializes the logical quantum state properly, and in error detection, performs gate operations (two-qubit operations) between one ancilla qubit and its neighboring four data qubits, and measures the ancilla qubit. The classical computer100is able to detect whether an error has occurred, based on the result of measuring the ancilla qubit.

FIG.10illustrates an example of gate operations for X error detection. For example, assume the case of detecting, using the ancilla qubit41d, an error occurring on any of the data qubits40d,40e,40h, and40fadjacent to the ancilla qubit41d. Assume now that the data qubit40dhas an identifier “a,” the data qubit40ehas an identifier “b,” the data qubit40hhas an identifier “c,” the data qubit40fhas an identifier “d,” and the ancilla qubit41dhas an identifier “e.”

The gate operations represented by a quantum circuit43are performed on these qubits, so as to detect an X error on the data qubits40d,40e,40h, and40f. The quantum circuit43indicates that the CNOT gate operation is performed with each of the data qubits40d,40e,40h, and40fas a control qubit and the ancilla qubit41das a target qubit. In the case where an X error has occurred on one of the data qubits40d,40e,40h, and40f, the gate operations change the state of the ancilla qubit41dfrom the initial state. Referring to the example ofFIG.10, the ancilla qubit41dhas an initial state |0>. Therefore, if the state |1> is detected by a Z-basis measurement (in view of whether the quantum state is |0> or |1>) of the ancilla qubit41d, an X error is determined to have occurred on any of the data qubits40d,40e,40h, and40f.

FIG.11illustrates an example of gate operations for Z error detection. For example, assume now the case of detecting, using the ancilla qubit42a, an error occurring on any of the data qubits40a,40c,40d, and40eadjacent to the ancilla qubit42a. Assume also that the data qubit40ahas an identifier “g,” the data qubit40chas an identifier “f,” and the ancilla qubit42ahas an identifier “h.” In addition, as in the case ofFIG.10, the data qubit40dhas an identifier “a,” and the data qubit40ehas an identifier “b.”

The gate operations represented by a quantum circuit44are performed on these qubits, so as to detect a Z error on the data qubits40a,40c,40d, and40e. The quantum circuit44indicates that a Hadamard gate operation is first performed on the ancilla qubit42a. After that, the CNOT gate operation is performed with each of the data qubits40a,40c,40d, and40eas a target qubit and the ancilla qubit42aas a control qubit. In addition, the Hadamard gate operation is performed on the ancilla qubit42a. In this connection, in the situation represented by the quantum circuit44, the CNOT gate operation between a data qubit with a Z error and the ancilla qubit42achanges the state of the ancilla qubit42athat is a control qubit, according to the state of the target qubit.

In the case where a Z error has occurred on one of the data qubits40a,40c,40d, and40e, the gate operations change the state of the ancilla qubit42afrom the initial state. Referring to the example ofFIG.11, the ancilla qubit42ahas an initial state |0>. Therefore, if the state |1> is detected by the Z-basis measurement of the ancilla qubit42a, a Z error is determined to have occurred on any of the data qubits40a,40c,40d, and40e.

The following describes the initialization of data qubits. If a logical quantum state |ψ>Lis arbitrarily determined, the gate operations for error detection illustrated inFIG.10orFIG.11may change the states of data qubits and an ancilla qubit even in the case where no error has occurred. To avoid such state changes, the logical quantum state |ψ>Lis initialized into the eigenstate (with eigenvalue +1 or −1) of a stabilizer operator. The stabilizer operator is the product of Z operators or X operators that act on the four data qubits neighboring an ancilla qubit.

For example, a stabilizer operator for X error detection illustrated inFIG.10is “Z(i1)Z(i2)Z(i3)Z(i4)|ψ>L=±|ψ>L,” where i is the index of an ancilla qubit for the X error detection. The number on the right side of i specifies a data qubit neighboring the ancilla qubit. For example, the number “1” specifies a data qubit above the ancilla qubit, the number “2” specifies a data qubit on the left side of the ancilla qubit, the number “3” specifies a data qubit under the ancilla qubit, and the number “4” specifies a data qubit on the right side of the ancilla qubit. For example, Z(i1)indicates a Z operator that acts on the data qubit above the i-th ancilla qubit.

In addition, a stabilizer operator for Z error detection illustrated inFIG.11is “X(j1)X(j2)X(j3)X(j4)|ψ>L=±|ψ>L,” where j is the index of an ancilla qubit for the Z error detection. The number on the right side of j specifies a data qubit neighboring the ancilla qubit.

After the logical quantum state |ψ>Lis initialized as described above, the measurement of the ancilla qubit does not affect the states of the qubits.

The following describes a method of error detection in a surface code. In the surface code, if an X error has occurred on one data qubit, the state |ψ>Lchanges to an eigenstate |ψ′>Lof the stabilizer operator with a different eigenvalue.

FIG.12illustrates an example of X error detection. For example, consider the case where |ψ>Lhas an eigenvalue of +1. When an X error has occurred on one of the data qubits neighboring an i-th ancilla qubit, “|ψ′>L=X(i1)|ψ>L” is obtained. Referring to the example ofFIG.12, the error has occurred on the data qubit40d.

When the Z stabilizer operators around the ancilla qubit41dare applied to the data qubit40dwith the error, “Z(i1)Z(i2)Z(i3)Z(i4)|ψ′>L” is obtained. This expression is deformed using the relation “|ψ′>L=X(i1)|ψ>L” as follows.

Since the X operator and the Z operator satisfy an anticommutation relation (ZX=−XZ), this expression is further deformed as follows.

“−|ψ′>L” indicates that the eigenvalue changes to “−1.” Using the quantum circuit43, this change of the eigenvalue is detected as a bit flip of the ancilla qubit41d.

The measurement of an ancilla qubit in the manner described above makes it possible to detect an error occurring on one of the data qubits neighboring the ancilla qubit. However, the measurement of only one ancilla qubit does not identify on which data qubit neighboring the ancilla qubit the error has occurred. To overcome this, a data qubit with the error is identified on the basis of the positional relationship among two or more ancilla qubits from which errors are detected among a plurality of ancilla qubits.

FIG.13illustrates an example of error location identification. AlthoughFIG.13illustrates an example of identifying the location of a Z error, the location of an X error may be identified in the same manner. Note that ancilla qubits for X error detection among ancilla qubits are omitted inFIG.13(the same applies toFIGS.14to16).

Assume now that a Z error has occurred on a data qubit51. In the error detection process, the same gate operations as represented by the quantum circuit44illustrated inFIG.11are performed on all ancilla qubits, so that their states are measured. InFIG.13, an ancilla qubit that is a target for a measurement and data qubits that are targets for the error detection based on the ancilla qubit are enclosed in a circle.

The data qubit51with the error is adjacent to two ancilla qubits52and53and is enclosed together with each ancilla qubit52and53in the same circle. In this case, through the measurements, it is detected that the states of the ancilla qubits52and53have been flipped. Since the states of the ancilla qubits52and53have been flipped, the data qubit51located between these ancilla qubits52and53is identified as an error location. Then, an error correction operation (a Z gate operation) is performed on the data qubit51.

The classical computer100may be used to identify an error location on the basis of a result of measuring the states of ancilla qubits. If there is only one error location as illustrated inFIG.13, the classical computer100is able to uniquely identify the error location. If there are many error qubits, however, the error location identification process becomes very complicated for the classical computer100. One method of identifying error locations in a surface code is to solve an error location identification problem as an energy minimization problem of an Ising model.

FIG.14illustrates an example of an error location identification method using an Ising model. The example illustrated inFIG.14relates to detecting Z errors using an Ising model. For example, assume that Z errors have occurred on two data qubits60aand60b, as indicated in an error occurrence pattern60. In this case, by performing gate operations for Z error detection and measuring the states of ancilla qubits, it is detected that the states of ancilla qubits60cto60ffor Z error detection neighboring the data qubits60aand60bhave been flipped.

The classical computer100having received the result of measuring the ancilla qubits replaces the data qubits with spins of the Ising model. In addition, taking the ancilla qubits as lattice points, the classical computer100sets the measured data of the ancilla qubits at the lattice points. For example, if the state of the v-th ancilla qubit (v is a natural number) has not been flipped, the measured data bvat the lattice point corresponding to the v-th ancilla qubit is “+1.” If the state of the v-th ancilla qubit has been flipped, on the other hand, the measured data bvat the lattice point corresponding to the v-th ancilla qubit is “−1.”

At this time, the energy (Hamiltonian) of the Ising model for the Z error detection is represented by equation (10).

Here, J and h are constant numbers (positive real numbers). Nvdenotes the number of lattice points. Evdenotes a set of the indices of spins σiadjacent to the v-th lattice point. Nddenotes the number of spins. The spin σihas a value of “+1” if it is not flipped (an upward arrow), and has a value of “−1” if it is flipped (a downward arrow) The classical computer100determines the directions of the spins that minimize the energy represented by equation (10). The classical computer100identifies, as error locations, the data qubits60aand60bcorresponding to spins that are in a flipped state when the energy is minimized.

The first term on the right-hand side of equation (10) acts to reduce the overall energy if the measured data bvat the v-th lattice point is “+1” and the number of flipped spins (σi=−1) among the neighboring spins is even. In addition, the first term on the right-hand side acts to increase the overall energy if the measured data bvat the v-th lattice point is “−1” and the number of flipped spins (σi=−1) among the neighboring spins is odd.

The second term on the right-hand side of equation (10) acts to reduce the overall energy as the number of flipped spins decreases. The second term makes it possible to prevent the energy value from being minimized in a state where all spins are flipped, although no error has occurred, for example.

The error occurrence pattern60illustrated inFIG.14is an example in which it is possible to uniquely identify error locations. However, if the error locations are close to each other, the errors are less likely to be identified uniquely.

FIG.15illustrates an example of a situation in which it is not possible to uniquely identify error locations. An error occurrence pattern61illustrated inFIG.15indicates that errors have occurred on two data qubits61aand61b. These data qubits61aand61bare located on rows next to each other and on columns next to each other. In this case, in the error detection, the state of an ancilla qubit61cdirectly above the data qubit61ais flipped, and the state of an ancilla qubit61ddirectly on the right side of the data qubit61bis flipped.

In addition to the error occurrence pattern in which errors have occurred on the data qubits61aand61b(an example of correct error detection), there are other error occurrence patterns that cause the situation where the ancilla qubits61cand61dare flipped and the other ancilla qubits are not flipped. For example, there is a pattern in which errors have occurred on data qubits61eand61f. Therefore, there is a possibility of detecting that errors have occurred on the data qubits61eand61f(an example of incorrect error detection).

If there are a plurality of error occurrence patterns that are able to reproduce the states of the ancilla qubits in this manner, it is not possible to identify which of these error occurrence patterns is correct, on the basis of the measured data of the ancilla qubits. Therefore, there is a possibility of incorrectly identifying error locations as in the example of incorrect error detection. If error correction is performed on the basis of the incorrectly identified error locations thereafter, an error (logical error) may occur, which is not detectable through the measurements of the ancilla qubits.

FIG.16illustrates an example of a logical error due to erroneous correction. An error occurrence pattern62illustrated inFIG.16relates to a case where there are six data qubits in one dimension and three errors have occurred, one on every other data qubit. For example, Z errors have occurred on data qubits62ato62con the same row. In this case, the states of ancilla qubits62dto62hadjacent to any of the data qubits62ato62con the same row are flipped.

In this case, there are two error detection patterns that are able to reproduce the measured data of the ancilla qubits. One error detection pattern is a pattern in which the data qubits62ato62care correctly detected as error qubits. In this case, an error correction operation is performed on the data qubits62ato62cdetected as the error qubits, so as to correct the occurring errors correctly.

The other error detection pattern is a pattern in which data qubits62ito62kdifferent from the data qubits62ato62cwith the errors are detected as error qubits. In the case where the data qubits62ito62kare detected as error qubits, the error correction operation is performed on the data qubits62ito62k. As a result, the error qubits or the data qubits that have been flipped by the erroneous correction are sequentially arranged from one boundary to its opposite boundary. This situation is called a logical error. In the situation where the logical error has occurred, the logical quantum state |ψ>Lhas changed. Therefore, if the computation proceeds further, a correct result is not obtained.

As described above, there is a case of failing to correctly detect error locations even only for Z errors. The same is true for X errors. Furthermore, considering that Y errors also need to be corrected, accurate error detection is more complicated.

FIG.17illustrates an example of detecting errors including a Y error. The surface code detects X errors and Z errors on the basis of bit flips of ancilla qubits. Note that a Y error (mathematically, the action of the Pauli operator Y) may occur in the quantum computer200. The Pauli operator Y and the Pauli operators X and Z have a relation Y=iXZ (i is an imaginary unit). In the surface code, there is no stabilizer operator for Y error detection. Therefore, the Y error is detected on the basis of a combination of Z error detection and X error detection. More specifically, a data qubit with a Y error is regarded as having both an X error and a Z error, and therefore a data qubit on which X and Z errors have occurred simultaneously is identified as the location of a Y error.

An error occurrence pattern63illustrated inFIG.17indicates that a Y error has occurred on a data qubit63aand a Z error has occurred on a data qubit63b. The data qubit63aand data qubit63bare located on rows next to each other and on columns next to each other. In this case, through the gate operations for Z error detection, the state of an ancilla qubit63cfor Z error detection adjacent to the data qubit63band the state of an ancilla qubit63dfor Z error detection adjacent to the data qubit63aare flipped. In this connection, an ancilla qubit63gis located adjacent to both the data qubits63aand63bwith the errors, and therefore the state of the ancilla qubit63gis not flipped. In addition, through the gate operations for X error detection, the states of ancilla qubits63eand63ffor X error detection adjacent to the data qubit63aare flipped.

Here, assume that the classical computer100detects Z errors occurring on the data qubits63aand63bon the basis of the states of the ancilla qubits63cand63dfor Z error detection. In addition, the classical computer100is able to detect an X error occurring on the data qubit63aon the basis of the states of the ancilla qubits63eand63ffor X error detection. In this case, since both the Z error and the X error are detected on the data qubit63a, the classical computer100determines that an error occurring on the data qubit63ais a Y error.

As described above, it is possible to detect a Y error on the basis of a combination of the Z error detection and the X error detection. It is also possible to solve the problem of detecting errors including Y errors as an energy minimization problem of an Ising model.

FIG.18illustrates an example of an Ising model that is able to perform Z error detection and X error detection. For example, a stabilizer operator (v-th Z stabilizer operator71) for Z error detection is defined corresponding to each ancilla qubit for Z error detection. The measured data bvof the eigenvalue of this stabilizer operator is +1 or −1. In addition, a stabilizer operator (f-th X stabilizer operator72) for X error detection is defined corresponding each ancilla qubit for X error detection. The measured data bfof the eigenvalue of this stabilizer operator is +1 or −1.

For the error detection using these stabilizer operators, a spin variable σifor Z error identification and a spin variable σ′ifor X error identification are prepared for each data qubit. For example, the energy of the Ising model for this case is represented by equation (11).

Nvdenotes the number of lattice points corresponding to the ancilla qubits for Z error detection. Evdenotes a set of the indices of spin variables σiadjacent to the v-th lattice point corresponding to an ancilla qubit for Z error detection. Nfdenotes the number of lattice points corresponding to the ancilla qubits for X error detection. Efdenotes a set of the indices of spin variables σ′iadjacent to the f-th lattice point corresponding to an ancilla qubit for X error detection. Nddenotes the number of spin variables σi(which is equal to the number of spin variables σ′i). The spin variables σiand σ′ihave an initial state of “+1.”

The first and second terms on the right-hand side of equation (11) is to compute the energy for identifying Z error locations. In addition, the third and fourth terms on the right-hand side of equation (11) is to compute the energy for identifying X error locations. That is, equation (11) has an energy computation part for identifying Z error locations and an energy computation part for identifying X error locations separately. That is, equation (11) does not involve correlation between Z error location and X error location. The separate identification of X errors and Z errors as in equation (11) may lead to failing to detect original Y errors.

FIG.19illustrates an example of a failure in Y error detection. For example, consider the same error occurrence pattern63as illustrated inFIG.17. In this case, there is a possibility that an X error is detected on the data qubit63aand Z errors are detected on two data qubits63hand63i. In this example, although errors have actually occurred at two locations, the three data qubits are identified as error locations.

The incorrect error detection case as illustrated inFIG.19and the correct error detection case as illustrated inFIG.17have the same energy value in equation (11). Therefore, if the energy computation is performed using equation (11), the correct error detection and the incorrect error detection may occur with the same probability.

A failure in correct identification of a Y error causes a logical error.

FIG.20illustrates an example of a logical error that occurs due to a failure in Y error detection. An error occurrence pattern64illustrated inFIG.20indicates that a data qubit64awith a Y error and a data qubit64bwith a Z error are located on the same row. The data qubits64aand64bwith the errors are located two columns away from each other. In this case, the state of an ancilla qubit64cfor Z error detection and the states of ancilla qubits64dand64efor X error detection are flipped.

If error locations are identified using equation (11) in this case, there is a possibility that an X error is detected on the data qubit64aand Z errors are detected on data qubits64fand64g. If error correction is performed on the basis of this detection result, a logical error occurs as to the Z errors. That is, since the Y error is not identified correctly, the logical error rate is increased.

To avoid this, the classical computer100identifies error locations using equation (12) that includes equation (11) and an additional term that tends to align the spin variables σiand σ′icorresponding to the same data qubit in the same direction.

Here, J′iis a coefficient (positive real number) indicating a weight for each data qubit in the fifth term. The first to fourth terms on the right-hand side of equation (12) is the same as those of equation (11). The fifth term is for aligning the spin variables σiand σ′icorresponding to the same data qubit in the same direction. The fifth term acts to reduce the energy as the values of the spin variables σiand σ′icorresponding to the same data qubit become more equal to each other.

FIG.21illustrates an example of error location identification that correctly identifies a Y error. For example, assume that errors have occurred as indicated in the error occurrence pattern63illustrated inFIGS.17and19. In addition, assume that the data qubit63ahas been identified as an X error location. In this case, the value of the spin variable σ′ifor X error detection corresponding to the data qubit63abecomes “−1.”

The case where a different data qubit63iis identified as a Z error location and the case where the same data qubit63ais identified as a Z error location are compared with each other in terms of the energy of equation (12).

Irrespective of whether the data qubit63aor the data qubit63iis identified as a Z error location, both the cases have the same value in each of the first to fourth terms on the right-hand side of equation (12). Here, a change in the value of the fifth term that makes a difference is taken as ΔH.

In the case where the data qubit63iis identified as a Z error location, the value of the spin variable σifor Z error detection corresponding to the data qubit63aremains at “+1.” That is, the two spin variables σiand σ′icorresponding to the data qubit63ahave different values. Therefore, the change in the value of the fifth term on the right-hand side is obtained as “ΔH=−J′iσiσ′i=J′i>0.”

On the other hand, in the case where the data qubit63ais identified as a Z error location, the value of the spin variable σifor Z error detection corresponding to the data qubit63abecomes “−1.” That is, the two spin variables σiand σ′icorresponding to the data qubit63ahave the same value. Therefore, the change in the value of the fifth term on the right-hand side is obtained as “ΔH=−J′iσiσ′i=−J′i<0.”

As described above, with equation (12), the case of identifying the same data qubit as a location of both a Z error and an X error results in a lower energy than the case of identifying different data qubits. Thus, the probability of identifying Y errors is increased.

The following describes how to determine the value of the coefficient J′i. For example, the classical computer100sets the coefficient J′ito a higher value if a Y error occurs independently.

FIG.22illustrates an example of how to determine the value of the coefficient J′i. For example, if it is determined as a result of measuring the ancilla qubits adjacent to the i-th data qubit that both the ancilla qubits for Z error detection and the ancilla qubits for X error detection have been flipped, the classical computer100sets “J′i=J′a+J′b.” If it is determined as the result of measuring the ancilla qubits adjacent to the i-th data qubit that only either the ancilla qubits for Z error detection or the ancilla qubits for X error detection have been flipped, on the other hand, the classical computer100sets “J′i=J′a.” In this connection, J′aand J′bare constant parameters (positive real numbers).

An error occurrence pattern65illustrated inFIG.22indicates that Y errors have occurred on two data qubits65aand65band a Z error has occurred on one data qubit65c. In this error occurrence pattern65, the states of ancilla qubits65dto65gfor X error detection and the states of ancilla qubits65hto65jfor Z error detection have been flipped.

As to the ancilla qubits adjacent to the data qubit65awith the Y error, both the ancilla qubits for X error detection and the ancilla qubits for Z error detection have been flipped. Therefore, the coefficient for the data qubit65a, when taken as the i-th data qubit, is set to “J′i=J′a+J′b.”

As to the ancilla qubits adjacent to the data qubit65bwith the Y error, the ancilla qubits for X error detection have been flipped, but the ancilla qubits for Z error detection have not been flipped. Therefore, the coefficient for the data qubit65b, when taken as the i-th data qubit, is set to “J′i=J′a.”

In the manner described above, the coefficient J′iis set to a higher value for a data qubit that is more likely to have had a Y error. This makes it possible to detect Y errors correctly.

FIG.23illustrates an example of functions of the classical computer to make an instruction for quantum computation involving error detection. The classical computer100includes a storage unit110, a quantum computation instruction unit120, an error location identification unit130, and an error correction instruction unit140.

The storage unit110stores therein a quantum circuit111that is executed on the quantum computer200.

The quantum computation instruction unit120sends a request for executing the quantum circuit111to the quantum computer200. Then, the quantum computation instruction unit120obtains the result of executing the quantum circuit from the quantum computer200. In addition, when receiving a result of measuring the states of ancilla qubits from the quantum computer200, the quantum computation instruction unit120transfers the received measurement result to the error location identification unit130.

The error location identification unit130identifies data qubits each with an X error, Z error or Y error on the basis of the measurement result of the states of the ancilla qubits. For example, the error location identification unit130obtains the spin states of spins that minimize the energy equation of the Ising model represented by equation (12), and identifies error locations on the basis of the data qubits corresponding to spins in flipped states. The error location identification unit130sends the result of identifying the error locations to the error correction instruction unit140.

The error correction instruction unit140instructs the quantum computer200to perform gate operations to correct the occurring errors. For example, the error correction instruction unit140makes an instruction to perform an X gate operation on a data qubit with an X error. In addition, the error correction instruction unit140makes an instruction to perform a Z gate operation on a data qubit with a Z error. Furthermore, the error correction instruction unit140makes an instruction to perform a Y gate operation on a data qubit with a Y error.

In this connection, the functions of each element illustrated inFIG.23may be implemented by a computer executing a program module corresponding to the element, for example.

The quantum computer200performs quantum computation according to the quantum circuit111. In the course of the quantum computation, the quantum computer200periodically performs gate operations for Z error detection and X error detection and measures the states of ancilla qubits. The quantum computer200sends the result of measuring the ancilla qubits to the classical computer100.

FIG.24is a sequence diagram illustrating a procedure for quantum computation. The classical computer100sends a request for executing the quantum circuit111to the control device220of the quantum computer200(step S11). The control device220sends to the computing device210a quantum computation instruction to perform quantum computation according to the quantum circuit111(step S12). The computing device210performs the quantum computation by performing gate operations on qubits in accordance with the quantum computation instruction (step S13). After that, the classical computer100and the quantum computer200perform a quantum error correction process in collaboration with each other at predetermined timing (step S14).

Thereafter, the quantum computation instruction is made by the control device220(step S15), and the quantum computation is performed by the computing device210(step S16). After a predetermined period of time ΔT has passed since the last error correction process, the quantum error correction process is performed (step S17). Then, in the same manner as above, the quantum computation instruction is made by the control device220(step S18), the quantum computation is performed by the computing device210(step S19), and after the predetermined period of time ΔT has passed since the last error correction process, the quantum error correction process is performed (step S20).

The above quantum computation and quantum error correction process are repeated, and at the end of the quantum circuit111, the computing device210measures the states of the data qubits (step S21). Then, the computing device210sends the result of measuring the data qubits to the control device220(step S22). The control device220sends information indicating the measurement result as a quantum computation result to the classical computer100(step S23).

As described above, the quantum error correction process is performed periodically in the course of the quantum computation. The quantum error correction process identifies the locations of X errors, Z errors, and Y errors using the Ising model and corrects the occurring errors.

FIG.25is a sequence diagram illustrating an example procedure for a quantum error correction process. The control device220of the quantum computer200sends an instruction to measure stabilizer eigenvalues to the computing device210(step S31). The computing device210performs two-qubit gate operations for X error detection and Z error detection, and then measures the states of the ancilla qubits (step S32). The computing device210sends the measured data indicating the measured states of the ancilla qubits to the control device220(step S33). The control device220sends the measured data received from the computing device210to the classical computer100(step S34).

The classical computer100identifies error locations on the basis of the measured data (step S35). The classical computer100sends error location data indicating the identified error locations to the control device220(step S36).

The control device220sends, to the computing device210, an error correction instruction for the data qubits with errors that are indicated in the error location data (step S37). The computing device210performs error correction in accordance with the error correction instruction (step S38).

The following describes in detail a surface-code-based error location identification process.

FIG.26is a flowchart illustrating an example procedure for an error location identification process. In the following, the process ofFIG.26will be described step by step.

(Step S101) The error location identification unit130initializes the values of spin variables σiand σ′i(i=1, . . . , Ndata) to “+1,” where Ndatadenotes the number of data qubits.

(Step S102) The error location identification unit130sets the values of the measured data bvand bf(v=1, . . . , Nz, f=1, . . . , Nx) of the ancilla qubits and the values of J′aand J′b. Nxdenotes the number of ancilla qubits for X error detection, and Nzdenotes the number of ancilla qubits for Z error detection.

(Step S103) The error location identification unit130counts up i from 1, and repeats the process of steps S104to S107until i reaches Ndata. The process of steps S104to S107is a process of determining the coefficient J′ifor each data qubit. The coefficient J′ifor the i-th data qubit is determined based on the measured data of the ancilla qubits neighboring the i-th data qubit.

FIG.27illustrates an example of the arrangement of ancilla qubits neighboring a data qubit. For example, a data qubit81illustrated inFIG.27is taken as the i-th data qubit. In this case, ancilla qubits82and83directly on the right and left sides of the data qubit81are neighboring ancilla qubits for Z error detection. In addition, ancilla qubits84and85directly above and under the data qubit81are neighboring ancilla qubits for X error detection.

Refer now back toFIG.26.

(Step S104) The error location identification unit130determines whether any value of the measured data bvof the ancilla qubits for Z error detection neighboring the i-th data qubit is “−1.” If the error location identification unit130determines that the measured data bvof at least one of the neighboring ancilla qubits has a value of “−1,” the process proceeds to step S105. If the error location identification unit130determines that the measured data bvof all of the neighboring ancilla qubits has a value of “1,” the process proceeds to step S106.

(Step S105) The error location identification unit130determines whether any value of the measured data bfof the ancilla qubits for X error detection neighboring the i-th data qubit has a value of “−1.” If the error location identification unit130determines that the measured data bfof at least one of the neighboring ancilla qubits has a value of “−1,” the process proceeds to step S107. If the error location identification unit130determines that the measured data bfof all of the neighboring ancilla qubits has a value of “1,” the process proceeds to step S106.

(Step S106) The error location identification unit130sets the coefficient J′ito “J′i=J′a.” Then, the process of the error location identification unit130proceeds to step S108.

(Step S107) The error location identification unit130sets the coefficient J′ito “J′i=J′a+J′b.”

(Step S108) When i has reached Ndatawhile the process of steps S104to S107is repeated, the process of the error location identification unit130proceeds to step S109.

Through the process of steps S103to S108, the coefficient data indicating the value of the coefficient J′ifor each data qubit is generated.

(Step S109) The error location identification unit130obtains the values of the spin variables σiand σ′ithat minimize the energy of the Ising model represented by equation (12). For example, the error location identification unit130is able to obtain the values of the spin variables σiand σ′ithat minimize the energy, with a search method for solving combinatorial optimization problems.

(Step S110) The error location identification unit130identifies, as error locations, data qubits corresponding to the spin variables σiand σ′iwith a value of “−1.” In addition, the error location identification unit130also identifies the type (X error, Z error, or Y error) of each error occurring on the data qubits identified as the error locations. That is, the process of steps S109to S110is an error location identification process for each error type.

For example, in the case where the spin variable σiof the i-th data qubit has a value of “−1” and the spin variable σ′ithereof has a value of “+1,” the error location identification unit130identifies the data qubit as a Z error location. Further, in the case where the spin variable σiof the i-th data qubit has a value of “+1” and the spin variable σ′ithereof has a value of “−1,” the error location identification unit130identifies the data qubit as an X error location. Still further, in the case where the spin variable σiof the i-th data qubit has a value of “−1” and the spin variable σ′ithereof also has a value of “−1,” the error location identification unit130identifies the data qubit as a Y error location.

In the manner described above, the locations of Z errors, X errors, and Y errors are identified. The error locations are identified by solving the energy minimization problem of the Ising model represented by equation (12). This energy equation includes a term (the fifth term on the right-hand side) that reduces the energy as the values of the spin variables σiand σ′iof the i-th data qubit become more equal to each other. This results in increasing the Y error identification rate. In addition, since it is possible to correct occurring errors correctly, the logical error rate is reduced.

The following describes in detail the effect of increasing the Y error identification rate and the effect of reducing the logical error rate.FIGS.28and29respectively illustrate results of calculating the Y error identification rate and the logical error rate, in the cases where error correction is performed with taking into account the positional relationship between Z and X errors (using equation (12)) and without taking into account the positional relationship between Z and X errors (using equation (11)).

In this connection, the Y error identification rate is calculated as “the number of identified Y errors divided by the number of actual Y errors.” To obtain the number of actual Y errors, simulations were carried out using the classical computer100, in which the error location identification process was performed using a result of generating errors and generating data indicating the states of ancilla qubits. The logical error rate is calculated as “the number of occurrences of a logical error divided by the number of trials.”

The following example relates to calculating the above evaluation values (Y error identification rate and logical error rate) by simulating error correction in a surface code in which six data qubits “d=6” are arranged in one dimension of a two-dimensional qubit array for one logical qubit. For the energy minimization, simulated annealing (SA) was used. In addition, the evaluation values for the values of J′aand J′bwere calculated while changing the values of J′aand J′b. For each combination of J′aand J′b, physical errors were generated in 1000 patterns and the evaluation values were calculated. The physical error rate p was “p=10%.”

FIG.28illustrates a result of calculating a Y error identification rate. In a Y-error identification rate table91, the values of J′aare set as row labels, and the values of J′bare set as column labels. The J′avalue on a certain row is smaller than that on its lower row, and is larger than that on its upper row. The J′bvalue on a certain column is smaller than that on its right column, and is larger than that on its left column. At the intersection of a certain row and column in the Y-error identification rate table91, a Y error identification rate obtained by performing error correction with the J′avalue on the row and the J′bvalue on the column is set. In this connection, the Y error identification rate in the Y-error identification rate table91is expressed in percentage.

In the Y-error identification rate table91, the J′avalue on the first row is “0.0,” and the J′bvalue on the first column is also “0.0.” In the case where both the J′avalue and the J′bvalue are “0,” the fifth term of the energy equation (12) always yields a value of “0.” Therefore, the value set at the intersection of the first row and first column in the Y-error identification rate table91corresponds to a Y error identification rate obtained without taking into account the positional relationship between Z and X errors (using equation (11)). Referring to the example ofFIG.28, the Y error identification rate without taking into account the positional relationship between Z and X errors is “19.4%.”

The Y error identification rate increases with an increase in each of the J′aand J′bvalues. For example, the Y error identification rate obtained with “J′a=4.0” and “J′b=2.0” is “49.4%.” That is, setting “J′a=4.0” and “J′b=2.0,” the Y error identification rate is approximately 2.5 times as high as that obtained without taking into account the positional relationship between Z and X errors.

FIG.29illustrates a result of calculating a logical error rate. In a logical error rate table92, the values of J′aare set as row labels, and the values of J′bare set as column labels. The J′avalue on a certain row is smaller than that on its lower row, and is larger than that on its upper row. The J′bvalue on a certain column is smaller than that on its right column, and is larger than that on its left column. At the intersection of a certain row and column in the logical error rate table92, the logical error rate obtained by performing error correction with the J′avalue on the row and the J′bvalue on the column is set. In this connection, the logical error rate in the logical error rate table92is expressed in percentage.

In the logical error rate table92, the J′avalue on the first row is “0.0,” and the J′bvalue on the first column is also “0.0.” In the example ofFIG.29, the logical error rate obtained without taking into account the positional relationship between Z and X errors (on the first row and first column in the logical error rate table92) is “65.0%.”

The logical error rate decreases with an increase in each of the J′aand J′bvalues. For example, the logical error rate obtained with “J′a=4.0” and “J′b=2.0” is “32.9%.” That is, setting “J′a=4.0” and “J′b=2.0,” the logical error rate is approximately halved compared to that obtained without taking into account the positional relationship between Z and X errors.

In this connection, if the J′bvalue is set too large, the logical error rate increases. In the example ofFIG.29, in situations of “J′a=4.0” and “J′b≥4.0,” the logical error rate increases with an increase in the J′bvalue.

Third Embodiment

A third embodiment relates to computing the minimum value of the energy of an Ising model using dedicated hardware.

FIG.30illustrates an example of a system configuration according to the third embodiment. In the third embodiment, an Ising machine300is connected to the classical computer100. The Ising machine300is a computer specialized for solving an optimization problem using an Ising model. The Ising machine300is able to find the minimum value of the energy of the Ising model using an ASIC, PLD, GPU, and other dedicated processors, for example.

A quantum computation process of the third embodiment differs from that of the second embodiment only in the error location identification process. Therefore, the following describes in detail the error location identification process of the third embodiment.

FIG.31is a sequence diagram illustrating a procedure for an error location identification process according to the third embodiment. The process of initializing spin variables at step S201is the same as the process of step S101ofFIG.26. After initializing the spin variables, the error location identification unit130of the classical computer100sets the values of J′aand J′b(step S202). The next step S203is the coefficient data generation process of steps S103to S108ofFIG.26.

When the coefficient data generation process is completed, the classical computer100sends measured data indicating the states of ancilla qubits and coefficient data indicating the value of the coefficient J′ifor each data qubit to the Ising machine300(step S204). Then, the Ising machine300searches for the minimum value of the energy of the Ising model on the basis of the measured data and coefficient data, and generates spin variable data indicating the values of spin variables σiand σ′ithat give the minimum value (step S205). The Ising machine300sends the generated spin variable data to the classical computer100(step S206).

The classical computer100identifies, as error locations, data qubits corresponding to the spin variables σiand σ′iwith a value of “−1” on the basis of the obtained spin variable data (step S207). This process is the same as that of step S110ofFIG.26.

As described above, by causing the Ising machine300to compute the values of the spin variables σiand σ′i, it is possible to reduce the time needed to perform the error location identification process. This results in a reduction in the processing time of the entire quantum computation.

Other Embodiments

The above-described embodiments use the surface code as an example, but are applicable not only to the surface code but also to general CSS codes formed of X and Z stabilizers as they are.

Although the embodiments have been described as examples, the components of each unit in the embodiments may be replaced with other components having equivalent functions. In addition, other desired configurations and steps may be added. Furthermore, two or more desired configurations (features) in the above-described embodiments may be combined.

According to one aspect, it is possible to increase the success probability of identifying the locations of Y errors.