WO2023021666A1 - 情報処理装置、量子回路生成方法および量子回路生成プログラム - Google Patents

情報処理装置、量子回路生成方法および量子回路生成プログラム Download PDF

Info

Publication number
WO2023021666A1
WO2023021666A1 PCT/JP2021/030458 JP2021030458W WO2023021666A1 WO 2023021666 A1 WO2023021666 A1 WO 2023021666A1 JP 2021030458 W JP2021030458 W JP 2021030458W WO 2023021666 A1 WO2023021666 A1 WO 2023021666A1
Authority
WO
WIPO (PCT)
Prior art keywords
quantum
row
matrix
qubits
qubit
Prior art date
Application number
PCT/JP2021/030458
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 EP21954234.7A priority Critical patent/EP4390778A4/en
Priority to PCT/JP2021/030458 priority patent/WO2023021666A1/ja
Priority to JP2023542136A priority patent/JPWO2023021666A1/ja
Publication of WO2023021666A1 publication Critical patent/WO2023021666A1/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
    • G06N10/20Models of quantum computing, e.g. quantum circuits or universal quantum computers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena
    • G06N10/60Quantum algorithms, e.g. based on quantum optimisation, quantum Fourier or Hadamard transforms

Definitions

  • the present invention relates to an information processing device, a quantum circuit generation method, and a quantum circuit generation program.
  • VQE Variational Quantum Eigensolver
  • VQE reproduces a specific quantum state using multiple qubits contained in a quantum device.
  • VQE performs a gate operation corresponding to a specific projection operator on a plurality of qubits to obtain a measurement value such as energy under that quantum state.
  • VQE may obtain multiple measurements corresponding to multiple projection operators from a single quantum state in parallel.
  • a series of gate operations to be executed by a quantum device is defined by a quantum circuit.
  • a quantum circuit corresponds to a program that indicates the procedure of quantum arithmetic.
  • Quantum circuits include quantum gates such as Controlled NOT (CNOT) gates and Controlled Z (CZ) gates.
  • Quantum circuits used for VQE may include a generation circuit that generates quantum states and a measurement circuit that calculates a plurality of measurements from the generated quantum states.
  • the structure of the measurement circuit is determined based on the specifications of multiple projection operators.
  • Each projection operator can be decomposed into two or more Pauli operators.
  • Pauli operators are unitary operators applied to qubits and include the Pauli X operator, the Pauli Y operator and the Pauli Z operator. Therefore, a technology has been proposed to generate a quantum gate of a measurement circuit from specifications of a plurality of projection operators.
  • a computer generates a Pauli graph from multiple Pauli strings included in the quantum Hamiltonian, generates an integrated Pauli graph by integrating some nodes based on simultaneous observability, and designs a quantum circuit based on the integrated Pauli graph. Proposed. Also includes a classical computer that outputs initial values of parameters representing the quantum circuit, and a quantum computer that performs quantum calculation using VQE according to the initial values and generates parameters representing the quantum circuit for energy calculation.
  • a hybrid system has been proposed.
  • each qubit is not necessarily connected to all other qubits due to physical constraints. Therefore, two-input quantum gates such as CNOT gates and CZ gates may not be directly applicable to two unconnected qubits.
  • the conventional technology for generating a quantum circuit from the specification of a projection operator may have difficulty in generating a highly efficient quantum circuit under the constraints of the connection relationship of quantum bits.
  • one method is to first generate a quantum circuit without considering the connection relationship between qubits, and insert a swap gate into the quantum circuit to exchange the values of two qubits so as to satisfy the connection relationship constraint. is also conceivable.
  • the method of inserting swap gates later may generate an inefficient quantum circuit with many quantum gates. Accordingly, in one aspect, an object of the present invention is to generate a highly efficient quantum circuit.
  • an information processing device having a storage unit and a processing unit.
  • the storage unit stores operator information indicating a plurality of projection operators each indicated by a combination of a plurality of Pauli operators, and arrangement information indicating a connection relationship between the plurality of qubits included in the quantum device.
  • the processing unit generates a matrix including a plurality of rows corresponding to the plurality of qubits and a plurality of columns corresponding to the plurality of projection operators based on the plurality of projection operators indicated by the operator information.
  • the processing unit is a diagonalization that transforms the matrix into a diagonal matrix by a row operation. Perform diagonalization, which involves using one of the two rows to update the other row.
  • the processing unit generates a quantum circuit representing gate operations for the quantum device based on the row operations performed in the diagonalization.
  • a computer-executed quantum circuit generation method is provided.
  • a quantum circuit generation program to be executed by a computer is provided.
  • FIG. 1 is a diagram for explaining an information processing device according to a first embodiment;
  • FIG. It is a figure which shows the example of the information processing system of 2nd Embodiment.
  • FIG. 2 illustrates an example quantum circuit including a measurement circuit;
  • FIG. 10 is a diagram showing a first design example of a measurement circuit using a stabilizer matrix;
  • FIG. 2 is a diagram showing a first example of a measurement circuit;
  • FIG. 10 is a diagram showing a second example of a measurement circuit;
  • FIG. 10 is a diagram showing a second design example of a measurement circuit using a stabilizer matrix;
  • FIG. 10 is a diagram showing a third example of a measurement circuit;
  • 4 is a flow chart showing an example of a procedure for generating a quantum circuit;
  • 10 is a flow chart showing an example of a procedure for matrix diagonalization;
  • FIG. 1 is a diagram for explaining an information processing apparatus according to the first embodiment.
  • the information processing apparatus 10 according to the first embodiment generates a quantum circuit that defines a series of gate operations to be executed by a quantum computer.
  • a quantum computer is, for example, NISQ (Noisy Intermediate-Scale Quantum Computer), which is a medium-scale quantum computer without error correction.
  • the information processing device 10 may be a so-called classical computer.
  • the information processing device 10 may be a client device or a server device.
  • the information processing device 10 may be called a computer, a quantum circuit generation device, or a design device.
  • the information processing device 10 has a storage unit 11 and a processing unit 12 .
  • the storage unit 11 may be a volatile semiconductor memory such as a RAM (Random Access Memory), or may be a non-volatile storage such as a HDD (Hard Disk Drive) or flash memory.
  • the processing unit 12 is, for example, a processor such as a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), or a DSP (Digital Signal Processor). However, the processing unit 12 may include a specific application electronic circuit such as an ASIC (Application Specific Integrated Circuit) or an FPGA (Field Programmable Gate Array).
  • the processor executes programs stored in a memory such as a RAM (which may be the storage unit 11), for example.
  • a collection of processors may be called a multiprocessor or simply a "processor.”
  • the storage unit 11 stores operator information 13 and arrangement information 14 .
  • the operator information 13 indicates a plurality of projection operators for calculating different measured values from the same quantum state.
  • the quantum circuit generated by the information processing device 10 may be used for VQE.
  • VQE causes a plurality of projection operators to act on a certain quantum state in parallel to calculate a plurality of measured values, and calculates the sum of the plurality of measured values weighted by coefficients as the energy in that quantum state.
  • VQE calculates the energy while changing the quantum state, and searches for the quantum state that minimizes the energy.
  • Pauli operators are unit operators for qubits and include the Pauli X operator, the Pauli Y operator, and the Pauli Z operator.
  • the Pauli X operator corresponds to bit inversion.
  • the Pauli Y operator corresponds to a combination of bit reversal and phase reversal.
  • the Pauli Z operator corresponds to phase inversion.
  • Each of the multiple projection operators may be represented by a Pauli string that indicates the sequence of Pauli operators.
  • Each letter in the Pauli string is X, Y or Z.
  • the length of the Pauli string may be the same as the number of qubits.
  • the Pauli string may include an identity matrix I that denotes the identity map.
  • projection operator O1 is XXXX
  • projection operator O2 is XXYY
  • projection operator O3 is XYXY
  • projection operator O4 is YXYY.
  • the allocation information 14 indicates the connection relationship of multiple qubits included in the quantum device.
  • Each qubit included in a quantum device may not be connected to all other qubits due to physical restrictions, but may be connected only to some qubits.
  • a two-input quantum gate may be feasible for two qubits that are connected, but not for two qubits that are not connected.
  • a quantum device includes qubits q0 , q1 , q2 , q3 arranged in a lattice.
  • qubits q 0 and q 1 are interconnected
  • qubits q 1 and q 2 are interconnected
  • qubits q 2 and q 3 are interconnected
  • qubits q 0 and q 3 are interconnected It is Qubits q 0 and q 2 are not connected and qubits q 1 and q 3 are not connected.
  • the arrangement information 14 may be represented by an undirected graph including nodes corresponding to quantum bits and edges corresponding to connections.
  • the configuration information 14 includes rows and columns corresponding to qubits, and is represented by an adjacency matrix in which a pair of unconnected qubits is 0 and a pair of connected qubits is 1. good.
  • the processing unit 12 generates a matrix 15 based on multiple operators indicated by the operator information 13 .
  • Matrix 15 may be an X matrix contained in a so-called stabilizer matrix.
  • Matrix 15 includes rows corresponding to qubits and columns corresponding to projection operators.
  • matrix 15 includes four rows corresponding to qubits q0 , q1 , q2 , q3 and four columns corresponding to projection operators O1 , O2 , O3 , O4 . .
  • Each element contained in the matrix 15 is a 0 or 1 flag derived, for example, from the Pauli string.
  • the processing unit 12 performs diagonalization to transform the matrix 15 into a diagonal matrix 16 through one or more row operations.
  • the diagonal matrix 16 is a matrix whose diagonal elements are non-zero and whose off-diagonal elements are zeros.
  • the diagonal matrix 16 is a unit matrix with 1s in the diagonal elements and 0s in the off-diagonal elements.
  • the row operation performed in the diagonalization is to select two rows based on the connection relationship indicated by the arrangement information 14 and update the other row using one of the two selected rows. include.
  • a row operation for example, adds one row to the other row. If each element is a 0 or 1 flag, the addition of two elements corresponds to exclusive OR.
  • the diagonalization may be performed according to the so-called Gaussian elimination or sweep out algorithm.
  • the two rows on which row manipulation is performed are selected under the constraint of the connection relationship between multiple qubits. For example, processing unit 12 selects two rows corresponding to two qubits that are interconnected and does not select two rows corresponding to two qubits that are not connected.
  • the processing unit 12 uses (1, 1, 1, 1) in row #0 corresponding to qubit q 0 to calculate (0, 1, 1, 1) in row # 3 corresponding to qubit q 3 . ) to (1,0,0,0). Subsequently, the processing unit 12 updates (1, 1, 1, 1) in row #0 to (0, 1, 1, 1) using (1, 0, 0, 0) in row # 3. do. Matrix 15 is transformed into diagonal matrix 16 by repeating such row manipulations according to a particular algorithm.
  • row # 0 corresponding to qubit q0 and row # 2 corresponding to qubit q2 may contain non-zero elements in the same column. Even in this case, since the qubits q 0 and q 2 are not connected, direct row operations between rows #0 and #2 may be restricted. In that case, the processing unit 12 performs the row operations of rows #0 and # 1 corresponding to the qubits q0 and q1 and the row operations of rows # 1 and # 2 corresponding to the qubits q1 and q2. By combining them, a calculation result equivalent to the row calculations of rows #0 and #2 may be realized.
  • a row corresponding to a reference qubit and two or more other rows corresponding to two or more other qubits may contain nonzero elements in the same column.
  • the processing unit 12 may calculate the number of hops from the reference qubit for each of two or more qubits, and preferentially select the row corresponding to the qubit with the largest hop number.
  • the qubit with the largest number of hops is the furthest from the reference qubit.
  • the processing unit 12 may perform the row operation to remove non-zero elements preferentially from the row corresponding to the quantum bit with the largest number of hops.
  • the processing unit 12 generates a quantum circuit 17 representing one or more gate operations for the quantum device based on one or more row operations performed in diagonalization.
  • Quantum circuit 17 includes a plurality of lines corresponding to a plurality of qubits and includes one or more quantum gates arranged on the lines. The gating operations indicated by the quantum gate are performed in left-to-right order.
  • Quantum gates include CNOT gates.
  • processing unit 12 generates a CNOT gate in which qubit q0 is the control bit and qubit q3 is the target bit (target bit) from the row operation that updates row #3 using row #0. .
  • processing unit 12 generates a CNOT gate in which qubit q3 is the control bit and qubit q0 is the target bit from the row operation that updates row #0 using row #3.
  • the CNOT gate does not change the target bit if the control bit is 0, and bit-reverses the target bit if the control bit is 1. Bit inversion is equivalent to applying an X gate to the target bit.
  • the processing unit 12 outputs the generated quantum circuit 17.
  • the processing unit 12 may store the quantum circuit 17 in a nonvolatile storage, display it on a display device, or transmit it to another information processing device. Further, the processing unit 12 may perform gate operations on quantum devices connected to the information processing apparatus 10 based on the quantum circuit 17 .
  • the information processing apparatus 10 generates the quantum circuit 17 for calculating multiple measured values from the quantum state based on multiple projection operators. Thereby, the design of the quantum circuit 17 is supported by the information processing device 10, and the burden of designing the quantum circuit 17 is reduced. Further, the information processing apparatus 10 generates a matrix 15 from a plurality of projection operators and determines the quantum circuit 17 through diagonalization that converts the matrix 15 into a diagonal matrix 16 . Thereby, the information processing apparatus 10 can generate the quantum circuit 17 by a uniform method for various projection operators, and can generate the quantum circuit 17 at high speed.
  • the information processing device 10 can optimize the quantum circuit 17 through optimization of the diagonalization processing of the matrix 15 . As a result, a highly efficient quantum circuit 17 with few quantum gates is generated.
  • the information processing apparatus 10 selects two rows to be subjected to row operations in the diagonalization of the matrix 15 according to the constraint of the connection relationship of the plurality of qubits. This speeds up the generation of the quantum circuit 17 compared to the case where the determination of the quantum gates for satisfying the specifications of the projection operator and the determination of the quantum gates for satisfying the constraint of the connection relation are performed separately.
  • a highly efficient quantum circuit 17 with few quantum gates is generated.
  • the number of quantum gates in the quantum circuit 17 is reduced compared to the case where swap gates are inserted afterward so as to satisfy the connection relation constraints after generating a quantum circuit that satisfies the specifications of the projection operator.
  • the execution time for executing the quantum circuit 17 is shortened.
  • the quantum computation is completed within the duration of the quantum bit (coherence time).
  • the probability of error occurrence is reduced.
  • FIG. 2 is a diagram illustrating an example of an information processing system according to the second embodiment.
  • the information processing device 100 of the second embodiment generates quantum circuits used for VQE.
  • a quantum device 30 is connected to the information processing apparatus 100 .
  • the quantum device 30 corresponds to a quantum computer.
  • the information processing device 100 corresponds to a so-called classical computer.
  • the information processing device 100 may be a client device or a server device.
  • the information processing device 100 may be called a computer, a quantum circuit generation device, or a design device.
  • the information processing device 100 corresponds to the information processing device 10 of the first embodiment.
  • the information processing apparatus 100 has a CPU 101, a RAM 102, an HDD 103, a GPU 104, an input interface 105, a medium reader 106, a communication interface 107 and a device interface 108 connected to a bus.
  • a CPU 101 corresponds to the processing unit 12 described above.
  • RAM 102 or HDD 103 corresponds to storage unit 11 described above.
  • the CPU 101 is a processor that executes program instructions. CPU 101 loads at least part of the programs and data stored in HDD 103 into RAM 102 and executes the programs.
  • the information processing device 100 may have multiple processors. A collection of processors may be called a multiprocessor or simply a "processor.”
  • the RAM 102 is a volatile semiconductor memory that temporarily stores programs executed by the CPU 101 and data used for calculations by the CPU 101 .
  • the information processing device 100 may have a type of volatile memory other than RAM.
  • the HDD 103 is a nonvolatile storage that stores software programs such as an OS (Operating System), middleware, application software, and data.
  • the information processing device 100 may have other types of non-volatile storage such as flash memory and SSD (Solid State Drive).
  • the GPU 104 generates images in cooperation with the CPU 101 and outputs the images to the display device 111 connected to the information processing device 100 .
  • the display device 111 is, for example, a CRT (Cathode Ray Tube) display, a liquid crystal display, an organic EL (Electro Luminescence) display, or a projector.
  • the information processing apparatus 100 may be connected to another type of output device such as a printer.
  • the input interface 105 receives input signals from the input device 112 connected to the information processing apparatus 100 .
  • the input device 112 is, for example, a mouse, touch panel, or keyboard.
  • a plurality of input devices may be connected to the information processing apparatus 100 .
  • the medium reader 106 is a reading device that reads programs and data recorded on the recording medium 113 .
  • the recording medium 113 is, for example, a magnetic disk, an optical disk, or a semiconductor memory. Magnetic disks include flexible disks (FDs) and HDDs. Optical discs include CDs (Compact Discs) and DVDs (Digital Versatile Discs).
  • a medium reader 106 copies the program and data read from the recording medium 113 to another recording medium such as the RAM 102 or HDD 103 .
  • the read program may be executed by CPU 101 .
  • the recording medium 113 may be a portable recording medium. Recording medium 113 may be used to distribute programs and data. Recording medium 113 and HDD 103 may also be referred to as computer-readable recording media.
  • the communication interface 107 is connected to the network 114 and communicates with other information processing devices via the network 114 .
  • the communication interface 107 may be a wired communication interface connected to a wired communication device such as a switch or router, or a wireless communication interface connected to a wireless communication device such as a base station or access point.
  • the device interface 108 is connected to the quantum device 30.
  • the device interface 108 instructs the quantum device 30 to operate the gate.
  • Quantum device 30 includes a plurality of qubits. Among the plurality of qubits, there are connected qubit pairs and unconnected qubit pairs based on their physical arrangement. Two-input quantum gates (two-quantum gates) are feasible for connected qubit pairs and infeasible for unconnected qubit pairs.
  • Quantum device 30 includes qubits 31 , 32 , 33, 34 (q0, q1 , q2 , q3 ).
  • the qubits 31, 32, 33, 34 are arranged in a lattice. Qubits 31 and 32 are connected, qubits 32 and 33 are connected, qubits 33 and 34 are connected, and qubits 31 and 34 are connected. Qubits 31 and 33 are not connected and qubits 32 and 34 are not connected.
  • VQE which is a quantum chemical calculation
  • Quantum chemical calculations are molecular simulations that estimate molecular states based on the Schrödinger equation.
  • VQE calculates optimal eigenvalues for molecular states based on variational principles and quantum mechanics.
  • VQE measures the energy of various quantum states and finds the quantum state that minimizes the energy.
  • the energy is calculated by applying the Hamiltonian H shown in Equation (1) to the quantum state as a projection operator.
  • O i is the generalized Pauli matrix as the partitioned projection operator.
  • the generalized Pauli matrix O i is expressed as a Pauli character string in which Pauli operators that are unit operators are arranged.
  • the length (number of characters) of the Pauli string is the same as the number of qubits.
  • the Pauli string may include the identity matrix I for length adjustment.
  • h i is a coefficient indicating the weight of O i .
  • N is the number of generalized Pauli matrices, which is the same as the number of qubits.
  • the Hamiltonian H is thus the weighted sum of the generalized Pauli matrices O i .
  • the generalized Pauli matrix O i and the coefficients h i are specified by the user.
  • VQE uses N qubits to create a quantum state ⁇ ( ⁇ ) and measures energy E. Varying the parameter ⁇ produces different quantum states ⁇ ( ⁇ ).
  • the energy E is an expected value obtained by applying the Hamiltonian H to the quantum state ⁇ ( ⁇ ), as shown in Equation (2). From Equation (1), the energy E is the sum of the expected values obtained by applying the generalized Pauli matrix O i to the quantum state ⁇ ( ⁇ ), weighted by the coefficient hi .
  • VQE repeatedly generates the quantum state ⁇ ( ⁇ ), repeatedly calculates the measured value ⁇ ( ⁇ )
  • VQE defines energy E as the weighted sum of N expected values corresponding to N generalized Pauli matrices O i .
  • the information processing apparatus 100 instructs the quantum device 30 to operate the gate.
  • quantum gates that can be used in quantum circuits are now described.
  • Quantum gates include Pauli X gates, Pauli Y gates, and Pauli Z gates shown in Equation (3).
  • Pauli X-gates, Pauli Y-gates and Pauli Z-gates are one-quantum gates that operate on one qubit.
  • a Pauli X-gate is a 180 degree rotation about the X-axis, equivalent to bit reversal.
  • a Pauli Y-gate is a 180 degree rotation about the Y-axis and corresponds to a combination of bit reversal and phase reversal.
  • a Pauli Z gate is a 180 degree rotation about the Z axis, equivalent to a phase reversal.
  • a Pauli Y gate has properties of both a Pauli X gate and a Pauli Z gate.
  • the quantum gates also include Hadamard gates H and phase shift gates S shown in Equation (4).
  • Hadamard gate H and phase shift gate S are one-quantum gates acting on one qubit.
  • the Hadamard gate H is a 180 degree rotation about an axis 45 degrees between the X and Z axes.
  • the phase shift gate S is a 90 degree phase rotation.
  • the quantum gates include CNOT gates and CZ gates shown in Equation (5).
  • CNOT and CZ gates are two-quantum gates that operate on two qubits.
  • a CNOT gate applies a Pauli X gate to the other qubit, called the target bit, if one qubit, called the control bit, is 1.
  • a CNOT gate corresponds to the exclusive OR of two qubits and to the addition of two qubits.
  • the CZ gate applies a Pauli Z gate to the target bit if the control bit is one.
  • FIG. 3 is a diagram showing an example of the software structure of the information processing device.
  • the information processing apparatus 100 has a physical layout storage unit 121 , a projection operator storage unit 122 and a quantum circuit storage unit 123 . These storage units are realized using the RAM 102 or the HDD 103, for example.
  • the information processing apparatus 100 also has a quantum circuit generation unit 124 , a gate operation unit 125 and a quantum chemical calculation unit 126 . These processing units are implemented using, for example, the CPU 101 and programs.
  • the physical arrangement storage unit 121 stores physical arrangement information of the quantum device 30 .
  • the physical arrangement information indicates the connection relationship of quantum bits of the quantum device 30 .
  • the physical location information may be an undirected graph including nodes corresponding to qubits and edges corresponding to connections.
  • the physical arrangement information may also be an adjacency matrix including rows and columns corresponding to the qubits, where unconnected qubit pairs are 0 and connected qubit pairs are 1. .
  • the projection operator storage unit 122 stores projection operator information.
  • the projection operator information includes N generalized Pauli matrices O i and N coefficients h i specified by the user.
  • Each generalized Pauli matrix O i is represented by a length-N Pauli string.
  • Each letter in the Pauli string is X, Y or Z. However, the Pauli string may contain I for length adjustment.
  • the quantum circuit storage unit 123 stores quantum circuits generated by the information processing device 100 .
  • a quantum circuit corresponds to a program that defines a gate operation procedure to be executed by the quantum device 30 .
  • a quantum circuit generated by the information processing apparatus 100 includes a plurality of quantum gates for VQE. As will be described later, this quantum circuit includes an Ansatz circuit that generates quantum states and a measurement circuit that performs parallel observations based on N generalized Pauli matrices.
  • the quantum circuit generation unit 124 generates quantum circuits based on the physical placement information stored in the physical placement storage unit 121 and the projection operator information stored in the projection operator storage unit 122 .
  • the quantum circuit generation unit 124 stores the generated quantum circuit in the quantum circuit storage unit 123 .
  • the quantum circuit generator 124 generates a stabilizer matrix from N Pauli character strings representing N generalized Pauli matrices, and uses the stabilizer matrix to determine the quantum gates of the measurement circuit. At this time, the quantum circuit generator 124 determines an efficient procedure for diagonalizing the stabilizer matrix, and generates a quantum gate corresponding to the determined procedure.
  • the gate operation unit 125 instructs the quantum device 30 to operate the gate indicated by the quantum circuit stored in the quantum circuit storage unit 123 .
  • the gate operation section 125 reads the measured values from the quantum device 30 and reports them to the quantum chemical calculation section 126 .
  • the quantum chemical calculation unit 126 executes VQE.
  • Quantum chemical calculation unit 126 designates parameter ⁇ of quantum state ⁇ ( ⁇ ), requests gate operation unit 125 to execute a quantum circuit, and calculates N measured values corresponding to N generalized Pauli matrices. get.
  • One measurement of one generalized Pauli matrix is binary 0 or 1.
  • the quantum chemistry calculator 126 repeats the execution of the quantum circuit to average the measured values and calculate N expected values corresponding to the N generalized Pauli matrices.
  • the quantum chemical calculation unit 126 calculates the energy E corresponding to the quantum state ⁇ ( ⁇ ) by the weighted sum of the N expected values.
  • the quantum chemistry calculator 126 calculates the energy E while changing the parameter ⁇ , and searches for the quantum state ⁇ ( ⁇ ) in which the energy E is minimized.
  • the quantum chemistry calculator 126 outputs the execution result of VQE.
  • Quantum chemistry calculation unit 126 may store the execution result in a non-volatile storage such as HDD 103, display it on display device 111, or transmit it to another information processing device.
  • FIG. 4 is a diagram illustrating an example of a quantum circuit including measurement circuitry.
  • the quantum circuit includes Ansatz circuit 131, measurement circuit 132 and measurement gates 133,134,135,136.
  • Ansatz circuit 131 initializes quantum bits 31, 32, 33, 34 (q 0 , q 1 , q 2 , q 3 ) to represent the quantum state ⁇ ( ⁇ ) according to parameter ⁇ .
  • the measurement circuit 132 performs parallel observations of the quantum state ⁇ ( ⁇ ) based on the generalized Pauli matrices O 1 , O 2 , O 3 , O 4 .
  • the measurement circuit 132 performs gating operations on the qubits 31, 32, 33, and 34 according to the specifications of the generalized Pauli matrices O1 , O2 , O3 , and O4.
  • the qubits 31, 32, 33, 34 thereby hold measurements of the generalized Pauli matrices O 1 , O 2 , O 3 , O 4 .
  • qubit 31 holds measurements of the generalized Pauli matrix O1
  • qubit 32 holds measurements of the generalized Pauli matrix O2
  • qubit 33 holds measurements of the generalized Pauli matrix O3.
  • qubit 34 holds the measurement of the generalized Pauli matrix O4 .
  • the correspondence between the qubits 31 , 32, 33, and 34 and the generalized Pauli matrices O1, O2 , O3 , and O4 may change.
  • Measurement gates 133, 134, 135, and 136 each read a binary value of 0 or 1 from the qubit.
  • Measurement gate 133 reads the value of qubit 31
  • measurement gate 134 reads the value of qubit 32
  • measurement gate 135 reads the value of qubit 33
  • measurement gate 136 reads the value of qubit 34 .
  • the measurement circuit 132 is automatically generated from the specification of the generalized Pauli matrix.
  • the number of quantum gates of the measurement circuit 132 differs depending on the generation algorithm. Generally, the more quantum gates in the measurement circuit, the greater the number of quantum gates in series (which can also be referred to as the depth or length of the quantum circuit).
  • the execution time per quantum gate is several nanoseconds to several hundred nanoseconds, and the greater the depth of the quantum circuit, the longer the computation time. Moreover, since one quantum computation must be completed within the duration of the quantum bit, the quantum computation may not be completed if the depth of the quantum circuit is excessive. In addition, since an error occurs with a certain probability for each quantum gate, the error probability of the output of the quantum circuit increases as the depth of the quantum circuit increases.
  • the quantum circuit generator 124 preferably generates an efficient measurement circuit 132 with few quantum gates.
  • An example of a generation algorithm that uses the stabilizer matrix to generate the measurement circuit 132 is described below, followed by another generation algorithm in which the measurement circuit 132 has fewer quantum gates.
  • a generation algorithm using a stabilizer matrix is also described in Non-Patent Document 2 mentioned above, for example.
  • FIG. 5 is a diagram showing a first design example of a measurement circuit using a stabilizer matrix.
  • the quantum circuit generator 124 generates a measurement circuit corresponding to the projection operator information 40.
  • FIG. Projection operator information 40 includes Pauli strings of generalized Pauli matrices O 1 , O 2 , O 3 , O 4 .
  • O1 XXXX
  • O2 XXYY
  • O3 XYXY
  • O4 YXYY.
  • the quantum circuit generation unit 124 generates a 2N ⁇ N stabilizer matrix 41 .
  • the N rows in the top half of stabilizer matrix 41 form a Z matrix, and the N rows in the bottom half of stabilizer matrix 41 form an X matrix.
  • the N columns of the stabilizer matrix 41 correspond to N Pauli strings.
  • the N rows of the Z matrix and the N rows of the X matrix correspond to N qubits.
  • the stabilizer matrix 41 generated here has columns #0, # 1 , #2, #3 corresponding to the generalized Pauli matrices O1 , O2 , O3, O4 . Also, the Z matrix and the X matrix included in the stabilizer matrix 41 have rows # 0 , # 1 , # 2 , Has #3.
  • Each element of stabilizer matrix 41 is a 0 or 1 flag.
  • quantum circuit generation section 124 calculates the ranks (ranks) of the Z matrix and the X matrix, and sets row #i of the Z matrix and row #i of the X matrix so that the rank of the Z matrix or the X matrix is maximized. Replace with i.
  • the quantum circuit generator 124 replaces rows #1, #2, #3 of the Z matrix with rows #1, #2, #3 of the X matrix.
  • a stabilizer matrix 42 is thereby generated.
  • Permuting row #i corresponds to performing a Hadamard gate on qubit q i .
  • the quantum circuit generation unit 124 converts the X matrix into a diagonal matrix by Gaussian elimination.
  • Gaussian elimination is sometimes called the sweep-out method.
  • the diagonalized X matrix is an identity matrix because each element is binary 0 or 1. That is, the diagonalized X matrix is a matrix with 1s in the diagonal elements and 0s in the off-diagonal elements.
  • Gaussian elimination for X matrices repeats the row operation of adding one row to another. Since each element is binary 0 or 1, the sum of two rows corresponds to the exclusive OR of the two rows. At this time, the quantum circuit generation unit 124 performs addition on the Z matrix in the opposite direction to the X matrix. When adding row #i of the X matrix to row #j, quantum circuit generation section 124 adds row #j of the Z matrix to row #i. A row operation that adds row #i of the X matrix to row #j corresponds to a CNOT gate that updates qubit q j based on qubit q i .
  • the quantum circuit generator 124 may permute the columns of the stabilizer matrix.
  • the permutation of columns does not affect the structure of the measurement circuit. However, the permutation of columns changes the correspondence between the qubits q0 , q1 , q2 , q3 at the output points of the measurement circuit and the generalized Pauli matrices O1 , O2 , O3 , O4 .
  • the quantum circuit generation unit 124 records the order of the generalized Pauli matrices O 1 , O 2 , O 3 , and O 4 when the columns of the stabilizer matrix are interchanged.
  • the quantum chemistry calculator 126 determines the correspondence between the generalized Pauli matrices O 1 , O 2 , O 3 , and O 4 and the four measured values based on the above information. Interpret and permute the four measurements.
  • the quantum circuit generation unit 124 adds row #1 of the X matrix to row #2, adds row #2 of the X matrix to row #1, and adds row #1 of the X matrix to row #2. do. During this time, the quantum circuit generator 124 adds row #2 of the Z matrix to row #1, adds row #1 of the Z matrix to row #2, and adds row #2 of the Z matrix to row #1. . Thereby, the stabilizer matrix 43 is generated.
  • the quantum circuit generation unit 124 adds row #1 of the X matrix to row #3. During this time, the quantum circuit generator 124 adds row #3 of the Z matrix to row #1. A stabilizer matrix 44 is thereby generated. Further, quantum circuit generator 124 adds row #2 of the X matrix to row #3. During this time, the quantum circuit generator 124 adds row #3 of the Z matrix to row #2. A stabilizer matrix 45 is thereby generated.
  • the quantum circuit generator 124 adds row #3 of the X matrix to row #1, row #2 of the X matrix to row #1, and row #1 of the X matrix to row #0. . During this time, the quantum circuit generator 124 adds row #0 of the Z matrix to row #3, row #0 of the Z matrix to row #2, and row #0 of the Z matrix to row #1. . This produces a stabilizer matrix 46 .
  • the X matrix contained in stabilizer matrix 46 is a diagonal matrix.
  • the quantum circuit generator 124 transforms the Z matrix into a zero matrix.
  • an operation of setting diagonal elements Z(i, i) to 0 and an operation of setting off-diagonal elements Z(i, j) and Z(j, i) to 0 are used.
  • a stabilizer matrix 47 is thereby generated.
  • the Z matrix contained in stabilizer matrix 47 is a zero matrix.
  • the quantum circuit generator 124 replaces all rows of the Z matrix and the X matrix.
  • permuting row #i corresponds to performing a Hadamard gate on qubit q i .
  • the Z matrix contained in stabilizer matrix 48 is a diagonal matrix and the X matrix contained in stabilizer matrix 48 is a zero matrix.
  • FIG. 6 is a diagram showing a first example of the measurement circuit.
  • the quantum circuit generation unit 124 generates a measurement circuit by generating quantum gates corresponding to the above operation of diagonalizing the stabilizer matrix 41 .
  • the measurement circuit generated by the algorithm of FIG. 5 includes quantum gates 50-67.
  • Quantum gates 50, 51, 52 are Hadamard gates to qubits q1 , q2 , q3 .
  • Quantum gate 53 is a CNOT gate from qubits q1 to q2 .
  • Quantum gate 54 is a CNOT gate from qubits q2 to q1 .
  • Quantum gate 55 is a CNOT gate from qubits q1 to q2 .
  • Quantum gate 56 is a CNOT gate from qubits q1 to q3 .
  • Quantum gate 57 is a CNOT gate from qubits q2 to q3 .
  • Quantum gate 58 is a CNOT gate from qubits q3 to q0 .
  • Quantum gate 59 is a CNOT gate from qubits q2 to q0 .
  • Quantum gate 60 is a CNOT gate from qubits q1 to q0 .
  • Quantum gate 61 is a CZ gate to qubits q 0 and q 3 .
  • Quantum gate 62 is a CZ gate to qubits q 1 and q 3 .
  • Quantum gate 63 is a CZ gate to qubits q 2 and q 3 .
  • Quantum gates 64, 65, 66, 67 are Hadamard gates to qubits q0 , q1 , q2 , q3 .
  • this measurement circuit does not satisfy the connectivity constraints between the qubits in the quantum device 30 and is not feasible in the quantum device 30 .
  • quantum gates 56 and 62 are not viable because qubits q1 and q3 are not connected.
  • Quantum gate 59 is not viable because qubits q 0 and q 2 are not connected.
  • the quantum circuit generator 124 corrects the measurement circuit generated based on the stabilizer matrix by referring to the physical arrangement information.
  • the quantum circuit generator 124 inserts a swap gate for swapping the values of two quantum bits into the measurement circuit.
  • a swap gate may be implemented using three CNOT gates.
  • the swap gates of qubits qi and qj are a CNOT gate from qubits qi to qj , a CNOT gate from qubits qj to qi , and a CNOT gate from qubits qi to qj . are equivalent.
  • the quantum circuit generator 124 inserts the quantum gate 68 between the quantum gates 55 and 56 . Also, the quantum circuit generator 124 inserts a quantum gate 69 between the quantum gates 57 and 58 . Also, the quantum circuit generator 124 inserts the quantum gate 70 between the quantum gates 58 and 59 . Quantum circuit generator 124 also inserts quantum gate 71 between quantum gate 59 and quantum gate 60 . Also, the quantum circuit generator 124 inserts the quantum gate 72 between the quantum gates 61 and 62 .
  • Quantum gates 68, 69, 70, 71, and 72 are swap gates. Note that since the insertion of the swap gate changes the substantial position of the quantum bit, the lines on which the other quantum gates are arranged also change in the quantum circuit diagram.
  • the diagonalized portion of the X matrix has 20 CNOT gates.
  • FIG. 7 is a diagram showing a second example of the measurement circuit.
  • an example of a measurement circuit generated using the generation algorithm of Non-Patent Document 1 is given.
  • Swap gates 73 , 74 , 75 are also inserted in this measurement circuit in order to satisfy the connection relation constraints of the quantum device 30 .
  • the number of CNOT gates in the section corresponding to the diagonalized portion of the X matrix shown in FIG. 6 is fourteen.
  • the information processing apparatus 100 modifies the generation algorithm so that the number of quantum gates in the measurement circuit is further reduced.
  • the information processing apparatus 100 appropriately selects a row of the X matrix for addition operation so as to satisfy the connection relation constraint of the quantum device 30 in the Gaussian elimination method described with reference to FIG. 5 . Accordingly, the measurement circuit generated through the diagonalization of the stabilizer matrix already satisfies the constraint of the connection relationship, and the information processing apparatus 100 does not need to modify the measurement circuit afterward. Therefore, by optimizing the diagonalization of the stabilizer matrix, it is possible to generate a highly efficient measurement circuit with fewer quantum gates.
  • FIG. 8 is a diagram showing a second design example of the measurement circuit using the stabilizer matrix.
  • Quantum circuit generator 124 generates stabilizer matrix 142 based on projection operator information 140 .
  • the projection operator information 140 is the same as the projection operator information 40 of FIG.
  • Stabilizer matrix 142 is the same as stabilizer matrix 41 in FIG.
  • Quantum circuit generation section 124 replaces row #i of Z matrix and row #i of X matrix so that the rank of Z matrix or X matrix of stabilizer matrix 142 is maximized.
  • a stabilizer matrix 143 that is the same as the stabilizer matrix 42 in FIG. 5 is generated.
  • the quantum circuit generation unit 124 refers to the physical arrangement information 141, executes Gaussian elimination on the X matrix of the stabilizer matrix 143, and diagonalizes the X matrix.
  • the physical arrangement information 141 indicates the connection relationship of quantum bits q0 , q1 , q2 , q3 .
  • the quantum circuit generation unit 124 diagonalizes the X matrix in a procedure that satisfies the constraint of the connection relationship by performing addition operations only on the row pairs corresponding to the connected quantum bit pairs.
  • the quantum circuit generator 124 sequentially selects four columns corresponding to the generalized Pauli matrices O 1 , O 2 , O 3 and O 4 .
  • the quantum circuit generation unit 124 selects elements in which 1 is left (to be diagonal elements) from the selected columns. At this time, the quantum circuit generation unit 124 may replace the columns of the stabilizer matrix so that the X matrix can be efficiently diagonalized.
  • the quantum circuit generator 124 selects the quantum bit corresponding to the selected element as the center bit.
  • the quantum circuit generation unit 124 calculates the distance d between the center bit and each of the other quantum bits based on the physical allocation information 141 .
  • the distance d is the number of connections through which one quantum bit reaches the other quantum bit, and corresponds to the number of hops.
  • the quantum circuit generation unit 124 performs Perform addition operations. At this time, the quantum circuit generation unit 124 performs the addition operation such that the element corresponding to the quantum bit with the largest distance d is preferentially set to 0. That is, the quantum circuit generation unit 124 brings the state of the far quantum bits to "0" while bringing the state of the far quantum bits closer to the central bit in order from the far quantum bit to the central bit.
  • the quantum circuit generator 124 selects column #0 corresponding to the generalized Pauli matrix O1 from the stabilizer matrix 143 .
  • Column #0 of the X matrix is already diagonalized because the element in row #0 is 1 and the elements in rows #1, #2, #3 are 0's. Therefore, processing of the selected columns is skipped.
  • quantum circuit generation section 124 replaces columns #1 and #2 of stabilizer matrix 143 . This produces a stabilizer matrix 144 . Columns #1 and #2 are interchanged so that the diagonal elements of row #1 are effectively 1's.
  • the quantum circuit generator 124 selects column #1 from the stabilizer matrix 144 corresponding to the generalized Pauli matrix O3 .
  • Quantum circuit generator 124 selects qubit q1 corresponding to row # 1 as the central bit, and preferentially processes row # 3 corresponding to qubit q3 , which is farthest from qubit q1.
  • quantum circuit generation section 124 adds row #0 of the X matrix to row #3, adds row #3 of the X matrix to row #0, and adds row #1 of the X matrix to row #0. add to During this time, the quantum circuit generator 124 adds row #3 of the Z matrix to row #0, row #0 of the Z matrix to row #3, and row #0 of the Z matrix to row #1. .
  • stabilizer matrix 145 is generated.
  • column #1 of the X matrix is already diagonalized because the element in row #1 is 1 and the elements in rows #0, #2, #3 are 0's.
  • processing of the selected column ends.
  • the quantum circuit generator 124 selects column #2 from the stabilizer matrix 145 corresponding to the generalized Pauli matrix O2 .
  • Quantum circuit generator 124 selects qubit q2 corresponding to row # 2 as the center bit, and preferentially processes row # 0 corresponding to qubit q0 , which is farthest from qubit q2.
  • quantum circuit generation section 124 adds row #2 of the X matrix to row #1, adds row #1 of the X matrix to row #0, and adds row #0 of the X matrix to row #1. add to During this time, the quantum circuit generator 124 adds row #1 of the Z matrix to row #2, adds row #0 of the Z matrix to row #1, and adds row #1 of the Z matrix to row #0. .
  • the quantum circuit generator 124 processes row # 1 corresponding to qubit q1. Specifically, quantum circuit generator 124 adds row #2 of the X matrix to row #1. During this time, the quantum circuit generator 124 adds row #1 of the Z matrix to row #2. This produces a stabilizer matrix 146 . In the stabilizer matrix 146, column #2 of the X matrix is already diagonalized because the elements in row #2 are 1's and the elements in rows #0, #1, and #3 are 0's. Thus, processing of the selected column ends.
  • the quantum circuit generation unit 124 swaps columns #0 and #1 of the stabilizer matrix 143 and swaps columns #1 and #3. This produces a stabilizer matrix 147 .
  • the diagonal elements of the X matrix included in the stabilizer matrix 147 are all 1's.
  • quantum circuit generator 124 selects column #1 corresponding to generalized Pauli matrix O4 from stabilizer matrix 147 as the last column. Since the diagonal elements of column #1 are in row #1, quantum circuit generator 124 selects qubit q1 corresponding to row # 1 as the center bit and row # 0 corresponding to qubit q0. process. Specifically, the quantum circuit generator 124 adds row #1 of the X matrix to row #0. During this time, the quantum circuit generator 124 adds row #0 of the Z matrix to row #1. This produces a stabilizer matrix 148 .
  • the X matrix included in the stabilizer matrix 148 is a diagonal matrix. Thus, Gaussian elimination ends.
  • the quantum circuit generator 124 transforms the Z matrix included in the stabilizer matrix 148 into a zero matrix.
  • a stabilizer matrix 149 is generated.
  • the Z matrix included in stabilizer matrix 149 is a zero matrix
  • the X matrix included in stabilizer matrix 149 is a diagonal matrix.
  • the quantum circuit generator 124 replaces the Z matrix and the X matrix. This produces a stabilizer matrix that is the same as the stabilizer matrix 48 of FIG.
  • FIG. 9 is a diagram showing a third example of the measurement circuit.
  • the quantum circuit generation unit 124 generates a measurement circuit by generating quantum gates corresponding to the above operation of diagonalizing the stabilizer matrix 142 .
  • the measurement circuit generated by the algorithm of FIG. 8 includes quantum gates 150-169.
  • Quantum gates 150, 151, 152 are Hadamard gates to qubits q1 , q2 , q3 .
  • Quantum gate 153 is a CNOT gate from qubits q0 to q3 .
  • Quantum gate 154 is a CNOT gate from qubits q3 to q0 .
  • Quantum gate 155 is a CNOT gate from qubits q1 to q0 .
  • Quantum gate 156 is a CNOT gate from qubits q2 to q1 .
  • Quantum gate 157 is a CNOT gate from qubits q1 to q0 .
  • Quantum gate 158 is a CNOT gate from qubits q0 to q1 .
  • Quantum gate 159 is a CNOT gate from qubits q2 to q1 .
  • Quantum gate 160 is a CNOT gate from qubits q1 to q0 .
  • Quantum gate 161 is a phase shift gate to qubit q1 .
  • Quantum gate 162 is a CZ gate to qubits q 0 and q 1 .
  • Quantum gate 163 is a CZ gate to qubits q 1 and q 2 .
  • Quantum gate 164 is a swap gate to qubits q 2 and q 3 .
  • Quantum gate 165 is a CZ gate to qubits q 1 and q 2 .
  • Quantum gates 166, 167, 168, 169 are Hadamard gates to qubits q0 , q1 , q2 , q3 .
  • the qubits q0 , q1 , q2 , q3 at the time of output correspond to the generalized Pauli matrices O3 , O4 , O1 , O2 .
  • the number of CNOT gates in the diagonalized part of the X matrix is eight. Thus, a highly efficient measurement circuit is created with fewer CNOT gates as compared to FIGS. Next, a processing procedure of the information processing apparatus 100 will be described.
  • FIG. 10 is a flow chart showing an example of the procedure for generating a quantum circuit.
  • the quantum circuit generator 124 reads physical arrangement information indicating the connection relationship of the quantum bits of the quantum device 30 and projection operator information indicating N Pauli character strings.
  • the quantum circuit generator 124 generates a 2N ⁇ N stabilizer matrix including an N ⁇ N Z matrix and an N ⁇ N X matrix from the N Pauli character strings.
  • the quantum circuit generation unit 124 maximizes the rank of one of the Z matrix and the X matrix by interchanging rows between the Z matrix and the X matrix.
  • the quantum circuit generator 124 diagonalizes the X matrix by Gaussian elimination. At this time, the quantum circuit generation unit 124 selects a row pair to be operated so as to satisfy the constraint of the connection relationship indicated by the physical arrangement information. The details of matrix diagonalization will be described later.
  • the quantum circuit generator 124 transforms the Z matrix into a zero matrix.
  • the quantum circuit generator 124 replaces all rows between the Z matrix and the X matrix.
  • the quantum circuit generator 124 generates a quantum circuit including quantum gates corresponding to the matrix operations performed in steps S12 to S15, and stores the quantum circuit. Further, the quantum circuit generation unit 124 stores information indicating the correspondence relationship between the measured values of the N quantum bits and the N Pauli strings based on the permutation of columns performed in the stabilizer matrix.
  • FIG. 11 is a flow chart showing an example of a procedure for matrix diagonalization.
  • the quantum circuit generator 124 initializes the column number C to 1, initializes the distance d to the maximum distance in the quantum device 30, and specifies the number N of qubits.
  • the column number C indicates which column of the N columns is being processed.
  • the quantum circuit generation unit 124 selects one unprocessed column from among the N columns included in the stabilizer matrix. At this time, it is preferable that the quantum circuit generation unit 124 selects a column in which 1 is already present in a row in which 1 is to be left in the current processing.
  • the quantum circuit generator 124 may replace columns included in the stabilizer matrix. In that case, the quantum circuit generation unit 124 records the order of the N Pauli character strings according to the permutation of the strings.
  • the quantum circuit generation unit 124 selects, from among the N qubits, the qubit corresponding to the row in which the state "1" is left in the selected column (the row to be the diagonal element) as the central bit. do.
  • the quantum circuit generator 124 calculates the distances between the center bit and each of the other N ⁇ 1 quantum bits from the connection relationship of the quantum device 30 .
  • the quantum circuit generator 124 determines whether there is a quantum bit corresponding to the row of state "1" at a distance d from the central bit. If there is a corresponding quantum bit, the process proceeds to step S24, and if there is no corresponding quantum bit, the process proceeds to step S26.
  • the quantum circuit generator 124 performs a row operation of adding a row of the X matrix to another row of the X matrix according to the matrix M1 defined by equations (6), (7) and (8).
  • This row manipulation is defined by the CNOT gates of equations (6), (7) and (8).
  • Equation (6) represents a chain of CNOT gates from the qubit at distance d to the central bit.
  • CNOT i>j represents a CNOT gate with the qubit at distance i from the central bit as the control bit and the qubit at distance j as the target bit.
  • c 1 becomes a CNOT gate with qubits far from the center bit as control bits and qubits near the center bit as target bits if row (i ⁇ 1) has been diagonalized. If the qubit q(i ⁇ 1) is 0, c2 becomes a CNOT gate with the qubit far from the central bit as the control bit and the qubit close to the central bit as the target bit.
  • the quantum circuit generator 124 performs row manipulation on the Z matrix in the opposite direction to the row manipulation of the X matrix in step S24.
  • a row operation that adds row #i of the X matrix to row #j corresponds to a row operation that adds row #j of the Z matrix to row #i.
  • the quantum circuit generator 124 updates the distance d to d-1.
  • the quantum circuit generator 124 determines whether the distance d is 1 or more. If the distance d is 1 or more, the process returns to step S23, otherwise the process proceeds to step S28.
  • the quantum circuit generator 124 updates the column number C to C+1. Also, the distance d is initialized to the maximum distance within the quantum device 30 . (S29) The quantum circuit generator 124 determines whether the column number C is equal to or less than the number N of qubits. If the column number C is equal to or smaller than the number of qubits N, the process returns to step S21; otherwise, the matrix diagonalization in step S13 ends.
  • CNOT 1>2 , CNOT 2>1 and CNOT 1>0 are executed.
  • a CNOT gate from qubits q0 to q3 a CNOT gate from qubits q3 to q0
  • a CNOT gate from qubits q1 to q0 are performed.
  • CNOT 0>1 , CNOT 1>2 and CNOT 2>1 are executed.
  • a CNOT gate from qubits q2 to q1 a CNOT gate from qubits q1 to q0
  • a CNOT gate from qubits q0 to q1 are performed.
  • CNOT 0>1 is performed.
  • a CNOT gate from qubits q2 to q1 is performed.
  • the states of the qubits q 0 and q 1 are 1, and the states of the qubits q 2 and q 3 are 0.
  • the qubit q0 becomes the object of processing.
  • CNOT 0>1 is performed.
  • a CNOT gate from qubits q1 to q0 is performed. The above completes the diagonalization of the X matrix.
  • the information processing apparatus 100 generates a quantum circuit for parallel observation of a plurality of measured values from a quantum state based on a plurality of Pauli character strings. Thereby, the information processing apparatus 100 supports the design of the quantum circuit, and the load of designing the quantum circuit is reduced.
  • the information processing apparatus 100 also generates a stabilizer matrix from a plurality of Pauli character strings, and determines quantum gates of the quantum circuit through diagonalization of the stabilizer matrix. Accordingly, the information processing apparatus 100 can generate quantum circuits for various Pauli character strings by a uniform method, and can generate quantum circuits at high speed.
  • the information processing device 100 can optimize the quantum circuit through optimization of the diagonalization process of the stabilizer matrix. This creates a highly efficient quantum circuit with fewer quantum gates.
  • the information processing apparatus 100 selects two rows to be subjected to row operation in accordance with the constraint of the connection relationship of the qubits in the diagonalization of the stabilizer matrix. This speeds up quantum circuit generation compared to the case of separately determining quantum gates that match the Pauli string and modifying the quantum circuit to satisfy connectivity constraints. Also, a highly efficient quantum circuit with few quantum gates is generated. As a result, the execution time of gate operations according to the quantum circuit is shortened. Also, even if there are many qubits, the quantum computation is completed within the duration of the qubits. In addition, since the number of quantum gates is small, the probability of error occurrence is reduced.

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)
  • Complex Calculations (AREA)

Abstract

効率性の高い量子回路を生成する。 記憶部(11)は、複数のパウリ演算子の結合によってそれぞれ示される複数の射影演算子を示す演算子情報(13)と、量子デバイスに含まれる複数の量子ビットの接続関係を示す配置情報(14)とを記憶する。処理部(12)は、量子ビットに対応する複数の行と射影演算子に対応する複数の列とを含む行列(15)を生成する。処理部(12)は、行操作によって行列(15)を対角行列(16)に変換する対角化であって、行操作は、配置情報(14)が示す接続関係に基づいて2つの行を選択し、一方の行を用いて他方の行を更新することを含む対角化を実行する。処理部(12)は、対角化で行われた行操作に基づいて、量子デバイスに対するゲート操作を示す量子回路(17)を生成する。

Description

情報処理装置、量子回路生成方法および量子回路生成プログラム
 本発明は情報処理装置、量子回路生成方法および量子回路生成プログラムに関する。
 量子コンピュータの用途の1つに、変分量子固有値ソルバ(VQE:Variational Quantum Eigensolver)という量子化学計算がある。量子化学計算は、シュレーディンガー方程式に基づいて分子状態を推定する分子シミュレーションである。VQEは、変分原理と量子力学とに基づいて、分子状態に関する最適な固有値を算出する。
 VQEは、量子デバイスに含まれる複数の量子ビットを用いて特定の量子状態を再現する。VQEは、複数の量子ビットに対して特定の射影演算子に相当するゲート操作を行うことで、その量子状態のもとでエネルギーなどの測定値を求める。VQEは、1回の量子状態から、複数の射影演算子に対応する複数の測定値を並列に求めることがある。
 量子デバイスに実行させる一連のゲート操作は、量子回路によって規定される。量子回路は、量子演算の手順を示すプログラムに相当する。量子回路は、制御ノット(CNOT:Controlled NOT)ゲートや制御Z(CZ:Controlled Z)ゲートなどの量子ゲートを含む。VQEに用いられる量子回路は、量子状態を生成する生成回路と、生成された量子状態から複数の測定値を算出する測定回路とを含むことがある。
 測定回路の構造は、複数の射影演算子の仕様に基づいて決定される。各射影演算子は、2以上のパウリ演算子に分解され得る。パウリ演算子は、量子ビットに適用される単位演算子であり、パウリX演算子、パウリY演算子およびパウリZ演算子を含む。そこで、複数の射影演算子の仕様から測定回路の量子ゲートを生成する技術が提案されている。
 なお、量子ハミルトニアンに含まれる複数のパウリ文字列からパウリグラフを生成し、同時観測可能性に基づいて一部のノードを統合した統合パウリグラフを生成し、統合パウリグラフに基づいて量子回路を設計するコンピュータが提案されている。また、量子回路を表すパラメータの初期値を出力する古典コンピュータと、初期値に応じてVQEを用いた量子計算を実行し、エネルギー計算のための量子回路を表すパラメータを生成する量子コンピュータとを含むハイブリッドシステムが提案されている。
特開2020-144400号公報 特開2020-187451号公報
Wakaki Hattori and Shigeru Yamashita, "Quantum Circuit Optimization by Changing the Gate Order for 2D Nearest Neighbor Architectures", Proc. of the 10th International Conference on Reversible Computation (RC 2018), pp. 228-243, September 2018 Pranav Gokhale, Olivia Angiuli, Yongshan Dign, Kaiwen Gui, Teague Tomesh, Martin Suchara, Margaret Martonosi and Frederic T. Chong, "Minimizing State Preparations in Variational Quantum Eigensolver by Partitioning into Commuting Families", arXiv:1907.13623, July 2019
 量子デバイスでは、物理的制約により、各量子ビットが全ての他の量子ビットと接続されているとは限らない。そのため、CNOTゲートやCZゲートなど2入力の量子ゲートは、接続されていない2つの量子ビットに直接適用できないことがある。この点、射影演算子の仕様から量子回路を生成する従来技術は、量子ビットの接続関係の制約のもとで、効率性の高い量子回路を生成することが難しいことがある。
 例えば、1つの方法として、まず量子ビットの接続関係を考慮せずに量子回路を生成し、接続関係の制約を満たすように、2つの量子ビットの値を入れ替えるスワップゲートを量子回路に挿入する方法も考えられる。しかし、後からスワップゲートを挿入する方法では、量子ゲートが多い非効率な量子回路が生成されることがある。そこで、1つの側面では、本発明は、効率性の高い量子回路を生成することを目的とする。
 1つの態様では、記憶部と処理部とを有する情報処理装置が提供される。記憶部は、複数のパウリ演算子の結合によってそれぞれ示される複数の射影演算子を示す演算子情報と、量子デバイスに含まれる複数の量子ビットの接続関係を示す配置情報とを記憶する。処理部は、演算子情報が示す複数の射影演算子に基づいて、複数の量子ビットに対応する複数の行と複数の射影演算子に対応する複数の列とを含む行列を生成する。処理部は、行操作によって行列を対角行列に変換する対角化であって、行操作は、配置情報が示す接続関係に基づいて、複数の行の中から2つの行を選択し、2つの行のうちの一方の行を用いて他方の行を更新することを含む対角化を実行する。処理部は、対角化で行われた行操作に基づいて、量子デバイスに対するゲート操作を示す量子回路を生成する。
 また、1つの態様では、コンピュータが実行する量子回路生成方法が提供される。また、1つの態様では、コンピュータに実行させる量子回路生成プログラムが提供される。
 1つの側面では、効率性の高い量子回路が生成される。
 本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
第1の実施の形態の情報処理装置を説明するための図である。 第2の実施の形態の情報処理システムの例を示す図である。 情報処理装置のソフトウェア構造例を示す図である。 測定回路を含む量子回路の例を示す図である。 スタビライザー行列を用いた測定回路の第1の設計例を示す図である。 測定回路の第1の例を示す図である。 測定回路の第2の例を示す図である。 スタビライザー行列を用いた測定回路の第2の設計例を示す図である。 測定回路の第3の例を示す図である。 量子回路生成の手順例を示すフローチャートである。 行列対角化の手順例を示すフローチャートである。
 以下、本実施の形態を図面を参照して説明する。
 [第1の実施の形態]
 第1の実施の形態を説明する。
 図1は、第1の実施の形態の情報処理装置を説明するための図である。
 第1の実施の形態の情報処理装置10は、量子コンピュータに実行させる一連のゲート操作を規定した量子回路を生成する。量子コンピュータは、例えば、エラー訂正のない中規模量子コンピュータであるNISQ(Noisy Intermediate-Scale Quantum Computer)である。情報処理装置10は、いわゆる古典コンピュータであってもよい。情報処理装置10は、クライアント装置でもよいしサーバ装置でもよい。情報処理装置10が、コンピュータ、量子回路生成装置または設計装置と呼ばれてもよい。
 情報処理装置10は、記憶部11および処理部12を有する。記憶部11は、RAM(Random Access Memory)などの揮発性半導体メモリでもよいし、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性ストレージでもよい。処理部12は、例えば、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、DSP(Digital Signal Processor)などのプロセッサである。ただし、処理部12が、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの特定用途の電子回路を含んでもよい。プロセッサは、例えば、RAMなどのメモリ(記憶部11でもよい)に記憶されたプログラムを実行する。プロセッサの集合が、マルチプロセッサまたは単に「プロセッサ」と呼ばれてもよい。
 記憶部11は、演算子情報13および配置情報14を記憶する。演算子情報13は、同一の量子状態から異なる測定値を算出する複数の射影演算子を示す。情報処理装置10が生成する量子回路は、VQEに用いられてもよい。VQEは、ある量子状態に対して複数の射影演算子を並列に作用させて複数の測定値を算出し、それら複数の測定値を係数で重み付けした和を、その量子状態におけるエネルギーとして算出する。VQEは、量子状態を変えながらエネルギーを算出して、エネルギーが最小になる量子状態を探索する。
 複数の射影演算子はそれぞれ、複数のパウリ演算子の結合によって表現される。パウリ演算子は、量子ビットに対する単位演算子であり、パウリX演算子とパウリY演算子とパウリZ演算子を含む。パウリX演算子は、ビット反転に相当する。パウリY演算子は、ビット反転と位相反転の組み合わせに相当する。パウリZ演算子は、位相反転に相当する。
 複数の射影演算子はそれぞれ、パウリ演算子の列を示すパウリ文字列によって表現されてもよい。パウリ文字列の各文字は、X、YまたはZである。パウリ文字列の長さは、量子ビットの個数と同じであってもよい。長さの調整のため、パウリ文字列は、恒等写像を示す単位行列Iを含んでもよい。例えば、射影演算子OがXXXX、射影演算子OがXXYY、射影演算子OがXYXY、射影演算子OがYXXYである。
 配置情報14は、量子デバイスに含まれる複数の量子ビットの接続関係を示す。量子デバイスに含まれる各量子ビットは、物理的制約により、他の全ての量子ビットと接続されているとは限らず、一部の量子ビットとのみ接続されていることがある。2入力の量子ゲートは、接続されている2つの量子ビットに対しては実行可能である一方、接続されていない2つの量子ビットに対しては実行不能であることがある。
 複数の量子ビットは、量子デバイスの中で格子状に配置されていることがある。例えば、量子デバイスは、格子状に配置された量子ビットq,q,q,qを含む。量子ビットq,qが相互に接続され、量子ビットq,qが相互に接続され、量子ビットq,qが相互に接続され、量子ビットq,qが相互に接続されている。量子ビットq,qは接続されておらず、量子ビットq,qは接続されていない。
 配置情報14は、量子ビットに対応するノードと接続に対応するエッジとを含む無向グラフによって表現されてもよい。また、配置情報14は、量子ビットに対応する行および列を含み、接続されていない量子ビットのペアが0であり、接続されている量子ビットのペアが1である隣接行列によって表現されてもよい。
 処理部12は、演算子情報13が示す複数の演算子に基づいて行列15を生成する。行列15は、いわゆるスタビライザー行列に含まれるX行列であってもよい。行列15は、複数の量子ビットに対応する複数の行と、複数の射影演算子に対応する複数の列とを含む。例えば、行列15は、量子ビットq,q,q,qに対応する4つの行と、射影演算子O,O,O,Oに対応する4つの列とを含む。行列15に含まれる各要素は、例えば、パウリ文字列から導出される0または1のフラグである。
 処理部12は、1以上の行操作を通じて行列15を対角行列16に変換する対角化を実行する。対角行列16は、対角要素が非ゼロであり非対角要素が0である行列である。例えば、対角行列16は、対角要素が1であり非対角要素が0である単位行列である。対角化で行われる行操作は、配置情報14が示す接続関係に基づいて2つの行を選択し、選択された2つの行のうちの一方の行を用いて他方の行を更新することを含む。
 行操作は、例えば、一方の行を他方の行に加算する。各要素が0または1のフラグである場合、2つの要素の加算は排他的論理和に相当する。対角化は、いわゆるガウスの消去法または掃き出し法と呼ばれるアルゴリズムに従って実行されてもよい。ただし、行操作が行われる2つの行は、複数の量子ビットの間の接続関係の制約のもとで選択される。例えば、処理部12は、相互に接続されている2つの量子ビットに対応する2つの行を選択し、接続されていない2つの量子ビットに対応する2つの行は選択しない。
 例えば、処理部12は、量子ビットqに対応する行#0の(1,1,1,1)を用いて、量子ビットqに対応する行#3の(0,1,1,1)を(1,0,0,0)に更新する。続けて、処理部12は、行#3の(1,0,0,0)を用いて、行#0の(1,1,1,1)を(0,1,1,1)に更新する。特定のアルゴリズムに従って、このような行操作を繰り返すことで、行列15が対角行列16に変換される。
 ここで、量子ビットqに対応する行#0と量子ビットqに対応する行#2とが、同じ列に非ゼロ要素を含むことがある。この場合であっても、量子ビットq,qが接続されていないため、行#0,#2の間で直接的に行演算を行うことが制限されることがある。その場合、処理部12は、量子ビットq,qに対応する行#0,#1の行演算と、量子ビットq,qに対応する行#1,#2の行演算とを組み合わせて、行#0,#2の行演算と同等の演算結果を実現してもよい。
 また、基準の量子ビットに対応する行と、2以上の他の量子ビットに対応する2以上の他の行とが、同じ列に非ゼロ要素を含むことがある。この場合、処理部12は、2以上の量子ビットそれぞれについて基準の量子ビットからのホップ数を算出し、ホップ数が最大の量子ビットに対応する行を優先的に選択してもよい。ホップ数が最大の量子ビットは、基準の量子ビットから最も遠いものである。処理部12は、ホップ数が最大である量子ビットに対応する行から優先的に、非ゼロ要素を消去するように行演算を実行してもよい。
 処理部12は、対角化で行われた1以上の行操作に基づいて、量子デバイスに対する1以上のゲート操作を示す量子回路17を生成する。量子回路17は、複数の量子ビットに対応する複数のラインを含み、ライン上に配置された1以上の量子ゲートを含む。量子ゲートが示すゲート操作が、左から右に向かう順序で実行される。
 量子ゲートには、CNOTゲートが含まれる。例えば、処理部12は、行#0を用いて行#3を更新する行操作から、量子ビットqが制御ビットであり量子ビットqが標的ビット(ターゲットビット)であるCNOTゲートを生成する。同様に、処理部12は、行#3を用いて行#0を更新する行操作から、量子ビットqが制御ビットであり量子ビットqが標的ビットであるCNOTゲートを生成する。CNOTゲートは、制御ビットが0の場合は標的ビットを変更せず、制御ビットが1の場合に標的ビットのビット反転を行う。ビット反転は、標的ビットにXゲートを適用することに相当する。
 処理部12は、生成された量子回路17を出力する。処理部12は、量子回路17を不揮発性ストレージに保存してもよいし、表示装置に表示してもよいし、他の情報処理装置に送信してもよい。また、処理部12は、量子回路17に基づいて、情報処理装置10に接続された量子デバイスに対してゲート操作を行ってもよい。
 以上説明したように、第1の実施の形態の情報処理装置10は、複数の射影演算子に基づいて、量子状態から複数の測定値を算出するための量子回路17を生成する。これにより、情報処理装置10によって量子回路17の設計が支援され、量子回路17の設計の負担が軽減される。また、情報処理装置10は、複数の射影演算子から行列15を生成し、行列15を対角行列16に変換する対角化を通じて、量子回路17を決定する。これにより、情報処理装置10は、様々な射影演算子に対して画一的方法で量子回路17を生成することができ、量子回路17を高速に生成することができる。
 また、情報処理装置10は、行列15の対角化処理の最適化を通じて、量子回路17を最適化することができる。これにより、量子ゲートの少ない高効率な量子回路17が生成される。また、情報処理装置10は、行列15の対角化の中で、複数の量子ビットの接続関係の制約に従って、行操作を行う2つの行を選択する。これにより、射影演算子の仕様を満たすための量子ゲートの決定と接続関係の制約を満たすための量子ゲートの決定を別個に行う場合と比べて、量子回路17の生成が高速化される。
 また、量子ゲートの少ない高効率な量子回路17が生成される。特に、射影演算子の仕様を満たす量子回路を生成した後、接続関係の制約を満たすようにスワップゲートを後から挿入する場合と比べて、量子回路17の量子ゲート数が減少する。その結果、量子回路17を実行する際の実行時間が短縮する。また、射影演算子のサイズが大きい場合であっても、量子ビットの持続時間(コヒーレンス時間)内に量子計算が完了する。また、量子ゲート数が少ないことで、エラー発生確率が低下する。
 [第2の実施の形態]
 次に、第2の実施の形態を説明する。
 図2は、第2の実施の形態の情報処理システムの例を示す図である。
 第2の実施の形態の情報処理装置100は、VQEに用いられる量子回路を生成する。情報処理装置100には、量子デバイス30が接続されている。量子デバイス30は、量子コンピュータに相当する。情報処理装置100は、いわゆる古典コンピュータに相当する。情報処理装置100は、クライアント装置でもよいしサーバ装置でもよい。情報処理装置100は、コンピュータ、量子回路生成装置または設計装置と呼ばれてもよい。情報処理装置100は、第1の実施の形態の情報処理装置10に対応する。
 情報処理装置100は、バスに接続されたCPU101、RAM102、HDD103、GPU104、入力インタフェース105、媒体リーダ106、通信インタフェース107およびデバイスインタフェース108を有する。CPU101は、前述の処理部12に対応する。RAM102またはHDD103は、前述の記憶部11に対応する。
 CPU101は、プログラムの命令を実行するプロセッサである。CPU101は、HDD103に記憶されたプログラムおよびデータの少なくとも一部をRAM102にロードし、プログラムを実行する。情報処理装置100は、複数のプロセッサを有してもよい。プロセッサの集合が、マルチプロセッサまたは単に「プロセッサ」と呼ばれてもよい。
 RAM102は、CPU101で実行されるプログラムおよびCPU101で演算に使用されるデータを一時的に記憶する揮発性半導体メモリである。情報処理装置100は、RAM以外の種類の揮発性メモリを有してもよい。
 HDD103は、OS(Operating System)、ミドルウェア、アプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性ストレージである。情報処理装置100は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の不揮発性ストレージを有してもよい。
 GPU104は、CPU101と連携して画像を生成し、情報処理装置100に接続された表示装置111に画像を出力する。表示装置111は、例えば、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイまたはプロジェクタである。なお、情報処理装置100に、プリンタなどの他の種類の出力デバイスが接続されてもよい。
 入力インタフェース105は、情報処理装置100に接続された入力デバイス112から入力信号を受け付ける。入力デバイス112は、例えば、マウス、タッチパネルまたはキーボードである。情報処理装置100に複数の入力デバイスが接続されてもよい。
 媒体リーダ106は、記録媒体113に記録されたプログラムおよびデータを読み取る読み取り装置である。記録媒体113は、例えば、磁気ディスク、光ディスクまたは半導体メモリである。磁気ディスクには、フレキシブルディスク(FD:Flexible Disk)およびHDDが含まれる。光ディスクには、CD(Compact Disc)およびDVD(Digital Versatile Disc)が含まれる。媒体リーダ106は、記録媒体113から読み取られたプログラムおよびデータを、RAM102やHDD103などの他の記録媒体にコピーする。読み取られたプログラムは、CPU101によって実行されることがある。
 記録媒体113は、可搬型記録媒体であってもよい。記録媒体113は、プログラムおよびデータの配布に用いられることがある。また、記録媒体113およびHDD103が、コンピュータ読み取り可能な記録媒体と呼ばれてもよい。
 通信インタフェース107は、ネットワーク114に接続され、ネットワーク114を介して他の情報処理装置と通信する。通信インタフェース107は、スイッチやルータなどの有線通信装置に接続される有線通信インタフェースでもよいし、基地局やアクセスポイントなどの無線通信装置に接続される無線通信インタフェースでもよい。
 デバイスインタフェース108は、量子デバイス30に接続されている。デバイスインタフェース108は、量子デバイス30にゲート操作を指示する。量子デバイス30は、複数の量子ビットを含む。複数の量子ビットの中には、その物理配置に基づいて、接続されている量子ビットのペアと接続されていない量子ビットのペアとがある。2入力の量子ゲート(2量子ゲート)は、接続されている量子ビットのペアに対して実行可能であり、接続されていない量子ビットのペアに対して実行不能である。
 量子デバイス30は、量子ビット31,32,33,34(q,q,q,q)を含む。量子ビット31,32,33,34は、格子状に配置されている。量子ビット31,32が接続され、量子ビット32,33が接続され、量子ビット33,34が接続され、量子ビット31,34が接続されている。量子ビット31,33は接続されておらず、量子ビット32,34は接続されていない。
 ここで、量子化学計算であるVQEについて説明する。量子化学計算は、シュレーディンガー方程式に基づいて分子状態を推定する分子シミュレーションである。VQEは、変分原理と量子力学とに基づいて、分子状態に関する最適な固有値を算出する。VQEは、様々な量子状態のエネルギーを測定し、エネルギーを最小化する量子状態を求める。
 エネルギーは、数式(1)に示すハミルトニアンHを、射影演算子として量子状態に適用することで算出される。数式(1)において、Oは分割された射影演算子としての一般化パウリ行列である。一般化パウリ行列Oは、単位演算子であるパウリ演算子を並べたパウリ文字列として表現される。パウリ文字列の長さ(文字数)は、量子ビット数と同じである。長さの調整のためにパウリ文字列が単位行列Iを含んでもよい。hはOの重みを示す係数である。Nは一般化パウリ行列の個数であり、量子ビット数と同じである。よって、ハミルトニアンHは、一般化パウリ行列Oの重み付き和である。VQEでは、一般化パウリ行列Oと係数hがユーザから指定される。
Figure JPOXMLDOC01-appb-M000001
 VQEは、N個の量子ビットを用いて量子状態ψ(θ)を作り出し、エネルギーEを測定する。パラメータθを変えることで異なる量子状態ψ(θ)が生成される。エネルギーEは、数式(2)に示すように、量子状態ψ(θ)にハミルトニアンHを適用した期待値である。数式(1)から、エネルギーEは、量子状態ψ(θ)に一般化パウリ行列Oを適用した期待値を、係数hで重み付けした和である。VQEは、量子状態ψ(θ)を繰り返し生成し、N個の一般化パウリ行列Oそれぞれについて、測定値<ψ(θ)|O|ψ(θ)>を繰り返し算出してその平均を期待値として算出する。VQEは、N個の一般化パウリ行列Oに対応するN個の期待値の重み付き和をエネルギーEと定義する。
Figure JPOXMLDOC01-appb-M000002
 量子状態ψ(θ)から一般化パウリ行列Oの測定値を算出するため、情報処理装置100は、量子デバイス30に対してゲート操作を指示する。ここで、量子回路に使用することができる各種の量子ゲートについて説明する。
 量子ゲートには、数式(3)に示すパウリXゲート、パウリYゲートおよびパウリZゲートが含まれる。パウリXゲート、パウリYゲートおよびパウリZゲートは、1個の量子ビットに作用する1量子ゲートである。パウリXゲートは、X軸を中心とした180度の回転であり、ビット反転に相当する。パウリYゲートは、Y軸を中心とした180度の回転であり、ビット反転と位相反転の組み合わせに相当する。パウリZゲートは、Z軸を中心とした180度の回転であり、位相反転に相当する。パウリYゲートは、パウリXゲートとパウリZゲートの両方の性質を併せもっている。
Figure JPOXMLDOC01-appb-M000003
 また、量子ゲートには、数式(4)に示すアダマールゲートHおよび位相シフトゲートSが含まれる。アダマールゲートHおよび位相シフトゲートSは、1個の量子ビットに作用する1量子ゲートである。アダマールゲートHは、X軸とZ軸の間の45度の軸を中心とした180度の回転である。位相シフトゲートSは、90度の位相回転である。
Figure JPOXMLDOC01-appb-M000004
 また、量子ゲートには、数式(5)に示すCNOTゲートおよびCZゲートが含まれる。CNOTゲートおよびCZゲートは、2個の量子ビットに作用する2量子ゲートである。CNOTゲートは、制御ビットと呼ばれる一方の量子ビットが1である場合、標的ビットと呼ばれる他方の量子ビットにパウリXゲートを適用する。CNOTゲートは、2つの量子ビットの排他的論理和に相当し、2つの量子ビットの加算に相当する。CZゲートは、制御ビットが1である場合、標的ビットにパウリZゲートを適用する。
Figure JPOXMLDOC01-appb-M000005
 次に、情報処理装置100のソフトウェア構造について説明する。
 図3は、情報処理装置のソフトウェア構造例を示す図である。
 情報処理装置100は、物理配置記憶部121、射影演算子記憶部122および量子回路記憶部123を有する。これらの記憶部は、例えば、RAM102またはHDD103を用いて実現される。また、情報処理装置100は、量子回路生成部124、ゲート操作部125および量子化学計算部126を有する。これらの処理部は、例えば、CPU101およびプログラムを用いて実現される。
 物理配置記憶部121は、量子デバイス30の物理配置情報を記憶する。物理配置情報は、量子デバイス30の量子ビットの接続関係を示す。物理配置情報は、量子ビットに対応するノードと接続に対応するエッジとを含む無向グラフであってもよい。また、物理配置情報は、量子ビットに対応する行および列を含み、接続されていない量子ビットのペアは0であり、接続されている量子ビットのペアは1である隣接行列であってもよい。
 射影演算子記憶部122は、射影演算子情報を記憶する。射影演算子情報は、ユーザから指定されたN個の一般化パウリ行列OおよびN個の係数hを含む。一般化パウリ行列Oはそれぞれ、長さNのパウリ文字列によって表される。パウリ文字列の各文字は、X,YまたはZである。ただし、長さ調整のためパウリ文字列がIを含むこともある。
 量子回路記憶部123は、情報処理装置100が生成した量子回路を記憶する。量子回路は、量子デバイス30が実行するゲート操作の手順を規定したプログラムに相当する。情報処理装置100が生成する量子回路は、VQEのための複数の量子ゲートを含む。後述するように、この量子回路は、量子状態を生成するアンザッツ回路と、N個の一般化パウリ行列に基づく観測を並列に行う測定回路とを含む。
 量子回路生成部124は、物理配置記憶部121に記憶された物理配置情報と、射影演算子記憶部122に記憶された射影演算子情報とに基づいて、量子回路を生成する。量子回路生成部124は、生成された量子回路を量子回路記憶部123に保存する。後述するように、量子回路生成部124は、N個の一般化パウリ行列を示すN個のパウリ文字列からスタビライザー行列を生成し、スタビライザー行列を用いて測定回路の量子ゲートを決定する。このとき、量子回路生成部124は、スタビライザー行列を対角化するための効率的な手順を判定し、判定した手順に対応する量子ゲートを生成する。
 ゲート操作部125は、量子回路記憶部123に記憶された量子回路が示すゲート操作を量子デバイス30に対して指示する。ゲート操作部125は、量子デバイス30から測定値を読み出して量子化学計算部126に報告する。
 量子化学計算部126は、VQEを実行する。量子化学計算部126は、量子状態ψ(θ)のパラメータθを指定して、ゲート操作部125に量子回路の実行を要求し、N個の一般化パウリ行列に対応するN個の測定値を取得する。1つの一般化パウリ行列の1回の測定値は、0または1の二値である。量子化学計算部126は、量子回路の実行を繰り返して測定値を平均化し、N個の一般化パウリ行列に対応するN個の期待値を算出する。
 量子化学計算部126は、N個の期待値の重み付き和によって、量子状態ψ(θ)に対応するエネルギーEを算出する。量子化学計算部126は、パラメータθを変えながらエネルギーEを算出し、エネルギーEが最小になる量子状態ψ(θ)を探索する。量子化学計算部126は、VQEの実行結果を出力する。量子化学計算部126は、実行結果をHDD103などの不揮発性ストレージに保存してもよいし、表示装置111に表示してもよいし、他の情報処理装置に送信してもよい。
 次に、情報処理装置100が生成する量子回路について説明する。
 図4は、測定回路を含む量子回路の例を示す図である。
 第2の実施の形態では、説明を簡単にするためN=4の例を挙げる。量子回路は、アンザッツ回路131、測定回路132および測定ゲート133,134,135,136を含む。アンザッツ回路131は、パラメータθに応じた量子状態ψ(θ)を表すように、量子ビット31,32,33,34(q,q,q,q)を初期化する。
 測定回路132は、一般化パウリ行列O,O,O,Oに基づく量子状態ψ(θ)の観測を並列に実行する。測定回路132は、量子ビット31,32,33,34に対して、一般化パウリ行列O,O,O,Oの仕様に応じたゲート操作を実行する。これにより、量子ビット31,32,33,34は、一般化パウリ行列O,O,O,Oの測定値を保持する。例えば、量子ビット31が一般化パウリ行列Oの測定値を保持し、量子ビット32が一般化パウリ行列Oの測定値を保持し、量子ビット33が一般化パウリ行列Oの測定値を保持し、量子ビット34が一般化パウリ行列Oの測定値を保持する。ただし、測定回路132の設計によって、量子ビット31,32,33,34と一般化パウリ行列O,O,O,Oとの対応関係が変わることがある。
 測定ゲート133,134,135,136はそれぞれ、量子ビットから0または1の二値を読み出す。測定ゲート133は量子ビット31の値を読み出し、測定ゲート134は量子ビット32の値を読み出し、測定ゲート135は量子ビット33の値を読み出し、測定ゲート136は量子ビット34の値を読み出す。
 ここで、測定回路132は、一般化パウリ行列の仕様から自動的に生成される。ただし、同じ一般化パウリ行列からでも、生成アルゴリズムによって測定回路132の量子ゲート数が異なる。通常、測定回路の量子ゲートが多いほど、直列に並んだ量子ゲートの個数(量子回路の深さまたは長さと言うこともできる)が大きくなる。
 量子ゲート1つ当たりの実行時間は数ナノ秒から数百ナノ秒であり、量子回路の深さが大きいほど計算時間が増大する。また、1回の量子計算は量子ビットの持続時間内に完了させることを要するため、量子回路の深さが過大であると量子計算が完了しない可能性がある。また、量子ゲート1つ毎に一定確率でエラーが発生するため、量子回路の深さが大きいほど、量子回路の出力のエラー確率が増大する。
 このため、量子回路生成部124は、量子ゲートが少ない効率的な測定回路132を生成することが好ましい。以下では、スタビライザー行列を用いて測定回路132を生成する生成アルゴリズムの例を説明し、その後に、測定回路132の量子ゲートが更に少なくなる別の生成アルゴリズムを説明する。スタビライザー行列を用いる生成アルゴリズムについては、例えば、前述の非特許文献2にも記載されている。
 図5は、スタビライザー行列を用いた測定回路の第1の設計例を示す図である。
 ここでは、量子回路生成部124は、射影演算子情報40に対応する測定回路を生成する。射影演算子情報40は、一般化パウリ行列O,O,O,Oのパウリ文字列を含む。O=XXXX,O=XXYY,O=XYXY,O=YXXYである。
 量子回路生成部124は、2N×Nのスタビライザー行列41を生成する。スタビライザー行列41の上半分のN行はZ行列を形成し、スタビライザー行列41の下半分のN行はX行列を形成する。スタビライザー行列41のN列は、N個のパウリ文字列に対応する。Z行列のN行およびX行列のN行は、N個の量子ビットに対応する。
 よって、ここで生成されるスタビライザー行列41は、一般化パウリ行列O,O,O,Oに対応する列#0,#1,#2,#3をもつ。また、スタビライザー行列41に含まれるZ行列およびX行列は、量子ビット31,32,33,34(q,q,q,q)に対応する行#0,#1,#2,#3をもつ。
 スタビライザー行列41の各要素は、0または1のフラグである。量子回路生成部124は、一般化パウリ行列Oに含まれるi番目の文字に基づいて、Z行列の(i,j)の値とX行列の(i,j)の値を決定する。一般化パウリ行列Oのi番目がXである場合、Z(i,j)=0,X(i,j)=1である。一般化パウリ行列Oのi番目がYである場合、Z(i,j)=1,X(i,j)=1である。一般化パウリ行列Oのi番目がZである場合、Z(i,j)=1,X(i,j)=0である。なお、一般化パウリ行列Oのi番目がIである場合、Z(i,j)=0,X(i,j)=0であってもよい。
 次に、量子回路生成部124は、Z行列およびX行列の階数(ランク)を算出し、Z行列またはX行列の階数が最大になるように、Z行列の行#iとX行列の行#iとを入れ替える。ここでは、量子回路生成部124は、Z行列の行#1,#2,#3とX行列の行#1,#2,#3とを入れ替える。これにより、スタビライザー行列42が生成される。行#iの入れ替えは、量子ビットqへのアダマールゲートの実行に相当する。
 次に、量子回路生成部124は、ガウスの消去法によってX行列を対角行列に変換する。ガウスの消去法は、掃き出し法と呼ばれることもある。各要素が0または1の二値であるため、対角化されたX行列は単位行列である。すなわち、対角化されたX行列は、対角要素が1であり非対角要素が0の行列である。
 X行列に対するガウスの消去法は、基本変形として、ある行を別の行に加算する行操作を繰り返す。各要素が0または1の二値であるため、2つの行の和は2つの行の排他的論理和に相当する。このとき、量子回路生成部124は、X行列とは逆方向の加算をZ行列対して実行する。量子回路生成部124は、X行列の行#iを行#jに加算した場合、Z行列の行#jを行#iに加算する。X行列の行#iを行#jに加算する行操作は、量子ビットqに基づいて量子ビットqを更新するCNOTゲートに相当する。
 ガウスの消去法の間、量子回路生成部124は、スタビライザー行列の列を入れ替えてもよい。列の入れ替えは、測定回路の構造に影響を与えない。ただし、列の入れ替えは、測定回路の出力時点の量子ビットq,q,q,qと一般化パウリ行列O,O,O,Oとの対応関係を変化させる。
 列#iと列#jを入れ替えると、量子ビットqが一般化パウリ行列Oに対応し、量子ビットqが一般化パウリ行列Oに対応する。そのため、量子回路生成部124は、スタビライザー行列の列を入れ替えた場合、一般化パウリ行列O,O,O,Oの順序を記録しておく。量子化学計算部126は、量子デバイス30から4つの測定値を読み出すと、上記の情報に基づいて一般化パウリ行列O,O,O,Oと4つの測定値との対応関係を解釈し、それら4つの測定値を並び替える。
 ここでは、量子回路生成部124は、X行列の行#1を行#2に加算し、X行列の行#2を行#1に加算し、X行列の行#1を行#2に加算する。この間、量子回路生成部124は、Z行列の行#2を行#1に加算し、Z行列の行#1を行#2に加算し、Z行列の行#2を行#1に加算する。これにより、スタビライザー行列43が生成される。
 更に、量子回路生成部124は、X行列の行#1を行#3に加算する。この間、量子回路生成部124は、Z行列の行#3を行#1に加算する。これにより、スタビライザー行列44が生成される。更に、量子回路生成部124は、X行列の行#2を行#3に加算する。この間、量子回路生成部124は、Z行列の行#3を行#2に加算する。これにより、スタビライザー行列45が生成される。
 更に、量子回路生成部124は、X行列の行#3を行#1に加算し、X行列の行#2を行#1に加算し、X行列の行#1を行#0に加算する。この間、量子回路生成部124は、Z行列の行#0を行#3に加算し、Z行列の行#0を行#2に加算し、Z行列の行#0を行#1に加算する。これにより、スタビライザー行列46が生成される。スタビライザー行列46に含まれるX行列は、対角行列である。
 次に、量子回路生成部124は、Z行列をゼロ行列に変換する。ゼロ行列への変換には、対角要素Z(i,i)を0にする操作と、非対角要素Z(i,j)とZ(j,i)を0にする操作とが用いられる。Z(i,i)=0は、量子ビットqへの位相シフトゲートの実行に相当する。Z(i,j)=0かつZ(j,i)=0は、量子ビットq,qへのCZゲートの実行に相当する。なお、位相シフトゲートおよびCZゲートのZ行列に対する効果は、X行列が対角化されていることが前提である。
 ここでは、量子回路生成部124は、Z(0,3)=0,Z(3,0)=0の操作と、Z(1,3)=0,Z(3,1)=0の操作と、Z(2,3)=0,Z(3,2)=0の操作とを実行する。これにより、スタビライザー行列47が生成される。スタビライザー行列47に含まれるZ行列は、ゼロ行列である。
 次に、量子回路生成部124は、Z行列とX行列の全ての行を入れ替える。前述の通り、行#iの入れ替えは、量子ビットqへのアダマールゲートの実行に相当する。これにより、スタビライザー行列48が生成される。スタビライザー行列48に含まれるZ行列は対角行列であり、スタビライザー行列48に含まれるX行列はゼロ行列である。
 図6は、測定回路の第1の例を示す図である。
 量子回路生成部124は、スタビライザー行列41を対角化する上記の操作に対応する量子ゲートを生成することで、測定回路を生成する。図5のアルゴリズムによって生成された測定回路は、量子ゲート50~67を含む。
 量子ゲート50,51,52は、量子ビットq,q,qへのアダマールゲートである。量子ゲート53は、量子ビットqからqへのCNOTゲートである。量子ゲート54は、量子ビットqからqへのCNOTゲートである。量子ゲート55は、量子ビットqからqへのCNOTゲートである。量子ゲート56は、量子ビットqからqへのCNOTゲートである。量子ゲート57は、量子ビットqからqへのCNOTゲートである。量子ゲート58は、量子ビットqからqへのCNOTゲートである。量子ゲート59は、量子ビットqからqへのCNOTゲートである。量子ゲート60は、量子ビットqからqへのCNOTゲートである。量子ゲート61は、量子ビットq,qへのCZゲートである。量子ゲート62は、量子ビットq,qへのCZゲートである。量子ゲート63は、量子ビットq,qへのCZゲートである。量子ゲート64,65,66,67は、量子ビットq,q,q,qへのアダマールゲートである。
 しかし、この測定回路は、量子デバイス30における量子ビット間の接続関係の制約を満たしておらず、量子デバイス30では実行可能でない。例えば、量子ゲート56,62は、量子ビットq,qが接続されていないため実行可能でない。量子ゲート59は、量子ビットq,qが接続されていないため実行可能でない。
 そこで、量子回路生成部124は、スタビライザー行列に基づいて生成された測定回路を、物理配置情報を参照して修正する。ここでは、量子回路生成部124は、2つの量子ビットの値を入れ替えるスワップゲートを、測定回路に挿入する。スワップゲートは、3つのCNOTゲートを用いて実装されることがある。量子ビットq,qのスワップゲートは、量子ビットqからqへのCNOTゲートと、量子ビットqからqへのCNOTゲートと、量子ビットqからqへのCNOTゲートと等価である。
 ここでは、量子回路生成部124は、量子ゲート55と量子ゲート56の間に量子ゲート68を挿入する。また、量子回路生成部124は、量子ゲート57と量子ゲート58の間に量子ゲート69を挿入する。また、量子回路生成部124は、量子ゲート58と量子ゲート59の間に量子ゲート70を挿入する。また、量子回路生成部124は、量子ゲート59と量子ゲート60の間に量子ゲート71を挿入する。また、量子回路生成部124は、量子ゲート61と量子ゲート62の間に量子ゲート72を挿入する。
 量子ゲート68,69,70,71,72は、スワップゲートである。なお、スワップゲートの挿入によって量子ビットの実質的位置が変化するため、量子回路図では、他の量子ゲートが配置されるラインも変化している。
 これによって、射影演算子情報40に対応する測定回路が生成される。ただし、スタビライザー行列に基づいて生成された測定回路に、事後的にスワップゲートが挿入されている。このため、スタビライザー行列の対角化を最適化しても、最終的に生成される測定回路が量子ゲートの少ない効率的な量子回路にならないことがある。図6の例では、X行列の対角化部分のCNOTゲート数は20である。
 図7は、測定回路の第2の例を示す図である。
 ここでは、前述の非特許文献1の生成アルゴリズムを用いて生成される測定回路の例を挙げる。この測定回路も、量子デバイス30の接続関係の制約を満たすために、スワップゲート73,74,75が挿入されている。図6に示したX行列の対角化部分に相当する区間のCNOTゲート数は14である。
 そこで、第2の実施の形態の情報処理装置100は、測定回路の量子ゲートが更に減少するように生成アルゴリズムを修正する。情報処理装置100は、図5で説明したガウスの消去法の中で、量子デバイス30の接続関係の制約を満たすように、加算操作を行うX行列の行を適切に選択する。これによって、スタビライザー行列の対角化を通じて生成される測定回路が接続関係の制約を既に満たしており、情報処理装置100は事後的に測定回路を修正しなくてよい。そのため、スタビライザー行列の対角化を最適化することで、量子ゲートの少ない高効率な測定回路を生成することが可能となる。
 図8は、スタビライザー行列を用いた測定回路の第2の設計例を示す図である。
 量子回路生成部124は、射影演算子情報140に基づいてスタビライザー行列142を生成する。射影演算子情報140は、図5の射影演算子情報40と同じである。スタビライザー行列142は、図5のスタビライザー行列41と同じである。量子回路生成部124は、スタビライザー行列142のZ行列またはX行列の階数が最大になるように、Z行列の行#iとX行列の行#iを入れ替える。これにより、図5のスタビライザー行列42と同じスタビライザー行列143が生成される。
 次に、量子回路生成部124は、物理配置情報141を参照して、スタビライザー行列143のX行列に対してガウスの消去法を実行し、X行列を対角化する。物理配置情報141は、量子ビットq,q,q,qの接続関係を示している。量子回路生成部124は、接続されている量子ビットのペアに対応する行のペアに限定して加算操作を行うことで、接続関係の制約を満たすような手順でX行列を対角化する。
 量子回路生成部124は、一般化パウリ行列O,O,O,Oに対応する4つの列を順に選択していく。量子回路生成部124は、選択した列の中から、1を残す要素(対角要素にするもの)を選択する。このとき、量子回路生成部124は、X行列を効率的に対角化できるように、スタビライザー行列の列を入れ替えてもよい。量子回路生成部124は、選択した要素に対応する量子ビットを、中心ビットとして選択する。
 量子回路生成部124は、物理配置情報141に基づいて、中心ビットと他の量子ビットそれぞれとの間の距離dを算出する。距離dは、一方の量子ビットから他方の量子ビットに到達するまでに経由する接続の個数であり、ホップ数に相当する。
 量子回路生成部124は、選択した列の中に、中心ビットに相当する要素以外に1の要素が存在する場合、中心ビットに相当する要素が1になり他の要素が0になるように、加算操作を行う。このとき、量子回路生成部124は、距離dが大きい量子ビットに対応する要素から優先的に0になるよう、加算操作を行う。すなわち、量子回路生成部124は、遠い量子ビットから中心ビットに向かって順に、遠い量子ビットの状態を「0」にしつつ状態「1」を中心ビットに近付けていく。
 ここでは、量子回路生成部124は、スタビライザー行列143から、一般化パウリ行列Oに対応する列#0を選択する。X行列の列#0は、行#0の要素が1で行#1,#2,#3の要素が0であるため対角化済みである。よって、選択された列の処理はスキップされる。次に、量子回路生成部124は、スタビライザー行列143の列#1,#2を入れ替える。これにより、スタビライザー行列144が生成される。列#1,#2を入れ替えたのは、行#1の対角要素を効率的に1にするためである。
 次に、量子回路生成部124は、スタビライザー行列144から、一般化パウリ行列Oに対応する列#1を選択する。量子回路生成部124は、行#1に対応する量子ビットqを中心ビットとして選択し、量子ビットqから最も遠い量子ビットqに対応する行#3を優先的に処理する。具体的には、量子回路生成部124は、X行列の行#0を行#3に加算し、X行列の行#3を行#0に加算し、X行列の行#1を行#0に加算する。この間、量子回路生成部124は、Z行列の行#3を行#0に加算し、Z行列の行#0を行#3に加算し、Z行列の行#0を行#1に加算する。
 これにより、スタビライザー行列145が生成される。スタビライザー行列145では、X行列の列#1は、行#1の要素が1で行#0,#2,#3の要素が0であるため対角化済みである。よって、選択された列の処理は終了する。
 次に、量子回路生成部124は、スタビライザー行列145から、一般化パウリ行列Oに対応する列#2を選択する。量子回路生成部124は、行#2に対応する量子ビットqを中心ビットとして選択し、量子ビットqから最も遠い量子ビットqに対応する行#0を優先的に処理する。具体的には、量子回路生成部124は、X行列の行#2を行#1に加算し、X行列の行#1を行#0に加算し、X行列の行#0を行#1に加算する。この間、量子回路生成部124は、Z行列の行#1を行#2に加算し、Z行列の行#0を行#1に加算し、Z行列の行#1を行#0に加算する。
 上記の加算操作の後、X(1,2)=1であり、列#2には、中心ビットに対応する要素以外に1の要素が残っている。そこで、量子回路生成部124は、量子ビットqに対応する行#1を処理する。具体的には、量子回路生成部124は、X行列の行#2を行#1に加算する。この間、量子回路生成部124は、Z行列の行#1を行#2に加算する。これにより、スタビライザー行列146が生成される。スタビライザー行列146では、X行列の列#2は、行#2の要素が1で行#0,#1,#3の要素が0であるため対角化済みである。よって、選択された列の処理は終了する。
 次に、量子回路生成部124は、スタビライザー行列143の列#0,#1を入れ替え、列#1,#3を入れ替える。これにより、スタビライザー行列147が生成される。スタビライザー行列147に含まれるX行列の対角要素は全て1になっている。
 次に、量子回路生成部124は、スタビライザー行列147から、最後の列として、一般化パウリ行列Oに対応する列#1を選択する。列#1の対角要素は行#1にあるため、量子回路生成部124は、行#1に対応する量子ビットqを中心ビットとして選択し、量子ビットqに対応する行#0を処理する。具体的には、量子回路生成部124は、X行列の行#1を行#0に加算する。この間、量子回路生成部124は、Z行列の行#0を行#1に加算する。これにより、スタビライザー行列148が生成される。
 スタビライザー行列148に含まれるX行列は対角行列である。よって、ガウスの消去法が終了する。次に、量子回路生成部124は、スタビライザー行列148に含まれるZ行列をゼロ行列に変換する。ここでは、量子回路生成部124は、Z(1,1)=0の操作と、Z(0,1)=0,Z(1,0)=0の操作と、Z(1,2)=0,Z(2,1)=0の操作と、Z(1,3)=0,Z(3,1)=0の操作とを実行する。
 これにより、スタビライザー行列149が生成される。スタビライザー行列149に含まれるZ行列はゼロ行列であり、スタビライザー行列149に含まれるX行列は対角行列である。量子回路生成部124は、Z行列とX行列を入れ替える。これにより、図5のスタビライザー行列48と同じスタビライザー行列が生成される。
 図9は、測定回路の第3の例を示す図である。
 量子回路生成部124は、スタビライザー行列142を対角化する上記の操作に対応する量子ゲートを生成することで、測定回路を生成する。図8のアルゴリズムによって生成された測定回路は、量子ゲート150~169を含む。
 量子ゲート150,151,152は、量子ビットq,q,qへのアダマールゲートである。量子ゲート153は、量子ビットqからqへのCNOTゲートである。量子ゲート154は、量子ビットqからqへのCNOTゲートである。量子ゲート155は、量子ビットqからqへのCNOTゲートである。量子ゲート156は、量子ビットqからqへのCNOTゲートである。量子ゲート157は、量子ビットqからqへのCNOTゲートである。量子ゲート158は、量子ビットqからqへのCNOTゲートである。量子ゲート159は、量子ビットqからqへのCNOTゲートである。量子ゲート160は、量子ビットqからqへのCNOTゲートである。
 量子ゲート161は、量子ビットqへの位相シフトゲートである。量子ゲート162は、量子ビットq,qへのCZゲートである。量子ゲート163は、量子ビットq,qへのCZゲートである。量子ゲート164は、量子ビットq,qへのスワップゲートである。量子ゲート165は、量子ビットq,qへのCZゲートである。量子ゲート166,167,168,169は、量子ビットq,q,q,qへのアダマールゲートである。なお、スタビライザー行列の列を入れ替えているため、出力時点の量子ビットq,q,q,qは、一般化パウリ行列O,O,O,Oに対応する。
 X行列の対角化部分のCNOTゲート数は8である。このように、図6,7と比べてCNOTゲートが少ない高効率の測定回路が生成される。
 次に、情報処理装置100の処理手順について説明する。
 図10は、量子回路生成の手順例を示すフローチャートである。
 (S10)量子回路生成部124は、量子デバイス30の量子ビットの接続関係を示す物理配置情報と、N個のパウリ文字列を示す射影演算子情報を読み出す。
 (S11)量子回路生成部124は、N個のパウリ文字列から、N×NのZ行列とN×NのX行列とを含む2N×Nのスタビライザー行列を生成する。
 (S12)量子回路生成部124は、Z行列とX行列との間で行を入れ替えることで、Z行列およびX行列の一方の階数を最大化する。
 (S13)量子回路生成部124は、ガウスの消去法によってX行列を対角化する。このとき、量子回路生成部124は、物理配置情報が示す接続関係の制約を満たすように、操作対象の行ペアを選択する。行列対角化の詳細は後述する。
 (S14)量子回路生成部124は、Z行列をゼロ行列に変換する。
 (S15)量子回路生成部124は、Z行列とX行列との間で全ての行を入れ替える。
 (S16)量子回路生成部124は、ステップS12~S15で行われた行列操作に対応する量子ゲートを含む量子回路を生成し、量子回路を保存する。また、量子回路生成部124は、スタビライザー行列で行われた列の入れ替えに基づいて、N個の量子ビットの測定値とN個のパウリ文字列との対応関係を示す情報を保存する。
 図11は、行列対角化の手順例を示すフローチャートである。
 (S20)量子回路生成部124は、列番号Cを1に初期化し、距離dを量子デバイス30の中の最大距離に初期化し、量子ビット数Nを特定する。列番号Cは、N個の列のうち何個目の列を処理中であるかを示している。
 (S21)量子回路生成部124は、スタビライザー行列に含まれるN個の列のうち未処理の列を1つ選択する。このとき、量子回路生成部124は、今回の処理で1を残したい行が既に1である列を選択することが好ましい。量子回路生成部124は、スタビライザー行列に含まれる列を入れ替えてもよい。その場合、量子回路生成部124は、列の入れ替えに応じて、N個のパウリ文字列の順序を記録しておく。
 (S22)量子回路生成部124は、N個の量子ビットのうち、選択された列の中で状態「1」を残す行(対角要素にする行)に対応する量子ビットを中心ビットとして選択する。量子回路生成部124は、量子デバイス30の接続関係から、中心ビットと他のN-1個の量子ビットそれぞれとの間の距離を算出する。
 (S23)量子回路生成部124は、中心ビットから距離dに、状態「1」の行に対応する量子ビットがあるか判断する。該当する量子ビットがある場合はステップS24に処理が進み、該当する量子ビットがない場合はステップS26に処理が進む。
 (S24)量子回路生成部124は、数式(6),(7),(8)に規定される行列Mに従って、X行列の行をX行列の別の行に加算する行操作を行う。この行操作は、数式(6),(7),(8)のCNOTゲートによって規定される。数式(6)は、距離dにある量子ビットから中心ビットに向かう連鎖的なCNOTゲートを表す。数式(6),(7),(8)において、CNOTi>jは、中心ビットから距離iにある量子ビットを制御ビットとし、距離jにある量子ビットを標的ビットとするCNOTゲートを表す。
 cは、行(i-1)が対角化済みである場合に、中心ビットから遠い量子ビットを制御ビットとし中心ビットから近い量子ビットを標的ビットとするCNOTゲートになる。cは、量子ビットq(i-1)が0である場合に、中心ビットから遠い量子ビットを制御ビットとし中心ビットから近い量子ビットを標的ビットとするCNOTゲートになる。
 (S25)量子回路生成部124は、ステップS24におけるX行列の行操作とは逆方向の行操作を、Z行列に対して実行する。X行列の行#iを行#jに加算する行操作は、Z行列の行#jを行#iに加算する行操作に対応する。
 (S26)量子回路生成部124は、距離dをd-1に更新する。
 (S27)量子回路生成部124は、距離dが1以上か判断する。距離dが1以上の場合はステップS23に処理が戻り、それ以外の場合はステップS28に処理が進む。
 (S28)量子回路生成部124は、列番号CをC+1に更新する。また、距離dを量子デバイス30の中の最大距離に初期化する。
 (S29)量子回路生成部124は、列番号Cが量子ビット数N以下であるか判断する。列番号Cが量子ビット数N以下の場合はステップS21に処理が戻り、それ以外の場合はステップS13の行列対角化が終了する。
Figure JPOXMLDOC01-appb-M000006
Figure JPOXMLDOC01-appb-M000007
Figure JPOXMLDOC01-appb-M000008
 ここで、図8におけるX行列の対角化の手順について説明を補足する。量子回路生成部124は、C=1のとき量子ビットqを中心ビットとして選択する。このとき、量子ビットqの状態が1であり、量子ビットq,q,qの状態が0である。よって、中心ビットから距離d=2に状態1の量子ビットは無く、距離d=1にも状態1の量子ビットは無い。このため、行操作は行われない。
 次に、量子回路生成部124は、C=2のとき量子ビットqを中心ビットとして選択する。このとき、量子ビットq,q,qの状態が1であり、量子ビットqの状態が0である。よって、中心ビットから距離d=2にある量子ビットqが処理対象になる。このとき、量子ビットq(1)=1であり行(1)は対角化済みであるため、CNOT1>2とCNOT2>1とCNOT1>0が実行される。よって、量子ビットqからqへのCNOTゲートと、量子ビットqからqへのCNOTゲートと、量子ビットqからqへのCNOTゲートとが実行される。
 上記のCNOTゲートの後は、量子ビットqの状態が1であり、量子ビットq,q,qの状態が0である。このため、中心ビットから距離d=1に状態1の量子ビットは無く、更なる行操作は行われない。
 次に、量子回路生成部124は、C=3のとき量子ビットqを中心ビットとして選択する。このとき、量子ビットq,qの状態が1であり、量子ビットq,qの状態が0である。よって、中心ビットから距離d=2にある量子ビットqが処理対象になる。ここでは、CNOT0>1とCNOT1>2とCNOT2>1が実行される。よって、量子ビットqからqへのCNOTゲートと、量子ビットqからqへのCNOTゲートと、量子ビットqからqへのCNOTゲートとが実行される。
 上記のCNOTゲートの後は、量子ビットq,qの状態が1であり、量子ビットq,qの状態が0である。よって、中心ビットから距離d=1にある量子ビットqが処理対象になる。ここでは、CNOT0>1が実行される。よって、量子ビットqからqへのCNOTゲートが実行される。
 次に、量子回路生成部124は、C=4のとき量子ビットqを中心ビットとして選択する。このとき、量子ビットq,qの状態が1であり、量子ビットq,qの状態が0である。中心ビットから距離d=2に状態1の量子ビットは無いが、中心ビットから距離d=1に状態1の量子ビットqがある。よって、量子ビットqが処理対象になる。ここでは、CNOT0>1が実行される。よって、量子ビットqからqへのCNOTゲートが実行される。以上により、X行列の対角化が完了する。
 以上説明したように、第2の実施の形態の情報処理装置100は、複数のパウリ文字列に基づいて、量子状態から複数の測定値を並列に観測するための量子回路を生成する。これにより、情報処理装置100によって量子回路の設計が支援され、量子回路の設計の負担が軽減される。また、情報処理装置100は、複数のパウリ文字列からスタビライザー行列を生成し、スタビライザー行列の対角化を通じて量子回路の量子ゲートを決定する。これにより、情報処理装置100は、様々なパウリ文字列に対して画一的方法で量子回路を生成することができ、量子回路を高速に生成することができる。
 また、情報処理装置100は、スタビライザー行列の対角化処理の最適化を通じて、量子回路を最適化することができる。これにより、量子ゲートの少ない高効率な量子回路が生成される。また、情報処理装置100は、スタビライザー行列の対角化の中で、量子ビットの接続関係の制約に従って、行操作を行う2つの行を選択する。これにより、パウリ文字列に適合する量子ゲートの決定と接続関係の制約を満たすための量子回路の修正を別個に行う場合と比べて、量子回路の生成が高速化される。また、量子ゲートの少ない高効率な量子回路が生成される。その結果、量子回路に従ったゲート操作の実行時間が短縮する。また、量子ビットが多い場合であっても、量子ビットの持続時間内に量子計算が完了する。また、量子ゲート数が少ないことで、エラー発生確率が低下する。
 上記については単に本発明の原理を示すものである。更に、多数の変形や変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応する全ての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
 10 情報処理装置
 11 記憶部
 12 処理部
 13 演算子情報
 14 配置情報
 15 行列
 16 対角行列
 17 量子回路

Claims (6)

  1.  複数のパウリ演算子の結合によってそれぞれ示される複数の射影演算子を示す演算子情報と、量子デバイスに含まれる複数の量子ビットの接続関係を示す配置情報とを記憶する記憶部と、
     前記演算子情報が示す前記複数の射影演算子に基づいて、前記複数の量子ビットに対応する複数の行と前記複数の射影演算子に対応する複数の列とを含む行列を生成し、行操作によって前記行列を対角行列に変換する対角化であって、前記行操作は、前記配置情報が示す前記接続関係に基づいて、前記複数の行の中から2つの行を選択し、前記2つの行のうちの一方の行を用いて他方の行を更新することを含む対角化を実行し、前記対角化で行われた前記行操作に基づいて、前記量子デバイスに対するゲート操作を示す量子回路を生成する処理部と、
     を有する情報処理装置。
  2.  前記行操作で選択される前記2つの行は、前記複数の量子ビットのうち前記量子デバイスにおいて相互に接続されている2つ量子ビットに対応する、
     請求項1記載の情報処理装置。
  3.  前記複数の量子ビットは、第1の量子ビットと、前記第1の量子ビットに接続された第2の量子ビットと、前記第2の量子ビットに接続され前記第1の量子ビットに接続されていない第3の量子ビットとを含み、
     前記対角化は、前記複数の行のうち前記第1の量子ビットに対応する第1の行と前記第3の量子ビットに対応する第3の行とが、同じ列に非ゼロ要素を含む場合、前記第1の行と前記第2の量子ビットに対応する第2の行との間の第1の行操作と、前記第2の行と前記第3の行との間の第2の行操作とによって、前記第3の行の非ゼロ要素を削除する、
     請求項1記載の情報処理装置。
  4.  前記複数の量子ビットは、第1の量子ビットと、前記第1の量子ビットからのホップ数が異なる2以上の第2の量子ビットとを含み、
     前記対角化は、前記複数の行のうち前記第1の量子ビットに対応する第1の行と前記2以上の第2の量子ビットに対応する2以上の第2の行とが、同じ列に非ゼロ要素を含む場合、前記2以上の第2の行のうち前記ホップ数が最大の第2の量子ビットに対応する第2の行から優先的に、前記非ゼロ要素を消去するための行操作を行う、
     請求項1記載の情報処理装置。
  5.  複数のパウリ演算子の結合によってそれぞれ示される複数の射影演算子に基づいて、量子デバイスに含まれる複数の量子ビットに対応する複数の行と前記複数の射影演算子に対応する複数の列とを含む行列を生成し、
     行操作によって前記行列を対角行列に変換する対角化であって、前記行操作は、前記量子デバイスにおける前記複数の量子ビットの接続関係に基づいて、前記複数の行の中から2つの行を選択し、前記2つの行のうちの一方の行を用いて他方の行を更新することを含む対角化を実行し、
     前記対角化で行われた前記行操作に基づいて、前記量子デバイスに対するゲート操作を示す量子回路を生成する、
     処理をコンピュータが実行する量子回路生成方法。
  6.  複数のパウリ演算子の結合によってそれぞれ示される複数の射影演算子に基づいて、量子デバイスに含まれる複数の量子ビットに対応する複数の行と前記複数の射影演算子に対応する複数の列とを含む行列を生成し、
     行操作によって前記行列を対角行列に変換する対角化であって、前記行操作は、前記量子デバイスにおける前記複数の量子ビットの接続関係に基づいて、前記複数の行の中から2つの行を選択し、前記2つの行のうちの一方の行を用いて他方の行を更新することを含む対角化を実行し、
     前記対角化で行われた前記行操作に基づいて、前記量子デバイスに対するゲート操作を示す量子回路を生成する、
     処理をコンピュータに実行させる量子回路生成プログラム。
PCT/JP2021/030458 2021-08-19 2021-08-19 情報処理装置、量子回路生成方法および量子回路生成プログラム WO2023021666A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP21954234.7A EP4390778A4 (en) 2021-08-19 2021-08-19 INFORMATION PROCESSING DEVICE, QUANTUM CIRCUIT GENERATION METHOD, AND QUANTUM CIRCUIT GENERATION PROGRAM
PCT/JP2021/030458 WO2023021666A1 (ja) 2021-08-19 2021-08-19 情報処理装置、量子回路生成方法および量子回路生成プログラム
JP2023542136A JPWO2023021666A1 (ja) 2021-08-19 2021-08-19

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/030458 WO2023021666A1 (ja) 2021-08-19 2021-08-19 情報処理装置、量子回路生成方法および量子回路生成プログラム

Publications (1)

Publication Number Publication Date
WO2023021666A1 true WO2023021666A1 (ja) 2023-02-23

Family

ID=85240369

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/030458 WO2023021666A1 (ja) 2021-08-19 2021-08-19 情報処理装置、量子回路生成方法および量子回路生成プログラム

Country Status (3)

Country Link
EP (1) EP4390778A4 (ja)
JP (1) JPWO2023021666A1 (ja)
WO (1) WO2023021666A1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006195587A (ja) * 2005-01-11 2006-07-27 Nippon Telegr & Teleph Corp <Ntt> ユニタリ行列分解装置、ユニタリ行列分解方法、ユニタリ行列分解プログラム及び記録媒体
JP2020144400A (ja) 2019-01-24 2020-09-10 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation エンタングルした測定を用いたパウリ文字列のグループ化
JP2020187451A (ja) 2019-05-13 2020-11-19 株式会社QunaSys エネルギーの微分を求めるための量子情報処理方法、古典コンピュータ、量子コンピュータ、量子情報処理プログラム、及びデータ構造
JP2020201566A (ja) * 2019-06-06 2020-12-17 株式会社QunaSys 開放量子系のための量子情報処理方法、古典コンピュータ、量子コンピュータ、量子情報処理プログラム、及びデータ構造

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006195587A (ja) * 2005-01-11 2006-07-27 Nippon Telegr & Teleph Corp <Ntt> ユニタリ行列分解装置、ユニタリ行列分解方法、ユニタリ行列分解プログラム及び記録媒体
JP2020144400A (ja) 2019-01-24 2020-09-10 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation エンタングルした測定を用いたパウリ文字列のグループ化
JP2020187451A (ja) 2019-05-13 2020-11-19 株式会社QunaSys エネルギーの微分を求めるための量子情報処理方法、古典コンピュータ、量子コンピュータ、量子情報処理プログラム、及びデータ構造
JP2020201566A (ja) * 2019-06-06 2020-12-17 株式会社QunaSys 開放量子系のための量子情報処理方法、古典コンピュータ、量子コンピュータ、量子情報処理プログラム、及びデータ構造

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
PRANAV GOKHALEOLIVIA ANGIULIYONGSHAN DIGNKAIWEN GUITEAGUE TOMESHMARTIN SUCHARAMARGARET MARTONOSIFREDERIC T. CHONG: "Minimizing State Preparations in Variational Quantum Eigensolver by Partitioning into Commuting Families", ARXIV:1907.13623, July 2019 (2019-07-01)
WAKAKI HATTORISHIGERU YAMASHITA: "Quantum Circuit Optimization by Changing the Gate Order for 2D Nearest Neighbor Architectures", PROC. OF THE 10TH INTERNATIONAL CONFERENCE ON REVERSIBLE COMPUTATION, September 2018 (2018-09-01), pages 228 - 243

Also Published As

Publication number Publication date
EP4390778A1 (en) 2024-06-26
EP4390778A4 (en) 2024-09-25
JPWO2023021666A1 (ja) 2023-02-23

Similar Documents

Publication Publication Date Title
JP7186797B2 (ja) 量子計算のための方法及びシステム
US11755941B2 (en) Geometry-based compression for quantum computing devices
Shimizu et al. Thick-restart block Lanczos method for large-scale shell-model calculations
JP7471736B2 (ja) 量子系の基底状態エネルギーの推定方法、およびシステム
JP6874219B2 (ja) 情報処理装置、演算装置、及び情報処理方法
JP7502269B2 (ja) 情報処理装置、情報処理システム、情報処理方法、記憶媒体およびプログラム
JP7007520B6 (ja) 情報処理装置、演算装置、及び情報処理方法
WO2020196883A1 (ja) 情報処理装置、情報処理システム、情報処理方法、記憶媒体およびプログラム
WO2020196862A1 (ja) 情報処理装置、情報処理システム、情報処理方法、記憶媒体およびプログラム
CN114037082A (zh) 量子计算任务处理方法、系统及计算机设备
EP4089593A1 (en) Method and apparatus for executing quantum operation, and chip, device and storage medium
JP7459681B2 (ja) 情報処理装置、回帰モデル生成方法、及び回帰モデル生成プログラム
WO2023021666A1 (ja) 情報処理装置、量子回路生成方法および量子回路生成プログラム
EP4242936A1 (en) Reducing resources in quantum circuits
Chen et al. Nearest neighbor synthesis of CNOT circuits on general quantum architectures
JP7357795B2 (ja) 情報処理方法および情報処理システム
US20230409669A1 (en) Information processing apparatus, information processing method, and computer-readable recording medium storing program
JP7452823B2 (ja) 量子計算タスク処理方法、システム及びコンピュータ装置
US20240232588A9 (en) Data processing device, data processing method, and computer-readable recording medium storing data processing program
US20230401278A1 (en) Information processing apparatus, information processing method, and storage medium
JP7470019B2 (ja) 情報処理システム
US20220414184A1 (en) Data processing apparatus and data processing method
US20230401279A1 (en) Information processing apparatus, information processing method, and storage medium
WO2023209828A1 (ja) 複数量子ビットオブザーバブルのパーティショニングプログラム、複数量子ビットオブザーバブルのパーティショニング方法、および情報処理装置
JP2024049148A (ja) 情報処理方法、及び情報処理装置

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: 21954234

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2023542136

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 2021954234

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2021954234

Country of ref document: EP

Effective date: 20240319