WO2023089831A1 - シミュレーションプログラム、シミュレーション方法、および情報処理装置 - Google Patents

シミュレーションプログラム、シミュレーション方法、および情報処理装置 Download PDF

Info

Publication number
WO2023089831A1
WO2023089831A1 PCT/JP2021/042807 JP2021042807W WO2023089831A1 WO 2023089831 A1 WO2023089831 A1 WO 2023089831A1 JP 2021042807 W JP2021042807 W JP 2021042807W WO 2023089831 A1 WO2023089831 A1 WO 2023089831A1
Authority
WO
WIPO (PCT)
Prior art keywords
error
qubit
data
qubits
information
Prior art date
Application number
PCT/JP2021/042807
Other languages
English (en)
French (fr)
Inventor
淳 藤▲崎▼
Original Assignee
富士通株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 富士通株式会社 filed Critical 富士通株式会社
Priority to PCT/JP2021/042807 priority Critical patent/WO2023089831A1/ja
Publication of WO2023089831A1 publication Critical patent/WO2023089831A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena

Definitions

  • the present invention relates to a simulation program, a simulation method, and an information processing device.
  • Quantum computer calculations are realized by performing initialization, gate operations, and measurement processing for multiple qubits.
  • an error physical error
  • quantum computers qubit redundancy is performed in the same way as conventional computers (also called classical computers) in order to identify error qubits and error details.
  • a surface code is one of the methods for identifying error qubits and error content using redundant qubits.
  • data qubits and ancillary qubits are alternately arranged in a two-dimensional lattice.
  • the state of a data qubit among a plurality of qubits (data qubits and auxiliary qubits) arranged in a lattice is encoded into one logical qubit.
  • Ancillary qubits are used either for X error detection or for Z error detection per column.
  • the quantum computer first properly initializes the logical quantum state, and upon error detection, performs gating operations between one ancillary qubit and the four surrounding data qubits, and an ancillary qubit measurement.
  • Quantum computers detect X or Z errors based on the value of the auxiliary qubits. Then, the quantum computer uses the information indicating the type of error and the position information of the data qubit identified as the error location to perform the gate operation of error correction processing on the qubit.
  • a quantum error correction method that does not depend on the system size has been proposed.
  • Methods have also been proposed for determining and correcting errors in the alignment of qubits that implement quantum algorithms.
  • Techniques have also been proposed for correcting fault-tolerant quantum errors in one or more of a plurality of physical qubits based on measurements from at least one flag qubit.
  • JP 2014-241484 A Japanese Patent Publication No. 2020-535690 U.S. Patent Application Publication No. 2021/0019223
  • error correction may fail even if a surface code is used. Such error correction failures are called logic errors.
  • the probability of occurrence of logical errors changes according to the number of qubits in the lattice representing one logical qubit.
  • the probability of occurrence of logical errors also changes depending on the rate of occurrence of qubit errors due to environmental noise and the like. Therefore, in order to evaluate the performance of quantum error correction using surface codes, it is conceivable to simulate error correction using surface codes using a classical computer (also called a von Neumann computer). With an actual quantum computer, it is not possible to determine whether there is a logic error without measuring the data qubits themselves, but with a simulation, the location of the error can be determined in advance. Therefore, by simulating the error correction using the surface code under predetermined conditions, it is possible to determine whether or not a logic error occurs under those conditions. This makes it possible to investigate the appropriate number of qubits per logical qubit when applying the surface code to a quantum computer.
  • the purpose of this case is to efficiently determine whether or not a logic error has occurred.
  • a simulation program causes a computer to perform the following processes.
  • the computer generates qubit information representing a two-dimensional lattice in which a plurality of data qubits and a plurality of ancillary qubits are alternately arranged in row and column directions.
  • the computer sets error information indicating occurrence of an error in a first data qubit among the plurality of data qubits to the qubit information.
  • the computer sets error detection information in which the states of the auxiliary qubits adjacent to the first data qubit in the row or column direction are inverted from the initial values in the qubit information.
  • the computer sets error correction information indicating a second data qubit to be subjected to error correction by the surface code based on the error detection information in the qubit information.
  • the computer determines a logical error based on the number of data qubits corresponding to either the first data qubit or the second data qubit in one row or one column in the two-dimensional lattice. Determine the presence or absence of occurrence.
  • FIG. 10 is a diagram showing an example of measurements using an auxiliary qubit;
  • FIG. 3 is a diagram showing an example of a configuration of a quantum bit for performing surface coding;
  • FIG. 10 is a diagram showing an example of gate operation for X error detection;
  • FIG. 10 is a diagram showing an example of gate operation for Z error detection;
  • FIG. 4 is a diagram illustrating mathematical representations of a logical Z operator Lz and a logical X operator Lx;
  • FIG. 10 is a diagram showing an example of X error detection; It is a figure which shows an example of error location identification.
  • FIG. 10 is a diagram showing an example of a case where an error occurrence location cannot be uniquely specified;
  • FIG. 10 is a diagram showing an example of error correction by correcting data qubits other than where the error occurred;
  • FIG. 10 is a diagram showing an example of an error correction success pattern; It is a figure which shows an example of the logic error by miscorrection.
  • FIG. 10 is a diagram showing an example of logic error determination by searching for an error chain;
  • FIG. 10 is a diagram showing an example of logic error determination by searching for an error chain;
  • FIG. 10 is a diagram showing an example of logic error determination based on state data of data qubits for one row of two-dimensional lattice;
  • FIG. 10 is a diagram for explaining that a logical error occurs when the number of inverted qubits in a vertical row is an odd number;
  • FIG. 4 is a diagram showing an example of data qubits used for logic error determination;
  • FIG. 4 is a block diagram illustrating the functionality of a computer for performing surface code simulation;
  • FIG. 10 is a flowchart showing an example of the procedure of logic error determination processing using surface code simulation;
  • FIG. It is a figure which shows an example of simulation conditions.
  • FIG. 10 is a flowchart showing an example of the procedure of surface code simulation processing;
  • FIG. 7 is a flowchart showing an example of a procedure of logic error (Z error) determination processing; 7 is a flow chart showing an example of the procedure of logic error (X error) determination processing; FIG. 4 is a graph showing the relationship between the number of data qubits on one side of a two-dimensional lattice and the number of searches; FIG.
  • the first embodiment is a simulation method for efficiently determining whether or not a logic error occurs when performing an error correction processing simulation using a surface code for quantum bit errors that occur in a quantum computer.
  • FIG. 1 is a diagram showing an example of a simulation method according to the first embodiment.
  • FIG. 1 shows an information processing apparatus 10 used for implementing the simulation method.
  • the information processing device 10 can implement the simulation method by executing a simulation program, for example.
  • the information processing device 10 has a storage unit 11 and a processing unit 12 .
  • the storage unit 11 is, for example, a memory or a storage device that the information processing device 10 has.
  • the processing unit 12 is, for example, a processor or an arithmetic circuit included in the information processing device 10 .
  • the storage unit 11 stores qubit information 1 indicating a two-dimensional lattice in which a plurality of data qubits and a plurality of auxiliary qubits are alternately arranged in the row direction and the column direction.
  • qubits are arranged at regular intervals in a rectangular region, and the qubits arranged along the four sides of the rectangle serve as boundaries of the two-dimensional lattice.
  • the two-dimensional lattice shown in the qubit information 1 is, for example, a column in which auxiliary qubits for phase inversion error (Z error) detection are arranged and a column in which auxiliary qubits for bit inversion error (X error) detection are arranged. are provided alternately.
  • rows in which the auxiliary qubits for phase inversion error detection are arranged and rows in which the auxiliary qubits for bit inversion error detection are arranged are alternately provided.
  • the processing unit 12 receives an input of simulation conditions from the user and generates the quantum bit information 1 according to the simulation conditions.
  • the simulation conditions include, for example, the number of qubits in the row direction and the column direction of the two-dimensional lattice, the error rate in the data qubits, and the like.
  • the processing unit 12 generates quantum bit information 1 based on the simulation conditions.
  • the processing unit 12 then stores the generated quantum bit information 1 in the storage unit 11 .
  • the processing unit 12 sets, for the quantum bit information 1, error information indicating the occurrence of an error in the first data quantum bit among the plurality of data quantum bits. For example, the processing unit 12 randomly (randomly) determines the first data qubit to generate an error from among the plurality of data qubits based on a predetermined error rate.
  • the error that occurs in the first data qubit is an unintended state reversal (bit reversal or phase reversal) of the data qubit.
  • the first data qubit is indicated by striped hatching.
  • the processing unit 12 sets error detection information in which the state of the auxiliary qubits adjacent to the first data qubit in the row direction or column direction is inverted from the initial value for the qubit information 1 .
  • the processing unit 12 inverts the state of the auxiliary qubit by the number of adjacent first data qubits. So, for example, the auxiliary qubits adjacent to the two first data qubits flip state twice and return to the initial state.
  • hatching with a checkered pattern indicates auxiliary processing bits that have been inverted from their initial values.
  • the processing unit 12 sets error correction information indicating the second data qubit to be subjected to error correction by the surface code based on the error detection information to the qubit information 1 .
  • the processing unit 12 obtains an error occurrence pattern of the data qubits such that the auxiliary qubits are inverted when error detection is performed, for example, based on the arrangement of the auxiliary qubits whose states are inverted.
  • the processing unit 12 sets the data qubit in which an error has occurred in the error occurrence pattern as the second data qubit to be subjected to error correction.
  • the rectangle of the data qubit to be error-corrected is represented by double lines.
  • the processing unit 12 detects a logic error based on the number of data qubits corresponding to either the first data qubit or the second data qubit in one row or one column in the two-dimensional lattice. It is determined whether or not the occurrence of For example, the processing unit 12 determines the number of data qubits (inverted qubits) corresponding to either the first data qubit or the second data qubit in one row or one column in the two-dimensional lattice. is an odd number, it is determined that a logic error has occurred.
  • a data qubit corresponding to both the first data qubit and the second data qubit is a correctly corrected data qubit in which an error has occurred, and is not included in the inversion qubit.
  • the presence or absence of a logic error is determined based on the number of inverted qubits in the fifth column.
  • the number of inverted qubits is "0" (an even number), and it is determined that no logic error has occurred.
  • the number of inversion qubits is "2" (an even number), and it is determined that no logic error has occurred.
  • the number of inversion qubits is "1" (odd number), and it is determined that a logic error has occurred.
  • the borders of the four sides of the two-dimensional lattice have phase inversion error detection
  • the processing unit 12 Based on the number of data qubits corresponding to either the first data qubit or the second data qubit in one row or one column in the direction parallel to the rough boundary, the processing unit 12 , to determine whether or not a logic error caused by a phase reversal error has occurred.
  • the processing unit 12 determines the number of data qubits corresponding to either the first data qubit or the second data qubit in one row or one column in a direction parallel to the smooth boundary. to determine whether or not a logic error has occurred due to a bit reversal error.
  • the processing unit 12 may repeat the setting of error information, the setting of error detection information, the setting of error correction information, and the determination of the presence or absence of occurrence of a logic error a predetermined number of times. In this case, for example, the processing unit 12 calculates the probability of occurrence of a logic error based on the determination result of whether or not a logic error has occurred a predetermined number of times. As a result, the probability of logic error occurrence corresponding to the error rate of the data qubits is obtained.
  • the second embodiment is a computer that executes an error correction simulation (hereinafter referred to as a surface code simulation) for randomly occurring errors in a quantum computer and efficiently determines whether or not a logic error occurs. is.
  • a surface code simulation an error correction simulation for randomly occurring errors in a quantum computer and efficiently determines whether or not a logic error occurs.
  • FIG. 2 is a diagram showing an example of computer hardware for surface code simulation.
  • a computer 100 is entirely controlled by a processor 101 .
  • a memory 102 and a plurality of peripheral devices are connected to the processor 101 via a bus 109 .
  • 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).
  • processor 101 executing a program may be realized by an electronic circuit such as ASIC (Application Specific Integrated Circuit) or PLD (Programmable Logic Device).
  • ASIC Application Specific Integrated Circuit
  • PLD Programmable Logic Device
  • the memory 102 is used as the main storage device of the computer 100.
  • the memory 102 temporarily stores at least part of an OS (Operating System) program and application programs to be executed by the processor 101 .
  • the memory 102 stores various data used for processing by the processor 101 .
  • a volatile semiconductor memory device such as RAM (Random Access Memory) is used.
  • Peripheral devices connected to the 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 .
  • a storage device 103 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 .
  • GPU Graphics Processing Unit
  • the storage device 103 electrically or magnetically writes data to and reads data from a built-in recording medium.
  • a storage device 103 is used as an auxiliary storage device for the computer 100 .
  • the storage device 103 stores an OS program, application programs, and various data.
  • an HDD Hard Disk Drive
  • an SSD Solid State Drive
  • the GPU 104 is an arithmetic unit that performs image processing, and is also called a graphics controller.
  • a monitor 21 is connected to the GPU 104 .
  • the GPU 104 displays an image on the screen of the monitor 21 according to instructions from the processor 101 .
  • Examples of the monitor 21 include a display device using an organic EL (Electro Luminescence), a liquid crystal display device, and the like.
  • a keyboard 22 and a mouse 23 are connected to the input interface 105 .
  • the input interface 105 transmits signals sent from the keyboard 22 and mouse 23 to the processor 101 .
  • the mouse 23 is an example of a pointing device, and other pointing devices can also be used.
  • Other pointing devices include touch panels, tablets, touchpads, trackballs, and the like.
  • the optical drive device 106 reads data recorded on the optical disc 24 or writes data to the optical disc 24 using laser light or the like.
  • the optical disc 24 is a portable recording medium on which data is recorded so as to be readable by light reflection.
  • the optical disc 24 includes DVD (Digital Versatile Disc), DVD-RAM, CD-ROM (Compact Disc Read Only Memory), CD-R (Recordable)/RW (ReWritable), and the like.
  • the device connection interface 107 is a communication interface for connecting peripheral devices to the computer 100 .
  • the device connection interface 107 can be connected to the memory device 25 and the memory reader/writer 26 .
  • 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 the memory card 27 or reads data from the memory card 27 .
  • the memory card 27 is a card-type recording medium.
  • the network interface 108 is connected to the network 20.
  • Network interface 108 transmits and receives data to and from other computers or communication devices via network 20 .
  • the network interface 108 is a wired communication interface that is connected by a cable to a wired communication device such as a switch or router.
  • the network interface 108 may be a wireless communication interface that communicates with a wireless communication device such as a base station or an access point via radio waves.
  • the computer 100 can implement the processing functions of the second embodiment with the above hardware.
  • the information processing apparatus 10 shown in the first embodiment can also be realized by hardware similar to the computer 100 shown in FIG.
  • the computer 100 implements the processing functions of the second embodiment, for example, by executing a program recorded on a computer-readable recording medium.
  • a program describing the processing content to be executed by the computer 100 can be recorded in various recording media.
  • a program to be executed by the computer 100 can be stored in the storage device 103 .
  • the processor 101 loads at least part of the program in the storage device 103 into the memory 102 and executes the program.
  • the program to be executed by the computer 100 can also be recorded in a portable recording medium such as the optical disc 24, memory device 25, memory card 27, or the like.
  • a program stored in a portable recording medium can be executed after being installed in the storage device 103 under the control of the processor 101, for example.
  • the processor 101 can read and execute the program directly from the portable recording medium.
  • FIG. 3 is a diagram explaining a quantum bit.
  • a quantum bit is the smallest unit of quantum information corresponding to the smallest unit of information amount in a conventional computer, the "bit" (classical bit).
  • a quantum bit takes a quantum mechanical superposition state (quantum state) of “0” and “1”.
  • the quantum state of a quantum bit is mathematically represented by a two-dimensional vector as shown in the following equation (1), where
  • Quantum gate-based quantum computers perform gate operations on qubits to proceed with computations according to the purpose.
  • a gate operation is an operation that changes the quantum state, and is mathematically expressed as applying a matrix operator to the vector of the quantum state.
  • a gate operation for example, there is an X gate that performs bit inversion of a quantum bit.
  • the operation by the X gate is expressed as a formula as follows.
  • Pauli operators include the following three matrix operators.
  • the Hadamard operator is used for gate operations that create superposition states on
  • the Hadamard operator is represented by Equation (6) below.
  • a two-qubit state is represented as the tensor product of a one-qubit state "
  • a matrix operator acting on two qubits is, for example, the CNOT operator.
  • the CNOT operator bit-flips the other qubit (target qubit) (
  • the CNOT operator is represented by the following formula.
  • a quantum circuit is used to collectively express gate operations for multiple qubits.
  • qubit state transitions are represented by lines, and each gate operation is represented by a corresponding symbol.
  • FIG. 4 is a diagram showing an example of a quantum circuit.
  • Each horizontal line in quantum circuit 32 corresponds to a quantum bit. Inputs to the qubits are shown to the left of the horizontal line. Above each horizontal line, symbols indicating gate operations for the corresponding qubit are arranged horizontally (from left to right) in chronological order. Symbols 32a, 32b, such as meters to the right of the horizontal lines, indicate measuring operations.
  • the X symbol 32c surrounded by a rectangle indicates the Pauli operator "X” (X gate operation).
  • the rectangular Z symbol 32d indicates the Pauli operator "Z” (Z gate operation).
  • a rectangular H symbol 32e indicates a Hadamard operator "H” (Hadamard gate operation).
  • Gate operations for two qubits are written across multiple horizontal lines.
  • the symbols 32f and 32g indicating gate operations corresponding to the CNOT operator C X are lines connecting white and black circles with + in them.
  • a black circle is placed on the horizontal line of the control qubit, and a white circle with a + in it is placed on the horizontal line of the target qubit.
  • the quantum circuit 32 shown in FIG. 4 applies the gate operation "C X (2,1) Z (1) C X (1,2) H (2) X (1) " to two qubits in state
  • the gate operations indicated by the quantum circuit 32 are executed in order. At that time, an error may occur in the qubit. To obtain correct calculation results, it is important to be able to detect the occurrence of errors and correct them.
  • FIG. 5 is a diagram showing an example of an error occurrence situation in a quantum bit.
  • Qubit 33 is subject to various noises. Types of noise include environmental noise, noise during qubit operations, and interference from other qubits. The qubit 33 may unintentionally change state due to noise. Such unintended state changes are qubit errors. Types of errors that occur in quantum bits are classified into the following two types. ⁇ Bit reversal error (X error):
  • X error State reversal error
  • Z error Phase reversal error
  • qubit errors can be corrected by applying the same Pauli operator (X, Z) as the error.
  • Such an operation is called quantum error correction.
  • X X
  • Z Pauli operator
  • FIG. 8 The X error is expressed by the following equation (8), and the correction gate operation is expressed by equation (9).
  • FIG. 6 is a diagram illustrating an example of quantum bit redundancy.
  • FIG. 6 shows an example of redundancy using 8 qubits.
  • ⁇ > represented by one quantum bit 34 is represented by the logical quantum state
  • the logical qubit 35 is composed of a plurality of qubits 35a-35h.
  • the error qubit and the error content are specified by the process of specifying the error qubit and the error content.
  • an error correction gate operation is performed on the quantum bit 35h. Error correction corrects the state of logical qubit 35 to the state it would be in if no error had occurred.
  • FIG. 7 is a diagram showing an example of measurement using an auxiliary qubit.
  • the state of qubit 36 cannot be copied to auxiliary qubit 37 .
  • a two-qubit operation is then performed on the qubit 36 and the auxiliary qubit 37 .
  • a two-qubit operation changes the state of the auxiliary qubit 37 depending on the state of the qubit 36 .
  • By measuring the state of the ancillary qubit 37 a change from the initial state of the ancillary qubit 37 can be detected.
  • the state of the qubit 36 can be known from whether or not the auxiliary qubit 37 has changed from the initial state.
  • Surface coding is a method for identifying error qubits based on the state of the qubits obtained using the auxiliary qubits.
  • a surface code is a typical coding (redundancy) technique in quantum error correction.
  • FIG. 8 is a diagram showing an example of the configuration of a quantum bit for performing surface coding.
  • quantum bits are arranged in a two-dimensional lattice.
  • the data qubits 40a-40f and the auxiliary qubits 41a-41d, 42a-42d are alternately arranged in the row direction and the column direction.
  • the auxiliary qubits 41a-41d and 42a-42d are divided into auxiliary qubits 41a-41d for X error detection and auxiliary qubits 42a-42d for Z error detection.
  • auxiliary qubits 41a to 41d for X error detection and auxiliary qubits 42a to 42d for Z error detection are alternately arranged for each column.
  • the quantum bits shown in FIG. 8 are part of the quantum bits used for error correction using surface codes.
  • the quantum number of one side of the two-dimensional lattice containing all the qubits used for error correction (the sum of the data qubits and the auxiliary qubits) is an odd number, and the qubits are arranged at the four corners. is the data qubit (see FIG. 11).
  • the logical quantum state is properly initialized, and when an error is detected, a gate operation (two-qubit operation) is performed between one ancillary qubit and four surrounding data qubits, and the ancillary qubit is measured. By doing so, the presence or absence of an error can be detected.
  • FIG. 9 is a diagram showing an example of gate operation for X error detection.
  • an ancillary qubit 41d is used to detect an error in any of the data qubits 40d, 40e, 40h, and 40f adjacent to the ancillary qubit 41d.
  • the identifier of the data qubit 40d is "a”
  • the identifier of the data qubit 40e is "b”
  • the identifier of the data qubit 40h is "c”
  • the identifier of the data qubit 40f is "d”
  • the auxiliary qubit 41d 's identifier is 'e'.
  • the quantum circuit 43 is shown to perform a CNOT gate operation with the data qubits 40d, 40e, 40h, and 40f as control qubits and the auxiliary qubit 41d as a target qubit.
  • Such gating causes the auxiliary qubit 41d to change from its initial state if an X error has occurred in one of the data qubits 40d, 40e, 40h, and 40f.
  • FIG. 10 is a diagram showing an example of gate operation for Z error detection.
  • an ancillary qubit 42a is used to detect an error in any of the data qubits 40a, 40c, 40d, and 40e adjacent to the ancillary qubit 42a.
  • the identifier of the data qubit 40a is "g”
  • the identifier of the data qubit 40c is "f”
  • the identifier of the auxiliary qubit 42a is "h”.
  • the identifier for data qubit 40d is "a” and the identifier for data qubit 40e is "b.”
  • Quantum circuit 44 By performing the gate operation shown in the quantum circuit 44 on these qubits, Z error detection of the data qubits 40a, 40c, 40d, and 40e becomes possible.
  • Quantum circuit 44 is shown first performing a Hadamard gate operation on auxiliary qubit 42a. Thereafter, a CNOT gate operation is performed with each of the data qubits 40a, 40c, 40d, and 40e as the target qubit and the auxiliary qubit 42a as the control qubit.
  • a Hadamard gate operation is performed on the auxiliary qubit 42a. Note that in the situation shown in the quantum circuit 44, in the CNOT gate operation between the data qubit in which the Z error occurred and the auxiliary qubit 42a, contrary to normal, the control qubit A certain auxiliary qubit 42a changes state.
  • the auxiliary qubit 42a changes from its initial state.
  • the initial state of the ancillary qubit 42a is
  • the gate operation for error detection shown in FIG. 9 or 10 changes the states of the data qubit and the auxiliary qubit even when there is no error.
  • ⁇ > L are initialized to be the eigenstates of the stabilizer operator (eigenvalues of +1 or -1).
  • the stabilizer operator is the product of Z or X operators acting on the four data qubits surrounding the ancillary qubit.
  • the stabilizer operator for X error detection shown in FIG. 9 is "Z (i1) Z (i2) Z (i3) Z (i4)
  • ⁇ > L
  • i is the index of the auxiliary qubit for X error detection.
  • the number to the right of i is the number that distinguishes the data qubits surrounding the ancillary qubit.
  • the upper data qubit is "1”
  • the left data qubit is "2”
  • the lower data qubit is "3”
  • the right data qubit is "4".
  • Z (i1) denotes the Z operator acting on the data qubit above the i-th ancillary qubit.
  • the stabilizer operator for Z error detection shown in FIG. 10 is "X (j1) X (j2) X (j3) X (j4)
  • ⁇ > L
  • j is the index of the ancillary qubit for Z error detection.
  • the number to the right of j is the number that distinguishes the data qubits surrounding the ancillary qubit.
  • Logical operators include logical Z operator Lz and logical X operator Lx. These logical operators satisfy the following properties.
  • the first property is that logical operators satisfy commutation relations with all stabilizer operators. For example, for the logical Z operator Lz, let S be the stabilizer operator, and let the logical quantum state
  • ⁇ > L
  • ⁇ > L ). In this case, from the commutation relation SLz LzS, SLz
  • ⁇ > L LzS
  • ⁇ > L Lz
  • FIG. 11 is a diagram illustrating mathematical representations of the logical Z operator Lz and the logical X operator Lx. Of the left, right, upper and lower boundaries in the array of lattice-like qubits that make up the logic qubits, the boundaries along which auxiliary qubits for X error detection are arranged are called rough boundaries 45 and 46 . Boundaries along which auxiliary qubits for Z-error detection are arranged are called smooth boundaries 47 and 48 .
  • the logical Z operator Lz is mathematically represented by the product of the Z operators over the data qubits from one rough boundary 45 to the opposite rough boundary 46 .
  • the logical Z operator Lz phase-inverts the logical quantum state (Lz
  • 0> L
  • 1> L -
  • the logical X operator Lx is mathematically represented by the product of the X operators over the data qubits from one smooth boundary 47 to the opposite smooth boundary 48 .
  • the logical X operator Lx bit-reverses the logical quantum state (Lx
  • 0> L
  • 1> L
  • FIG. 12 is a diagram showing an example of X error detection. For example, if
  • ⁇ ′> L X (i1)
  • FIG. 13 is a diagram showing an example of error location identification.
  • FIG. 13 shows an example of specifying the error location of the Z error, but it is possible to specify the error location of the X error as well.
  • the auxiliary qubits for X error detection are omitted (the same applies to FIGS. 14 to 20).
  • the data qubit 51 in which the error occurred is within the same circle as the two auxiliary qubits 52 and 53, respectively.
  • the auxiliary qubits 52, 53 are detected to have flipped state by the measurement. Since the states of the ancillary qubits 52 and 53 are inverted, the data qubit 51 located between them is specified as an error occurrence location. Therefore, an error correction operation (Z gate operation) is performed on the data quantum bit 51 .
  • FIG. 14 is a diagram showing an example of a case where the error occurrence location cannot be uniquely specified.
  • errors occur in two data qubits.
  • the position between the data qubits in which the error occurred has a difference of 1 row and 3 columns.
  • the states of the four ancillary qubits adjacent to one of the errored data qubits are reversed (the measured information becomes "-1"). Based on the four flipped ancillary qubits, we will attempt to locate the error qubit.
  • a first error occurrence pattern 61 is an example of the case where the error occurred data qubit was correctly identified.
  • a second error occurrence pattern 62 and a third error occurrence pattern 63 are examples in which the error-caused data qubit cannot be correctly specified.
  • FIG. 15 is a diagram showing an example of error correction by correcting data qubits other than where the error occurred.
  • errors occur in two data qubits 64 and 65 . These data qubits 64 and 65 are shifted by one row in the row direction and are also shifted by one row in the column direction.
  • the error detection flips the state of the ancillary qubit 66 adjacent above the data qubit 64 and the state of the ancillary qubit 67 adjacent to the right of the data qubit 65 .
  • the auxiliary qubit 70 adjacent below the data qubit 64 is adjacent to the left of the data qubit 65, so the state is not inverted.
  • data qubits 68 and 69 are used in addition to the case where an error occurs in the data qubits 64 and 65. an error may have occurred.
  • the error correction operation is performed on the data qubits 68 and 69 instead of the data qubits 64 and 65 in which the error occurs.
  • a loop 72 is formed by the error-corrected data qubits 68 and 69 and the error-uncorrected data qubits 64 and 65 .
  • Formation of the loop 72 here means that, among the erroneously corrected data qubits and the error-uncorrected data qubits, the data qubits adjacent to the common auxiliary qubit for Z error detection are connected by a line. , a closed curve is formed.
  • a loop 72 is formed at .
  • the two error-uncorrected data qubits 64 and 65 are both adjacent to the auxiliary qubit 70, so they can be connected by a line.
  • Both the uncorrected data qubit 65 and the erroneously corrected data qubit 69 are adjacent to the ancillary qubit 67 and can be connected by a line.
  • the two erroneously corrected data qubits 68 and 69 are both adjacent to the ancillary qubit 71 and can be connected by a line.
  • Both the erroneously corrected data qubit 68 and the uncorrected data qubit 64 are adjacent to the ancillary qubit 66 and can be connected by a line.
  • the lines connecting the uncorrected data qubits 64, 65 and the erroneously corrected data qubits 68, 69 form a closed curve. That is, a loop 72 is formed.
  • FIG. 16 is a diagram showing an example of an error correction success pattern.
  • the error correction success pattern 75 is a case where the data qubit in which the error occurred and the corrected data qubit completely match.
  • Error correction success patterns 76 and 77 are cases where error correction is successful because a loop is formed by an uncorrected data qubit and an erroneously corrected data qubit. In this way, in order to successfully correct an error using a surface code, it is a requirement that the corrected portion and the actual error portion must be exactly the same, or that a loop must be formed.
  • the number of corrected data qubits around each of the inverted auxiliary qubits 75a and 75b in the error correction success pattern 75 is "1" (odd number).
  • the number of corrected data qubits around the non-inverted ancillary qubit 75c is "0" (an even number).
  • the numbers of corrected data qubits around each of the inverted ancillary qubits 76a, 76b in the error correction success pattern 76 are both "1" (odd).
  • the number of corrected data qubits around the non-inverted ancillary qubit 76c is "0" (an even number).
  • the numbers of corrected data qubits around each of the inverted ancillary qubits 77f and 77g in the error correction success pattern 77 are both "1" (odd number). Also, the number of corrected data qubits around each of the non-inverted auxiliary qubits 77a to 77e is all "2" (an even number).
  • FIG. 17 is a diagram showing an example of a logical error caused by erroneous correction.
  • a Z error occurs in one data qubit 78a to 78c on the same column.
  • the states of the auxiliary qubits 78d-78h adjacent to any of the data qubits 78a-78c on the same column are flipped.
  • the error correction operation is performed on the data qubits 78i to 78k other than the data qubits 78a to 78c in which the error has occurred. Even in such error correction, the even-odd constraint is observed.
  • the errored data qubits 78a-78c do not match the corrected data qubits 78i-78k, and no loop is formed. That is, it is a logical error due to erroneous correction.
  • a logical error occurs, correct calculations cannot be performed. How often logical errors occur in the surface code depends on the number of qubits forming the logical qubit, the error occurrence frequency of each qubit, and the like. In an actual quantum computer, it is impossible to determine whether a logic error occurs or not without measuring the data qubit itself, and it is also impossible to grasp the frequency of occurrence. However, if a classical computer is used to perform an error correction simulation using a surface code, it is possible to determine whether or not a logical error has occurred, since the locations where errors have occurred can be known in advance. Whether or not a logical error has occurred can be determined by searching for a connection (error chain) of data qubits in which an error has occurred.
  • a simulation of quantum error correction using a surface code (hereinafter referred to as a surface code simulation) assuming a large-scale quantum computer, it is desirable to be able to efficiently determine whether or not a logic error has occurred.
  • FIG. 18 is a diagram showing an example of logic error determination by searching for an error chain.
  • the computer searches on a two-dimensional grid to see if an error chain runs from one boundary to the other. Specifically, first, if there is an inverted data qubit among the boundary data qubits, the computer uses that data qubit as the starting point of the search. In the example of FIG. 18, data qubit 78a is the starting point for the search.
  • the computer sequentially determines whether or not the data qubits adjacent to the same auxiliary qubit are inverted, starting with the data qubit 78a at the starting point.
  • the computer joins a data qubit into an error chain if a data qubit adjacent to the same auxiliary qubit as the data qubit whose state is flipped has its state flipped.
  • the computer will then determine that there is a logic error if the error chain eventually continues with the data qubit 78i on the opposite boundary.
  • the number of searches increases as the number of errors increases. Also, if the number of data qubits on one side of the two-dimensional lattice is N (N is a natural number), the number of searches increases exponentially when N is sufficiently large. As a result, when performing a large-scale surface code simulation, the logic error judgment takes a long time, and the execution efficiency deteriorates.
  • the computer 100 determines whether or not there is a logic error based only on the state data of the data qubits for one row of the two-dimensional lattice.
  • FIG. 19 is a diagram showing an example of logic error determination based on state data of data qubits for one row of a two-dimensional lattice. 17 shows three error correction patterns when an error similar to the error occurrence pattern 78 shown in FIG. 17 occurs.
  • An error correction success pattern 81-1 is an example of a case where the data qubits 81a to 81c in which errors have occurred are subjected to data correction with a perfect match.
  • error correction success pattern 81-2 data correction is performed on data qubits 81a and 81c in which errors have occurred and data qubits 81d to 81f in which no errors have occurred. This is a successful example.
  • An error correction failure pattern 81-3 is an example of occurrence of a logic error due to data correction of data quantum bits 81g to 81i in which no error has occurred.
  • the state of the data qubit will be one of the following. 1. Error qubits are fully corrected. 2. Inverted qubits (error-uncorrected data qubits and error-corrected data qubits) form a loop. 3. A logic error has occurred.
  • the computer investigates whether the number of inverted qubits among the data qubits in one row (rows 82a to 82c to be investigated) of the two-dimensional lattice in FIG. 19 is even or odd. Note that columns 82a to 82c to be investigated are selected from columns in which data qubits exist on smooth boundaries, for example.
  • the number of inverted qubits in the investigation target column 82a is "0" (an even number).
  • the number of inverted qubits in the column under investigation 82b is "2" (an even number).
  • the number of inverted qubits in the column under investigation 82c is "1" (an odd number).
  • the computer 100 determines a logic error when the number of inverted qubits in a vertical row is an odd number.
  • FIG. 20 is a diagram for explaining that a logic error occurs when the number of inversion qubits in a vertical row is an odd number.
  • FIG. 20 shows a state 83 in which the logic Z operator Lz acts on the two-dimensional lattice array, and a state 84 in which the logic X operator Lx acts on the two-dimensional lattice array.
  • logic error determination for X errors can also be performed in a similar manner.
  • the logical error determination for the X error the logical error is determined based on the data qubits of the first row of the lattice (row to be investigated).
  • FIG. 21 is a diagram showing an example of data quantum bits used for logic error determination.
  • the rough boundaries are the column-oriented edges and the smooth boundaries are the row-oriented edges.
  • any one of the columns with data qubits on smooth boundaries becomes the column under investigation 85 for use in logical error determination of Z errors.
  • An arbitrary one of the rows in which data qubits exist on rough boundaries becomes a row to be investigated 86 used for logic error determination of X errors.
  • FIG. 22 is a block diagram illustrating the functionality of a computer for performing surface code simulations.
  • the computer 100 has a storage section 110 , a surface code simulation management section 120 , an error occurrence state generation section 130 , an error correction section 140 and a logical error determination section 150 .
  • the storage unit 110 stores simulation conditions 111 and simulation results 112 .
  • the simulation conditions 111 include information such as the size of the two-dimensional lattice and the error rate of quantum bits.
  • the simulation result 112 includes information such as logic error rate.
  • the surface code simulation management unit 120 manages the progress of the surface code simulation. For example, the input of the simulation conditions 111 is received, and the input simulation conditions 111 are stored in the storage unit 110 . In addition, the surface code simulation management unit 120 causes the error occurrence state generation unit 130, the error correction unit 140, and the logical error determination unit 150 to perform the surface code simulation a predetermined number of times. Furthermore, the surface code simulation management section 120 stores the simulation result 112 in the storage section 110 .
  • the error generation state generator 130 generates an X error or Z error in the data qubits in the two-dimensional lattice according to the simulation conditions 111 . Also, the error occurrence state generator 130 inverts the state of the auxiliary qubit according to the error that has occurred.
  • the error correction unit 140 performs error correction processing based on the state of the inverted auxiliary qubit.
  • the error correction process reverses the state of data qubits that are presumed to be in error.
  • the logic error determination unit 150 determines whether or not the state of the logic qubit shown in the two-dimensional lattice after error correction is a logic error.
  • the logic error determination section 150 notifies the surface code simulation management section 120 of the determination result.
  • each element shown in FIG. 22 can be realized by causing a computer to execute a program module corresponding to the element, for example.
  • FIG. 23 is a flow chart showing an example of the procedure of logic error determination processing using surface code simulation. The processing shown in FIG. 23 will be described below along with the step numbers.
  • the surface code simulation management unit 120 receives an input of the simulation conditions 111 from the user. When the simulation conditions 111 are input, the surface code simulation management unit 120 stores the simulation conditions 111 in the storage unit 110 .
  • the surface code simulation management unit 120 cooperates with the error occurrence state generation unit 130, the error correction unit 140, and the logic error determination unit 150 to execute the surface code simulation.
  • the details of the surface code simulation process will be described later (see FIG. 24).
  • the surface code simulation provides information indicating whether or not a logic error occurs when error correction is performed using the surface code shown in the simulation conditions 111 .
  • Step S103 The surface code simulation management unit 120 determines whether or not the surface code simulation has been repeated a predetermined number of times (eg, 10,000 times). When the number of iterations reaches the predetermined number, the surface code simulation manager 120 advances the process to step S104. If the number of iterations is less than the predetermined number, the surface code simulation manager 120 advances the process to step S102.
  • a predetermined number of times eg, 10,000 times.
  • the surface code simulation management unit 120 calculates the occurrence rate of logic errors based on the information indicating the presence or absence of logic errors obtained from surface code simulations for a predetermined number of times.
  • the occurrence rate of logic errors is, for example, a value obtained by dividing the number of times the surface code simulation determines that a logic error has occurred by the number of repetitions of the surface code simulation.
  • the surface code simulation management unit 120 calculates the logical error rate for each error occurrence pattern, for example.
  • the logical error occurrence rate in this case is the ratio of data correction patterns determined to be logical errors among a plurality of data correction patterns corresponding to one error occurrence pattern.
  • the surface code simulation management section 120 calculates, for example, the average of the logical error rate of each of the plurality of error occurrence patterns as the simulation result 112 . Then, the surface code simulation management section 120 stores the simulation result 112 including the logic error rate in the storage section 110 .
  • FIG. 24 is a diagram showing an example of simulation conditions.
  • the simulation conditions 111 include, for example, the following data.
  • ⁇ Z error rate data Rz ⁇ X error rate data: Rx
  • the Z error rate data is data indicating the probability of occurrence of Z errors in the data qubits.
  • the X error rate data is data indicating the probability of X errors occurring in the data qubit.
  • FIG. 25 is a flow chart showing an example of the procedure of surface symbol simulation processing. The processing shown in FIG. 25 will be described below along with the step numbers.
  • the surface code simulation management unit 120 acquires the simulation conditions 111 from the storage unit 110 . Based on the obtained simulation conditions 111, the surface code simulation management unit 120 generates quantum bit information indicating a two-dimensional lattice in which quantum bits are arranged at equal intervals in the row direction and the column direction within a rectangular area.
  • the quantum bit information includes state data indicating the quantum state of each quantum bit.
  • the surface code simulation manager 120 transmits the generated qubit information to the error generation state generation unit 130 and instructs generation of an error generation state for the data qubits in the two-dimensional lattice.
  • Step S112 The error occurrence state generator 130 counts up the variable i one by one from 1 and executes the processing of steps S113 to S115 for each value of i until it reaches N data .
  • the error occurrence state generator 130 generates a random number r greater than 0 and less than 1.
  • the error occurrence state generator 130 determines whether or not the value of the random number r is smaller than Rz, which indicates the Z error rate. If the value of random number r is smaller than Rz, error occurrence state generator 130 advances the process to step S115. If the value of random number r is equal to or greater than Rz, error occurrence state generation unit 130 advances the process to step S116.
  • Step S116 If the value of the variable i has reached N data , the error occurrence state generator 130 advances the process to step S117.
  • Step S117 The error occurrence state generator 130 counts up the variable i by 1 in order from 1, and executes the processing of steps S118 to S121 for each value of i until it reaches N data .
  • the error occurrence state generator 130 generates a random number r greater than zero and less than one.
  • the error occurrence state generator 130 determines whether the value of the random number r is smaller than Rx, which indicates the X error rate. If the value of random number r is smaller than Rx, error occurrence state generator 130 advances the process to step S120. Also, if the value of the random number r is equal to or greater than Rx, the error occurrence state generation unit 130 advances the process to step S121.
  • Step S121 If the value of the variable i has reached N data , the error occurrence state generator 130 advances the process to step S122.
  • Step S122 The error correction unit 140 performs error correction processing on the data qubits based on the state data of the auxiliary qubits. For example, the error correction unit 140 identifies data qubits in which a Z error or an X error has occurred, as shown in FIG. 14, based on the data qubits whose values have been inverted. Then, the error correction unit 140 performs error correction processing according to the error that has occurred on the data quantum bit that is estimated to have an error. For example, the error correction unit 140 inverts the phase of the data qubit estimated to have the Z error, and inverts the bit of the data qubit estimated to have the X error.
  • Step S123 The logic error determination unit 150 performs logic error (Z error) determination processing based on the number of inverted qubits in one column. The details of this process will be described later (see FIG. 26).
  • Step S124 The logic error determination unit 150 performs logic error (X error) determination processing based on the number of inverted qubits in one row. The details of this process will be described later (see FIG. 27).
  • FIG. 26 is a flow chart showing an example of the procedure of logic error (Z error) determination processing. The processing shown in FIG. 26 will be described below along with the step numbers.
  • Step S132 The logic error determination unit 150 sets the number of inverted qubits N r to an initial value of "0".
  • the logic error determination unit 150 counts up the variable i by 1 in order from 1, and executes the processing of steps S134 to S135 for each value of i until it reaches Ncc .
  • Step S134 The logic error determination unit 150 determines whether or not the value of the state data q i indicating whether or not the i-th data quantum bit is phase-inverted is "1". If the value is "1”, logic error determination unit 150 advances the process to step S135. If the value is "0”, logic error determination unit 150 advances the process to step S136.
  • Step S135 The logic error determination unit 150 adds "1" to the number of inverted qubits Nr .
  • Step S136 If the value of the variable i has reached Ncc , the logic error determination unit 150 advances the process to step S137.
  • Step S137 The logic error determination unit 150 determines whether the number of inversion qubits N r is an odd number. If the number is odd, logic error determination unit 150 advances the process to step S138. If the number is even, logic error determination unit 150 advances the process to step S139.
  • Step S138 The logic error determination unit 150 determines that a logic error has occurred, and terminates the logic error determination process.
  • the logic error determination unit 150 determines that no logic error has occurred.
  • FIG. 27 is a flow chart showing an example of the procedure of logic error (X error) determination processing. The processing shown in FIG. 27 will be described below along with the step numbers.
  • Step S142 The logic error determination unit 150 sets the number of inversion qubits N r to an initial value of "0".
  • the logical error determination unit 150 counts up the variable i by one from 1 and executes the processing of steps S144 and S145 for each value of i until it reaches N cr .
  • Step S144 The logic error determination unit 150 determines whether or not the value of the state data q i indicating whether or not the i-th data quantum bit is inverted is "1". If the value is "1”, logic error determination unit 150 advances the process to step S145. If the value is "0”, logic error determination unit 150 advances the process to step S146.
  • Step S145 The logic error determination unit 150 adds "1" to the number of inverted qubits Nr .
  • Step S146 If the value of the variable i has reached N cr , the logic error determination unit 150 advances the process to step S147.
  • Step S147 The logic error determination unit 150 determines whether the number of inversion qubits N r is an odd number. If the number is odd, logic error determination unit 150 advances the process to step S148. If the number is even, logic error determination unit 150 advances the process to step S149.
  • Step S148 The logic error determination unit 150 determines that a logic error has occurred, and terminates the logic error determination process.
  • the logic error determination unit 150 determines that no logic error has occurred.
  • the above processing is the logic error determination processing for the X error.
  • the logic error determination unit 150 can determine whether or not there is a logic error simply by examining the values of the data qubits for one column or one row of the two-dimensional lattice. As a result, efficient logical error determination becomes possible.
  • FIG. 28 is a graph showing the relationship between the number of data qubits on one side of a two-dimensional lattice and the number of searches.
  • the horizontal axis is the number of data qubits N per side of the two-dimensional lattice
  • the vertical axis is the number of searches. The number of searches is counted as one each time the state of one data quantum bit is confirmed.
  • a polygonal line 91 in the graph 90 is a polygonal line indicating the number of times of search when logic error determination is performed by searching for an error chain as shown in FIG.
  • An approximated curve 92 is an approximated curve for the polygonal line 91 when the logic error determination is performed by searching the error chain.
  • a polygonal line is a polygonal line that indicates the number of times of search when logic error determination is performed based on the number of inverted qubits in one column (or one row) of the two-dimensional lattice.
  • the error probability in simulated conditions is 20%.
  • the number of searches increases exponentially with respect to N. is increasing.
  • logical qubits are composed of qubits arranged in a two-dimensional lattice of 5 rows and 11 columns. can be determined.

Landscapes

  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Tests Of Electronic Circuits (AREA)

Abstract

論理エラーの発生の有無を効率的に判定できるようにする。 情報処理装置(10)は、複数のデータ量子ビットと複数の補助量子ビットとを交互に配置した2次元格子を示す量子ビット情報(1)に対して、第1のデータ量子ビットにおけるエラー発生を示すエラー情報を設定する。次に情報処理装置(10)は、量子ビット情報に対して、第1のデータ量子ビットに行方向または列方向に隣接する第1の補助量子ビットの状態を初期値から反転させたエラー検知情報を設定する。量子ビット情報に対して、表面符号によるエラー訂正の対象となる第2のデータ量子ビットを示すエラー訂正情報を設定する。そして情報処理装置(10)は、2次元格子における一の行または一の列内の第1のデータ量子ビットと第2のデータ量子ビットとのいずれか一方に該当するデータ量子ビットの数に基づいて、論理エラーの発生の有無を判定する。

Description

シミュレーションプログラム、シミュレーション方法、および情報処理装置
 本発明は、シミュレーションプログラム、シミュレーション方法、および情報処理装置に関する。
 量子コンピュータの計算は複数の量子ビットに対する初期化、ゲート操作、測定処理を行うことで実現される。量子コンピュータでは、このような量子ビットへの操作の過程で環境ノイズなどにより量子ビットにエラー(物理エラー)が発生する。そこで量子コンピュータでは、エラー量子ビットとエラー内容特定のため、従来型の計算機(古典コンピュータとも呼ばれる)と同様に量子ビットの冗長化が行われる。
 冗長化させた量子ビットを用いてエラー量子ビットとエラー内容を特定する手法の1つに表面符号がある。表面符号では、2次元格子状にデータ量子ビットと補助量子ビットとが交互に並べられる。格子状に配置された複数の量子ビット(データ量子ビットと補助量子ビット)のうちのデータ量子ビットの状態が1つの論理量子ビットに符号化される。補助量子ビットは、1列ごとにXエラー検知用とZエラー検知用のどちらかとして使用される。表面符号を行う場合、量子コンピュータは、最初に論理量子状態を適切に初期化し、エラー検知の際、1つの補助量子ビットと周囲4つのデータ量子ビットとの間のゲート操作を行い、補助量子ビットの測定を行う。量子コンピュータは、補助量子ビットの値に基づいてXエラーまたはZエラーを検知する。そして量子コンピュータは、エラーの種類を示す情報と、エラー箇所であると特定したデータ量子ビットの位置情報を用いて、量子ビットへのエラー訂正処理のゲート操作を行う。
 量子コンピュータにおける誤り訂正に関する技術としては、例えばシステムサイズに依存しない量子誤り訂正方法が提案されている。また量子アルゴリズムを実行するキュービットの配列の誤りを判定および訂正する方法も提案されている。さらに、少なくとも1つのフラグ量子ビットからの測定値に基づいて、複数の物理量子ビットの1つ以上における故障耐性の量子エラーを訂正する技術も提案されている。
特開2014-241484号公報 特表2020-535690号公報 米国特許出願公開第2021/0019223号明細書
 1つの論理量子ビットを構成する複数の量子ビットのうちの2以上の量子ビットにエラーが発生したとき、表面符号を用いてもエラー訂正に失敗する場合がある。このようなエラー訂正の失敗は、論理エラーと呼ばれる。
 表面符号では、1つの論理量子ビットを表す格子内の量子ビット数に応じて、論理エラーの発生確率が変わる。論理エラーの発生確率は、環境ノイズなどによる量子ビットのエラーの発生率によっても変わる。そこで表面符号による量子誤り訂正の性能を評価するため、古典コンピュータ(ノイマン型コンピュータとも呼ばれる)を用いて表面符号による誤り訂正のシミュレーションを行うことが考えられる。量子コンピュータ実機ではデータ量子ビットそのものを測定しないと論理エラーかどうか判定できないが、シミュレーションであればエラーの発生箇所があらかじめ分かる。そのため所定の条件での表面符号による誤り訂正のシミュレーションを実施することで、その条件での論理エラーの発生の有無を判断できる。これにより、量子コンピュータに表面符号を適用する場合における1論理量子ビット当たりの適切な量子ビット数などを調べることができる。
 しかし、従来の表面符号による誤り訂正シミュレーションにおける論理エラーの発生の有無の判定処理は、1論理量子ビット当たりの量子ビット数が多くなる程、計算量が指数関数的に増加する。そのため、大規模な量子コンピュータについての表面符号による誤り訂正シミュレーションが困難となっている。
 1つの側面では、本件は、論理エラーの発生の有無を効率的に判定できるようにすることを目的とする。
 1つの案では、以下の処理をコンピュータに実行させるシミュレーションプログラムが提供される。
 コンピュータは、複数のデータ量子ビットと複数の補助量子ビットとを行方向および列方向のそれぞれに交互に配置した2次元格子を示す量子ビット情報を生成する。コンピュータは、量子ビット情報に対して、複数のデータ量子ビットのうちの第1のデータ量子ビットにおけるエラー発生を示すエラー情報を設定する。コンピュータは、量子ビット情報に対して、第1のデータ量子ビットに行方向または列方向に隣接する補助量子ビットの状態を初期値から反転させたエラー検知情報を設定する。コンピュータは、量子ビット情報に対して、エラー検知情報に基づく表面符号によるエラー訂正の対象となる第2のデータ量子ビットを示すエラー訂正情報を設定する。そしてコンピュータは、2次元格子における一の行または一の列内の第1のデータ量子ビットと第2のデータ量子ビットとのいずれか一方に該当するデータ量子ビットの数に基づいて、論理エラーの発生の有無を判定する。
 1態様によれば、論理エラーの発生の有無を効率的に判定できるようにする。
 本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
第1の実施の形態に係るシミュレーション方法の一例を示す図である。 表面符号シミュレーションのコンピュータのハードウェアの一例を示す図である。 量子ビットを説明する図である。 量子回路の一例を示す図である。 量子ビットにおけるエラー発生状況の一例を示す図である。 量子ビットの冗長化の一例を示す図である。 補助量子ビットを用いた測定の一例を示す図である。 表面符号を行うための量子ビットの構成の一例を示す図である。 Xエラー検知のゲート操作の一例を示す図である。 Zエラー検知のゲート操作の一例を示す図である。 論理Z演算子Lzと論理X演算子Lxの数学的表現を説明する図である。 Xエラー検知の一例を示す図である。 エラー箇所特定の一例を示す図である。 エラー発生箇所を一意に特定できない場合の一例を示す図である。 エラーが発生した箇所とは別のデータ量子ビットを訂正することによるエラー訂正の一例を示す図である。 エラー訂正成功パターンの例を示す図である。 誤訂正による論理エラーの一例を示す図である。 エラーチェインの探索による論理エラー判定の一例を示す図である。 2次元格子1列分のデータ量子ビットの状態データに基づく論理エラー判定の一例を示す図である。 縦一列の反転量子ビット数が奇数の場合に論理エラーとなることを説明する図である。 論理エラー判定に用いられるデータ量子ビットの一例を示す図である。 表面符号シミュレーションを実施するためのコンピュータの機能を示すブロック図である。 表面符号シミュレーションを利用した論理エラー判定処理の手順の一例を示すフローチャートである。 シミュレーション条件の一例を示す図である。 表面符号シミュレーションの処理の手順の一例を示すフローチャートである。 論理エラー(Zエラー)判定処理の手順の一例を示すフローチャートである。 論理エラー(Xエラー)判定処理の手順の一例を示すフローチャートである。 2次元格子の1辺のデータ量子ビット数と探索回数との関係を示すグラフである。
 以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
 〔第1の実施の形態〕
 第1の実施の形態は、量子コンピュータで発生する量子ビットのエラーを表面符号によりエラー訂正処理のシミュレーションを実行した場合における論理エラーの発生の有無を効率的に判定するシミュレーション方法である。
 図1は、第1の実施の形態に係るシミュレーション方法の一例を示す図である。図1には、シミュレーション方法の実施に用いる情報処理装置10が示されている。情報処理装置10は、例えばシミュレーションプログラムを実行することにより、シミュレーション方法を実施することができる。
 情報処理装置10は、記憶部11と処理部12とを有する。記憶部11は、例えば情報処理装置10が有するメモリまたはストレージ装置である。処理部12は、例えば情報処理装置10が有するプロセッサまたは演算回路である。
 記憶部11は、複数のデータ量子ビットと複数の補助量子ビットとを行方向および列方向のそれぞれに交互に配置した2次元格子を示す量子ビット情報1を記憶する。2次元格子では、矩形の領域内に量子ビットが等間隔で配置されており、矩形の4辺に沿って配置された量子ビットが2次元格子の境界となる。量子ビット情報1に示される2次元格子は、例えば位相反転エラー(Zエラー)検知用の補助量子ビットが配置される列とビット反転エラー(Xエラー)検知用の補助量子ビットが配置される列とが交互に設けられている。このような量子ビット情報1に示される2次元格子では、位相反転エラー検知用の補助量子ビットが配置される行とビット反転エラー検知用の補助量子ビットが配置される行も交互に設けられている。
 処理部12は、ユーザからのシミュレーション条件の入力を受け付け、そのシミュレーション条件に従って量子ビット情報1を生成する。シミュレーション条件には、例えば2次元格子の行方向と列方向それぞれの量子ビット数、データ量子ビットにおけるエラー発生率などが含められる。処理部12は、シミュレーション条件に基づいて量子ビット情報1を生成する。そして処理部12は、生成した量子ビット情報1を記憶部11に格納する。
 処理部12は、量子ビット情報1に対して、複数のデータ量子ビットのうちの第1のデータ量子ビットにおけるエラー発生を示すエラー情報を設定する。例えば処理部12は、所定のエラー発生率に基づいて複数のデータ量子ビットの中から無作為(ランダム)に、エラーを発生させる第1のデータ量子ビットを決定する。第1のデータ量子ビットに発生させるエラーは、意図しないデータ量子ビットの状態の反転(ビット反転または位相反転)である。図1の例では、ストライプ柄のハッチングによって、第1のデータ量子ビットを示している。
 次に処理部12は、量子ビット情報1に対して、第1のデータ量子ビットに行方向または列方向に隣接する補助量子ビットの状態を初期値から反転させたエラー検知情報を設定する。この際、処理部12は、補助量子ビットの状態を、隣接する第1のデータ量子ビットの数の回数だけ反転させる。そのため、例えば2つの第1のデータ量子ビットに隣接する補助量子ビットは状態が2回反転し、初期状態に戻る。図1の例では、チェック柄のハッチングによって、初期値から反転した状態となった補助処理ビットが示されている。
 さらに処理部12は、量子ビット情報1に対して、エラー検知情報に基づく表面符号によるエラー訂正の対象となる第2のデータ量子ビットを示すエラー訂正情報を設定する。処理部12は、例えば状態が反転した補助量子ビットの配置に基づいて、エラー検知を行ったときにその補助量子ビットが反転するような、データ量子ビットのエラー発生のパターンを求める。そして処理部12は、そのエラー発生のパターンでエラーが発生しているとされているデータ量子ビットを、エラー訂正の対象となる第2のデータ量子ビットとする。図1の例では、エラー訂正対象のデータ量子ビットの矩形を二重線で表している。
 なお、第2のデータ量子ビットの配置パターン(エラー訂正パターン)は、複数のパターンがあり得る。図1の例では3つのエラー訂正パターンが示されている。
 処理部12は、2次元格子における一の行または一の列内の第1のデータ量子ビットと第2のデータ量子ビットとのいずれか一方に該当するデータ量子ビットの数に基づいて、論理エラーの発生の有無を判定する。例えば処理部12は、2次元格子における一の行または一の列内の第1のデータ量子ビットと第2のデータ量子ビットとのいずれか一方に該当するデータ量子ビット(反転量子ビット)の数が奇数の場合に、論理エラーが発生していると判定する。なお第1のデータ量子ビットと第2のデータ量子ビットとの両方に該当するデータ量子ビットは、エラーが発生したものの正しく訂正されたデータ量子ビットであり、反転量子ビットには含まれない。
 例えば図1に示す例では、第5列内の反転量子ビットの数に基づいて、論理エラーの有無が判定されている。例えば1つ目のエラー訂正パターンでは、反転量子ビット数が「0」(偶数)であり、論理エラーは発生していないと判定される。また2つ目のエラー訂正パターンでは、反転量子ビット数が「2」(偶数)であり、論理エラーは発生していないと判定される。3つ目のエラー訂正パターンでは、反転量子ビット数が「1」(奇数)であり、論理エラーが発生していると判定される。
 このように、ある一行または一列における反転量子ビットの数によって論理エラーの発生の有無を判定することができ、表面符号のシミュレーション実行時の論理エラーの発生の有無の判定を効率的に行うことができる。
 なお、位相反転エラー検知用の補助量子ビットが配置された行とビット反転エラーが配置された行とが交互に設けられているとき、2次元格子の4辺の境界には、位相反転エラー検知用の補助量子ビットが配置された境界(スムーズ境界)と、ビット反転エラー検知用の補助量子ビットが配置された境界(ラフ境界)とがある。処理部12は、ラフ境界と平行な方向の一の行または一の列内の第1のデータ量子ビットと第2のデータ量子ビットとのいずれか一方に該当するデータ量子ビットの数に基づいて、位相反転エラーに起因する論理エラーの発生の有無を判定する。また処理部12は、スムーズ境界と平行な方向の一の行または一の列内の第1のデータ量子ビットと第2のデータ量子ビットとのいずれか一方に該当するデータ量子ビットの数に基づいて、ビット反転エラーに起因する論理エラーの発生の有無を判定する。
 このようにして、位相反転エラーまたはビット反転エラーそれぞれに起因する論理エラーの有無について個別に判定することができる。
 なお、所定のエラー発生率に基づいて複数のデータ量子ビットの中から無作為にエラーを発生させて第1のデータ量子ビットを決定する場合、論理エラーが発生するか否かは確率的に決まる。そこで処理部12は、エラー情報の設定、エラー検知情報の設定、エラー訂正情報の設定、論理エラーの発生の有無の判定を、所定回数繰り返して実行してもよい。この場合、処理部12は、例えば、所定回数の論理エラーの発生の有無の判定結果に基づいて、論理エラー発生確率を算出する。これによりデータ量子ビットのエラー発生率に応じた論理エラーの発生確率が得られる。
 〔第2の実施の形態〕
 次に第2の実施の形態について説明する。第2の実施の形態は、量子コンピュータにおいてランダムに発生するエラーに対する表面符号による誤り訂正のシミュレーション(以下、表面符号シミュレーションと呼ぶ)を実行し、論理エラーの発生の有無を効率的に判定するコンピュータである。
 図2は、表面符号シミュレーションのコンピュータのハードウェアの一例を示す図である。コンピュータ100は、プロセッサ101によって装置全体が制御されている。プロセッサ101には、バス109を介してメモリ102と複数の周辺機器が接続されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、またはDSP(Digital Signal Processor)である。プロセッサ101がプログラムを実行することで実現する機能の少なくとも一部を、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現してもよい。
 メモリ102は、コンピュータ100の主記憶装置として使用される。メモリ102には、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ102には、プロセッサ101による処理に利用する各種データが格納される。メモリ102としては、例えばRAM(Random Access Memory)などの揮発性の半導体記憶装置が使用される。
 バス109に接続されている周辺機器としては、ストレージ装置103、GPU(Graphics Processing Unit)104、入力インタフェース105、光学ドライブ装置106、機器接続インタフェース107およびネットワークインタフェース108がある。
 ストレージ装置103は、内蔵した記録媒体に対して、電気的または磁気的にデータの書き込みおよび読み出しを行う。ストレージ装置103は、コンピュータ100の補助記憶装置として使用される。ストレージ装置103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、ストレージ装置103としては、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)を使用することができる。
 GPU104は画像処理を行う演算装置であり、グラフィックコントローラとも呼ばれる。GPU104には、モニタ21が接続されている。GPU104は、プロセッサ101からの命令に従って、画像をモニタ21の画面に表示させる。モニタ21としては、有機EL(Electro Luminescence)を用いた表示装置や液晶表示装置などがある。
 入力インタフェース105には、キーボード22とマウス23とが接続されている。入力インタフェース105は、キーボード22やマウス23から送られてくる信号をプロセッサ101に送信する。なお、マウス23は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
 光学ドライブ装置106は、レーザ光などを利用して、光ディスク24に記録されたデータの読み取り、または光ディスク24へのデータの書き込みを行う。光ディスク24は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク24には、DVD(Digital Versatile Disc)、DVD-RAM、CD-ROM(Compact Disc Read Only Memory)、CD-R(Recordable)/RW(ReWritable)などがある。
 機器接続インタフェース107は、コンピュータ100に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース107には、メモリ装置25やメモリリーダライタ26を接続することができる。メモリ装置25は、機器接続インタフェース107との通信機能を搭載した記録媒体である。メモリリーダライタ26は、メモリカード27へのデータの書き込み、またはメモリカード27からのデータの読み出しを行う装置である。メモリカード27は、カード型の記録媒体である。
 ネットワークインタフェース108は、ネットワーク20に接続されている。ネットワークインタフェース108は、ネットワーク20を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。ネットワークインタフェース108は、例えばスイッチやルータなどの有線通信装置にケーブルで接続される有線通信インタフェースである。またネットワークインタフェース108は、基地局やアクセスポイントなどの無線通信装置に電波によって通信接続される無線通信インタフェースであってもよい。
 コンピュータ100は、以上のようなハードウェアによって、第2の実施の形態の処理機能を実現することができる。なお、第1の実施の形態に示した情報処理装置10も、図2に示したコンピュータ100と同様のハードウェアにより実現することができる。
 コンピュータ100は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。コンピュータ100に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、コンピュータ100に実行させるプログラムをストレージ装置103に格納しておくことができる。プロセッサ101は、ストレージ装置103内のプログラムの少なくとも一部をメモリ102にロードし、プログラムを実行する。またコンピュータ100に実行させるプログラムを、光ディスク24、メモリ装置25、メモリカード27などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ101からの制御により、ストレージ装置103にインストールされた後、実行可能となる。またプロセッサ101が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
 以下、表面符号シミュレーションの説明の前に、図3~図17を参照し、量子コンピュータにおける表面符号によるエラー訂正と論理エラーの発生原因について説明する。
 図3は、量子ビットを説明する図である。量子ビットとは、従来のコンピュータでの情報量の最小単位「ビット」(古典ビット)に対応する量子情報の最小単位である。量子ビットは、「0」と「1」の量子力学的な重ね合わせ状態(量子状態)を取る。量子ビットの量子状態は、数学的には以下の式(1)に示すような2次元ベクトルで表され、|0>,|1>がそれぞれ古典ビットの「0」と「1」の状態に対応する。
Figure JPOXMLDOC01-appb-M000001
 αとβとを実数φ,θ、虚数単位iを用いて式(2)のように書き直すと、量子ビットは図3に示すブロッホ球31で表現される。
Figure JPOXMLDOC01-appb-M000002
 古典ビットでは「0」か「1」の状態だけなのに対し、量子ビットはブロッホ球31面上の任意の状態を取ることができる。量子ゲート方式の量子コンピュータでは、量子ビットに対してゲート操作を行うことで、目的に沿った計算を進めることができる。
 ゲート操作は量子状態を変更する操作であり、数学的には量子状態のベクトルに行列演算子を作用させることとして表現される。ゲート操作としては、例えば量子ビットのビット反転を行うXゲートがある。Xゲートによる操作を数式で表すと以下の通りである。
Figure JPOXMLDOC01-appb-M000003
 また量子ビットの位相反転を行うZゲートによる操作を数式で表すと以下の通りである。
Figure JPOXMLDOC01-appb-M000004
 Xゲート操作、Zゲート操作それぞれに対応する行列演算子は、パウリ演算子として知られている。パウリ演算子としては、以下の3つの行列演算子がある。
Figure JPOXMLDOC01-appb-M000005
 パウリ演算子の積に関しては(XY=-YX,YZ=-ZY,ZX=-XZ)という性質がある。このような関係が満たされることは、反交換関係を満たすと呼ばれる。また、マイナス符号を伴わない関係(例えば恒等演算子Iとの関係XI=IX)を満たすことは、交換関係を満たすと呼ばれる。
 ゲート操作に用いる演算子としては、他にHadamard演算子がある。Hadamard演算子は、|0>と|1>に重ね合わせ状態を作り出すゲート操作に用いられる。Hadamard演算子は、以下の式(6)で表される。
Figure JPOXMLDOC01-appb-M000006
 以上の行列演算子は、1量子ビットに作用する行列演算子である。2量子ビットに作用する演算子もある。
 2量子ビットの状態は1量子ビット状態のテンソル積「|a>×|b>」(テンソル積×は丸の中に×の記号)と表され、通常|ab>と書かれるこれは2×2の4次元ベクトルである。2量子ビットに作用する行列演算子としては、例えばCNOT演算子がある。
 CNOT演算子は、片方の量子ビット(コンロトロール量子ビット)が1のとき、もう片方の量子ビット(ターゲット量子ビット)をビット反転させる(|10>→|11>)。2量子ビットの状態が4次元ベクトルのため、対応する行列演算子は4×4次元となる。CNOT演算子は、以下の式で表される。
Figure JPOXMLDOC01-appb-M000007
 複数の量子ビットに対するゲート操作をまとめて表現するために量子回路が用いられる。量子回路では、量子ビットの状態遷移が線で表され、各ゲート操作が対応する記号で表される。
 図4は、量子回路の一例を示す図である。量子回路32の横線それぞれが量子ビットに対応する。横線の左側に量子ビットへの入力が示されている。各横線の上に、対応する量子ビットに対するゲート操作を示す記号が、時系列順に横方向(左から右)に並べられている。横線の右側のメータのような記号32a,32bは測定操作を示している。
 量子回路32に示されているゲート操作のうち、例えば矩形で囲まれたXの記号32cは、パウリ演算子「X」(Xゲート操作)を示している。矩形で囲まれたZの記号32dは、パウリ演算子「Z」(Zゲート操作)を示している。矩形で囲まれたHの記号32eは、Hadamard演算子「H」(Hadamardゲート操作)を示している。
 2量子ビットに対するゲート操作は、複数の横線を跨がって記載される。例えばCNOT演算子CXに対応するゲート操作を示す記号32f,32gは、中に+を有する白丸と黒丸とを線で接続したものである。黒丸はコントロール量子ビットの横線の上に配置され、中に+を有する白丸はターゲット量子ビットの横線上に配置される。
 例えば図4に示す量子回路32は、状態|ψφ>の2つの量子ビットにゲート操作「CX(2,1)(1)X(1,2)(2)(1)」を行うことを示している。ゲート操作を示す式では右から左の順で作用させる行列演算子が記載される。行列演算子の右下の添字は作用させる量子ビットの番号である。
 量子コンピュータでは、量子回路32で示されるゲート操作が順番に実行される。その際、量子ビットにエラーが発生する可能性がある。正しい計算結果を得るには、エラーの発生を検出し、そのエラーを訂正できることが重要となる。
 図5は、量子ビットにおけるエラー発生状況の一例を示す図である。量子ビット33はさまざまなノイズの影響を受ける。ノイズの種類としては、環境ノイズ、量子ビット操作時のノイズ、他の量子ビットからの干渉などがある。量子ビット33はノイズの影響で状態が意図せずに変化する可能性がある。このような意図しない状態の変化が量子ビットのエラーである。量子ビットに発生するエラーの種類は以下の2種類に分類される。
・ビット反転エラー(Xエラー):|0>→|1>、|1>→|0>
・位相反転エラー(Zエラー):|+>→|->、|->→|+>
 ビット反転エラーは、数学的には量子状態にパウリ演算子Xを作用させることと同じである。同様に位相反転エラーは、量子状態にパウリ演算子Zを作用させることと同じである。
 すなわち、量子ビットのエラーはエラーと同じパウリ演算子(X,Z)を作用させることで訂正が可能である。このような操作を量子エラー訂正という。例えばXエラーが発生した量子ビットに対するパウリ演算子Xによる訂正を行う場合を想定する。Xエラーは以下の式(8)で表され、訂正のゲート操作は式(9)で表される。
Figure JPOXMLDOC01-appb-M000008
Figure JPOXMLDOC01-appb-M000009
 エラー発生と訂正とにより、量子状態は「|0>→|1>→|0>」のように変化する。このようなエラー訂正を行うには、エラーが発生した量子ビット(エラー量子ビット)とエラーの内容(ビット反転(Xエラー)なのか位相反転(Zエラー)なのか)を特定することが求められる。そこでエラー量子ビットの特定とエラー内容特定のため、量子ビットの冗長化が行われる。
 図6は、量子ビットの冗長化の一例を示す図である。図6には、8量子ビットを用いた冗長化の例が示されている。量子ビットを冗長化した場合、1つの量子ビット34で表されていた量子状態|ψ>が、論理量子ビット35による論理量子状態|ψ>Lで表される。論理量子ビット35は、複数の量子ビット35a~35hで構成される。
 ここで、論理量子ビット35を構成する1つの量子ビット35hにエラーが発生したものとする。この場合、エラー量子ビットとエラー内容との特定処理により、エラー量子ビットとエラー内容が特定される。
 量子ビット35hがエラー量子ビットであると正しく特定され、エラー内容も正しく特定された場合、量子ビット35hにエラー訂正のゲート操作が行われる。エラー訂正により、論理量子ビット35の状態が、エラーが発生していない場合の状態に訂正される。
 図6の例では、エラー量子ビットを正しく特定できたものとしているが、エラー量子ビットの特定は簡単ではない。エラー量子ビットの特定には、論理量子ビット35を構成する量子ビット35a~35hの状態に関する情報が用いられるが、量子ビットを直接測定すると量子状態が壊れて計算を続けられなくなってしまう。そのため補助量子ビットが導入され、補助量子ビットの状態を測定することで論理量子ビット35を構成する量子ビット35a~35hの状態に関する情報が取得される。
 図7は、補助量子ビットを用いた測定の一例を示す図である。量子ビット36の状態を補助量子ビット37にコピーすることはできない。そこで量子ビット36と補助量子ビット37とに対して2量子ビット操作が行われる。2量子ビット操作により、量子ビット36の状態に応じて補助量子ビット37の状態を変化させる。補助量子ビット37の状態を測定することで、補助量子ビット37の初期状態からの変化を検知できる。補助量子ビット37が初期状態から変化したか否かにより、量子ビット36の状態を知ることができる。
 補助量子ビットを用いて得られる量子ビットの状態に基づいてエラー量子ビットを特定する手法として表面符号がある。表面符号は、量子エラー訂正における代表的な符号化(冗長化)の手法である。
 図8は、表面符号を行うための量子ビットの構成の一例を示す図である。図8の例では、量子ビットが2次元の格子状に並べられている。データ量子ビット40a~40fと補助量子ビット41a~41d,42a~42dは行方向と列方向のそれぞれにおいて交互に並べられている。補助量子ビット41a~41d,42a~42dは、Xエラー検知用の補助量子ビット41a~41dとZエラー検知用の補助量子ビット42a~42dとに分けられる。そして1列ごとにXエラー検知用の補助量子ビット41a~41dとZエラー検知用の補助量子ビット42a~42dとが交互に配置されている。
 なお図8に示す量子ビットは、表面符号によるエラー訂正に用いる量子ビットの一部である。表面符号によるエラー訂正を行う場合、エラー訂正に用いる全量子ビットを含む2次元格子の1辺の量子数(データ量子ビットと補助量子ビットの合計)は奇数であり、4つの角に配置されるのはデータ量子ビットである(図11参照)。
 最初に論理量子状態を適切に初期化し、エラー検知の際、1つの補助量子ビットと周囲4つのデータ量子ビットとの間にゲート操作(2量子ビット操作)を行い、補助量子ビットの測定を行うことで、エラーの有無が検知できる。
 図9は、Xエラー検知のゲート操作の一例を示す図である。例えば補助量子ビット41dを用いて、補助量子ビット41dに隣接するデータ量子ビット40d,40e,40h,40fのいずれかにおけるエラーを検知する場合を想定する。ここでデータ量子ビット40dの識別子を「a」、データ量子ビット40eの識別子を「b」、データ量子ビット40hの識別子を「c」、データ量子ビット40fの識別子を「d」、補助量子ビット41dの識別子を「e」とする。
 これらの量子ビットに対して、量子回路43に示すようなゲート操作を行うことで、データ量子ビット40d,40e,40h,40fのXエラー検知が可能となる。量子回路43には、データ量子ビット40d,40e,40h,40fそれぞれをコントロール量子ビットとし、補助量子ビット41dをターゲット量子ビットとするCNOTゲート操作を行うことが示されている。このようなゲート操作により、データ量子ビット40d,40e,40h,40fのうちの1つでXエラーが発生していた場合、補助量子ビット41dが初期状態から変化する。図6の例では、補助量子ビット41dの初期状態は|0>であるため、補助量子ビット41dの測定により|1>の状態が検知された場合には、データ量子ビット40d,40e,40h,40fのいずれかでXエラーが発生していると判定できる。
 図10は、Zエラー検知のゲート操作の一例を示す図である。例えば補助量子ビット42aを用いて、補助量子ビット42aに隣接するデータ量子ビット40a,40c,40d,40eのいずれかにおけるエラーを検知する場合を想定する。ここでデータ量子ビット40aの識別子を「g」、データ量子ビット40cの識別子を「f」、補助量子ビット42aの識別子を「h」とする。図9に示したように、データ量子ビット40dの識別子は「a」であり、データ量子ビット40eの識別子は「b」である。
 これらの量子ビットに対して、量子回路44に示すようなゲート操作を行うことで、データ量子ビット40a,40c,40d,40eのZエラー検知が可能となる。量子回路44には、まず補助量子ビット42aにHadamardゲート操作を行うことが示されている。その後、データ量子ビット40a,40c,40d,40eそれぞれをターゲット量子ビットとし、補助量子ビット42aをコントロール量子ビットとするCNOTゲート操作が行われる。さらに補助量子ビット42aにHadamardゲート操作が行われる。なお量子回路44に示される状況では、Zエラーが発生したデータ量子ビットと補助量子ビット42aとの間のCNOTゲート操作では、通常とは逆に、ターゲット量子ビットの状態に応じてコントロール量子ビットである補助量子ビット42aの状態が変化する。
 このようなゲート操作により、データ量子ビット40a,40c,40d,40eのうちの1つでZエラーが発生していた場合、補助量子ビット42aが初期状態から変化する。図6の例では、補助量子ビット42aの初期状態は|0>であるため、補助量子ビット42aの測定により|1>の状態が検知された場合には、データ量子ビット40a,40c,40d,40eのいずれかでZエラーが発生していると判定できる。
 次に、データ量子ビットの初期化について説明する。論理量子状態|ψ>Lを任意に決めると、図9または図10に示したエラー検知のためのゲート操作によって、エラーが無い場合にもデータ量子ビットと補助量子ビットの状態が変化してしまう。それを回避するため、論理量子状態|ψ>Lは、スタビライザ演算子の固有状態(固有値は+1もしくは-1)になるように初期化される。スタビライザ演算子は、補助量子ビットの周囲4つのデータ量子ビットに作用するZ演算子またはX演算子の積である。
 例えば図9に示すXエラー検知用のスタビライザ演算子は「Z(i1)(i2)(i3)(i4)|ψ>L=±|ψ>L」となる。iはXエラー検知用の補助量子ビットのインデックスである。iの右の数字は、補助量子ビットの周囲のデータ量子ビットを区別する数字である。例えば補助量子ビットを基準として、上のデータ量子ビットが「1」、左のデータ量子ビットが「2」、下のデータ量子ビットが「3」、右のデータ量子ビットが「4」となる。例えばZ(i1)は、i番目の補助量子ビットの上のデータ量子ビットに作用するZ演算子を示している。
 また図10に示すZエラー検知用のスタビライザ演算子は「X(j1)(j2)(j3)(j4)|ψ>L=±|ψ>L」となる。jはZエラー検知用の補助量子ビットのインデックスである。jの右の数字は、補助量子ビットの周囲のデータ量子ビットを区別する数字である。
 このように論理量子状態|ψ>Lの初期化により、補助量子ビットを測定しても量子ビットの状態は影響を受けない。
 次に論理量子ビットの計算について説明する。エラー検知は計算の合間に頻繁に行われる処理である。そのため、論理量子状態は初期状態だけでなく、計算中もスタビライザ演算子の固有状態に保たれていなければならない。従って論理量子ビットに対する操作を行う場合、スタビライザ演算子の固有状態を壊すことなく論理量子状態を変化させる演算子が用いられる。それらの演算子は論理演算子と呼ばれている。
 論理演算子には論理Z演算子Lz、論理X演算子Lxなどがある。これらの論理演算子は以下の性質を満たす。
 第1の性質は、論理演算子はすべてのスタビライザ演算子と交換関係を満たすことである。例えば論理Z演算子Lzに関し、スタビライザ演算子をS、論理量子状態|ψ>LをSの固有状態(S|ψ>L=|ψ>L)とする。この場合、交換関係SLz=LzSより、SLz|ψ>L=LzS|ψ>L=Lz|ψ>Lとなる。Lz|ψ>Lは元の|ψ>Lとは異なるがSの固有状態に保たれている。
 第2の性質は、Lx,Lzは反交換関係を満たすことである。すなわち「LxLz=-LzLx」が満たされる。
 図11は、論理Z演算子Lzと論理X演算子Lxの数学的表現を説明する図である。論理量子ビットを構成する格子状の量子ビットの配列における左右および上下の境界のうち、Xエラー検出用の補助量子ビットが並んでいる境界はラフ境界45,46と呼ばれる。またZエラー検出用の補助量子ビットが並んでいる境界はスムーズ境界47,48と呼ばれる。
 論理Z演算子Lzは、数学的には、一方のラフ境界45から反対側のラフ境界46までのデータ量子ビット分のZ演算子の積で表される。論理Z演算子Lzは、論理量子状態を位相反転させる(Lz|0>L=|0>L、Lz|1>L=-|1>L)。
 論理X演算子Lxは、数学的には、一方のスムーズ境界47から反対側のスムーズ境界48までのデータ量子ビット分のX演算子の積で表される。論理X演算子Lxは、論理量子状態をビット反転させる(Lx|0>L=|1>L、Lx|1>L=|0>L)。
 次に表面符号によるエラー検知方法について説明する。表面符号において、1つのデータ量子ビットにXエラーが起こった場合、状態|ψ>Lはスタビライザ演算子の固有値が異なる固有状態|ψ’>Lに変化する。
 図12は、Xエラー検知の一例を示す図である。例えば|ψ>Lが固有値+1の場合、i番目の補助量子ビットの周囲のデータ量子ビットの1つでXエラーが発生すると「|ψ’>L=X(i1)|ψ>L」となる。図12の例では、データ量子ビット40dにエラーが発生しているものとする。
 このときエラーが発生したデータ量子ビット40dに、補助量子ビット41d周囲のZスタビライザ演算子を作用させると「Z(i1)(i2)(i3)(i4)|ψ’>L」と表される。この式は「|ψ’>L=X(i1)|ψ>L」の関係を用いて以下のように変形できる。
 Z(i1)(i2)(i3)(i4)|ψ’>L=Z(i1)(i2)(i3)(i4)(i1)|ψ>L=Z(i1)(i1)(i2)(i3)(i4)|ψ>L
 Z演算子とZ演算子は反交換関係を満たすので、さらに以下の様に変形できる。
 Z(i1)(i1)(i2)(i3)(i4)|ψ>L=-X(i1)(i1)(i2)(i3)(i4)|ψ>L=-X(i1)|ψ>L=-|ψ’>L
 「-|ψ’>L」は、固有値が「-1」に変化していることを示している。この固有値の変化は、量子回路43を用いることで、補助量子ビット41dのビット反転として検知できる(|ψ>L=|0000>+|1111>で初期化)。
 このようにして、補助量子ビットを測定することで、その周囲のデータ量子ビットの1つにおけるエラーの発生が検知できることが説明できる。ただし、1つの補助量子ビットだけでは、その周囲のデータ量子ビットのどれでエラーが発生したのかが分からない。そこで複数の補助量子ビットのうちエラーを検出した2以上の補助量子ビットの位置関係に基づいて、エラーが発生したデータ量子ビットが特定される。
 図13は、エラー箇所特定の一例を示す図である。図13ではZエラーのエラー箇所の特定例を示しているがXエラーに関しても同様のエラー箇所を特定可能である。図13では、補助量子ビットのうち、Xエラー検知用の補助量子ビットが省略されている(図14~図20においても同様)。
 ここで、データ量子ビット51においてZエラーが発生したものとする。エラー検知処理では、すべての補助量子ビットについて、図10に示した量子回路44と同様のゲート操作によりエラー検知が行われ、状態が測定される。図13では、測定対象の補助量子ビットと、その補助量子ビットによるエラー検知対象のデータ量子ビットとを円で囲んでいる。
 エラーが発生したデータ量子ビット51は、2つの補助量子ビット52,53それぞれと同じ円内にある。この場合、補助量子ビット52,53は、測定によって状態が反転したことが検知される。補助量子ビット52,53の状態が反転したことで、それらに挟まれた位置にあるデータ量子ビット51が、エラー発生箇所として特定される。そこでデータ量子ビット51に対してエラー訂正の操作(Zゲート操作)が行われる。
 このように、エラー箇所が1箇所だけであれば、エラー箇所を一意に特定可能である。しかし、2つ以上のエラーが発生し、エラー発生箇所が接近している場合、エラー発生箇所を一意に特定できない可能性がある。
 なお接近した2箇所で発生したエラー訂正に成功する場合もある。格子状に並べた量子ビットのうち、格子のある一辺のデータ量子ビットにエラーが複数個起こった場合、そのエラーの数が格子一辺分のデータ量子ビット数の半分よりも少なければ、エラー訂正に成功できることが知られている。例えば一辺のデータ量子ビット数が9の格子であれば、偶然ある一辺にエラーが集中して発生したとしても、4個までであれば原理的にはエラー訂正が可能である。逆に、5個以上のエラーが起こった場合は、表面符号の理論に従い、残りの4個が間違って訂正される。その結果、その一辺のデータ量子ビットがすべて反転した形になる。この状態は論理エラーが発生した状態である。このように、十分多数のデータ量子ビットにエラーが発生した場合には、論理エラーとなる可能性が高い。
 図14は、エラー発生箇所を一意に特定できない場合の一例を示す図である。図14の例では、2箇所のデータ量子ビットでエラーが発生している。エラーが発生したデータ量子ビット間の位置は1行3列の差がある。この場合、エラーが発生したデータ量子ビットのいずれかに隣接する4つの補助量子ビットの状態が反転する(測定情報が「-1」となる)。反転した4つの補助量子ビットに基づいて、エラー量子ビットの位置の特定を試みることとなる。
 反転した4つの補助量子ビットを反転させ、それ以外の補助量子ビットを反転させないエラーの発生パターンは3通りある。第1のエラー発生パターン61は、エラーが発生データ量子ビットを正しく特定した場合の例である。第2のエラー発生パターン62と第3のエラー発生パターン63は、エラーが発生データ量子ビットを正しく特定できていない場合の例である。
 このように、反転した4つの補助量子ビットを反転させ、それ以外の補助量子ビットを反転させないエラーの発生パターンが複数存在する場合、エラー箇所を一意に決められない。ただし、量子エラー訂正においては、エラーが発生したデータ量子ビットを正しく特定できなくても、エラー訂正により論理量子状態を正しい状態に維持できればよい。そして、所定の条件を満たせば、エラーが発生したデータ量子ビットと異なるデータ量子ビットを訂正することによって、論理量子状態を正しい状態にすることができる。
 図15は、エラーが発生した箇所とは別のデータ量子ビットを訂正することによるエラー訂正の一例を示す図である。図15では、2箇所のデータ量子ビット64,65でエラーが発生している。これらのデータ量子ビット64,65の行方向に1行ずれており、列方向にも1行ずれている。この場合、エラー検知により、データ量子ビット64の上に隣接する補助量子ビット66の状態が反転するとともに、データ量子ビット65の右に隣接する補助量子ビット67の状態が反転する。なおデータ量子ビット64の下に隣接する補助量子ビット70はデータ量子ビット65の左に隣接しているため、状態は反転しない。
 このとき、補助量子ビット66,67が反転し、その他の補助量子ビットが反転しないようなエラーの発生パターンとして、データ量子ビット64,65でエラーが発生した場合以外に、データ量子ビット68,69でエラーが発生した場合がある。ここでエラーが発生したデータ量子ビット64,65ではなく、データ量子ビット68,69に対してエラー訂正操作を行ったものとする。
 すると、エラー訂正を行ったデータ量子ビット68,69とエラー未訂正のデータ量子ビット64,65とでループ72が形成される。ここでループ72が形成されるとは、誤って訂正したデータ量子ビットおよびエラー未訂正のデータ量子ビットのうち、共通のZエラー検知用の補助量子ビットに隣接するデータ量子ビット同士を線で結んだとき、閉曲線が形成されることである。なおXエラーを修正する場合には、誤って訂正したデータ量子ビットおよびエラー未訂正のデータ量子ビットのうち、共通のZエラー検知用の補助量子ビットに隣接するデータ量子ビット同士を線で結ぶことでループ72が形成される。
 図15の例では、エラー未訂正の2つのデータ量子ビット64,65は共に補助量子ビット70に隣接しているため、線で結ぶことができる。エラー未訂正のデータ量子ビット65と誤って訂正したデータ量子ビット69とは共に補助量子ビット67に隣接しているため、線で結ぶことができる。誤って訂正した2つのデータ量子ビット68,69は共に補助量子ビット71に隣接しているため、線で結ぶことができる。誤って訂正したデータ量子ビット68とエラー未訂正のデータ量子ビット64とは共に補助量子ビット66に隣接しているため、線で結ぶことができる。その結果、エラー未訂正のデータ量子ビット64,65と誤って訂正したデータ量子ビット68,69とを接続する線が閉曲線を形成する。すなわち、ループ72が形成される。
 ループは複数形成されていてもよい。誤って訂正したデータ量子ビットおよびエラー未訂正のデータ量子ビットのすべてがいずれかのループに属している場合、論理量子状態は元の状態(エラーが発生したデータ量子ビットを正しく訂正した状態)に保たれる。すなわち、ループが形成された場合、エラー未訂正のデータ量子ビット64,65とエラー訂正を行ったデータ量子ビット68,69は、数学的にはどちらもZ演算子が作用した状態であり、それらは1つのスタビライザ演算子S=ZZZZを形成する。論理量子状態|ψ>Lはスタビライザ演算子Sの固有状態(S|ψ>L=|ψ>L)なので、論理量子状態|ψ>Lは元の固有値の固有状態に保たれる。
 このように量子エラー訂正においては、訂正した箇所と実際のエラー箇所が一致していなくても、ループが形成されていればよい。
 図16は、エラー訂正成功パターンの例を示す図である。エラー訂正成功パターン75は、エラーが発生したデータ量子ビットと訂正したデータ量子ビットとが完全に一致した場合である。またエラー訂正成功パターン76,77は、エラー未訂正のデータ量子ビットと誤って訂正したデータ量子ビットとでループが形成されていることでエラー訂正に成功した場合である。このように、表面符号でエラー訂正を成功させるには、訂正箇所と実際のエラー箇所が完全一致するか、ループが形成されていることが要件となる。
 ここで、補助量子ビットの周囲における訂正されたデータ量子ビットの数に着目する。すると、エラー訂正が成功した状態では、反転した補助量子ビットの周囲では奇数個のデータ量子ビットが訂正されている。また反転していない補助量子ビットの周囲では偶数個のデータ量子ビットが訂正されている。このような性質は偶奇の制約と呼ばれる。
 例えばエラー訂正成功パターン75における反転した補助量子ビット75a,75bそれぞれの周囲で訂正されたデータ量子ビットの数は、いずれも「1」(奇数)である。また反転していない補助量子ビット75cの周囲で訂正されたデータ量子ビットの数は「0」(偶数)である。エラー訂正成功パターン76における反転した補助量子ビット76a,76bそれぞれの周囲で訂正されたデータ量子ビットの数は、いずれも「1」(奇数)である。また反転していない補助量子ビット76cの周囲で訂正されたデータ量子ビットの数は「0」(偶数)である。エラー訂正成功パターン77における反転した補助量子ビット77f,77gそれぞれの周囲で訂正されたデータ量子ビットの数は、いずれも「1」(奇数)である。また反転していない補助量子ビット77a~77eそれぞれの周囲で訂正されたデータ量子ビットの数は、いずれも「2」(偶数)である。
 ただし、このような偶奇の制約はエラー訂正成功の必要条件であり、十分条件ではない。すなわち、エラー訂正後、たとえ偶奇の制約が守られていても、エラー訂正に失敗している場合がある。その場合、エラーもしくは誤訂正によって反転したデータ量子ビットの並びがループにならず、一方の境界から反対側の境界までつながった状態になる。数学的には、これは論理量子状態|ψ>Lに論理Z演算子Lzもしくは論理X演算子Lxが作用した状態であり、論理エラーと呼ばれる。
 図17は、誤訂正による論理エラーの一例を示す図である。図17に示すエラー発生パターン78では、同じ列上の1つのデータ量子ビット78a~78cでZエラーが発生している。この場合、同じ列上でデータ量子ビット78a~78cいずれかに隣接する補助量子ビット78d~78hの状態が反転する。このとき、エラー訂正により、エラーが発生したデータ量子ビット78a~78cとは別のデータ量子ビット78i~78kに対してエラー訂正操作を行ったものとする。このようなエラー訂正であっても偶奇の制約は守られている。しかし、エラーが発生したデータ量子ビット78a~78cと訂正したデータ量子ビット78i~78kとは一致しておらず、ループも形成されていない。すなわち誤訂正による論理エラーとなっている。
 論理エラーが発生してしまうと、正しい計算を行うことができない。表面符号においてどの程度の頻度で論理エラーが発生するのかは、論理量子ビットを構成する量子ビット数、各量子ビットのエラー発生頻度などに依存する。量子コンピュータ実機ではデータ量子ビットそのものを測定しないと論理エラーかどうか判定できず、その発生頻度も把握することができない。しかし、古典コンピュータを用いた表面符号によるエラー訂正のシミュレーションであれば、エラーの発生箇所があらかじめ分かるので、論理エラーの発生の有無を判別することが可能である。論理エラーの発生の有無は、エラーが発生したデータ量子ビットのつながり(エラーチェイン)を探索することで判別可能である。
 以下、表面符号のシミュレーションの有用性について説明する。
 現時点では100量子ビット以上の量子コンピュータは存在しない。そのため現状では、表面符号を用いた大規模な量子エラー訂正を実機により検証することはできない。ただし、将来的な大規模量子ビットを備えた量子コンピュータの実現に向けて、量子エラー訂正の検討は現時点から進めておくことが重要である。そのため、現状では表面符号を用いた大規模な量子エラー訂正を古典コンピュータによるシミュレーションで再現し、エラー訂正の適切さを検証することが有効となる。
 大規模な量子コンピュータを想定して表面符号による量子エラー訂正のシミュレーション(以下、表面符号シミュレーションと呼ぶ)を行う場合、論理エラー発生の有無の判定を効率的に実行できることが望まれる。
 図18は、エラーチェインの探索による論理エラー判定の一例を示す図である。表面符号を古典コンピュータでシミュレーションし、論理エラーを判定する際、コンピュータは、2次元格子上でエラーチェインが一方の境界からもう一方の境界までつながっているかどうかを探索する。具体的には、コンピュータは、まず境界のデータ量子ビットのうち反転しているものがあれば、そのデータ量子ビットを探索の起点とする。図18の例では、データ量子ビット78aが探索の起点である。
 次にコンピュータは、起点のデータ量子ビット78aから順に、同じ補助量子ビットに隣接するデータ量子ビットが反転しているか否かを判定していく。コンピュータは、状態が反転しているデータ量子ビットと同じ補助量子ビットに隣接するデータ量子ビットの状態が反転していれば、そのデータ量子ビットをエラーチェインに繋げる。そしてコンピュータは、最終的にエラーチェインが反対側の境界にあるデータ量子ビット78iとつながっていれば論理エラーであると判定する。
 図18に示したような論理エラーの判定の場合、エラーの数が多くなるほど探索の回数が増えてしまう。また2次元格子の1辺のデータ量子ビット数をN(Nは自然数)とすると、Nが十分大きいとき探索回数はNの指数関数的に増加する。すると、大規模な表面符号シミュレーションを行う際に、論理エラー判定の時間が長くなり、実行効率が悪化する。
 そこで第2の実施の形態に係るコンピュータ100は、2次元格子1列分のデータ量子ビットの状態データのみで論理エラーの有無を判定する。
 図19は、2次元格子1列分のデータ量子ビットの状態データに基づく論理エラー判定の一例を示す図である。図17に示したエラー発生パターン78と同様のエラーが発生した場合における3通りのエラー訂正パターンを示している。エラー訂正成功パターン81-1は、エラーが発生したデータ量子ビット81a~81cについて、完全一致でデータ訂正を行った場合の例である。エラー訂正成功パターン81-2は、エラーが発生したデータ量子ビット81a,81cとエラーが発生していないデータ量子ビット81d~81fのデータ訂正を行っているが、ループが形成されることでエラー訂正に成功した例である。エラー訂正失敗パターン81-3は、エラーが発生していないデータ量子ビット81g~81iのデータ訂正を行ったことによる論理エラーの発生例である。
 図19に示すように、エラー訂正の結果、偶奇の制約が守られていればデータ量子ビットの状態は以下のどれかになる。
1.エラー量子ビットが完全に訂正されている。
2.反転量子ビット(エラー未訂正のデータ量子ビットと誤訂正のデータ量子ビット)がループを形成している。
3.論理エラーが起きている。
 コンピュータは、図19における2次元格子の一列(調査対象列82a~82c)のデータ量子ビットのうちの反転量子ビットの数が偶数もしくは奇数のどちらかになるかを調査する。なお調査対象列82a~82cは、例えばスムーズ境界にデータ量子ビットが存在する列の中から任意の列が選択される。
 エラー訂正成功パターン81-1では、調査対象列82aの反転量子ビットの数は「0」(偶数)である。エラー訂正成功パターン81-2では、調査対象列82bの反転量子ビットの数は「2」(偶数)である。エラー訂正失敗パターン81-3では、調査対象列82cの反転量子ビットの数は「1」(奇数)である。
 このように、エラー訂正に成功している場合には、調査対象列内の反転量子ビットの数が偶数となり、論理エラーが発生する場合には、調査対象列内の反転量子ビットの数が奇数となる。そこでコンピュータ100は、縦一列の反転量子ビット数が奇数の場合に論理エラーと判定する。
 縦一列の反転量子ビット数が奇数の場合に論理エラーと判定することが正しい理由は以下の通りである。
 図20は、縦一列の反転量子ビット数が奇数の場合に論理エラーとなることを説明する図である。図20には、2次元格子配列に論理Z演算子Lzが作用した状態83と、2次元格子配列に論理X演算子Lxが作用した状態84とが示されている。
 ここで、論理量子状態を|ψ>Lとし、Zエラーの発生と訂正を通じて|ψ>Lに作用する演算子をまとめてAzとする。この場合、論理エラーが発生したかどうかは、Azが論理Z演算子Lzに等しいかどうかで判定できる。
 前述したように、論理Z演算子Lzは以下の性質を有する。
・Lzはすべてのスタビライザ演算子と交換関係を満たす。
・LzとLxは反交換関係(LzLx=-LxLz)を満たす。
 偶奇の制約が満たされていれば、Azは常にすべてのスタビライザ演算子との交換関係を満たす。もしAzが論理X演算子Lxと反交換関係を満たせば、AzはLzに等しいといえる。例えばスムーズ境界間のデータ量子ビット数が3の場合、Lx=X123である。AzがLxと反交換関係を満たすためには、Az=Z1、Az=Z2、Az=Z3、もしくはAz=Z123であることが要求される。これは、Zの数(=反転量子ビット数)が奇数であることを示す。
 以上の説明はZエラーにおける論理エラー判定方法であるが、Xエラーにおける論理エラー判定も同様の方法で行うことができる。Xエラーにおける論理エラー判定では、格子1行(調査対象行)のデータ量子ビットに基づいて論理エラーを判定することとなる。
 図21は、論理エラー判定に用いられるデータ量子ビットの一例を示す図である。図21の例では、ラフ境界が列方向の辺である、スムーズ境界が行方向の辺である。この場合、スムーズ境界にデータ量子ビットが存在する列のうちの任意の1列が、Zエラーの論理エラー判定に使用する調査対象列85となる。またラフ境界にデータ量子ビットが存在する行のうちの任意の1行が、Xエラーの論理エラー判定に使用する調査対象行86となる。
 以下、反転量子ビット数に基づく論理エラー判定を伴う表面符号シミュレーションについて具体的に説明する。
 図22は、表面符号シミュレーションを実施するためのコンピュータの機能を示すブロック図である。コンピュータ100は、記憶部110、表面符号シミュレーション管理部120、エラー発生状態生成部130、エラー訂正部140、および論理エラー判定部150を有する。
 記憶部110は、シミュレーション条件111およびシミュレーション結果112を記憶する。シミュレーション条件111には、例えば2次元格子のサイズ、量子ビットのエラー率などの情報が含まれる。シミュレーション結果112には、例えば論理エラー発生率などの情報が含まれる。
 表面符号シミュレーション管理部120は、表面符号シミュレーションの進行を管理する。例えば、シミュレーション条件111の入力を受け付け、入力されたシミュレーション条件111を記憶部110に格納する。また、表面符号シミュレーション管理部120は、エラー発生状態生成部130、エラー訂正部140、および論理エラー判定部150に、所定回数だけ表面符号シミュレーションを実行させる。さらに表面符号シミュレーション管理部120は、シミュレーション結果112を記憶部110に格納する。
 エラー発生状態生成部130は、シミュレーション条件111に従って2次元格子内のデータ量子ビットにXエラーまたはZエラーを発生させる。またエラー発生状態生成部130は、発生させたエラーに応じて、補助量子ビットの状態を反転させる。
 エラー訂正部140は、反転した補助量子ビットの状態に基づいてエラー訂正処理を行う。エラー訂正処理により、エラーが発生したものと推定されたデータ量子ビットの状態が反転する。
 論理エラー判定部150は、エラー訂正後の2次元格子に示される論理量子ビットの状態が論理エラーとなっているか否かを判定する。論理エラー判定部150は、判定結果を表面符号シミュレーション管理部120に通知する。
 なお、図22に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。また、図22に示した各要素の機能は、例えば、その要素に対応するプログラムモジュールをコンピュータに実行させることで実現することができる。
 次に、表面符号シミュレーションを利用した論理エラー判定処理の手順について詳細に説明する。
 図23は、表面符号シミュレーションを利用した論理エラー判定処理の手順の一例を示すフローチャートである。以下、図23に示す処理をステップ番号に沿って説明する。
 [ステップS101]表面符号シミュレーション管理部120は、ユーザからのシミュレーション条件111の入力を受け付ける。表面符号シミュレーション管理部120は、シミュレーション条件111が入力されると、そのシミュレーション条件111を記憶部110に格納する。
 [ステップS102]表面符号シミュレーション管理部120は、エラー発生状態生成部130、エラー訂正部140、および論理エラー判定部150と連係して、表面符号シミュレーションを実行する。表面符号シミュレーションの処理の詳細は後述する(図24参照)。表面符号シミュレーションにより、シミュレーション条件111に示された表面符号によるエラー訂正を実施した場合における論理エラーの発生の有無を示す情報が得られる。
 [ステップS103]表面符号シミュレーション管理部120は、表面符号シミュレーションを所定回数(例えば1万回)だけ繰り返したか否かを判断する。表面符号シミュレーション管理部120は、繰返し回数が所定回数に達した場合、処理をステップS104に進める。また表面符号シミュレーション管理部120は、繰返し回数が所定回数に満たない場合、処理をステップS102に進める。
 [ステップS104]表面符号シミュレーション管理部120は、所定回数分の表面符号シミュレーションで得られた論理エラーの有無を示す情報に基づいて、論理エラーの発生率を計算する。論理エラーの発生率は、例えば表面符号シミュレーションにより論理エラーが発生したと判定した回数を、表面符号シミュレーションの繰返し回数で除算した値である。
 またエラー発生パターンに応じて複数のデータ訂正パターンが存在する場合、表面符号シミュレーションにおいて、1つのエラー発生パターンに応じた複数のデータ訂正パターンそれぞれでの論理エラーの発生の有無を判定することもできる。この場合、表面符号シミュレーション管理部120は、例えばエラー発生パターンごとに、論理エラーの発生率を計算する。この場合の論理エラー発生率は、1つのエラー発生パターンに応じた複数のデータ訂正パターンのうちの、論理エラーと判定されたデータ訂正パターンの割合である。表面符号シミュレーション管理部120は、例えば複数のエラー発生パターンそれぞれの論理エラー発生率の平均を、シミュレーション結果112として算出する。そして表面符号シミュレーション管理部120は、論理エラーの発生率を含むシミュレーション結果112を記憶部110に格納する。
 このようにしてシミュレーション条件111に応じた論理エラーの発生率が得られる。
 図24は、シミュレーション条件の一例を示す図である。シミュレーション条件111には、例えば以下のデータが含まれる。
・データ量子ビットの状態データ:qi(i=1,・・・,Ndata
(Ndataは、データ量子ビットの数)
・補助量子ビットの状態データ:ai(i=1,・・・,Nsub
(Nsubは、データ量子ビットの数)
・Zエラー率データ:Rz
・Xエラー率データ:Rx
 Zエラー率データは、データ量子ビットにおいてZエラーが発生する確率を示すデータである。Xエラー率データは、データ量子ビットにおいてXエラーが発生する確率を示すデータである。
 次に表面符号シミュレーションの処理の詳細について説明する。
 図25は、表面符号シミュレーションの処理の手順の一例を示すフローチャートである。以下、図25に示す処理をステップ番号に沿って説明する。
 [ステップS111]表面符号シミュレーション管理部120は、記憶部110からシミュレーション条件111を取得する。表面符号シミュレーション管理部120は、取得したシミュレーション条件111に基づいて、矩形領域内に行方向と列方向とに等間隔に量子ビットを配置した2次元格子を示す量子ビット情報を生成する。量子ビット情報では、各量子ビットについての量子状態を示す状態データが含まれる。表面符号シミュレーション管理部120は、生成した量子ビット情報をエラー発生状態生成部130に送信し、2次元格子内のデータ量子ビットに対するエラー発生状態の生成を指示する。
 [ステップS112]エラー発生状態生成部130は、変数iを1から順に1ずつカウントアップしてNdataに達するまでのiの値ごとに、ステップS113~S115の処理を実行する。
 [ステップS113]エラー発生状態生成部130は、0より大きく1未満の乱数rを生成する。
 [ステップS114]エラー発生状態生成部130は、乱数rの値が、Zエラー率を示すRzより小さいか否かを判断する。エラー発生状態生成部130は、乱数rの値がRzより小さければ処理をステップS115に進める。またエラー発生状態生成部130は、乱数rの値がRz以上であれば処理をステップS116に進める。
 [ステップS115]エラー発生状態生成部130は、i番目のデータ量子ビットの状態の位相を反転させる。またエラー発生状態生成部130は、位相を反転させたデータ量子ビットに隣接するZエラー検知用の補助量子ビットの状態データ(j番目の補助量子ビットであればaj)の値を更新する(aj=-aj)。
 [ステップS116]エラー発生状態生成部130は、変数iの値がNdataに達していれば処理をステップS117に進める。
 [ステップS117]エラー発生状態生成部130は、変数iを1から順に1ずつカウントアップしてNdataに達するまでのiの値ごとに、ステップS118~S121の処理を実行する。
 [ステップS118]エラー発生状態生成部130は、0より大きく1未満の乱数rを生成する。
 [ステップS119]エラー発生状態生成部130は、乱数rの値が、Xエラー率を示すRxより小さいか否かを判断する。エラー発生状態生成部130は、乱数rの値がRxより小さければ処理をステップS120に進める。またエラー発生状態生成部130は、乱数rの値がRx以上であれば処理をステップS121に進める。
 [ステップS120]エラー発生状態生成部130は、i番目のデータ量子ビットのビットを反転させる。またエラー発生状態生成部130は、ビットを反転させたデータ量子ビットに隣接するXエラー検知用の補助量子ビットの状態データ(j番目の補助量子ビットであればaj)の値を更新する(aj=-aj)。
 [ステップS121]エラー発生状態生成部130は、変数iの値がNdataに達していれば処理をステップS122に進める。
 [ステップS122]エラー訂正部140は、補助量子ビットの状態データに基づいてデータ量子ビットのエラー訂正処理を行う。例えばエラー訂正部140は、値が反転したデータ量子ビットに基づいて、図14に示したようにZエラーまたはXエラーが発生したデータ量子ビットを特定する。そしてエラー訂正部140は、エラーが発生したと推定されたデータ量子ビットに対して、発生したエラーに応じたエラー訂正処理を行う。例えばエラー訂正部140は、Zエラーが発生したと推定したデータ量子ビットの位相を反転させ、Xエラーが発生したと推定したデータ量子ビットのビットを反転させる。
 [ステップS123]論理エラー判定部150は、1列の反転量子ビット数による論理エラー(Zエラー)判定処理を行う。この処理の詳細は後述する(図26参照)。
 [ステップS124]論理エラー判定部150は、1行の反転量子ビット数による論理エラー(Xエラー)判定処理を行う。この処理の詳細は後述する(図27参照)。
 このようにして、ランダムにデータ量子ビットにエラーを発生させた場合における論理エラーの発生の有無が判定される。次に、図26と図27とを参照し、反転量子ビット数による論理エラー判定処理を詳細に説明する。
 図26は、論理エラー(Zエラー)判定処理の手順の一例を示すフローチャートである。以下、図26に示す処理をステップ番号に沿って説明する。
 [ステップS131]論理エラー判定部150は、2次元格子1列(調査対象列)分のデータ量子ビットの状態データqi(i=1,・・・,Ncc)を用意する。Nccは、2次元格子1列分のデータ量子ビットの数である。
 [ステップS132]論理エラー判定部150は、反転量子ビット数Nrを初期値「0」にセットする。
 [ステップS133]論理エラー判定部150は、変数iを1から順に1ずつカウントアップしてNccに達するまでのiの値ごとに、ステップS134~S135の処理を実行する。
 [ステップS134]論理エラー判定部150は、i番目のデータ量子ビットの位相反転の有無を示す状態データqiの値が「1」か否かを判断する。論理エラー判定部150は、値が「1」であれば処理をステップS135に進める。また論理エラー判定部150は、値が「0」であれば処理をステップS136に進める。
 [ステップS135]論理エラー判定部150は、反転量子ビット数Nrに「1」を加算する。
 [ステップS136]論理エラー判定部150は、変数iの値がNccに達していれば処理をステップS137に進める。
 [ステップS137]論理エラー判定部150は、反転量子ビット数Nrが奇数か否かを判断する。論理エラー判定部150は、奇数であれば処理をステップS138に進める。また論理エラー判定部150は、偶数であれば処理をステップS139に進める。
 [ステップS138]論理エラー判定部150は、論理エラーが発生していると判定し、論理エラー判定処理を終了する。
 [ステップS139]論理エラー判定部150は、論理エラーが発生していないと判定する。
 以上の処理がZエラーについての論理エラー判定処理である。次にXエラーについての論理エラー判定処理について詳細に説明する。
 図27は、論理エラー(Xエラー)判定処理の手順の一例を示すフローチャートである。以下、図27に示す処理をステップ番号に沿って説明する。
 [ステップS141]論理エラー判定部150は、2次元格子1行(調査対象行)分のデータ量子ビットの状態データqi(i=1,・・・,Ncr)を用意する。Ncrは、2次元格子1行分のデータ量子ビットの数である。
 [ステップS142]論理エラー判定部150は、反転量子ビット数Nrを初期値「0」にセットする。
 [ステップS143]論理エラー判定部150は、変数iを1から順に1ずつカウントアップしてNcrに達するまでのiの値ごとに、ステップS144~S145の処理を実行する。
 [ステップS144]論理エラー判定部150は、i番目のデータ量子ビットのビット反転の有無を示す状態データqiの値が「1」か否かを判断する。論理エラー判定部150は、値が「1」であれば処理をステップS145に進める。また論理エラー判定部150は、値が「0」であれば処理をステップS146に進める。
 [ステップS145]論理エラー判定部150は、反転量子ビット数Nrに「1」を加算する。
 [ステップS146]論理エラー判定部150は、変数iの値がNcrに達していれば処理をステップS147に進める。
 [ステップS147]論理エラー判定部150は、反転量子ビット数Nrが奇数か否かを判断する。論理エラー判定部150は、奇数であれば処理をステップS148に進める。また論理エラー判定部150は、偶数であれば処理をステップS149に進める。
 [ステップS148]論理エラー判定部150は、論理エラーが発生していると判定し、論理エラー判定処理を終了する。
 [ステップS149]論理エラー判定部150は、論理エラーが発生していないと判定する。
 以上の処理がXエラーについての論理エラー判定処理である。
 このように論理エラー判定部150は、2次元格子の1列または1行分のデータ量子ビットの値を調査するだけで論理エラーの有無を判定することができる。その結果、効率的な論理エラー判定が可能となる。
 図28は、2次元格子の1辺のデータ量子ビット数と探索回数との関係を示すグラフである。グラフ90は、横軸が2次元格子の1辺のデータ量子ビット数Nであり、縦軸が探索回数である。探索回数は、1つのデータ量子ビットの状態を確認するごとに1回とカウントしている。グラフ90内の折れ線91は、図18に示すようなエラーチェインの探索による論理エラー判定を行った場合の探索回数を示す折れ線である。近似曲線92は、エラーチェインの探索による論理エラー判定を行った場合の折れ線91に対する近似曲線である。近似曲線92は、横軸をx、縦軸をyとした場合にはy=21.13xの指数関数となっている。折れ線は、2次元格子1列(または1行)の反転量子ビット数による論理エラー判定を行った場合の探索回数を示す折れ線である。折れ線93は、横軸をx、縦軸をyとした場合には、y=x+1の直線で表すことができる。
 図28の例では、1辺のデータ量子ビット数N=2~10における各論理エラー判定における探索回数を示している。シミュレーション条件におけるエラー確率は20%である。図28に示すように、エラーチェインの探索では探索回数がNに対して指数関数的に探索回数が増えているのに対し、反転量子ビット数による論理エラー判定ではNの1次関数で探索回数が増えている。
 以上のように、反転量子ビット数による論理エラー判定により、論理エラーが発生しているかどうかの判定を短時間で行うことができる。すなわち、2次元格子の1辺のデータ量子ビット数をNとすると、探索回数をNの指数関数から1次関数にまで落とすことが可能である。例えば40量子ビットの場合、エラーチェインではクロック数1GHzのプロセッサで処理した場合、処理時間は21.13×40×10-9/3600=11.26(h)となり約半日かかる。それに対して反転量子ビット数による論理エラー判定では、処理時間が40+1=41(nsec)に短縮される。
 〔その他の実施の形態〕
 第2の実施の形態では、5行11列の2次元格子状に配置された量子ビットにより論理量子ビットが構成されているが、行数または列数が変わっても、同様の処理で論理エラーを判定可能である。
 上記については単に本発明の原理を示すものである。さらに、多数の変形、変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応するすべての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
 1 量子ビット情報
 10 情報処理装置
 11 記憶部
 12 処理部
 
 

Claims (8)

  1.  複数のデータ量子ビットと複数の補助量子ビットとを行方向および列方向のそれぞれに交互に配置した2次元格子を示す量子ビット情報を生成し、
     前記量子ビット情報に対して、前記複数のデータ量子ビットのうちの第1のデータ量子ビットにおけるエラー発生を示すエラー情報を設定し、
     前記量子ビット情報に対して、前記第1のデータ量子ビットに行方向または列方向に隣接する補助量子ビットの状態を初期値から反転させたエラー検知情報を設定し、
     前記量子ビット情報に対して、前記エラー検知情報に基づく表面符号によるエラー訂正の対象となる第2のデータ量子ビットを示すエラー訂正情報を設定し、
     前記2次元格子における一の行または一の列内の前記第1のデータ量子ビットと前記第2のデータ量子ビットとのいずれか一方に該当するデータ量子ビットの数に基づいて、論理エラーの発生の有無を判定する、
     処理をコンピュータに実行させるシミュレーションプログラム。
  2.  前記論理エラーの発生の有無の判定では、前記2次元格子における一の行または一の列内の前記第1のデータ量子ビットと前記第2のデータ量子ビットとのいずれか一方に該当するデータ量子ビットの数が奇数の場合に、前記論理エラーが発生していると判定する、
     請求項1記載のシミュレーションプログラム。
  3.  前記量子ビット情報の生成では、位相反転エラー検知用の補助量子ビットが配置される列とビット反転エラー検知用の補助量子ビットが配置される列とが交互に設けられた前記2次元格子を示す前記量子ビット情報を生成し、
     前記論理エラーの発生の有無の判定では、前記2次元格子の4辺の境界のうち、前記ビット反転エラー検知用の補助量子ビットが配置された境界と平行な方向の一の行または一の列内の前記第1のデータ量子ビットと前記第2のデータ量子ビットとのいずれか一方に該当するデータ量子ビットの数に基づいて、位相反転エラーに起因する前記論理エラーの発生の有無を判定する、
     請求項1または2に記載のシミュレーションプログラム。
  4.  前記量子ビット情報の生成では、位相反転エラー検知用の補助量子ビットが配置される列とビット反転エラー検知用の補助量子ビットが配置される列とが交互に設けられた前記2次元格子を示す前記量子ビット情報を生成し、
     前記論理エラーの発生の有無の判定では、前記2次元格子の4辺の境界のうち、前記位相反転エラー検知用の補助量子ビットが配置された境界と平行な方向の一の行または一の列内の前記第1のデータ量子ビットと前記第2のデータ量子ビットとのいずれか一方に該当するデータ量子ビットの数に基づいて、ビット反転エラーに起因する前記論理エラーの発生の有無を判定する、
     請求項1から3までのいずれかに記載のシミュレーションプログラム。
  5.  前記エラー情報の設定では、所定のエラー発生率に基づいて前記複数のデータ量子ビットの中から無作為に、エラーを発生させる前記第1のデータ量子ビットを決定し、
     前記エラー情報の設定、前記エラー検知情報の設定、前記エラー訂正情報の設定、前記論理エラーの発生の有無の判定を、所定回数繰り返し実行する、
     請求項1から4までのいずれかに記載のシミュレーションプログラム。
  6.  前記コンピュータに、
     前記所定回数の前記論理エラーの発生の有無の判定結果に基づいて、論理エラー発生確率を算出する、
     処理を実行させる請求項5記載のシミュレーションプログラム。
  7.  複数のデータ量子ビットと複数の補助量子ビットとを行方向および列方向のそれぞれに交互に配置した2次元格子を示す量子ビット情報を生成し、
     前記量子ビット情報に対して、前記複数のデータ量子ビットのうちの第1のデータ量子ビットにおけるエラー発生を示すエラー情報を設定し、
     前記量子ビット情報に対して、前記第1のデータ量子ビットに行方向または列方向に隣接する補助量子ビットの状態を初期値から反転させたエラー検知情報を設定し、
     前記量子ビット情報に対して、前記エラー検知情報に基づく表面符号によるエラー訂正の対象となる第2のデータ量子ビットを示すエラー訂正情報を設定し、
     前記2次元格子における一の行または一の列内の前記第1のデータ量子ビットと前記第2のデータ量子ビットとのいずれか一方に該当するデータ量子ビットの数に基づいて、論理エラーの発生の有無を判定する、
     処理をコンピュータが実行するシミュレーション方法。
  8.  複数のデータ量子ビットと複数の補助量子ビットとを行方向および列方向のそれぞれに交互に配置した2次元格子を示す量子ビット情報を生成し、前記量子ビット情報に対して、前記複数のデータ量子ビットのうちの第1のデータ量子ビットにおけるエラー発生を示すエラー情報を設定し、前記量子ビット情報に対して、前記第1のデータ量子ビットに行方向または列方向に隣接する補助量子ビットの状態を初期値から反転させたエラー検知情報を設定し、前記量子ビット情報に対して、前記エラー検知情報に基づく表面符号によるエラー訂正の対象となる第2のデータ量子ビットを示すエラー訂正情報を設定し、前記2次元格子における一の行または一の列内の前記第1のデータ量子ビットと前記第2のデータ量子ビットとのいずれか一方に該当するデータ量子ビットの数に基づいて、論理エラーの発生の有無を判定する処理部、
     を有する情報処理装置。
PCT/JP2021/042807 2021-11-22 2021-11-22 シミュレーションプログラム、シミュレーション方法、および情報処理装置 WO2023089831A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/042807 WO2023089831A1 (ja) 2021-11-22 2021-11-22 シミュレーションプログラム、シミュレーション方法、および情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/042807 WO2023089831A1 (ja) 2021-11-22 2021-11-22 シミュレーションプログラム、シミュレーション方法、および情報処理装置

Publications (1)

Publication Number Publication Date
WO2023089831A1 true WO2023089831A1 (ja) 2023-05-25

Family

ID=86396515

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/042807 WO2023089831A1 (ja) 2021-11-22 2021-11-22 シミュレーションプログラム、シミュレーション方法、および情報処理装置

Country Status (1)

Country Link
WO (1) WO2023089831A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014241484A (ja) 2013-06-11 2014-12-25 国立大学法人大阪大学 量子誤り訂正方法、量子誤り訂正装置、および、量子情報格納装置
JP2020535690A (ja) 2017-09-12 2020-12-03 グーグル エルエルシー 量子誤り訂正
US20210019223A1 (en) 2019-07-15 2021-01-21 International Business Machines Corporation Using flag qubits for fault-tolerant implementations of topological codes with reduced frequency collisions

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014241484A (ja) 2013-06-11 2014-12-25 国立大学法人大阪大学 量子誤り訂正方法、量子誤り訂正装置、および、量子情報格納装置
JP2020535690A (ja) 2017-09-12 2020-12-03 グーグル エルエルシー 量子誤り訂正
US20210019223A1 (en) 2019-07-15 2021-01-21 International Business Machines Corporation Using flag qubits for fault-tolerant implementations of topological codes with reduced frequency collisions

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CUPJIN HUANG; XIAOTONG NI; FANG ZHANG; MICHAEL NEWMAN; DAWEI DING; XUN GAO; TENGHUI WANG; HUI-HAI ZHAO; FENG WU; GENGYAN ZHANG; CH: "Alibaba Cloud Quantum Development Platform: Surface Code Simulations with Crosstalk", ARXIV.ORG, CORNELL UNIVERSITY LIBRARY, 201 OLIN LIBRARY CORNELL UNIVERSITY ITHACA, NY 14853, 20 February 2020 (2020-02-20), 201 Olin Library Cornell University Ithaca, NY 14853 , XP081604402 *
SUZUKI YASUNARI, FUJII KEISUKE, KOASHI MASATO: "Efficient Simulation of Quantum Error Correction Under Coherent Error Based on the Nonunitary Free-Fermionic Formalism", PHYSICAL REVIEW LETTERS, AMERICAN PHYSICAL SOCIETY, US, vol. 119, no. 19, 1 November 2017 (2017-11-01), US , pages 190503, XP093067862, ISSN: 0031-9007, DOI: 10.1103/PhysRevLett.119.190503 *

Similar Documents

Publication Publication Date Title
US11455207B2 (en) Using flag qubits for fault-tolerant implementations of topological codes with reduced frequency collisions
Hidary et al. Quantum computing: an applied approach
Resch et al. Benchmarking quantum computers and the impact of quantum noise
US20210399743A1 (en) Fault tolerant and error correction decoding method and apparatus for quantum circuit, and chip
Burgholzer et al. Advanced equivalence checking for quantum circuits
CA3133917C (en) Simulating errors of a quantum device using variational quantum channels
Chamberland et al. Deep neural decoders for near term fault-tolerant experiments
Wootton et al. Repetition code of 15 qubits
Fowler et al. Surface codes: Towards practical large-scale quantum computation
US11250341B2 (en) System, method and computer readable medium for quassical computing
JP2022532466A (ja) ニューラルネットワークに基づく量子誤り訂正復号方法、装置、チップ、コンピュータ機器、及びコンピュータプログラム
US9292650B2 (en) Identifying layout pattern candidates
CN114175060A (zh) 用于量子计算设备的测量序列确定
West et al. Towards quantum enhanced adversarial robustness in machine learning
US20210406749A1 (en) Quantum measurement emulation error mitigation protocol for quantum computing
Duckering et al. Virtualized logical qubits: A 2.5 d architecture for error-corrected quantum computing
Grurl et al. Automatic Implementation and Evaluation of Error-Correcting Codes for Quantum Computing: An Open-Source Framework for Quantum Error Correction
Das et al. Quantum pattern recognition on real quantum processing units
WO2023089831A1 (ja) シミュレーションプログラム、シミュレーション方法、および情報処理装置
Matsuura et al. A systems perspective of quantum computing
Jaeger Classical and quantum computing
Clapis A quantum dot plot generation algorithm for pairwise sequence alignment
US20240086756A1 (en) Error detection method and information processing apparatus
Jin et al. Multilayered logical qubits and synthesized quantum bits
Sheldon Quantum computing with noisy qubits

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21964844

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2023562098

Country of ref document: JP