WO2023139681A1 - 複数量子ビットオブザーバブルのパーティショニングプログラム、複数量子ビットオブザーバブルのパーティショニング方法、および情報処理装置 - Google Patents

複数量子ビットオブザーバブルのパーティショニングプログラム、複数量子ビットオブザーバブルのパーティショニング方法、および情報処理装置 Download PDF

Info

Publication number
WO2023139681A1
WO2023139681A1 PCT/JP2022/001759 JP2022001759W WO2023139681A1 WO 2023139681 A1 WO2023139681 A1 WO 2023139681A1 JP 2022001759 W JP2022001759 W JP 2022001759W WO 2023139681 A1 WO2023139681 A1 WO 2023139681A1
Authority
WO
WIPO (PCT)
Prior art keywords
observables
clique
computer
observable
group
Prior art date
Application number
PCT/JP2022/001759
Other languages
English (en)
French (fr)
Inventor
知周 栗田
Original Assignee
富士通株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 富士通株式会社 filed Critical 富士通株式会社
Priority to PCT/JP2022/001759 priority Critical patent/WO2023139681A1/ja
Publication of WO2023139681A1 publication Critical patent/WO2023139681A1/ja

Links

Images

Classifications

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

Definitions

  • the present invention relates to a multi-qubit observable partitioning program, a multi-qubit observable partitioning method, and an information processing apparatus.
  • Quantum computers use electronic information called quantum bits.
  • a qubit can have a superposition of '0' and '1'. It is also possible to create entangled states with multiple qubits. Quantum computers can solve complex problems in a short time by using these superposition and entanglement states to compute all possibilities in parallel.
  • Quantum computers can solve problems much faster than classical computers.
  • Algorithms for solving problems with quantum computers are called quantum algorithms, and algorithms for solving problems with classical computers are called classical algorithms.
  • the classical algorithm requires about M M steps (exponential time) to find a solution
  • the quantum algorithm requires about M 2 steps (polynomial time) to find a solution (M is a natural number that indicates the size of the problem).
  • problems that can be calculated in a short time by quantum computers include Deutsch-Jozsa's algorithm and Shor's algorithm.
  • the quantum state it is necessary to read out not only the z-axis of the Bloch sphere, but also the x- and y-axis values.
  • the x-axis or y-axis values can be measured by performing an operation to convert those values to the z-axis before measurement and reading the values after the conversion operation. Note that the superposition state of the qubits is destroyed when the qubits are measured. Therefore, in order to fully know the quantum state, it is necessary to repeatedly execute quantum calculations for each measurement of the x-axis, y-axis, and z-axis.
  • the state of one or more qubits is represented using observables. To completely know the state of n qubits, it is sufficient to measure the expected values of 4 n ⁇ 1 observables (n is a natural number). By finding the expected value for each observable, we can fully know the state of the qubit. When obtaining the expected value for each observable, one quantum circuit is basically created for each observable. Quantum computers take 10 4 -10 5 measurements per observable to reduce statistical errors.
  • a technology related to quantum computers for example, a technology related to grouping Pauli strings using entangle measurement has been proposed for designing quantum circuits that enable quantum computing. Techniques have also been proposed for suppressing an increase in the amount of calculation when dividing a combinatorial optimization problem into a plurality of subproblems.
  • partitioning In the simultaneous measurement of the expected values of multiple observables, partitioning generates a set (clique) of simultaneously measurable observables. Each observable is contained in some clique. For each predetermined number of observables included in the same clique, simultaneous measurement of expected values by a quantum computer is performed. In this case, the smaller the number of cliques, the more efficient the measurement of the qubit state. As the number of observables to be measured increases, the amount of computation required to generate cliques containing more observables becomes enormous. Therefore, by performing partitioning using an annealing computer that calculates the ground state of the Ising model, partitioning can be speeded up.
  • this case aims to relax the limit on the number of observables that can speed up partitioning.
  • a multi-qubit observable partitioning program causes a computer to perform the following operations.
  • the computer is a combination of observables in the first group of a plurality of observables to be measured, and causes the annealing type computer to calculate the solution of the first combinatorial optimization problem of searching for a combination including more observables that satisfy the condition that the expected values of any two observables included in the combination can be measured simultaneously.
  • the computer then generates a first clique representing the combination of observables presented in the solution of the first combinatorial optimization problem.
  • the computer then generates a second group of a predetermined number of observables not included in the first clique based on the number of observables in the first clique whose expected values can be measured simultaneously for each observable not included in the first clique.
  • the computer causes the annealing type computer to compute the solution of the second combinatorial optimization problem of searching for combinations containing more observables that are combinations of observables in the union of the first clique and the second group and that satisfy the condition that the expected values of any two observables contained in the combination can be measured simultaneously.
  • the computer then generates a second clique indicating the combination of observables presented in the solution of the second combinatorial optimization problem.
  • FIG. 4 is a diagram illustrating an example of a partitioning method for multiple-qubit observables according to the first embodiment; It is a figure which shows an example of a system configuration.
  • 1 is a diagram showing an example of classical computer hardware;
  • FIG. It is a figure explaining the simultaneous measurement method of an observable.
  • It is a figure which shows the example of determination of exchange relationship.
  • FIG. 4 is a diagram showing an example of partitioning; 1 is a block diagram showing an example of the functionality of a classical computer;
  • FIG. It is a figure which shows an example of the process which an exchange relationship determination part performs. It is a figure which shows an example of a clique generation process.
  • FIG. 1 is a diagram showing an example of classical computer hardware
  • FIG. It is a figure explaining the simultaneous measurement method of an observable.
  • It shows the example of determination of exchange relationship.
  • FIG. 4 is a diagram showing an example of partitioning
  • 1 is a block diagram showing an example of the functionality of
  • FIG. 10 is a diagram illustrating an example of repeated processing of clique generation; It is a figure which shows an example of expected value measurement of an observable using the quantum circuit for simultaneous measurements.
  • FIG. 10 is a diagram showing a comparison result of the number of cliques for each partitioning method;
  • FIG. 10 is a diagram showing a comparison result of calculation time for each partitioning method;
  • FIG. 2 is a diagram (part 1) showing an example of a partitioning method in which multiple clique generation processes are performed for generation of one clique;
  • FIG. 10 is a diagram (Part 2) showing an example of a partitioning method in which multiple clique generation processes are performed for generation of one clique; 4 is a flow chart showing an example of an observable measurement procedure; 6 is a flowchart illustrating an example of a partitioning process procedure; 10 is a flowchart (1/2) showing an example of the procedure of clique generation processing; 10 is a flowchart (2/2) showing an example of the procedure of clique generation processing; FIG. 11 is a diagram (part 1) showing an example of the result of partitioning; It is a figure which shows the comparative example of partitioning. FIG. 11 is a diagram (part 2) showing an example of the result of partitioning; FIG. 13 is a diagram (part 3) showing an example of the result of partitioning; FIG. 10 is a flowchart showing an example of a partitioning process procedure for determining one clique in three or more stages of clique generation process; FIG.
  • the first embodiment is a partitioning method for multiple-qubit observables that relaxes the limit on the number of observables when generating cliques using an annealing computer.
  • FIG. 1 is a diagram showing an example of a partitioning method for multiple-qubit observables according to the first embodiment.
  • FIG. 1 shows an example in which the information processing apparatus 10 executes the partitioning method for the multiple-qubit observable.
  • the information processing apparatus 10 can implement a multi-qubit observable partitioning method, for example, by executing a multi-qubit observable partitioning program.
  • the information processing device 10 has a storage unit 11 and a processing unit 12 .
  • the storage unit 11 is, for example, a memory or a storage device that the information processing device 10 has.
  • the processing unit 12 is, for example, a processor or an arithmetic circuit included in the information processing device 10 .
  • the information processing device 10 partitions a plurality of observables representing the states of quantum bits.
  • the information processing device 10 is connected to the annealing computer 1, and uses the annealing computer 1 during partitioning to determine observables to be included in the clique.
  • the annealing computer 1 allocates a calculation bit to each observable to be processed when performing the clique generation process.
  • the value of each bit indicates whether or not to include the corresponding observable in the clique. Therefore, in order to perform clique generation processing, the number of observables included in the set of observables to be processed must be less than or equal to the number of bits used by the annealing computer 1 for calculation.
  • the storage unit 11 stores the observable group 2 .
  • the observable group 2 includes a plurality of observables to be measured among a plurality of observables representing states of a plurality of quantum bits.
  • circles in observable group 2 represent observables to be measured.
  • Observables to be measured are determined according to the problem to be solved using a quantum computer. For example, 4 n ⁇ 1 observables are included in the observable group 2 when the state of n qubits is desired to be known completely.
  • the processing unit 12 performs partitioning to divide the observable group 2 into a plurality of cliques.
  • the processing unit 12 generates cliques one by one.
  • the processing unit 12 executes two or more stages of clique generation processing to generate one clique.
  • the processing unit 12 generates a first group 3 that is a subset of a plurality of observables to be measured.
  • a first group 3 contains observables arbitrarily selected from observable group 2, for example.
  • the processing unit 12 selects from the observable group 2 as many observables as the number of bits available for calculation in the annealing computer 1 and includes the selected observables in the first group 3 .
  • the processing unit 12 causes the annealing computer 1 to calculate the solution of the first combinatorial optimization problem, which is a combination of the observables in the first group 3 and searches for a combination that satisfies a predetermined condition and includes more observables.
  • the processing unit 12 generates the first group 3 including the same number of observables as the number of bits used for calculation by the annealing computer 1, and instructs the annealing computer 1 to search for the solution of the first combinatorial optimization problem according to the generated first group 3. Then, the processing unit 12 acquires the solution of the first combinatorial optimization problem from the annealing computer 1 .
  • the processing unit 12 generates a first clique 4 indicating a combination of observables indicated in the solution of the first combinatorial optimization problem.
  • the processing unit 12 generates the second group 5 based on the number of observables in the first clique 4 whose expected values can be measured simultaneously for each observable not included in the first clique 4 .
  • a second group 5 is a set of a predetermined number of observables not included in the first clique 4 .
  • the processing unit 12 For example, for each observable not included in the first clique 4, the processing unit 12 counts the number of commutative observables indicating the number of observables in the first clique 4 whose expected values can be measured simultaneously. Then, the processing unit 12 generates a second group 5 that includes a predetermined number of observables in descending order of the number of commutative observables among the observables that are not included in the first clique 4 .
  • the processing unit 12 generates the second group 5 so that the number of observables included in the union 7 of the first clique 4 and the second group 5 is less than or equal to the number of bits used by the annealing computer 1 for calculation.
  • the processing unit 12 generates the second group 5 containing the same number of observables as the difference between the number of bits used for calculation by the annealing computer 1 and the number of observables contained in the first clique 4 .
  • the processing unit 12 generates a union 7 of the first clique 4 and the second group 5. Then, the processing unit 12 causes the annealing computer 1 to calculate the solution of the second combinatorial optimization problem, which is a combination of observables in the generated union 7 and searches for a combination including more observables that satisfy a predetermined condition.
  • the predetermined condition is that the expected values of any two observables included in the combination can be measured simultaneously.
  • the processing unit 12 instructs the annealing computer 1 to search for the solution of the second combinatorial optimization problem according to the generated second group 5, and acquires the solution of the second combinatorial optimization problem from the annealing computer 1.
  • the processing unit 12 generates a second clique 6 indicating a combination of observables indicated in the solution of the second combinatorial optimization problem.
  • the second clique 6 is determined to be one clique (deterministic clique) generated by partitioning the observable group 2 .
  • the processing unit 12 repeats the process of generating the first clique 4 and the second clique 6 described above many times until all observables are included in any of the definite cliques. For example, after generating the second clique 6 , the processing unit 12 limits the observables to be processed in the observable group 2 to remaining observables that are not included in the second clique 6 . Then, using the set of remaining observables, the processing unit 12 instructs the calculation of the solution of the first combinatorial optimization problem, generates the first clique 4, generates the second group 5, instructs the calculation of the solution of the second combinatorial optimization problem, and generates the second clique 6. Thereby, a second second clique 6 (determined clique) can be generated. The processing unit 12 repeats such a second clique generation process until all observables are included in any of the definite cliques. As a result, the partitioning of observable group 2 is completed.
  • the number of observables to be subjected to individual clique generation processing can be made equal to or less than the number of bits of the annealing computer 1. If the number of bits of the observable is equal to or smaller than the number of bits of the annealing computer 1, the annealing computer 1 can be used to search for solutions to combinatorial optimization problems, thereby enabling high-speed clique generation processing. That is, by determining one clique through two stages of clique generation processing, the restriction on the number of observables that can speed up partitioning is relaxed.
  • the second group 5 is a set of observables that are not included in the first clique 4 and are capable of simultaneous measurement of expected values with many observables in the first clique 4 .
  • the second clique 6 can be expected to have a larger number of observables than the first clique 4.
  • the clique generation process is performed using the annealing computer 1 that performs calculations with a smaller number of bits than the number of observables in the observable group 2, it is possible to generate a larger clique considering the entire observable group 2.
  • the number of observables included in one clique increases, the number of cliques generated by partitioning decreases.
  • the processing unit 12 selects a predetermined number of observables from the same clique out of the generated cliques.
  • the processing unit 12 generates a quantum circuit that simultaneously measures expected values of the selected observables.
  • the processing unit 12 instructs the gate-type quantum computer to simultaneously measure the expected value of the target observable based on the generated quantum circuit.
  • the processing unit 12 can generate an Ising model corresponding to the clique generation process in order to cause the annealing computer 1 to search for solutions to the combinatorial optimization problem. For example, the processing unit 12 generates the first Ising model corresponding to the first group 3 when causing the annealing computer 1 to calculate the solution of the first combinatorial optimization problem.
  • the first Ising model includes a variable indicating whether each observable belonging to the first group 3 is included in the first clique 4 or not.
  • the processing unit 12 causes the annealing computer 1 to search for the ground state of the first Ising model, and acquires the search result from the annealing computer 1 . Thereby, the solution of the first combinatorial optimization problem can be obtained from the annealing computer 1 .
  • the processing unit 12 when the annealing computer 1 calculates the solution of the second combinatorial optimization problem, the processing unit 12 generates a second Ising model corresponding to the union 7 of the first clique 4 and the second group 5.
  • the second Ising model includes a variable indicating whether each observable belonging to the union 7 is included in the second clique 6 or not.
  • the value of the Hamiltonian increases when the second clique 6 includes a pair of observables whose expected values cannot be measured simultaneously, and the greater the number of observables included in the second clique 6, the smaller the value of the Hamiltonian.
  • the processing unit 12 causes the annealing computer 1 to search for the ground state of the second Ising model, and acquires the search result from the annealing computer 1 . Thereby, the solution of the second combinatorial optimization problem can be obtained from the annealing computer 1 .
  • the processing unit 12 can also finalize one finalized clique through three or more stages of clique generation processing. For example, the processing unit 12 generates the third group based on the number of observables in the second clique 6 whose expected values can be measured simultaneously for each observable not included in the second clique 6 .
  • the third group is a set of a predetermined number of observables not included in the second clique 6 .
  • the processing unit 12 causes the annealing computer 1 to calculate the solution of the third combinatorial optimization problem, which is a combination of observables in the union of the second clique 6 and the third group, and searches for a combination that satisfies a predetermined condition and includes more observables.
  • the predetermined condition is that the expected values of any two observables included in the combination can be measured simultaneously.
  • the processing unit 12 generates a third clique indicating a combination of observables indicated in the solution of the third combinatorial optimization problem.
  • the processing unit 12 can set the third clique as a definite clique generated by partitioning.
  • the processing unit 12 may similarly repeat the clique generation process a predetermined number of times, and the finally generated clique may be defined as a definite clique generated by partitioning. By repeating the clique generation process three or more times until one definite clique is obtained in this way, it is possible to generate definite cliques containing more observables.
  • a second embodiment is a computer system for efficiently measuring the complete state of a qubit.
  • FIG. 2 is a diagram showing an example of the system configuration.
  • a classical computer 100 is connected to an annealing computer 200 and a gate quantum computer 300 .
  • Classical computer 100 is, for example, a von Neumann computer.
  • the annealing computer 200 is a non-Von Neumann computer for calculating the ground state of the Ising model.
  • the annealing type computer 200 may be either one using a superconducting quantum circuit or one that reproduces a quantum phenomenon with a semiconductor circuit.
  • the gate quantum computer 300 is a non-von Neumann computer that can solve general-purpose problems by manipulating quantum gates.
  • the classical computer 100 controls the annealing computer 200 and the gate quantum computer 300 to perform quantum computation. In doing so, the classical computer 100 classifies the observables of the problem to be computed into one of the cliques.
  • the classification process into cliques is called partitioning. For example, the classical computer 100 generates an Ising model for generating a clique from the information of a set of simultaneously measurable observables, and causes the annealing computer 200 to calculate the ground state of the Ising model.
  • the classical computer 100 then controls the gate-type quantum computer 300 to simultaneously measure the expected values of two or more observables included in the same clique.
  • FIG. 3 is a diagram showing an example of the hardware of a classical computer.
  • a classical computer 100 is entirely controlled by a processor 101 .
  • a memory 102 and a plurality of peripheral devices are connected to the processor 101 via a bus 109 .
  • Processor 101 may be a multiprocessor.
  • the processor 101 is, for example, a CPU (Central Processing Unit), an MPU (Micro Processing Unit), or a DSP (Digital Signal Processor).
  • processor 101 executing a program may be realized by an electronic circuit such as ASIC (Application Specific Integrated Circuit) or PLD (Programmable Logic Device).
  • ASIC Application Specific Integrated Circuit
  • PLD Programmable Logic Device
  • the memory 102 is used as the main storage device of the classical computer 100.
  • the memory 102 temporarily stores at least part of an OS (Operating System) program and application programs to be executed by the processor 101 .
  • the memory 102 stores various data used for processing by the processor 101 .
  • a volatile semiconductor memory device such as RAM (Random Access Memory) is used.
  • Peripheral devices connected to the bus 109 include a storage device 103 , a GPU (Graphics Processing Unit) 104 , an input interface 105 , an optical drive device 106 , a device connection interface 107 and a network interface 108 .
  • a storage device 103 a storage device 103 , a GPU (Graphics Processing Unit) 104 , an input interface 105 , an optical drive device 106 , a device connection interface 107 and a network interface 108 .
  • GPU Graphics Processing Unit
  • the storage device 103 electrically or magnetically writes data to and reads data from a built-in recording medium.
  • the storage device 103 is used as an auxiliary storage device for the computer.
  • the storage device 103 stores an OS program, application programs, and various data.
  • an HDD Hard Disk Drive
  • an SSD Solid State Drive
  • the GPU 104 is an arithmetic unit that performs image processing, and is also called a graphics controller.
  • a monitor 21 is connected to the GPU 104 .
  • the GPU 104 displays an image on the screen of the monitor 21 according to instructions from the processor 101 .
  • Examples of the monitor 21 include a display device using an organic EL (Electro Luminescence), a liquid crystal display device, and the like.
  • a keyboard 22 and a mouse 23 are connected to the input interface 105 .
  • the input interface 105 transmits signals sent from the keyboard 22 and mouse 23 to the processor 101 .
  • the mouse 23 is an example of a pointing device, and other pointing devices can also be used.
  • Other pointing devices include touch panels, tablets, touchpads, trackballs, and the like.
  • the optical drive device 106 reads data recorded on the optical disc 24 or writes data to the optical disc 24 using laser light or the like.
  • the optical disc 24 is a portable recording medium on which data is recorded so as to be readable by light reflection.
  • the optical disc 24 includes DVD (Digital Versatile Disc), DVD-RAM, CD-ROM (Compact Disc Read Only Memory), CD-R (Recordable)/RW (ReWritable), and the like.
  • the device connection interface 107 is a communication interface for connecting peripheral devices to the classical computer 100 .
  • the device connection interface 107 can be connected to the memory device 25 and the memory reader/writer 26 .
  • the memory device 25 is a recording medium equipped with a communication function with the device connection interface 107 .
  • the memory reader/writer 26 is a device that writes data to the memory card 27 or reads data from the memory card 27 .
  • the memory card 27 is a card-type recording medium.
  • the network interface 108 is connected to the network 20.
  • Network interface 108 transmits and receives data to and from annealing computer 200 or gate quantum computer 300 via network 20 .
  • the network interface 108 is a wired communication interface that is connected by a cable to a wired communication device such as a switch or router.
  • the network interface 108 may be a wireless communication interface that communicates with a wireless communication device such as a base station or an access point via radio waves.
  • the classical computer 100 can implement the processing functions of the second embodiment with the above hardware.
  • the information processing apparatus 10 shown in the first embodiment can also be realized by hardware similar to the classical computer 100 shown in FIG.
  • the classical computer 100 implements the processing functions of the second embodiment, for example, by executing a program recorded on a computer-readable recording medium.
  • a program describing the processing content to be executed by the classical computer 100 can be recorded in various recording media.
  • a program to be executed by the classical computer 100 can be stored in the storage device 103 .
  • the processor 101 loads at least part of the program in the storage device 103 into the memory 102 and executes the program.
  • the program to be executed by the classical computer 100 can also be recorded in a portable recording medium such as the optical disk 24, memory device 25, memory card 27, or the like.
  • a program stored in a portable recording medium can be executed after being installed in the storage device 103 under the control of the processor 101, for example.
  • the processor 101 can read and execute the program directly from the portable recording medium.
  • the quantum state can be expressed using the density operator ⁇ .
  • can be expressed as a 2 n ⁇ 2 n matrix (where n is the number of qubits).
  • the density operator ⁇ can be represented using multiple observables (64 for 3 qubits). Each observable becomes a linearly independent basis that constitutes ⁇ , which represents the quantum state. That is, ⁇ in the case of 3 qubits is represented by the following equation.
  • ⁇ 0 I 0 I 1 I 2 + ⁇ 1 X 0 I 1 I 2 + ⁇ 2 Y 0 I 1 I 2 + ⁇ 3 Z 0 I 1 I 2 + ⁇ 4 I 0 X 1 I 2 + ⁇ 5 X 0 X 1 I 2 + . 2 + ⁇ 63 Z 0 Z 1 Z 2 ⁇ 0 , . . . , ⁇ 63 are real coefficients.
  • the subscripted X, Y, Z are Pauli operators and are 2 ⁇ 2 Pauli matrices ( ⁇ x , ⁇ y , ⁇ z ). The numerical value of the subscript is the number of the quantum bit to be measured.
  • the subscripted I is the identity operator and is a 2 ⁇ 2 identity matrix.
  • the identity operator is also a kind of Pauli operator.
  • An observable is represented by an array of Pauli operators. This array of Pauli operators is called a Pauli string.
  • a Pauli string indicates the tensor product of the Pauli operators represented by the Pauli string.
  • the expected value of the k (natural number)-th term observable is ⁇ k . For example, the expected value of X 0 X 1 I 2 is ⁇ 5 .
  • the number of observables to be measured to fully know the state of n qubits is 4 n ⁇ 1.
  • the state of the qubit can be fully known by measuring three observables: ⁇ X, Y, Z ⁇ .
  • FIG. 4 is a diagram for explaining a method of simultaneously measuring observables.
  • ⁇ > of 3 qubits is obtained.
  • the three observables "I 0 Y 1 X 2 , Z 0 Z 1 Z 2 , X 0 I 1 X 2 " of the quantum circuit 30 corresponding to the problem to be solved.
  • Horizontal lines in quantum circuit 30 correspond to qubits.
  • quantum circuits 31 to 33 corresponding to each of the three observables are generated. Rectangular symbols shown on the horizontal lines of the quantum circuits 31 to 33 are quantum gates acting on respective quantum bits.
  • the "S” rectangle indicates an S gate.
  • the "X” rectangle indicates an X gate.
  • the “H” rectangle indicates an H gate (Hadamard gate). The state of each qubit is measured at the position where the measurement symbol of each qubit is indicated.
  • the quantum circuit 31 three qubits are used to measure the expected values of " I0 " , " Y1 " and “ X2 " in order to calculate the expected value of the observable " I0Y1X2 ".
  • “I 0 ” corresponding to the 0th qubit is the identity operator, and no expected value measurement is required.
  • S gate, H gate, and X gate operations are performed. This allows us to measure the expected value of Y 1 from the first qubit.
  • an H-gate operation is performed. This allows us to measure the expected value of X2 from the second qubit. Based on these measurements, the expected value of the observable "I 0 Y 1 X 2 " can be obtained.
  • 'I 1 ' corresponding to the first qubit is the identity operator and does not need to be measured.
  • an H gate operation is performed for the 0th quantum bit. This allows us to measure the expected value of X 0 from the 0th qubit.
  • an H-gate operation is performed for the second qubit. This allows us to measure the expected value of X2 from the second qubit. Based on these measurements, the expected value of the observable "X 0 I 1 X 2 " can be obtained.
  • the quantum circuit 33 three quantum bits are used to measure the expected values of " Z0 " , " Z1 " and “ Z2 " in order to calculate the expected values of the observable "Z0Z1Z2".
  • the quantum gate operation on the output side of the original quantum circuit 30 is not performed, and the expected values of “Z 0 ”, “Z 1 ”, and “Z 2 ” can be measured by measuring each of the 0th to 2nd qubits. Based on these measurements, the expected value of the observable "Z 0 Z 1 Z 2 " can be obtained.
  • the quantum circuits 31 to 33 obtain the expected value of one observable based on the measurement results of the three qubits. Therefore, in order to obtain expected values of three observables, three quantum circuits 31 to 33 measure the state of each quantum bit.
  • an H gate is provided for the 0th qubit, and a CNOT gate is provided with the 1st qubit as the control bit and the 2nd qubit as the target bit.
  • a SWAP gate is provided for the 0th quantum bit and the 1st quantum bit.
  • an S gate is provided for the 0th qubit, and a CZ gate with the 1st qubit as the control bit and the 2nd qubit as the target bit.
  • each qubit is provided with an H-gate.
  • Measuring the 0th qubit of quantum circuit 34 yields the expected value of the observable "I 0 Y 1 X 2 ". Measuring the first qubit of quantum circuit 34 yields the expected value of the observable "Z 0 Z 1 Z 2 ". Measuring the second qubit of quantum circuit 34 yields the expected value of the observable "X 0 I 1 X 2 ".
  • the expected value of one observable can be measured from one qubit, and the expected values of three observables can be measured simultaneously. In this way, the three observables individually measured using the quantum circuits 31 to 33 can be measured simultaneously by one quantum circuit 34.
  • FIG. 1 the expected value of one observable can be measured from one qubit, and the expected values of three observables can be measured simultaneously.
  • FIG. 5 is a diagram showing an example of exchange relationship determination.
  • the commutative/anti-commutative correspondence table 35 indicates whether each combination of operators is commutative or anti-commutative.
  • a symbol indicating whether the operator shown in the row and the operator shown in the column is commutative or anti-commutative is shown at the intersection of the row and the column.
  • a "+" sign indicates commutativity and a "-" sign indicates anti-commutation.
  • changing the order of the product does not change the value, but in the anti-commutative case, changing the order of the product reverses the sign.
  • I 0 Y 1 X 2 and Z 0 Z 1 Z 2 it is determined whether each pair of I 0 and Z 0 , Y 1 and Z 1 , X 2 and Z 2 is commutative or anti-commutative.
  • I 0 Z 0 ” (commutative)
  • FIG. 6 is a diagram showing an example of partitioning. For example, for 14 observables 41-54, exchange relationships with other observables are determined. In the example of FIG. 6, a set of observables having a commutative exchange relationship are connected by lines. Then cliques 61 and 62 are generated based on the exchange relationship between the observables. The commutative relation is commutative in all combinations of observables belonging to clique 61 . Similarly, all combinations of observables belonging to clique 62 have commutative relations.
  • FIG. 7 is a diagram showing an example of partitioning.
  • each clique in the observable group 71 is classified into one of a plurality of cliques, there are a plurality of ways of dividing the cliques. For example, it can be divided into three cliques 72a-72c. It is also possible to divide into six cliques 73a-73f.
  • a small number of cliques means a large number of observables belonging to one clique.
  • the observable group is partitioned in the classical computer 100 so as to reduce the number of cliques.
  • the classical computer 100 uses the annealing type computer 200 to realize partitioning in a short time.
  • FIG. 8 is a block diagram showing an example of the functions of a classical computer.
  • the classical computer 100 has a commutation relation determination unit 110 , a partitioning unit 120 , a quantum circuit generation unit 130 and an expected value acquisition unit 140 .
  • the exchange relationship determination unit 110 determines exchange relationships for all combinations of observables to be measured.
  • the partitioning unit 120 partitions the observable group based on the exchange relationship between the observables.
  • the partitioning unit 120 performs partitioning using the annealing computer 200, for example.
  • the partitioning unit 120 creates an Ising model in which the energy decreases as the number of observables included in the clique increases.
  • the partitioning unit 120 then instructs the annealing computer 200 to search for the ground state of the created Ising model.
  • the annealing computer 200 then responds with information on observables belonging to the clique.
  • the quantum circuit generation unit 130 generates a quantum circuit for measuring observables. For example, the quantum circuit generation unit 130 selects a predetermined number of observables for simultaneous measurement from the same clique, and generates a quantum circuit corresponding to the combination of the selected observables.
  • the expected value acquisition unit 140 controls the gate quantum computer 300 to measure observables using the generated quantum circuit.
  • the function of each element in the classical computer 100 shown in FIG. 8 can be realized, for example, by causing the computer to execute a program module corresponding to that element.
  • FIG. 9 is a diagram depicting an example of processing performed by an exchange relationship determination unit;
  • the exchange relationship determination unit 110 lists observables that are elements of the observable group 40 to be measured. Observables are represented by Pauli strings (tensor products of Pauli operators).
  • the exchange relationship determination unit 110 determines the exchange relationship for all pairs that select two observables from the observable group 40 .
  • the exchange relationship determination unit 110 stores information that associates pairs of observables determined to be commutative. In the example of FIG. 9, pairs of observables determined to be commutative are connected by lines. The commutation relation between observables that are not connected by wires is anticommutative.
  • the partitioning unit 120 After the exchange relationship determination unit 110 finishes determining the exchange relationship, the partitioning unit 120 performs partitioning.
  • the partitioning unit 120 repeats the process of generating cliques containing as many observables as possible, for example.
  • FIG. 10 is a diagram illustrating an example of clique generation processing.
  • the partitioning unit 120 generates an Ising model 81 using ⁇ i ⁇ .
  • the Ising model 81 is represented by the following formula.
  • f( ⁇ i ⁇ ) in equation (1) corresponds to the Hamiltonian.
  • the clique is more likely to contain pairs of anticommutative observables.
  • the lower bound of m depends on the number of observables of interest. For example, when the number of observables is about 10, the lower limit of m is about "0.25". If the number of observables is about "5000", m can be lowered to about "0.05". If the value of m is increased, the solution will converge more quickly in the solution search. Therefore, when priority is given to calculation accuracy, it is appropriate to set the value of m to a value close to the lower limit.
  • the second term on the right side becomes a higher value as the number of pairs of anticommutative observables included in the clique element increases.
  • f( ⁇ i ⁇ ) takes the minimum value in equation (1) of the Ising model 81, the second term on the right side is required to be zero.
  • the partitioning unit 120 causes the annealing computer 200 to calculate ⁇ i ⁇ that minimizes f( ⁇ i ⁇ ).
  • Equation (1) is a combinatorial optimization problem for finding a combination of values of ⁇ i ⁇ that minimizes f( ⁇ i ⁇ ), and can be calculated at high speed by using the annealing computer 200 .
  • the partitioning unit 120 After creating one clique from the observable group A 0 , the partitioning unit 120 sets the subgroup constituting the created clique to B 0 .
  • the partitioning unit 120 repeats the clique creation process for subgroups whose elements are observables that are not included in any clique.
  • FIG. 11 is a diagram illustrating an example of repeated clique generation processing.
  • the annealing computer 200 is caused to generate the clique 61 having the maximum number of elements based on the Ising model 81 using all the observables in the observable group 40 as elements.
  • Annealing computer 200 responds with , for example , ⁇ 1 , .
  • the partitioning unit 120 instructs the annealing computer 200 to generate cliques based on subgroups whose elements are observables not included in the clique 61 .
  • the annealing computer 200 generates the clique 62 with the maximum number of elements according to the instruction from the partitioning unit 120 .
  • one of the two cliques 61 and 62 contains all observables, so the partitioning ends after the clique 62 is created.
  • the quantum circuit generator 130 After partitioning, the quantum circuit generator 130 generates a quantum circuit for measuring the complete state of the qubit.
  • the expected value acquisition unit 140 then controls the gate quantum computer 300 to acquire the expected value of the observable based on the generated quantum circuit.
  • FIG. 12 is a diagram showing an example of observable expected value measurement using a quantum circuit for simultaneous measurement.
  • the quantum circuit generation unit 130 extracts an element corresponding to an observable to be measured simultaneously from one of the plurality of cliques 82a, 82b, . . .
  • the gate quantum computer 300 can perform simultaneous measurements with 4 qubits.
  • quantum circuit generator 130 extracts a set of four elements from each clique.
  • the quantum circuit generator 130 then generates a quantum circuit for each combination of the extracted elements. For example, when "YYXX, YXXY, XYYX, XXYY" is extracted, the quantum circuit 83 is generated.
  • the generated quantum circuit 83 has a configuration in which a measurement quantum circuit 83b that performs operations for simultaneous measurement of a plurality of observables is added to the output side of a unitary gate 83a that performs operations according to the problem to be solved.
  • the measurement quantum circuit 83b is registered in advance in the quantum circuit generator 130 in association with, for example, a combination of observables to be measured. That is, the quantum circuit generation unit 130 stores quantum circuits for simultaneously measuring the expected values of the observables shown in the combination pattern in association with the combination pattern of the observables.
  • the quantum circuit generation unit 130 extracts, from a group of pre-registered quantum circuits, a quantum circuit corresponding to a combination of observables indicated by the elements extracted from the clique.
  • the quantum circuit generator 130 generates the quantum circuit 83 to be input to the gate-type quantum computer 300 by connecting the measurement quantum circuit 83b corresponding to the observable combination to the output side of the unitary gate 83a corresponding to the problem to be solved.
  • the expected value acquisition unit 140 transmits the quantum circuit generated for each observable combination to the gate quantum computer 300 .
  • Gate-type quantum computer 300 measures the expected value of the observable according to the received quantum circuit. For example, the gate quantum computer 300 repeats measurement of the state of each quantum bit using the received quantum circuit multiple times. Then, the gate quantum computer 300 calculates the expected value of the corresponding observable based on the results of multiple measurements of the state of each quantum bit.
  • the gate-type quantum computer 300 transmits the input measurement results 84a, 84b, . . . to the classical computer 100 for each quantum circuit.
  • the measurement results 84a, 84b, . . . indicate the expected value of the state of each quantum bit of the corresponding quantum circuit (the expected value of the observable corresponding to the corresponding quantum bit).
  • the expected value acquiring unit 140 takes the expected values of the quantum bits indicated by the measurement results 84a, 84b, .
  • Obtaining the expected values of all observables provides a density operator ⁇ that indicates the complete state (states of the X-, Y-, and Z-axes) of the output of the unitary gate 83a corresponding to the problem to be solved.
  • the expected value acquisition unit 140 outputs the solution of the problem to be solved, which is obtained based on the density operator ⁇ , as a calculation result.
  • the annealing type computer 200 can be used to create cliques at high speed.
  • FIG. 13 is a diagram showing the results of comparing the number of cliques for each partitioning method.
  • a graph 91 in FIG. 13 represents the relationship between the number of observables and the number of cliques for each partitioning method.
  • the graph 91 has the number of observables on the horizontal axis and the number of cliques on the vertical axis.
  • BronK QWC “BronK QWC”, “BopanaH QWC”, “BopanaH GC”, and “OpenF QWC” are calculation methods that perform partitioning without using the Ising model.
  • BronK and “BoppanaH” are abbreviations for the Bron-Kerbosch algorithm and the Boppana-Halldorsson algorithm, respectively.
  • OpenF is an abbreviation for a method using Open Fermion, which is a PYTHON (registered trademark) package.
  • QWC Quad-Wise Commutation
  • Observables are commutative if the number of pairs of anti-commutative elements is even, as shown in FIG. Note that "Naive" (i with a trema symbol) is a line representing the number of cliques when one observable is one clique (when the number of cliques is maximum).
  • Ising model use GC Full-tomography
  • Ising model use GC VQE-observable
  • partitioning unit 120 shown in the second embodiment.
  • Full-tomography in “Using the Ising model GC” is an example of measuring all observables to fully understand the quantum state.
  • VQE-observable is an example in which partitioning is performed on an observable used for calculation of a Variational Quantum Eigensolver (VQE).
  • FIG. 14 is a diagram showing the comparison result of calculation time for each partitioning method.
  • a graph 92 in FIG. 14 represents the relationship between the number of observables and computation time for each partitioning scheme.
  • the horizontal axis is the number of observables
  • the vertical axis is the calculation time required for partitioning.
  • the number of observables in the observable group when generating one clique from the observable group is equal to or less than the number of bits that can be used by the annealing computer 200 . If the number of observables in the observable group exceeds the number of bits that can be used by the annealing computer 200, it is difficult for the annealing computer 200 to search for solutions of the Ising model targeting all observables. That is, in the annealing computer 200, one observable corresponds to one bit, so the number of observables that can be handled in one clique generation process is limited to the number of bits available in the annealing computer 200.
  • one clique is generated by controlling the annealing computer 200 to perform the clique generation process from the subgroup multiple times.
  • FIG. 15 is a diagram (Part 1) showing an example of a partitioning method in which multiple clique generation processes are performed for the generation of one clique.
  • N is a natural number
  • the number of all observables to be measured is greater than the number N of bits.
  • an observable group O is a set of all observables to be measured. Each observable is a member of observable group O.
  • the partitioning unit 120 of the classical computer 100 extracts N elements from the observable group O and generates a subgroup O' containing N elements. Then, the partitioning unit 120 uses the annealing computer 200 to perform a process of generating a clique C' having the maximum number of elements from the subgroup O' (first-stage clique generation). In the example of FIG. 15, the number of elements c' (c' is a natural number) included in the clique C' is "6".
  • the number n i (C') of the elements ⁇ o i ⁇ is an integer within the range of "0 to 6".
  • FIG. 16 is a diagram (part 2) showing an example of a partitioning method in which multiple clique generation processes are performed for generation of one clique.
  • the partitioning unit 120 arranges the elements ⁇ o i ⁇ not included in the clique C′ in descending order based on the number of elements n i (C′). Then, the partitioning unit 120 generates a subset D' including the elements ⁇ o i ⁇ up to the Nc'-th elements from the one having the largest value of the number of elements n i (C').
  • the bold white circles are the elements included in the subset D'.
  • the partitioning unit 120 uses the annealing computer 200 to perform a process of generating a clique C with the maximum number of elements from the union of the clique C' and the subset D' (second-stage clique generation).
  • a process of generating a clique C with the maximum number of elements from the union of the clique C' and the subset D' (second-stage clique generation).
  • Nine white circles shown in FIG. 16 are the elements included in the clique C.
  • the first-stage clique generation generates an intermediate-stage clique C' that includes an element that is highly likely to be included in the clique with the largest number of elements among the elements included in the observable group O.
  • Elements not included in the clique C' are considered to be more likely to be included in the clique with the maximum number of elements as the number of elements n i (C') in the clique C' having a commutative relationship increases. Therefore, by selecting as many elements as possible from the one with the largest number of elements n i (C') to form a subset D', a subset D' of elements that are likely to be included in the clique with the largest number of elements is generated. By generating the clique C from the union of the clique C' and the subset D', it is possible to generate a clique with a larger number of elements.
  • FIG. 17 is a flow chart showing an example of an observable measurement procedure. The processing shown in FIG. 17 will be described below along with the step numbers.
  • the exchange relationship determination unit 110 lists observables that are elements of the observable group O according to the problem to be solved. [Step S102] The exchange relationship determination unit 110 determines exchange relationships between observables included as elements in an observable group. For example, the exchange relationship determination unit 110 generates all combinations (pairs of observables) that select two observables included as elements of the observable group. Then, the commutative relationship determining unit 110 determines whether the pair of observables is commutative or anticommutative based on the commutative/anticommutative relationship between the Pauli operators included in each observable pair.
  • Step S103 The partitioning unit 120 partitions the observable group. Partitioning creates one or more cliques. Details of the partitioning process will be described later (see FIG. 18).
  • the quantum circuit generator 130 selects a predetermined number of observables whose expected values have not yet been calculated from the same clique. [Step S105] The quantum circuit generation unit 130 generates a quantum circuit for simultaneously measuring a plurality of selected observables.
  • the expected value acquisition unit 140 transmits the quantum circuit to the gate-type quantum computer 300 and instructs calculation according to the quantum circuit.
  • the gate-type quantum computer 300 repeats the calculation according to the quantum circuit a predetermined number of times, and calculates the expected value of the quantum bit corresponding to each selected observable.
  • the gate quantum computer 300 transmits the obtained expected value to the expected value acquisition unit 140 .
  • the expected value acquisition unit 140 acquires the expected value of the observable from the gate quantum computer 300 .
  • the quantum circuit generator 130 determines whether there is an unselected observable. If there is an unselected observable, quantum circuit generation unit 130 advances the process to step S104. Further, when all observables have been selected, the quantum circuit generation unit 130 advances the process to step S109.
  • the expected value obtaining unit 140 obtains the solution of the problem to be solved based on the expected value of the observable to be measured, and outputs the obtained solution. In this way, by performing partitioning, a clique that collects simultaneously measurable observables is generated, and the expected values of the observables included in the same clique are simultaneously measured.
  • FIG. 18 is a flowchart illustrating an example of a partitioning process procedure. The processing shown in FIG. 18 will be described below along with the step numbers.
  • Step S121 The partitioning unit 120 initializes the value of a variable k indicating the number of iterations to "1".
  • the number of elements M 1 of the subgroup O 1 is the number of elements of the observable group O.
  • Step S122 The partitioning unit 120 determines whether or not the number of elements M k of the subgroup O k is greater than the number of bits N of the annealing computer 200 (N is an integer equal to or greater than 1). If the number of elements M k of the subgroup O k is greater, the partitioning unit 120 advances the process to step S124. If the number of elements M k of the subgroup O k is equal to or smaller than the number of bits N, the partitioning unit 120 advances the process to step S123.
  • Step S123 The partitioning unit 120 generates a clique C k from the subgroup O k . Details of the clique generation process will be described later (see FIGS. 19 and 20). After generating the clique C k , the partitioning unit 120 advances the process to step S130.
  • the partitioning unit 120 generates a subgroup O k ′ by arbitrarily extracting N elements from the M k elements of the subgroup O k .
  • the partitioning unit 120 generates a clique C k ′ having the maximum number of elements from the subgroup O k ′. Let ck be the number of elements included in the clique C k '.
  • This process is a process in which the subgroup O k in the clique generation process of step S123 is replaced with the subgroup O k ', and the details of the process are as shown in FIGS.
  • Step S127 The partitioning unit 120 generates a subgroup D k ' whose elements are N ⁇ c k ' observables in descending order of n i (C k ') among the observables ⁇ o i ⁇ .
  • Step S128 The partitioning unit 120 generates a subgroup O k ′′ which is the union of the clique C k ' and the subgroup D k '.
  • Step S129 The partitioning unit 120 generates a clique C k having the maximum number of elements from the subgroup O k ′′.
  • This process is a process in which the subgroup O k in the clique generation process of step S123 is replaced with the subgroup O k ′′, and the details of the process are as shown in FIGS.
  • Step S130 The partitioning unit 120 generates a subgroup O k +1 by removing the elements of the clique C k from the subgroup O k .
  • Step S131 The partitioning unit 120 determines whether the subgroup O k+1 is an empty set. The partitioning unit 120 ends the partitioning process if the subgroup O k+1 is an empty set. If the subgroup O k+1 is not an empty set, the partitioning unit 120 advances the process to step S132.
  • Step S132 The partitioning unit 120 counts up the value of the variable k and advances the process to step S122 (k ⁇ k+1). In this way, generation of cliques C k is repeatedly executed until all observables that are elements of observable group O are included in some clique. At that time, when the number of elements M k of the subgroup O k is larger than the number of bits of the annealing computer 200, a partitioning technique is applied in which multiple clique generation processes are performed for generation of one clique. In the example of FIG. 18, two clique generation processes (steps S125 and S129) are performed for generation of one clique. By generating cliques through multiple times of clique generation processing, even if the number of bits of annealing type computer 200 is insufficient for the number of observables, cliques containing more observables can be generated.
  • FIG. 19 is a flowchart (1/2) showing an example of the procedure of clique generation processing. The processing shown in FIG. 19 will be described below along with the step numbers.
  • the partitioning unit 120 creates an Ising model for the subgroup to be processed.
  • the generated Ising model has a smaller Hamiltonian value as the number of observables included in the clique increases.
  • Step S202 The partitioning unit 120 sets the number of observables in the subgroup to be processed to L (L is a natural number), and sets each observable to ⁇ P 1 , P 2 , . . . , P L ⁇ . Each observable is represented by a Pauli string.
  • Step S203 The partitioning unit 120 generates an L ⁇ L square matrix E in which all element values are “0”.
  • Step S204 The partitioning unit 120 counts up the loop variable n1 one by one from 1, and repeats the processing of steps S205 to S208 until L is reached.
  • Step S205 The partitioning unit 120 counts up the loop variable n2 from n1 by 1, and repeats the processing of steps S206 and S207 until L is reached.
  • Step S208 When the processes of steps S206 and S207 are completed for all n2 from n1 to L, the partitioning unit 120 advances the process to step S209.
  • Step S209 When the processes of steps S205 to S208 are completed for all n1 from 1 to L, the partitioning unit 120 advances the process to step S211 (see FIG. 20).
  • FIG. 20 is a flowchart (2/2) showing an example of the procedure of clique generation processing. The processing shown in FIG. 20 will be described below along with the step numbers.
  • the partitioning unit 120 generates an Ising model.
  • the Ising model is represented by the following formula.
  • Equation (2) is a positive real number.
  • the partitioning unit 120 transmits the Ising model to the annealing computer 200 and instructs to search for the ground state of the Ising model.
  • the annealing computer 200 generates a binary variable group ⁇ that minimizes f( ⁇ ) in the Ising model according to the instructions.
  • the partitioning unit 120 acquires from the annealing computer 200 the binary variable set ⁇ that minimizes f( ⁇ ). [Step S215] The partitioning unit 120 defines a set P of observables included in the clique as follows.
  • the set P includes observables corresponding to variables whose value is "1" in the binary variable group ⁇ that minimizes f( ⁇ ).
  • FIG. 21 is a diagram (part 1) showing an example of the result of partitioning.
  • a parameter transition table 93 shows changes in the values of various parameters in partitioning when the annealing type computer 200 has 1024 bits.
  • a parameter transition table 94 shows changes in the values of various parameters in partitioning when the annealing type computer 200 has 4096 bits.
  • the parameter transition tables 93 and 94 have columns for the number of times, the number of observables, the number of elements of C', and the number of elements of C.
  • the number of generations of the clique C finally determined is set in the number of times column.
  • the number of observables to be processed in the clique C generation process is set in the number of observables column.
  • the number of elements included in the clique C' generated in the first stage of the two-stage clique generation is set in the column of the number of elements of C'.
  • the number of elements included in the finally determined clique C is set in the number of elements of C column.
  • the number of observables to be processed exceeds the number of bits (insufficient number of bits) from the first to the 59th generation of the finally determined clique C. If the number of bits is insufficient, two stages of clique generation are performed (“YES” in step S122 of FIG. 18). After the 60th generation of clique C finally determined, the number of observables is equal to or less than the number of bits (the number of bits is sufficient). If the number of bits is sufficient, one stage of clique generation is performed (“NO” in step S122 of FIG. 18).
  • the number of bits of the annealing type computer 200 is 1024
  • the number of cliques obtained as a result of partitioning is 112
  • the number of clique generation processes is 171.
  • the number of bits of the annealing type computer 200 is 4096, the number of observables is less than or equal to the number of bits throughout the partitioning (the number of bits is sufficient). In this case, the number of cliques obtained as a result of partitioning is 110, and the number of clique generation processes is 110 times.
  • the obtained number of cliques is almost the same. In other words, even if the number of bits of the annealing computer 200 is less than the number of observables to be partitioned, a clique of sufficiently large size can be generated. Although the number of times of clique generation increases when the number of bits is 1024, the increase is only about 50% to 60%.
  • FIG. 22 is a diagram showing a comparative example of partitioning.
  • the partitioning method when the number of observables is larger than the number of bits of the annealing computer 200, the partitioning method performs only clique generation with a subgroup O′ arbitrarily selected from the observable group O as the processing target.
  • the number of elements in subgroup O′ is equal to the number of bits in annealing type computer 200 . That is, the clique C obtained by the clique generation process with the subgroup O' as the processing target is used as it is as the result of the partitioning.
  • the partitioning method shown in FIG. 22 is a one-stage clique generation method using subgroups.
  • the partitioning method adopted in the second embodiment is a two-stage clique generation method using subgroups.
  • FIG. 23 is a diagram (part 2) showing an example of the result of partitioning.
  • the parameter transition table 95 shows changes in the values of various parameters when the annealing computer 200 with 1024 bits performs partitioning by the two-stage clique generation technique.
  • the parameter transition table 96 shows changes in the values of various parameters when the annealing computer 200 with 1024 bits performs partitioning by the one-stage clique generation technique (the technique of the comparative example in FIG. 22).
  • the parameter transition tables 95 and 96 have columns for the number of times, the number of observables, and the number of C elements. In each column, the same kind of information as the column with the same name in the parameter transition tables 93 and 94 is set. The values in each column of the parameter transition table 95 are the same as those of the parameter transition table 93 shown in FIG.
  • the number of observables to be processed exceeds the number of bits (the number of bits is insufficient) from the 1st to the 77th generation of the finally determined clique C.
  • the second-stage clique generation is not performed, and the clique generated in the first-stage clique generation process becomes the result of partitioning.
  • the number of cliques obtained as a result of partitioning by one-stage clique generation is 137, and the number of clique generation processes is also 137 times.
  • a small number of cliques means a large number of observables belonging to each clique. That is, by performing clique generation in two stages, it is possible to generate cliques containing a greater number of observables.
  • FIG. 24 is a diagram (part 3) showing an example of the result of partitioning.
  • a parameter transition table 97 shows changes in the values of various parameters when partitioning is performed by the annealing computer 200 having 1024 bits.
  • a parameter transition table 98 shows changes in the values of various parameters when partitioning is performed by the annealing computer 200 with 8192 bits.
  • the parameter transition tables 97 and 98 have columns for the number of times, the number of observables, the number of elements of C', and the number of elements of C. In each column, the same kind of information as the column with the same name in the parameter transition tables 93 and 94 is set.
  • the number of bits of the annealing type computer 200 is 1024, the number of observables to be processed exceeds the number of bits (insufficient number of bits) from the 1st to 203rd generation times of the finally determined clique C. After the 203rd generated number of cliques C finally determined, the number of observables is equal to or less than the number of bits (the number of bits is sufficient).
  • the number of bits of the annealing type computer 200 is 1024, the number of cliques (the number of cliques C) obtained as a result of partitioning is 268, and the number of times of clique generation processing (the number of generations of clique C and clique C') is 471.
  • the number of bits of the annealing type computer 200 is 1024
  • the number of elements of C' when the number of bits is insufficient is 30 to 40
  • the number of elements of C is 120. Then, by performing the clique generation process of the second stage, a clique containing about three to four times as many elements as the clique generated in the first stage is generated.
  • the number of bits of the annealing type computer 200 is 8192, the number of observables to be processed exceeds the number of bits (insufficient number of bits) from the first to the 75th generation of clique C finally determined. After the 76th generation of clique C finally determined, the number of observables is less than or equal to the number of bits (the number of bits is sufficient).
  • the number of bits of the annealing type computer 200 is 8192, the number of cliques obtained as a result of partitioning (the number of cliques C) is 261, and the number of clique generation processes (the number of times cliques C and cliques C' are generated) is 328.
  • the number of bits of the annealing type computer 200 is 8192
  • the number of elements of C' when the number of bits is insufficient is 90 to 120
  • the number of elements of C is 80 to 120. That is, the effect of increasing the number of elements included in the clique by performing the second-stage clique generation process is limited.
  • one clique is determined by two stages of clique generation processing, but three or more stages of clique generation processing may be repeated.
  • FIG. 25 is a flowchart showing an example of a partitioning process procedure for determining one clique in three or more stages of clique generation process.
  • steps S301-S305, S307-S310, and S313-S315 are the same as steps S121-S132 of the flow chart shown in FIG.
  • steps S306, S311, and S312 different from the flowchart of FIG. 18 will be described with reference to the step numbers.
  • Step S312 The partitioning unit 120 adds 1 to the loop variable r (r ⁇ r+1). The partitioning unit 120 also substitutes the clique C k generated in step S310 for the undetermined clique C k ′ (C k ′ ⁇ C k ). The partitioning unit 120 then advances the process to step S307.
  • the clique C generated by the last clique generating process is adopted as the result of partitioning. Repeatedly performing the clique generation process increases the chances of generating cliques containing more elements. As a result, the number of cliques generated by partitioning can be 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)
  • Testing Or Measuring Of Semiconductors Or The Like (AREA)

Abstract

パーティショニングの高速化が可能なオブザーバブル数の制限を緩和することを目的とする。 情報処理装置(10)は、期待値の同時測定が可能なより多くのオブザーバブルを含む、複数のオブザーバブルの第1群(3)内のオブザーバブルの組み合わせを、アニーリング型コンピュータ(1)に計算させ、該組み合わせを示す第1のクリーク(4)を生成する。情報処理装置(10)は、第1のクリーク(4)内のオブザーバブルと期待値の同時測定が可能な、第1のクリーク(4)に含まれないオブザーバブルの第2群(5)を生成する。情報処理装置(10)は、期待値の同時測定が可能なより多くのオブザーバブルを含む、第1のクリーク(4)と第2群(5)との和集合(7)内のオブザーバブルの組み合わせを、アニーリング型コンピュータ(1)に計算させ、該組み合わせを示す第2のクリーク(6)を生成する。

Description

複数量子ビットオブザーバブルのパーティショニングプログラム、複数量子ビットオブザーバブルのパーティショニング方法、および情報処理装置
 本発明は、複数量子ビットオブザーバブルのパーティショニングプログラム、複数量子ビットオブザーバブルのパーティショニング方法、および情報処理装置に関する。
 量子コンピュータでは、量子ビットと呼ばれる電子情報が用いられる。量子ビットは、「0」と「1」の重ね合わせ状態をとることができる。また複数の量子ビットで量子もつれ状態を作ることもできる。量子コンピュータは、これらの重ね合わせ状態と量子もつれ状態を利用して、あらゆる可能性を同時並行的に計算することで、複雑な問題の解を短時間で求めることができる。
 量子コンピュータを用いれば、古典コンピュータに比べて非常に高速に解ける問題が存在する。なお量子コンピュータで問題を解くためのアルゴリズムを量子アルゴリズムと呼び、古典コンピュータで問題を解くためのアルゴリズムを古典アルゴリズムと呼ぶ。例えば古典アルゴリズムでは解を求めるのにMM回程度のステップ(指数時間)の計算となるのに対し、量子アルゴリズムではM2回程度のステップ(多項式時間)の計算ですむ問題が存在する(Mは問題の大きさを示す自然数)。量子コンピュータにより短時間で計算が可能となる問題として、例えばDeutsch-Jozsaのアルゴリズム、Shorのアルゴリズムなどがある。
 量子コンピュータにおいて量子ビットから読み出すことができるのは、ブロッホ球におけるz軸方向の値である。しかも量子ビットからは「0」または「1」の読み出ししか行えない。例えば、量子状態1/√2(|0>+|1>)を測定すると、「0」と「1」とが各50%の確率で現れる。これは、測定により量子ビットの重ね合わせ状態が破壊され、古典ビットになるためである。
 量子状態を完全に知るには、ブロッホ球のz軸だけでなく、x軸とy軸との値についても読み出すことが求められる。x軸またはy軸の値は、それらの値をz軸に変換する操作を測定前に行い、変換操作後の値を読み出すことで測定可能である。なお、量子ビットの測定を行うと量子ビットの重ね合わせ状態が破壊される。そのため、量子状態を完全に知るには、x軸、y軸、z軸それぞれの測定のための量子計算を繰り返し実行することとなる。
 1または複数の量子ビットの状態は複数のオブザーバブルを用いて表される。n量子ビットの状態を完全に知るには、4n-1個のオブザーバブルの期待値を測定すればよい(nは自然数)。オブザーバブルごとの期待値を求めることで、量子ビットの状態を完全に知ることができる。オブザーバブルごとの期待値を求める場合、基本的には、オブザーバブルにつき一つの量子回路が作成される。量子コンピュータでは、統計エラーを抑えるため、1オブザーバブルにつき104-105回の測定が行われる。
 量子コンピュータに関する技術としては、例えば量子コンピューティングを可能にする量子回路を設計するための、エンタングル測定を用いたパウリ文字列のグループ化に関する技術が提案されている。また、組合せ最適化問題を複数の部分問題に分割して計算する際の計算量の増加を抑制する技術も提案されている。
 さらに、オブザーバブルを同時測定が可能な組に分割(パーティショニング)することで量子状態測定を高速化する手法において、パーティショニングを高速化する技術も提案されている。
特開2020-144400号公報 特開2020-004387号公報
栗田知周、森田幹雄、大島弘敬、佐藤信太郎、「デジタルアニーラを用いた量子状態測定の高速化の取り組み」、量子ソフトウェア、情報処理学会、2021-06-24、2021-QS-3、15、pp.1-7
 複数のオブザーバブルの期待値の同時測定では、パーティショニングによって、同時測定可能なオブザーバブルの集合(クリーク)が生成される。各オブザーバブルはいずれかのクリークに含まれる。同一のクリークに含まれる所定数のオブザーバブルごとに、量子コンピュータによる期待値の同時測定が行われる。この場合、クリーク数が少ないほど量子ビットの状態の測定が効率的となる。測定対象のオブザーバブル数が多くなると、より多くのオブザーバブルを含むクリークを生成するための計算量が膨大となる。そこでイジングモデルの基底状態を計算するアニーリング型コンピュータを用いてパーティショニングを行うことで、パーティショニングの高速化が図られる。
 しかし、従来技術では、オブザーバブル数がアニーリング型コンピュータで利用可能なビット数を超えてしまった場合、アニーリング型コンピュータによるパーティショニングを行うことができない。その結果、パーティショニングの高速化が困難となっている。
 1つの側面では、本件は、パーティショニングの高速化が可能なオブザーバブル数の制限を緩和することを目的とする。
 1つの案では、コンピュータに以下の処理を実行させる複数量子ビットオブザーバブルのパーティショニングプログラムが提供される。
 コンピュータは、測定対象の複数のオブザーバブルの第1群内のオブザーバブルの組み合わせであり、組み合わせに含まれる任意の2つのオブザーバブルについて期待値の同時測定が可能であるという条件を満たす、より多くのオブザーバブルを含む組み合わせを探索する第1の組み合わせ最適化問題の解を、アニーリング型コンピュータに計算させる。次にコンピュータは、第1の組み合わせ最適化問題の解に示されるオブザーバブルの組み合わせを示す第1のクリークを生成する。次にコンピュータは、第1のクリークに含まれないオブザーバブルそれぞれについての、期待値の同時測定が可能な第1のクリーク内のオブザーバブルの数に基づいて、第1のクリークに含まれない所定数のオブザーバブルの第2群を生成する。次にコンピュータは、第1のクリークと第2群との和集合内のオブザーバブルの組み合わせであり、組み合わせに含まれる任意の2つのオブザーバブルについて期待値の同時測定が可能であるという条件を満たす、より多くのオブザーバブルを含む組み合わせを探索する第2の組み合わせ最適化問題の解を、アニーリング型コンピュータに計算させる。そしてコンピュータは、第2の組み合わせ最適化問題の解に示されるオブザーバブルの組み合わせを示す第2のクリークを生成する。
 1態様によれば、パーティショニングの高速化が可能なオブザーバブル数の制限を緩和することができる。
 本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
第1の実施の形態に係る複数量子ビットオブザーバブルのパーティショニング方法の一例を示す図である。 システム構成の一例を示す図である。 古典コンピュータのハードウェアの一例を示す図である。 オブザーバブルの同時測定方法を説明する図である。 交換関係の判定例を示す図である。 パーティショニングの一例を示す図である。 パーティショニングの例を示す図である。 古典コンピュータの機能の一例を示すブロック図である。 交換関係判定部が行う処理の一例を示す図である。 クリーク生成処理の一例を示す図である。 クリーク生成の繰り返し処理の一例を示す図である。 同時測定用の量子回路を用いたオブザーバブルの期待値測定の一例を示す図である。 パーティショニングの方式ごとのクリーク数の比較結果を示す図である。 パーティショニングの方式ごとの計算時間の比較結果を示す図である。 1つのクリークの生成に当たり複数回のクリーク生成処理を行うパーティショニング手法の一例を示す図(その1)である。 1つのクリークの生成に当たり複数回のクリーク生成処理を行うパーティショニング手法の一例を示す図(その2)である。 オブザーバブル測定手順の一例を示すフローチャートである。 パーティショニングの処理の手順の一例を示すフローチャートである。 クリーク生成処理の手順の一例を示すフローチャート(1/2)である。 クリーク生成処理の手順の一例を示すフローチャート(2/2)である。 パーティショニングの結果の一例を示す図(その1)である。 パーティショニングの比較例を示す図である。 パーティショニングの結果の一例を示す図(その2)である。 パーティショニングの結果の一例を示す図(その3)である。 3段階以上のクリーク生成処理で1つのクリークを確定するパーティショニング処理の手順の一例を示すフローチャートである。
 以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
 〔第1の実施の形態〕
 まず第1の実施の形態について説明する。第1の実施の形態は、アニーリング型コンピュータを利用してクリークを生成する場合のオブザーバブル数の制限を緩和する複数量子ビットオブザーバブルのパーティショニング方法である。
 図1は、第1の実施の形態に係る複数量子ビットオブザーバブルのパーティショニング方法の一例を示す図である。図1には、複数量子ビットオブザーバブルのパーティショニング方法の処理を情報処理装置10により実施した場合の例を示している。情報処理装置10は、例えば複数量子ビットオブザーバブルのパーティショニングプログラムを実行することにより、複数量子ビットオブザーバブルのパーティショニング方法を実施することができる。
 情報処理装置10は、記憶部11と処理部12とを有する。記憶部11は、例えば情報処理装置10が有するメモリまたはストレージ装置である。処理部12は、例えば情報処理装置10が有するプロセッサまたは演算回路である。
 情報処理装置10は、量子ビットの状態を表す複数のオブザーバブルのパーティショニングを行う。情報処理装置10はアニーリング型コンピュータ1に接続されており、パーティショニングの際にはアニーリング型コンピュータ1を利用してクリークに含めるオブザーバブルを決定する。
 なおアニーリング型コンピュータ1は、クリーク生成処理を行う際、処理対象のオブザーバブルのそれぞれに計算用のビットを割り当てる。各ビットの値が、対応するオブザーバブルをクリークに含めるか否かを表す。そのためクリーク生成処理を行うためには、処理対象のオブザーバブルの集合に含まれるオブザーバブル数が、アニーリング型コンピュータ1が計算に使用するビット数以下であることが求められる。
 記憶部11は、オブザーバブル群2を記憶する。オブザーバブル群2には、複数の量子ビットの状態を表す複数のオブザーバブルのうちの、測定対象の複数のオブザーバブルが含まれる。図1の例では、オブザーバブル群2内の丸印が測定対象のオブザーバブルを表している。測定対象とするオブザーバブルは、量子コンピュータを用いて求解する問題に応じて決定される。例えばn量子ビットの状態を完全に知りたい場合には、4n-1個のオブザーバブルがオブザーバブル群2に含まれる。
 処理部12は、オブザーバブル群2を複数のクリークに分割するパーティショニングを行う。処理部12は、クリークを1つずつ生成する。処理部12は、1つのクリークを生成するために、2段階以上のクリーク生成処理を実行する。
 例えば処理部12は、測定対象の複数のオブザーバブルの部分集合である第1群3を生成する。第1群3は、例えばオブザーバブル群2から任意に選択されたオブザーバブルを含む。例えば処理部12は、アニーリング型コンピュータ1で計算に使用可能なビットの数と同数のオブザーバブルをオブザーバブル群2から選択し、選択したオブザーバブルを第1群3に含める。
 処理部12は、第1群3内のオブザーバブルの組み合わせであり、所定の条件を満たす、より多くのオブザーバブルを含む組み合わせを探索する第1の組み合わせ最適化問題の解を、アニーリング型コンピュータ1に計算させる。所定の条件は、組み合わせに含まれる任意の2つのオブザーバブルについて期待値の同時測定が可能であるという条件である。2つのオブザーバブルA,Bの期待値の同時測定が可能か否かは、それらのオブザーバブルが可換(AB=BA)か否かによって判断できる。可換であれば、期待値の同時測定が可能である。
 例えば処理部12は、アニーリング型コンピュータ1が計算に使用するビット数と同数のオブザーバブルを含む第1群3を生成し、生成した第1群3に応じた第1の組み合わせ最適化問題の解の探索をアニーリング型コンピュータ1に指示する。そして処理部12は、アニーリング型コンピュータ1から第1の組み合わせ最適化問題の解を取得する。処理部12は、第1の組み合わせ最適化問題の解に示されるオブザーバブルの組み合わせを示す第1のクリーク4を生成する。
 次に処理部12は、第1のクリーク4に含まれないオブザーバブルそれぞれについての、期待値の同時測定が可能な第1のクリーク4内のオブザーバブルの数に基づいて、第2群5を生成する。第2群5は、第1のクリーク4に含まれない所定数のオブザーバブルの集合である。
 例えば処理部12は、第1のクリーク4に含まれないオブザーバブルそれぞれについて、期待値の同時測定が可能な第1のクリーク4内のオブザーバブルの数を示す可換オブザーバブル数を計数する。そして処理部12は、第1のクリーク4に含まれないオブザーバブルのうちの、可換オブザーバブル数が多い方から所定数のオブザーバブルを含む第2群5を生成する。
 このとき処理部12は、第1のクリーク4と第2群5との和集合7に含まれるオブザーバブル数が、アニーリング型コンピュータ1が計算に使用するビット数以下となるように、第2群5を生成する。例えば処理部12は、アニーリング型コンピュータ1が計算に使用するビット数と第1のクリーク4に含まれているオブザーバブル数との差分と同数のオブザーバブルを含む第2群5を生成する。
 次に処理部12は、第1のクリーク4と第2群5との和集合7を生成する。そして処理部12は、生成した和集合7内のオブザーバブルの組み合わせであり、所定の条件を満たす、より多くのオブザーバブルを含む組み合わせを探索する第2の組み合わせ最適化問題の解を、アニーリング型コンピュータ1に計算させる。所定の条件は、組み合わせに含まれる任意の2つのオブザーバブルについて期待値の同時測定が可能であるという条件である。例えば処理部12は、生成した第2群5に応じた第2の組み合わせ最適化問題の解の探索をアニーリング型コンピュータ1に指示し、アニーリング型コンピュータ1から第2の組み合わせ最適化問題の解を取得する。
 そして処理部12は、第2の組み合わせ最適化問題の解に示されるオブザーバブルの組み合わせを示す第2のクリーク6を生成する。例えば第2のクリーク6が、オブザーバブル群2に対するパーティショニングで生成される1つのクリーク(確定クリーク)に決定される。
 また処理部12は、すべてのオブザーバブルがいずれかの確定クリークに含まれるまで、上記の第1のクリーク4および第2のクリーク6の生成処理を何度も繰り返す。例えば処理部12は、第2のクリーク6を生成後、オブザーバブル群2内の処理対象のオブザーバブルを、第2のクリーク6に含まれない残存のオブザーバブルに限定する。そして処理部12は、残存のオブザーバブルの集合を用いて、第1の組み合わせ最適化問題の解の計算指示、第1のクリーク4の生成、第2群5の生成、第2の組み合わせ最適化問題の解の計算指示、および第2のクリーク6の生成を行う。これにより、2つめの第2のクリーク6(確定クリーク)が生成できる。処理部12は、すべてのオブザーバブルがいずれかの確定クリークに含まれるまで、このような第2のクリーク生成処理を繰り返す。その結果、オブザーバブル群2のパーティショニングが完了する。
 このように2段階のクリーク生成処理を経て1つのクリークを確定することで、個々のクリーク生成処理の対象となるオブザーバブル数を、アニーリング型コンピュータ1のビット数以下にすることができる。オブザーバブルがアニーリング型コンピュータ1のビット数以下であれば、アニーリング型コンピュータ1を用いて組合せ最適化問題の解の探索をすることで、クリーク生成処理を高速に行うことができる。すなわち2段階のクリーク生成処理を経て1つのクリークを確定することで、パーティショニングの高速化が可能なオブザーバブル数の制限が緩和される。
 しかも第2群5は、第1のクリーク4内の多くのオブザーバブルとの間で期待値の同時測定が可能な、第1のクリーク4に含まれないオブザーバブルの集合である。これにより、第1のクリーク4と第2群5との和集合7を処理対象として第2のクリーク6を生成することで、第1のクリーク4よりさらにオブザーバブル数の多い第2のクリーク6となることが期待できる。その結果、オブザーバブル群2内のオブザーバブル数よりも少ないビット数で計算を行うアニーリング型コンピュータ1を用いてクリーク生成処理を行っても、オブザーバブル群2全体を考慮したより大きなクリークの生成が可能となる。1つのクリークに含まれるオブザーバブル数が多くなれば、パーティショニングによって生成されるクリーク数は減少する。
 クリーク数が減少すれば、ゲート型量子コンピュータを用いてオブザーバブルの期待値を測定する際に他のオブザーバブルと同時測定できるオブザーバブルの割合が高くなり、測定の効率が向上する。例えば処理部12は、生成したクリークのうちの同一のクリークから所定数のオブザーバブルを選択する。処理部12は、選択したオブザーバブルの期待値を同時測定する量子回路を生成する。そして処理部12は、ゲート型量子コンピュータに、生成した量子回路に基づく対象オブザーバブルの期待値の同時測定を指示する。
 なお処理部12は、アニーリング型コンピュータ1に組合せ最適化問題の解探索を実行させるために、クリーク生成処理に対応したイジングモデルを生成することができる。例えば処理部12は、第1の組み合わせ最適化問題の解をアニーリング型コンピュータ1に計算させる際には、第1群3に応じた第1のイジングモデルを生成する。第1のイジングモデルは、第1群3に属するオブザーバブルそれぞれを第1のクリーク4に含めるか否かを示す変数を含む。また第1のイジングモデルは、期待値を同時測定できないオブザーバブルの対が第1のクリーク4に含まれるとハミルトニアンの値が大きくなり、第1のクリーク4に含めるオブザーバブル数が多いほどハミルトニアンの値が小さくなる。処理部12は、第1のイジングモデルの基底状態をアニーリング型コンピュータ1に探索させ、探索結果をアニーリング型コンピュータ1から取得する。これにより、アニーリング型コンピュータ1から第1の組み合わせ最適化問題の解を取得することができる。
 また処理部12は、例えば第2の組み合わせ最適化問題の解をアニーリング型コンピュータ1に計算させる際には、第1のクリーク4と第2群5の和集合7に応じた第2のイジングモデルを生成する。第2のイジングモデルは、和集合7に属するオブザーバブルそれぞれを第2のクリーク6に含めるか否かを示す変数を含む。また第2のイジングモデルは、期待値を同時測定できないオブザーバブルの対が第2のクリーク6に含まれるとハミルトニアンの値が大きくなり、第2のクリーク6に含めるオブザーバブル数が多いほどハミルトニアンの値が小さくなる。処理部12は、第2のイジングモデルの基底状態をアニーリング型コンピュータ1に探索させ、探索結果をアニーリング型コンピュータ1から取得する。これにより、アニーリング型コンピュータ1から第2の組み合わせ最適化問題の解を取得することができる。
 このようにイジングモデルの基底状態の探索にアニーリング型コンピュータ1を利用することで、少ないクリーク数となるようなパーティショニングを短時間で実行することが可能である。
 また処理部12は、3段階以上のクリーク生成処理を経て1つの確定クリークを確定させることもできる。例えば処理部12は、第2のクリーク6に含まれないオブザーバブルそれぞれについての、期待値の同時測定が可能な第2のクリーク6内のオブザーバブルの数に基づいて第3群を生成する。第3群は、第2のクリーク6に含まれない所定数のオブザーバブルの集合である。処理部12は、第2のクリーク6と第3群との和集合内のオブザーバブルの組み合わせであり、所定の条件を満たす、より多くのオブザーバブルを含む組み合わせを探索する第3の組み合わせ最適化問題の解を、アニーリング型コンピュータ1に計算させる。所定の条件は、組み合わせに含まれる任意の2つのオブザーバブルについて期待値の同時測定が可能であるという条件である。処理部12は、第3の組み合わせ最適化問題の解に示されるオブザーバブルの組み合わせを示す第3のクリークを生成する。
 処理部12は、例えば第3のクリークを、パーティショニングにより生成する確定クリークとすることができる。また処理部12は、同様にクリーク生成処理を所定回数繰り返し、最後に生成されたクリークをパーティショニングにより生成する確定クリークとしてもよい。このように1つの確定クリークを得るまでに3回以上のクリーク生成処理を繰り返すことで、より多くのオブザーバブルを含む確定クリークを生成することができる。
 〔第2の実施の形態〕
 次に第2の実施の形態について説明する。第2の実施の形態は、量子ビットの完全な状態の測定を効率的に行うコンピュータシステムである。
 図2は、システム構成の一例を示す図である。古典コンピュータ100は、アニーリング型コンピュータ200とゲート型量子コンピュータ300とに接続されている。古典コンピュータ100は、例えばノイマン型コンピュータである。アニーリング型コンピュータ200は、イジングモデルの基底状態を計算するための非ノイマン型コンピュータである。アニーリング型コンピュータ200は、超伝導量子回路を用いたものと、量子現象を半導体回路で再現したものとのいずれであってもよい。ゲート型量子コンピュータ300は、量子ゲートを操作して汎用的な問題を解くことができる非ノイマン型のコンピュータである。
 古典コンピュータ100は、アニーリング型コンピュータ200とゲート型量子コンピュータ300とを制御して量子計算を行う。その際、古典コンピュータ100は、計算対象の問題の複数のオブザーバブルを複数のクリークのいずれかに分類する。クリークへの分類処理をパーティショニングと呼ぶ。例えば古典コンピュータ100は、同時測定可能なオブザーバブルの組の情報からクリークを生成するためのイジングモデルを生成し、そのイジングモデルの基底状態をアニーリング型コンピュータ200に計算させる。そして古典コンピュータ100は、ゲート型量子コンピュータ300を制御して、同じクリークに含まれる2以上のオブザーバブルの期待値を同時に測定する。
 図3は、古典コンピュータのハードウェアの一例を示す図である。古典コンピュータ100は、プロセッサ101によって装置全体が制御されている。プロセッサ101には、バス109を介してメモリ102と複数の周辺機器が接続されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、またはDSP(Digital Signal Processor)である。プロセッサ101がプログラムを実行することで実現する機能の少なくとも一部を、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現してもよい。
 メモリ102は、古典コンピュータ100の主記憶装置として使用される。メモリ102には、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ102には、プロセッサ101による処理に利用する各種データが格納される。メモリ102としては、例えばRAM(Random Access Memory)などの揮発性の半導体記憶装置が使用される。
 バス109に接続されている周辺機器としては、ストレージ装置103、GPU(Graphics Processing Unit)104、入力インタフェース105、光学ドライブ装置106、機器接続インタフェース107およびネットワークインタフェース108がある。
 ストレージ装置103は、内蔵した記録媒体に対して、電気的または磁気的にデータの書き込みおよび読み出しを行う。ストレージ装置103は、コンピュータの補助記憶装置として使用される。ストレージ装置103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、ストレージ装置103としては、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)を使用することができる。
 GPU104は画像処理を行う演算装置であり、グラフィックコントローラとも呼ばれる。GPU104には、モニタ21が接続されている。GPU104は、プロセッサ101からの命令に従って、画像をモニタ21の画面に表示させる。モニタ21としては、有機EL(Electro Luminescence)を用いた表示装置や液晶表示装置などがある。
 入力インタフェース105には、キーボード22とマウス23とが接続されている。入力インタフェース105は、キーボード22やマウス23から送られてくる信号をプロセッサ101に送信する。なお、マウス23は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
 光学ドライブ装置106は、レーザ光などを利用して、光ディスク24に記録されたデータの読み取り、または光ディスク24へのデータの書き込みを行う。光ディスク24は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク24には、DVD(Digital Versatile Disc)、DVD-RAM、CD-ROM(Compact Disc Read Only Memory)、CD-R(Recordable)/RW(ReWritable)などがある。
 機器接続インタフェース107は、古典コンピュータ100に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース107には、メモリ装置25やメモリリーダライタ26を接続することができる。メモリ装置25は、機器接続インタフェース107との通信機能を搭載した記録媒体である。メモリリーダライタ26は、メモリカード27へのデータの書き込み、またはメモリカード27からのデータの読み出しを行う装置である。メモリカード27は、カード型の記録媒体である。
 ネットワークインタフェース108は、ネットワーク20に接続されている。ネットワークインタフェース108は、ネットワーク20を介して、アニーリング型コンピュータ200またはゲート型量子コンピュータ300との間でデータの送受信を行う。ネットワークインタフェース108は、例えばスイッチやルータなどの有線通信装置にケーブルで接続される有線通信インタフェースである。またネットワークインタフェース108は、基地局やアクセスポイントなどの無線通信装置に電波によって通信接続される無線通信インタフェースであってもよい。
 古典コンピュータ100は、以上のようなハードウェアによって、第2の実施の形態の処理機能を実現することができる。なお、第1の実施の形態に示した情報処理装置10も、図3に示した古典コンピュータ100と同様のハードウェアにより実現することができる。
 古典コンピュータ100は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。古典コンピュータ100に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、古典コンピュータ100に実行させるプログラムをストレージ装置103に格納しておくことができる。プロセッサ101は、ストレージ装置103内のプログラムの少なくとも一部をメモリ102にロードし、プログラムを実行する。また古典コンピュータ100に実行させるプログラムを、光ディスク24、メモリ装置25、メモリカード27などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ101からの制御により、ストレージ装置103にインストールされた後、実行可能となる。またプロセッサ101が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
 次にオブザーバブルの同時測定方法について具体的に説明する。量子ビットの重ね合わせや量子もつれ(エンタングル)、さらに確率的混合を考慮に入れると、量子状態は、密度演算子ρを用いて表すことができる。ρは2n×2nの行列として表すことができる(nは量子ビット数)。密度演算子ρは、複数のオブザーバブルを用いて表すことができる(3量子ビットの場合、64個)。各オブザーバブルは、量子状態を示すρを構成する線形独立基底となる。すなわち、3量子ビットの場合のρは、以下の式で表される。
ρ=λ0012+λ1012+λ2012+λ3012+λ4012+λ5012+・・・+λ62012+λ63012
 λ0,・・・,λ63は実数の係数である。添字付きのX,Y,Zはパウリ演算子であり、2×2のパウリ行列(σx,σy,σz)である。添字の数値は、測定対象の量子ビットの番号である。添字付きのIは恒等演算子であり、2×2の単位行列である。恒等演算子もパウリ演算子の一種である。
 オブザーバブルは、パウリ演算子の配列で表される。このパウリ演算子の配列はパウリ文字列と呼ばれる。パウリ文字列は、そのパウリ文字列で表されているパウリ演算子のテンソル積を示している。k(自然数)番目の項のオブザーバブルの期待値がλkである。例えばX012の期待値はλ5である。
 λ0は常に1になるので期待値を測定せずに済む。その結果、前述のように、n量子ビットの状態を完全に知るために測定するオブザーバブルの数は、4n-1個となる。例えばn=1の場合、3個:{X,Y,Z}のオブザーバブルの測定により、量子ビットの状態を完全に知ることができる。n=2の場合、期待値を測定するオブザーバブルは15個:{I01,I01,I01,X01,X01,X01,X01,Y01,Y01,Y01,Y01,・・・}となる。
 多数のオブザーバブルの期待値の測定において、測定前のゲート操作により、複数のオブザーバブルを同時に測定可能となる場合がある。
 図4は、オブザーバブルの同時測定方法を説明する図である。図4の例では、3量子ビットの量子状態|ψ>を求める場合を想定している。解くべき問題に対応する量子回路30の3つのオブザーバブル「I012、Z012、X012」を測定するものとする。量子回路30の横線が、量子ビットに対応する。
 個別測定を行う場合、3つのオブザーバブルそれぞれに対応する量子回路31~33が生成される。量子回路31~33の横線上に示された矩形の記号が、各量子ビットへ作用させる量子ゲートである。「S」の矩形はSゲートを示している。「X」の矩形は、Xゲートを示している。「H」の矩形は、Hゲート(アダマールゲート)を示している。各量子ビットの測定記号が示されている位置において、該当量子ビットの状態が測定される。
 例えば量子回路31では、オブザーバブル「I012」の期待値を計算するために、3つの量子ビットを用いて「I0」、「Y1」、「X2」の期待値を測定する。0番目の量子ビットに対応する「I0」は恒等演算子であり、期待値の測定は不要である。1番目の量子ビットに対しては、Sゲート、Hゲート、Xゲートの操作を行う。これにより1番目の量子ビットからY1の期待値を測定することができる。2番目の量子ビットに対しては、Hゲートの操作を行う。これにより2番目の量子ビットからX2の期待値を測定することができる。これらの測定結果に基づいて、オブザーバブル「I012」の期待値を得ることができる。
 量子回路32では、オブザーバブル「X012」の期待値を計算するために、3つの量子ビットを用いて「X0」、「I1」、「X2」の期待値を測定する。1番目の量子ビットに対応する「I1」は恒等演算子であり、測定は不要である。0番目の量子ビットに対しては、Hゲートの操作を行う。これにより0番目の量子ビットからX0の期待値を測定することができる。2番目の量子ビットに対しては、Hゲートの操作を行う。これにより2番目の量子ビットからX2の期待値を測定することができる。これらの測定結果に基づいて、オブザーバブル「X012」の期待値を得ることができる。
 量子回路33では、オブザーバブル「Z012」の期待値を計算するために、3つの量子ビットを用いて「Z0」、「Z1」、「Z2」の期待値を測定する。量子回路33では、元の量子回路30の出力側での量子ゲートによる操作は行われず、0番目~2番目の各量子ビットを測定することで、「Z0」、「Z1」、「Z2」の期待値を測定することができる。これらの測定結果に基づいてオブザーバブル「Z012」の期待値を得ることができる。
 量子回路31~33では、3つの量子ビットの測定結果に基づいて、1つのオブザーバブルの期待値を得る。そのため、3つのオブザーバブルの期待値を得るには、3つの量子回路31~33により、各量子ビットの状態を測定することとなる。
 同時測定用の量子回路34では、量子回路30の出力側で、まず0番目の量子ビットにHゲートが設けられ、1番目の量子ビットを制御ビット、2番目の量子ビットを標的ビットとするCNOTゲートが設けられている。次に0番目の量子ビットと1番目の量子ビットとのSWAPゲートが設けられている。次に0番目の量子ビットにSゲートと、1番目の量子ビットを制御ビット、2番目の量子ビットを標的ビットとするCZゲートとが設けられている。最後に、各量子ビットにHゲートが設けられている。
 量子回路34の0番目の量子ビットを測定すると、オブザーバブル「I012」の期待値が得られる。量子回路34の1番目の量子ビットを測定すると、オブザーバブル「Z012」の期待値が得られる。量子回路34の2番目の量子ビットを測定すると、オブザーバブル「X012」の期待値が得られる。
 量子回路34では、1つの量子ビットから1つのオブザーバブルの期待値を測定することができ、3つのオブザーバブルの期待値の同時測定が可能である。このように、量子回路31~33を用いて個別測定する3つのオブザーバブルは、1つの量子回路34で同時測定が可能となる。
 同時測定可能なオブザーバブルには条件がある。すなわちオブザーバブルA,Bにおいて、「AB=BA」(可換)である場合に、2つのオブザーバブルA,Bは同時測定可能である。例えば2つのオブザーバブルが可換かどうかを判定する場合、同じ量子ビットに対応する演算子同士で可換か反可換か(交換関係)の判定が行われる。
 図5は、交換関係の判定例を示す図である。可換・反可換対応表35には、演算子の組み合わせごとに可換か反可換かが示されている。行と列との交差する位置に、行に示される演算子と列に示される演算子とが可換か反可換かを示す記号が示されている。「+」の記号は可換を示し、「-」の記号は反可換を示す。可換の場合、積の順番を入れ替えても値が変わらないが、反可換の場合、積の順番を入れ替えると符号が逆になる。
 例えばI012とZ012の場合、I0とZ0、Y1とZ1、X2とZ2の各組について、可換か反可換かが判断される。この場合、「I0=Z0」(可換)、「Y1=-Z1」(反可換)、「X2=-Z2」(反可換)である。反可換の組の数が偶数(0を含む)であれば、全体として可換「(I012)=(Z012)」となる。
 オブザーバブルのパーティショニングでは、同じクリークに属するオブザーバブル間のすべての組み合わせにおいて可換となるようにクリークが生成される。
 図6は、パーティショニングの一例を示す図である。例えば14個のオブザーバブル41~54について、他のオブザーバブルとの間の交換関係が判断される。図6の例では、可換の交換関係を有するオブザーバブルの組が線で接続されている。そしてオブザーバブル間の交換関係に基づいてクリーク61,62が生成される。クリーク61に属するオブザーバブルのすべての組み合わせにおいて交換関係は可換となる。同様にクリーク62に属するオブザーバブルのすべての組み合わせにおいて交換関係は可換となる。
 図6の例では2つのクリーク61,62が生成されているが、生成されるクリーク数は、パーティショニングのアルゴリズムによって変わってくる。
 図7は、パーティショニングの例を示す図である。オブザーバブル群71の各クリークを複数のクリークのいずれかに分類するとき、クリークの分け方は複数通り存在する。例えば3個のクリーク72a~72cに分けることができる。また6個のクリーク73a~73fに分けることも可能である。
 クリーク数が少ないほどオブザーバブルの測定を効率的に行うことができる。すなわちクリーク数が少ないということは、1つのクリークに属するオブザーバブルの数が多くなる。1つのクリークに属するオブザーバブルの数が多いほど、同時測定をするオブザーバブルの組み合わせを作りやすくなり、すべてのオブザーバブルを測定するための処理が効率的となる。
 そこで第2の実施の形態では、古典コンピュータ100において、より少ないクリーク数となるように、オブザーバブル群のパーティショニングを行う。この際、古典コンピュータ100は、アニーリング型コンピュータ200を利用することにより、短時間でのパーティショニングを実現する。
 図8は、古典コンピュータの機能の一例を示すブロック図である。古典コンピュータ100は、交換関係判定部110、パーティショニング部120、量子回路生成部130、および期待値取得部140を有する。
 交換関係判定部110は、測定するオブザーバブルのすべての組み合わせについて交換関係を判定する。
 パーティショニング部120は、オブザーバブル間の交換関係に基づいて、オブザーバブル群のパーティショニングを行う。パーティショニング部120は、例えばアニーリング型コンピュータ200を利用してパーティショニングを実施する。アニーリング型コンピュータ200を利用する場合、パーティショニング部120は、クリークに含まれるオブザーバブル数が多いほどエネルギーが低くなるようなイジングモデルを作成する。そしてパーティショニング部120は、作成したイジングモデルの基底状態の探索をアニーリング型コンピュータ200に指示する。するとアニーリング型コンピュータ200からは、クリークに属するオブザーバブルの情報が応答される。
 量子回路生成部130は、オブザーバブルを測定するための量子回路を生成する。例えば量子回路生成部130は、同時測定を行う所定数のオブザーバブルを同一のクリークから選択し、選択したオブザーバブルの組み合わせに対応する量子回路を生成する。
 期待値取得部140は、ゲート型量子コンピュータ300を制御して、生成された量子回路を用いてオブザーバブルを測定する。
 なお、図8に示した古典コンピュータ100内の各要素の機能は、例えば、その要素に対応するプログラムモジュールをコンピュータに実行させることで実現することができる。
 次に図9~図12を参照しオブザーバブルの期待値の測定手順について説明する。
 図9は、交換関係判定部が行う処理の一例を示す図である。交換関係判定部110は、測定するオブザーバブル群40の要素となるオブザーバブルを列挙する。オブザーバブルは、パウリ文字列(パウリ演算子のテンソル積)で表される。交換関係判定部110は、オブザーバブル群40から2つのオブザーバブルを選択するすべての対について、交換関係を判定する。交換関係判定部110は、可換と判定したオブザーバブルの対を関連付ける情報を記憶する。図9の例では、可換と判定されたオブザーバブルの対が線で接続されている。線で接続されていないオブザーバブル間の交換関係は反可換である。
 交換関係判定部110による交換関係の判定が終了すると、パーティショニング部120によるパーティショニングが行われる。パーティショニング部120は、例えば可能な限り多くのオブザーバブルを含むクリークの生成処理を繰り返す。
 図10は、クリーク生成処理の一例を示す図である。パーティショニング部120は、オブザーバブル群40における14個のオブザーバブルそれぞれに変数{χi}={χ1,・・・,χ14}を割り当てる。{χi}はバイナリ変数である。「χi=1」はクリークの要素になることを示す。「χi=0」はクリークの要素にならないことを示す。
 パーティショニング部120は、{χi}を用いてイジングモデル81を生成する。イジングモデル81は、以下の式で表される。
Figure JPOXMLDOC01-appb-M000001
 式(1)のf({χi})はハミルトニアンに相当する。右辺の第1項は、χi=1となるiの数が多いほど値が小さくなる。右辺の第2項における{cij}は、交換関係を表す非負の定数である。i番目のオブザーバブルとj番目のオブザーバブルが交換関係にある場合、cij=0である。i番目のオブザーバブルとj番目のオブザーバブルとが反交換関係にある場合、cij=m(mは正の実数)である。
 mの値が小さすぎるとクリークに反交換関係のオブザーバブルの対が含まれる可能性が上がる。mの下限は対象のオブザーバブル数によって変わる。例えばオブザーバブル数が10程度の場合は、mの下限は「0.25」程度となる。オブザーバブル数が「5000」程度であれば、mは「0.05」程度まで下げることができる。mの値を大きくすれば解探索において解の収束が早くなるが、mを大きくしすぎるとイジングモデル81の解探索において局所解から抜け出せなくなるおそれがある。そのため、計算精度を優先する場合、mの値は下限値に近い値にするのが適切である。
 これにより右辺の第2項は、クリークの要素に含まれる反交換関係のオブザーバブルの対が多いほど高い値となる。イジングモデル81の式(1)においてf({χi})が最小値を取るときには、右辺第2項がゼロであることが求められる。
 パーティショニング部120は、f({χi})が最小になる{χi}を、アニーリング型コンピュータ200に計算させる。式(1)は、f({χi})を最小にする{χi}の値の組み合わせを求める組み合わせ最適化問題であり、アニーリング型コンピュータ200を用いることで高速に計算することができる。
 なおパーティショニング部120は、イジングモデル81の解として得られたχi=1の組み合わせに反交換関係が含まれていた場合にはmの値を増加させて、アニーリング型コンピュータ200に再計算をさせてもよい。
 パーティショニング部120は、オブザーバブル群A0からクリークを1つ作成したら、作成したクリークを構成する部分群をB0とする。パーティショニング部120は、A0からB0の要素を取り除いたオブザーバブル群A1=A0\B0(\は差集合を示す)から、別のクリークを1つ作成し、生成したクリークを構成する部分群をB1とする。パーティショニング部120は、A1からB1の要素を取り除いたオブザーバブル群A2=A1\B1から、別のクリークを1つ作成し、クリークを構成する部分群をB2とする。パーティショニング部120は、このようにいずれのクリークにも含まれないオブザーバブルを要素とする部分群に対して、繰り返しクリーク作成処理を実行する。パーティショニング部120は、AnからBnの要素を取り除いたオブザーバブル群An+1=An\Bnがゼロ集合になると、パーティショニングを終了する。
 図11は、クリーク生成の繰り返し処理の一例を示す図である。最初に、オブザーバブル群40のすべてのオブザーバブルを要素として、イジングモデル81に基づいて、要素数が最大となるクリーク61をアニーリング型コンピュータ200に生成させる。アニーリング型コンピュータ200からは、例えばイジングモデル81のf({xi})を最小化する{χ1,・・・,χ14}が応答される。応答された{χ1,・・・,χ14}において値が1の要素に対応するオブザーバブルが、クリーク61に含まれるオブザーバブルである。
 パーティショニング部120は、クリーク61に含まれないオブザーバブルを要素とする部分群に基づくクリークの生成をアニーリング型コンピュータ200に指示する。アニーリング型コンピュータ200は、パーティショニング部120からの指示に従って、要素数が最大となるクリーク62を生成する。
 図11の例では、2つのクリーク61,62のいずれかにすべてのオブザーバブルが含まれているため、クリーク62を生成した後にパーティショニングは終了する。
 パーティショニングが終了すると、量子回路生成部130が、量子ビットの完全な状態を測定するための量子回路を生成する。そして期待値取得部140が、ゲート型量子コンピュータ300を制御して、生成された量子回路に基づくオブザーバブルの期待値を取得する。
 図12は、同時測定用の量子回路を用いたオブザーバブルの期待値測定の一例を示す図である。量子回路生成部130は、複数のクリーク82a,82b,・・・のうちの1つのクリークから同時測定をするオブザーバブルに対応する要素を抽出する。図12の例では、ゲート型量子コンピュータ300は、4量子ビットで同時測定を行うことができる。この場合、量子回路生成部130は、各クリークから4つずつの要素の組を抽出する。そして量子回路生成部130は、抽出した要素の組み合わせごとの量子回路を生成する。例えば、「YYXX,YXXY,XYYX,XXYY」を抽出した場合、量子回路83が生成される。
 生成される量子回路83は、求解対象の問題に応じた操作を行うユニタリゲート83aの出力側に、複数のオブザーバブルの同時測定のための操作を行う測定用量子回路83bを追加した構成となっている。測定用量子回路83bは、例えば測定対象のオブザーバブルの組み合わせに対応付けて量子回路生成部130に予め登録されている。すなわち量子回路生成部130は、オブザーバブルの組み合わせパターンに対応付けて、組み合わせパターンに示されるオブザーバブルの期待値を同時測定するための量子回路を記憶している。そして量子回路生成部130は、クリークから抽出した要素で示されるオブザーバブルの組み合わせに対応する量子回路を、予め登録された量子回路群の中から抽出する。量子回路生成部130は、求解対象の問題に対応するユニタリゲート83aの出力側に、オブザーバブルの組み合わせに対応する測定用量子回路83bを接続して、ゲート型量子コンピュータ300に入力する量子回路83を生成する。
 期待値取得部140は、オブザーバブルの組み合わせごとに生成された量子回路をゲート型量子コンピュータ300に送信する。ゲート型量子コンピュータ300は、受信した量子回路に従ってオブザーバブルの期待値を測定する。例えばゲート型量子コンピュータ300は、受信した量子回路を用いた各量子ビットの状態の測定を複数回繰り返す。そしてゲート型量子コンピュータ300は、各量子ビットの状態の複数回分の測定結果に基づいて、対応するオブザーバブルの期待値を算出する。
 ゲート型量子コンピュータ300は、入力された量子回路ごとの測定結果84a,84b,・・・を古典コンピュータ100に送信する。測定結果84a,84b,・・・には、対応する量子回路の各量子ビットの状態の期待値(該当量子ビットに対応するオブザーバブルの期待値)が示されている。期待値取得部140は、測定結果84a,84b,・・・に示される量子ビットの期待値を、計算に用いた量子回路の該当量子ビットに対応するオブザーバブルの期待値とする。すべてのオブザーバブルの期待値が得られることで、求解対象の問題に対応するユニタリゲート83aの出力の完全な状態(X軸、Y軸、Z軸の状態)を示す密度演算子ρが得られる。そして期待値取得部140は、密度演算子ρに基づいて得られる求解対象の問題の解を、計算結果として出力する。
 このようにして、いずれのクリークにも含まれていないオブザーバブルに基づいて、可能な限り多くのオブザーバブルを含むクリークが繰り返し生成される。その結果、生成されるクリーク数の削減が可能となる。しかもアニーリング型コンピュータ200を利用して高速にクリークを作成することができる。
 図13は、パーティショニングの方式ごとのクリーク数の比較結果を示す図である。図13のグラフ91は、パーティショニングの方式ごとのオブザーバブル数とクリーク数との関係を表している。グラフ91は、横軸がオブザーバブル数であり、縦軸がクリーク数である。
 「BronK QWC」、「BoppanaH QWC」、「BoppanaH GC」、および「OpenF QWC」は、イジングモデルを用いずにパーティショニングを行う計算方式である。「BronK」と「BoppanaH」とはそれぞれ、Bron-Kerboschアルゴリズム、Boppana-Halldorssonアルゴリズムの略称である。「OpenF」は、PYTHON(登録商標)のパッケージであるOpen Fermionを用いた方式の略称である。QWC(Qubit-Wise Commutation)は、オブザーバブルが可換であるために、要素の組の比較(例えば図5のI00、Y11、X22)においてすべてが可換であることを条件とするものである。GC(General Commutation)は、図5に示すように反可換の要素の組が偶数であれば、オブザーバブルは可換となるものである。なお「Naive」(iはトレマ記号付き)は、1つのオブザーバブルを1つのクリークとした場合(クリーク数が最大となる場合)のクリーク数を表す線である。
 「イジングモデル利用 GC(Full-tomography)」と「イジングモデル利用 GC(VQE-observable)」とは、第2の実施の形態に示すパーティショニング部120によるパーティショニング方式である。「イジングモデル利用 GC」における「Full-tomography」は、量子状態を完全に知るためのすべてのオブザーバブルの測定を行った場合の例である。「VQE-observable」は、変分量子固有値ソルバー(VQE:Variational Quantum Eigensolver)の計算に利用するオブザーバブルを対象としてパーティショニングを行った場合の例である。
 図13に示されるように、イジングモデルを利用しない方法では「BoppanaH GC」が最もクリーク数を少なくすることができる。それに対して、イジングモデルを利用した場合、同じオブザーバブル数で比較すると「BoppanaH GC」の半分程度のクリーク数にすることができる。
 図14は、パーティショニングの方式ごとの計算時間の比較結果を示す図である。図14のグラフ92は、パーティショニングの方式ごとのオブザーバブル数と計算時間との関係を表している。グラフ92は、横軸がオブザーバブル数であり、縦軸がパーティショニングに要した計算時間である。
 図14を参照すると、「BoppanaH GC」では、オブザーバブル数が5000程度の場合、パーティショニングに5000秒程度の時間を要している。すなわち「BoppanaH GC」では、200程度のクリークに分けるのに5000秒の時間を要する。それに対して、イジングモデルを利用したパーティショニングでは、アニーリング型コンピュータ200を用いてイジングモデルの基底状態を探索することで、計算時間が大幅(1/10以下)に短縮されている。
 このように、イジングモデルを利用したパーティショニングを行うことで、少ないクリークへのパーティショニングが可能であると共に、計算時間の短縮が可能となる。ただし、以上の説明は、オブザーバブル群から1つのクリークを生成する際におけるオブザーバブル群内のオブザーバブル数が、アニーリング型コンピュータ200で使用可能なビット数以下であることが前提となっている。オブザーバブル群内のオブザーバブル数が、アニーリング型コンピュータ200で使用可能なビット数を超える場合、すべてのオブザーバブルを対象としたイジングモデルの解探索をアニーリング型コンピュータ200で行うことは困難である。すなわちアニーリング型コンピュータ200では、1つのオブザーバブルを1つのビットに対応させるため、1回のクリーク生成処理において扱えるオブザーバブルの数は、アニーリング型コンピュータ200で使用可能なビット数が上限となる。
 そこで古典コンピュータ100では、アニーリング型コンピュータ200のビット数以上の規模のオブザーバブル群の場合、部分群からのクリーク生成処理を複数回実行するようにアニーリング型コンピュータ200を制御することで、1つのクリークを生成する。
 図15は、1つのクリークの生成に当たり複数回のクリーク生成処理を行うパーティショニング手法の一例を示す図(その1)である。図15の例では、アニーリング型コンピュータ200が計算に使用できるビット数N(Nは自然数)は「16」であるものとする。測定対象のすべてのオブザーバブルの数は、ビット数Nより多い。ここで測定対象のすべてのオブザーバブルの集合をオブザーバブル群Oとする。各オブザーバブルは、オブザーバブル群Oの要素である。
 古典コンピュータ100のパーティショニング部120は、オブザーバブル群OからN個の要素を抽出し、N個の要素を含む部分群O’を生成する。そしてパーティショニング部120は、アニーリング型コンピュータ200を用いて、部分群O’から要素数最大となるクリークC’を生成する処理(1段階目のクリーク生成)を行う。図15の例では、クリークC’に含まれる要素数c’(c’は自然数)は「6」である。
 次にパーティショニング部120は、クリークC’に含まれない要素{oi}(i=1,2,・・・)それぞれについて、その要素oiと可換の関係にあるクリークC’内の要素数ni(C’)を計数する。図15の例ではクリークC’に含まれる要素数c’が「6」であるため、要素{oi}の要素数ni(C’)は、「0~6」の範囲内の整数となる。
 図16は、1つのクリークの生成に当たり複数回のクリーク生成処理を行うパーティショニング手法の一例を示す図(その2)である。パーティショニング部120は、クリークC’に含まれない要素{oi}を、要素数ni(C’)に基づいて降順にならべる。そしてパーティショニング部120は、要素{oi}のうち、要素数ni(C’)の値が大きい方からN-c’番目までの要素を含む部分集合D’を生成する。図16の例では、太線の白丸が部分集合D’に含まれる要素である。
 パーティショニング部120は、アニーリング型コンピュータ200を用いて、クリークC’と部分集合D’との和集合から要素数最大となるクリークCを生成する処理(2段階目のクリーク生成)を行う。図16に示す9個の白丸が、クリークCに含まれる要素である。
 このようにして、アニーリング型コンピュータ200で使用可能なビット数よりも測定対象のオブザーバブルの方が多い場合でも、全体のオブザーバブル群Oからのクリークの生成が可能となる。このような2段階のクリーク生成処理では、1段階目のクリーク生成により、オブザーバブル群Oに含まれる要素のうち、要素数最大のクリークに含まれる可能性の高い要素を含む中間段階のクリークC’が生成される。
 クリークC’に含まれない要素は、可換の関係にあるクリークC’内の要素数ni(C’)が多いほど、要素数最大のクリークに含まれる要素の可能性が高いと考えられる。そのため要素数ni(C’)が多い方から可能な限りの要素を選択して部分集合D’とすることで、要素数最大のクリークに含まれる要素の可能性が高い要素の部分集合D’が生成される。そしてクリークC’と部分集合D’との和集合からクリークC生成することで、より要素数が多いクリークが生成可能となる。
 次にオブザーバブル測定の手順について、図17~図20を参照して詳細に説明する。
 図17は、オブザーバブル測定手順の一例を示すフローチャートである。以下、図17に示す処理をステップ番号に沿って説明する。
 [ステップS101]交換関係判定部110は、求解対象の問題に応じて、オブザーバブル群Oの要素となるオブザーバブルを列挙する。
 [ステップS102]交換関係判定部110は、オブザーバブル群に要素として含まれるオブザーバブル間の交換関係を判定する。例えば交換関係判定部110は、オブザーバブル群の要素として含まれるオブザーバブルを2つ選択するすべての組み合わせ(オブザーバブルの対)を生成する。そして交換関係判定部110は、オブザーバブルの対ごとに、各オブザーバブルに含まれるパウリ演算子間の可換・反可換の関係に基づいて、オブザーバブルの対が可換か反可換かを判定する。
 [ステップS103]パーティショニング部120は、オブザーバブル群のパーティショニングを行う。パーティショニングにより、1以上のクリークが生成される。パーティショニング処理の詳細は後述する(図18参照)。
 [ステップS104]量子回路生成部130は、同一のクリークから、期待値を未計算の所定数のオブザーバブルを選択する。
 [ステップS105]量子回路生成部130は、選択した複数のオブザーバブルを同時測定するための量子回路を生成する。
 [ステップS106]期待値取得部140は、量子回路をゲート型量子コンピュータ300に送信し、量子回路に従った計算を指示する。ゲート型量子コンピュータ300は、量子回路に従った計算を所定回数繰り返し、選択したオブザーバブルそれぞれに対応する量子ビットの値の期待値を計算する。ゲート型量子コンピュータ300は、得られた期待値を期待値取得部140に送信する。
 [ステップS107]期待値取得部140は、ゲート型量子コンピュータ300からオブザーバブルの期待値を取得する。
 [ステップS108]量子回路生成部130は、未選択のオブザーバブルがあるか否かを判断する。量子回路生成部130は、未選択のオブザーバブルがあれば処理をステップS104に進める。また量子回路生成部130は、すべてのオブザーバブルが選択済みとなった場合、処理をステップS109に進める。
 [ステップS109]期待値取得部140は、測定対象のオブザーバブルの期待値に基づいて、求解対象の問題の解を求め、求めた解を出力する。
 このようにして、パーティショニングを行うことで同時測定可能なオブザーバブルを集めたクリークが生成され、同一のクリークに含まれるオブザーバブルの期待値が同時測定される。
 次に、パーティショニング処理について詳細に説明する。
 図18は、パーティショニングの処理の手順の一例を示すフローチャートである。以下、図18に示す処理をステップ番号に沿って説明する。
 [ステップS121]パーティショニング部120は、繰り返し回数を示す変数kの値を「1」に初期化する。またパーティショニング部120は、オブザーバブル群O全体を、k=1の場合の部分群O1として設定する。部分群O1の要素数M1は、オブザーバブル群Oの要素数である。
 [ステップS122]パーティショニング部120は、部分群Okの要素数Mkが、アニーリング型コンピュータ200のビット数Nより大きいか否かを判断する(Nは1以上の整数)。パーティショニング部120は、部分群Okの要素数Mkの方が大きい場合、処理をステップS124に進める。またパーティショニング部120は、部分群Okの要素数Mkがビット数N以下であれば、処理をステップS123に進める。
 [ステップS123]パーティショニング部120は、部分群OkからクリークCkを生成する。クリーク生成処理の詳細は後述する(図19~図20参照)。パーティショニング部120は、クリークCk生成後、処理をステップS130に進める。
 [ステップS124]パーティショニング部120は、部分群OkのMk個の要素うちN個を任意に抽出した部分群Ok’を生成する。
 [ステップS125]パーティショニング部120は、パーティショニング部120は、部分群Ok’から要素数が最大となるクリークCk’を生成する。クリークCk’に含まれる要素数をck’とする。この処理は、ステップS123のクリーク生成処理における部分群Okを部分群Ok’に置き換えた処理であり、処理の詳細は図19~図20に示す通りである。
 [ステップS126]パーティショニング部120は、部分群Ok’に属しクリークCk’に属していないオブザーバブル{oi}(i=1,2,・・・)それぞれに関し、互いに可換なクリークCk’の要素の数ni(Ck’)を計数する。
 [ステップS127]パーティショニング部120は、オブザーバブル{oi}のうち、ni(Ck’)が大きいものから順にN-ck’個のオブザーバブルを要素とする部分群Dk’を生成する。
 [ステップS128]パーティショニング部120は、クリークCk’と部分群Dk’との和集合の部分群Ok”を生成する。
 [ステップS129]パーティショニング部120は、部分群Ok”から要素数が最大となるクリークCkを生成する。この処理は、ステップS123のクリーク生成処理の部分群Okを部分群Ok”に置き換えた処理であり、処理の詳細は図19~図20に示す通りである。
 [ステップS130]パーティショニング部120は、部分群OkからクリークCkの要素を除いた部分群Ok+1を生成する。
 [ステップS131]パーティショニング部120は、部分群Ok+1が空集合か否かを判断する。パーティショニング部120は、部分群Ok+1が空集合であればパーティショニング処理を終了する。またパーティショニング部120は、部分群Ok+1が空集合でなければ処理をステップS132に進める。
 [ステップS132]パーティショニング部120は、変数kの値をカウントアップして、処理をステップS122に進める(k←k+1)。
 このようにして、オブザーバブル群Oの要素とされたすべてのオブザーバブルが、いずれかのクリークに含まれるまで、クリークCkの生成が繰り返し実行される。その際、部分群Okの要素数Mkがアニーリング型コンピュータ200のビット数より大きい場合には、1つのクリークの生成に当たり複数回のクリーク生成処理を行うパーティショニング手法が適用される。図18の例では、1つのクリークの生成に当たり2回のクリーク生成処理(ステップS125,S129)が行われている。複数回のクリーク生成処理を経てクリークを生成することでオブザーバブル数に対してアニーリング型コンピュータ200のビット数が不足している場合でも、より多くのオブザーバブルを含むクリークを生成することができる。
 次に、部分群Ok、部分群Ok’または部分群Ok”を処理対象の部分群としたクリーク生成処理について詳細に説明する。
 図19は、クリーク生成処理の手順の一例を示すフローチャート(1/2)である。以下、図19に示す処理をステップ番号に沿って説明する。
 [ステップS201]パーティショニング部120は、処理対象の部分群のイジングモデルを作成する。作成されるイジングモデルは、クリークに含まれるオブザーバブルの数が多いほどハミルトニアンの値が小さくなる。
 [ステップS202]パーティショニング部120は、処理対象の部分群のオブザーバブルの数をL(Lは自然数)とし、各オブザーバブルを{P1,P2,・・・,PL}とする。各オブザーバブルは、パウリ文字列で表される。
 [ステップS203]パーティショニング部120は、すべての要素の値が「0」のL×Lの正方行列Eを生成する。
 [ステップS204]パーティショニング部120は、ループ変数n1を1から1ずつカウントアップし、LになるまでステップS205~S208の処理を繰り返す。
 [ステップS205]パーティショニング部120は、ループ変数n2をn1から1ずつカウントアップし、LになるまでステップS206~S207の処理を繰り返す。
 [ステップS206]パーティショニング部120は、n1番目のオブザーバブルPn1とn2番目のオブザーバブルPn2との対が可換(Pn1n2=Pn2n1)か反可換(Pn1n2=-Pn2n1)かを判断する。パーティショニング部120は、可換であれば処理をステップS208に進める。またパーティショニング部120は、反可換であれば処理をステップS207に進める。
 [ステップS207]パーティショニング部120は、正方行列Eのn1行n2列の要素En1,n2の値を「1」に変更する(En1,n2=1)。このように反可換のオブザーバブルの対に対応する要素の値は「1」に変更され、可換のオブザーバブルの対に対応する要素の値は「0」が維持される。
 [ステップS208]パーティショニング部120は、n1からLまでのすべてのn2についてステップS206~S207の処理が終了した場合、処理をステップS209に進める。
 [ステップS209]パーティショニング部120は、1からLまでのすべてのn1についてステップS205~S208の処理が終了した場合、処理をステップS211(図20参照)に進める。
 図20は、クリーク生成処理の手順の一例を示すフローチャート(2/2)である。以下、図20に示す処理をステップ番号に沿って説明する。
 [ステップS211]パーティショニング部120は、バイナリ変数群χ={χ1,χ2,・・・,χN}を定義する。
 [ステップS212]パーティショニング部120は、イジングモデルを生成する。イジングモデルは以下の式で表される。
Figure JPOXMLDOC01-appb-M000002
 式(2)におけるmは正の実数である。
 [ステップS213]パーティショニング部120は、アニーリング型コンピュータ200にイジングモデルを送信し、イジングモデルの基底状態の探索を指示する。アニーリング型コンピュータ200は、指示に従って、イジングモデルにおけるf(χ)が最小となるバイナリ変数群χを生成する。
 [ステップS214]パーティショニング部120は、アニーリング型コンピュータ200から、f(χ)が最小となるバイナリ変数群χを取得する。
 [ステップS215]パーティショニング部120は、クリークに含まれるオブザーバブルの集合Pを以下のように定義する。
Figure JPOXMLDOC01-appb-M000003
 集合Pには、f(χ)が最小となるバイナリ変数群χのうちの値が「1」の変数に対応するオブザーバブルが含まれる。
 このようにして処理対象の部分集合に応じたイジングモデルに基づいて、アニーリング型コンピュータ200にイジングモデルの基底状態を探索させることで、要素数が最大となるクリークを生成することができる。処理対象が部分群Okであれば、生成されるのはクリークCkである。処理対象が部分群Ok’であれば、生成されるのはクリークCk’である。処理対象が部分群Ok”であれば、生成されるのはクリークCk”である。
 図17~図20の処理によって、アニーリング型コンピュータ200のビット数が求解対象の問題のオブザーバブル数に満たない場合であっても、十分に大きなクリークを生成することが可能となる。
 図21は、パーティショニングの結果の一例を示す図(その1)である。図21には、46(=4,096)個のオブザーバブル(パウリ文字列)のパーティショニングを行った結果が示されている。パラメータ遷移表93は、アニーリング型コンピュータ200のビット数が1024の場合のパーティショニングにおける各種パラメータの値の変化を示している。パラメータ遷移表94は、アニーリング型コンピュータ200のビット数が4096の場合のパーティショニングにおける各種パラメータの値の変化を示している。
 パラメータ遷移表93,94には、回数、オブザーバブル数、C’の要素数、およびCの要素数の欄が設けられている。回数の欄には、最終的に確定したクリークCの生成回数が設定されている。オブザーバブル数の欄には、クリークCの生成処理の処理対象となったオブザーバブルの数が設定されている。C’の要素数の欄には、2段階のクリーク生成における1段階目の処理で生成されるクリークC’に含まれる要素の数が設定されている。Cの要素数の欄には、最終的に確定したクリークCに含まれる要素の数が設定されている。
 アニーリング型コンピュータ200のビット数が1024個の場合、最終的に確定したクリークCの生成回数の1回目から59回目までは、処理対象のオブザーバブル数がビット数を超えている(ビット数不足である)。ビット数不足の場合、2段階のクリーク生成が行われる(図18のステップS122で「YES」)。最終的に確定したクリークCの生成回数の60回目以降は、オブザーバブル数がビット数以下となっている(ビット数が充足している)。ビット数充足の場合、1段階のクリーク生成が行われる(図18のステップS122で「NO」)。アニーリング型コンピュータ200のビット数が1024個の場合、パーティショニングの結果として得られるクリーク数(クリークCの数)は112個であり、クリーク生成処理の回数(クリークCとクリークC’の生成回数)は171回である。
 アニーリング型コンピュータ200のビット数が4096個の場合、パーティショニング全体を通して、オブザーバブル数がビット数以下となっている(ビット数が充足している)。この場合、パーティショニングの結果として得られるクリーク数は110個であり、クリーク生成処理の回数は110回である。
 アニーリング型コンピュータ200のビット数が1024個の場合と4096個の場合とを比較すると、得られるクリーク数はほぼ同じである。すなわちアニーリング型コンピュータ200のビット数がパーティショニング対象のオブザーバブル数に満たなくても、十分に大きなサイズのクリークを生成できていることが分かる。なお、クリーク生成回数はビット数が1024個の場合の方が多くなるものの5~6割程度の増加で済んでいる。
 次に、処理対象のオブザーバブル数がアニーリング型コンピュータ200のビット数を超えている場合において、2段階のクリーク生成を実施することの有効性について検証する。
 図22は、パーティショニングの比較例を示す図である。図22の例では、アニーリング型コンピュータ200のビット数よりオブザーバブル数が多い場合において、オブザーバブル群Oから任意に選択した部分群O’を処理対象としたクリーク生成のみを行うパーティショニング手法である。部分群O’の要素数は、アニーリング型コンピュータ200のビット数と等しい数である。すなわち、部分群O’を処理対象としたクリーク生成処理で得られたクリークCがそのままパーティショニングの結果として採用される。
 図22に示したパーティショニング手法は、部分群を用いた1段階クリーク生成手法である。それに対して、第2の実施の形態で採用したパーティショニング手法は、部分群を用いた2段階クリーク生成手法である。
 図23は、パーティショニングの結果の一例を示す図(その2)である。図23には、46(=4,096)個のオブザーバブル(パウリ文字列)のパーティショニングを行った結果が示されている。パラメータ遷移表95は、ビット数が1024のアニーリング型コンピュータ200で2段階クリーク生成手法によりパーティショニングを実施した場合における各種パラメータの値の変化を示している。パラメータ遷移表96は、ビット数が1024のアニーリング型コンピュータ200で1段階クリーク生成手法(図22の比較例の手法)によりパーティショニングを実施した場合における各種パラメータの値の変化を示している。
 パラメータ遷移表95,96には、回数、オブザーバブル数、およびCの要素数の欄が設けられている。各欄には、パラメータ遷移表93,94の同名の欄と同種の情報が設定されている。パラメータ遷移表95の各欄の値は、図21に示したパラメータ遷移表93と同じである。
 パラメータ遷移表96によれば、図23に示した1段階クリーク生成によってパーティショニングを行った場合、最終的に確定したクリークCの生成回数の1回目から77回目までは、処理対象のオブザーバブル数がビット数を超えている(ビット数不足である)。1段階クリーク生成の場合、ビット数不足であっても2段階目のクリーク生成は行われず、1段階目のクリーク生成処理で生成されたクリークがパーティショニングの結果となる。1段階クリーク生成によるパーティショニングの結果として得られるクリーク数は137個であり、クリーク生成処理の回数も137回である。
 このように、アニーリング型コンピュータ200のビット数不足の場合に1段階クリーク生成を採用すると、パーティショニングで得られるクリーク数が増加してしまう。換言すると、2段階クリーク生成を採用することでクリーク数が減少する。クリーク数が少ないということは、クリーク当たりの属するオブザーバブル数が多いことを意味する。すなわち、2段階のクリーク生成を実施することで、より多数のオブザーバブルを含むクリークの生成が可能となっている。
 次に、2段階目のクリーク生成を行うことで、生成されるクリークの要素数をどの程度増加させることができるかについて検証する。
 図24は、パーティショニングの結果の一例を示す図(その3)である。図24には、47(=16,384)個のオブザーバブル(パウリ文字列)のパーティショニングを行った結果が示されている。パラメータ遷移表97は、ビット数が1024のアニーリング型コンピュータ200でパーティショニングを実施した場合における各種パラメータの値の変化を示している。パラメータ遷移表98は、ビット数が8192のアニーリング型コンピュータ200でパーティショニングを実施した場合における各種パラメータの値の変化を示している。
 パラメータ遷移表97,98には、回数、オブザーバブル数、C’の要素数およびCの要素数の欄が設けられている。各欄には、パラメータ遷移表93,94の同名の欄と同種の情報が設定されている。
 アニーリング型コンピュータ200のビット数が1024個の場合、最終的に確定したクリークCの生成回数の1回目から203回目までは、処理対象のオブザーバブル数がビット数を超えている(ビット数不足である)。最終的に確定したクリークCの生成回数の203回目以降は、オブザーバブル数がビット数以下となっている(ビット数が充足している)。アニーリング型コンピュータ200のビット数が1024個の場合、パーティショニングの結果として得られるクリーク数(クリークCの数)は268個であり、クリーク生成処理の回数(クリークCとクリークC’の生成回数)は471回である。
 またアニーリング型コンピュータ200のビット数が1024個の場合、ビット数不足のときのC’の要素数は30台から40台であり、Cの要素数は120台である。すると、2段階目のクリーク生成処理を行うことで、1段階目の生成されたクリークの3倍から4倍程度の要素を含むクリークが生成されていることとなる。
 アニーリング型コンピュータ200のビット数が8192個の場合、最終的に確定したクリークCの生成回数の1回目から75回目までは、処理対象のオブザーバブル数がビット数を超えている(ビット数不足である)。最終的に確定したクリークCの生成回数の76回目以降は、オブザーバブル数がビット数以下となっている(ビット数が充足している)。アニーリング型コンピュータ200のビット数が8192個の場合、パーティショニングの結果として得られるクリーク数(クリークCの数)は261個であり、クリーク生成処理の回数(クリークCとクリークC’の生成回数)は328回である。
 またアニーリング型コンピュータ200のビット数が8192個の場合、ビット数不足のときのC’の要素数は90台から120台であり、Cの要素数は80台から120台である。すなわち、2段階目のクリーク生成処理を行うことによる、クリークに含まれる要素数の増加効果は限定的である。
 このように部分群への2段階クリーク生成方式によるパーティショニングは、オブザーバブル数に対するアニーリング型コンピュータ200のビット数の割合が小さいほど効果が大きい。
 〔その他の実施の形態〕
 第2の実施の形態では2段階のクリーク生成処理によって1つのクリークを確定しているが、クリーク生成処理を3段階以上繰り返してもよい。
 図25は、3段階以上のクリーク生成処理で1つのクリークを確定するパーティショニング処理の手順の一例を示すフローチャートである。図25に示す処理のうち、ステップS301~S305,S307~S310,S313~S315の処理は、それぞれ図18に示したフローチャートのステップS121~S132の処理と同じである。以下、図18のフローチャートと異なるステップS306,S311,S312の各処理についてステップ番号を参照して説明する。
 [ステップS306]パーティショニング部120は、ループ変数rに初期値「1」を設定する(r=1)。その後、パーティショニング部120は、ステップS307~S310の処理を行うことでクリークCkを生成する。
 [ステップS311]パーティショニング部120は、ループ変数rの値が、予め設定されている繰返し回数r0に達したか否かを判断する(r=r0?)。パーティショニング部120は、繰返し回数r0に達した場合、処理をステップS313に進める。またパーティショニング部120は、繰返し回数r0に達していない場合、処理をステップS132に進める。
 [ステップS312]パーティショニング部120は、ループ変数rに1を加算する(r←r+1)。またパーティショニング部120は、ステップS310で生成されたクリークCkを、未確定のクリークCk’に代入する(Ck’←Ck)。そしてパーティショニング部120は、処理をステップS307に進める。
 このような処理により、繰返し回数r0だけクリーク生成処理を繰り返した後、最後のクリーク生成処理で生成されたクリークCが、パーティショニングの結果として採用される。クリーク生成処理を繰り返し実行することで、より多くの要素を含むクリークを生成できる可能性が高くなる。その結果、パーティショニングにより生成されるクリーク数を削減できる。
 上記については単に本発明の原理を示すものである。さらに、多数の変形、変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応するすべての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
 1 アニーリング型コンピュータ
 2 オブザーバブル群
 3 第1群
 4 第1のクリーク
 5 第2群
 6 第2のクリーク
 7 和集合
 10 情報処理装置
 11 記憶部
 12 処理部
 

Claims (8)

  1.  測定対象の複数のオブザーバブルの第1群内のオブザーバブルの組み合わせであり、組み合わせに含まれる任意の2つのオブザーバブルについて期待値の同時測定が可能であるという条件を満たす、より多くのオブザーバブルを含む組み合わせを探索する第1の組み合わせ最適化問題の解を、アニーリング型コンピュータに計算させ、
     前記第1の組み合わせ最適化問題の解に示されるオブザーバブルの組み合わせを示す第1のクリークを生成し、
     前記第1のクリークに含まれないオブザーバブルそれぞれについての、期待値の同時測定が可能な前記第1のクリーク内のオブザーバブルの数に基づいて、前記第1のクリークに含まれない所定数のオブザーバブルの第2群を生成し、
     前記第1のクリークと前記第2群との和集合内のオブザーバブルの組み合わせであり、組み合わせに含まれる任意の2つのオブザーバブルについて期待値の同時測定が可能であるという条件を満たす、より多くのオブザーバブルを含む組み合わせを探索する第2の組み合わせ最適化問題の解を、前記アニーリング型コンピュータに計算させ、
     前記第2の組み合わせ最適化問題の解に示されるオブザーバブルの組み合わせを示す第2のクリークを生成する、
     処理をコンピュータに実行させる複数量子ビットオブザーバブルのパーティショニングプログラム。
  2.  前記第2群を生成する処理では、
     前記第1のクリークに含まれないオブザーバブルそれぞれについて、期待値の同時測定が可能な前記第1のクリーク内のオブザーバブルの数を示す可換オブザーバブル数を計数し、
     前記第1のクリークに含まれないオブザーバブルのうちの、前記可換オブザーバブル数が多い方から所定数のオブザーバブルを含む前記第2群を生成する、
     請求項1記載の複数量子ビットオブザーバブルのパーティショニングプログラム。
  3.  前記第1の組み合わせ最適化問題の解を計算させる処理では、前記アニーリング型コンピュータが計算に使用するビット数と同数のオブザーバブルを含む前記第1群を生成し、生成した前記第1群に応じた前記第1の組み合わせ最適化問題の解の探索を前記アニーリング型コンピュータに指示し、前記アニーリング型コンピュータから前記第1の組み合わせ最適化問題の解を取得する、
     請求項1または2に記載の複数量子ビットオブザーバブルのパーティショニングプログラム。
  4.  前記第2群を生成する処理では、前記アニーリング型コンピュータが計算に使用可能なビット数と前記第1のクリークに含まれているオブザーバブル数との差分と同数のオブザーバブルを含む前記第2群を生成し、
     前記第2の組み合わせ最適化問題の解を計算させる処理では、生成した前記第2群に応じた前記第2の組み合わせ最適化問題の解の探索を前記アニーリング型コンピュータに指示し、前記アニーリング型コンピュータから前記第2の組み合わせ最適化問題の解を取得する、
     請求項3記載の複数量子ビットオブザーバブルのパーティショニングプログラム。
  5.  前記第1の組み合わせ最適化問題の解を計算させる処理では、前記第1群に属するオブザーバブルそれぞれを前記第1のクリークに含めるか否かを示す変数を含み、期待値を同時測定できないオブザーバブルの対が前記第1のクリークに含まれるとハミルトニアンの値が大きくなり、前記第1のクリークに含めるオブザーバブル数が多いほどハミルトニアンの値が小さくなる第1のイジングモデルを生成し、前記第1のイジングモデルの基底状態を前記アニーリング型コンピュータに探索させ、探索結果を前記アニーリング型コンピュータに計算させ、
     前記第2の組み合わせ最適化問題の解を計算させる処理では、前記第1のクリークと前記第2群との和集合に属するオブザーバブルそれぞれを前記第2のクリークに含めるか否かを示す変数を含み、期待値を同時測定できないオブザーバブルの対が前記第2のクリークに含まれるとハミルトニアンの値が大きくなり、前記第2のクリークに含めるオブザーバブル数が多いほどハミルトニアンの値が小さくなる第2のイジングモデルを生成し、前記第2のイジングモデルの基底状態を前記アニーリング型コンピュータに探索させ、探索結果を前記アニーリング型コンピュータから取得する、
     請求項1から4までのいずれかに記載の複数量子ビットオブザーバブルのパーティショニングプログラム。
  6.  前記第2のクリークに含まれないオブザーバブルそれぞれについての、期待値の同時測定が可能な前記第2のクリーク内のオブザーバブルの数に基づいて、前記第2のクリークに含まれない所定数のオブザーバブルの第3群を生成し、
     前記第2のクリークと前記第3群との和集合内のオブザーバブルの組み合わせであり、組み合わせに含まれる任意の2つのオブザーバブルについて期待値の同時測定が可能であるという条件を満たす、より多くのオブザーバブルを含む組み合わせを探索する第3の組み合わせ最適化問題の解を前記アニーリング型コンピュータに計算させ、
     前記第3の組み合わせ最適化問題の解に示されるオブザーバブルの組み合わせを示す第3のクリークを生成する、
     処理を前記コンピュータにさらに実行させる請求項1から5までのいずれかに記載の複数量子ビットオブザーバブルのパーティショニングプログラム。
  7.  測定対象の複数のオブザーバブルの第1群内のオブザーバブルの組み合わせであり、組み合わせに含まれる任意の2つのオブザーバブルについて期待値の同時測定が可能であるという条件を満たす、より多くのオブザーバブルを含む組み合わせを探索する第1の組み合わせ最適化問題の解を、アニーリング型コンピュータに計算させ、
     前記第1の組み合わせ最適化問題の解に示されるオブザーバブルの組み合わせを示す第1のクリークを生成し、
     前記第1のクリークに含まれないオブザーバブルそれぞれについての、期待値の同時測定が可能な前記第1のクリーク内のオブザーバブルの数に基づいて、前記第1のクリークに含まれない所定数のオブザーバブルの第2群を生成し、
     前記第1のクリークと前記第2群との和集合内のオブザーバブルの組み合わせであり、組み合わせに含まれる任意の2つのオブザーバブルについて期待値の同時測定が可能であるという条件を満たす、より多くのオブザーバブルを含む組み合わせを探索する第2の組み合わせ最適化問題の解を、前記アニーリング型コンピュータに計算させ、
     前記第2の組み合わせ最適化問題の解に示されるオブザーバブルの組み合わせを示す第2のクリークを生成する、
     処理をコンピュータが実行する複数量子ビットオブザーバブルのパーティショニング方法。
  8.  測定対象の複数のオブザーバブルの第1群内のオブザーバブルの組み合わせであり、組み合わせに含まれる任意の2つのオブザーバブルについて期待値の同時測定が可能であるという条件を満たす、より多くのオブザーバブルを含む組み合わせを探索する第1の組み合わせ最適化問題の解を、アニーリング型コンピュータに計算させ、
     前記第1の組み合わせ最適化問題の解に示されるオブザーバブルの組み合わせを示す第1のクリークを生成し、
     前記第1のクリークに含まれないオブザーバブルそれぞれについての、期待値の同時測定が可能な前記第1のクリーク内のオブザーバブルの数に基づいて、前記第1のクリークに含まれない所定数のオブザーバブルの第2群を生成し、
     前記第1のクリークと前記第2群との和集合内のオブザーバブルの組み合わせであり、組み合わせに含まれる任意の2つのオブザーバブルについて期待値の同時測定が可能であるという条件を満たす、より多くのオブザーバブルを含む組み合わせを探索する第2の組み合わせ最適化問題の解を、前記アニーリング型コンピュータに計算させ、
     前記第2の組み合わせ最適化問題の解に示されるオブザーバブルの組み合わせを示す第2のクリークを生成する、
     処理を実行する処理部、
     を有する情報処理装置。
PCT/JP2022/001759 2022-01-19 2022-01-19 複数量子ビットオブザーバブルのパーティショニングプログラム、複数量子ビットオブザーバブルのパーティショニング方法、および情報処理装置 WO2023139681A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2022/001759 WO2023139681A1 (ja) 2022-01-19 2022-01-19 複数量子ビットオブザーバブルのパーティショニングプログラム、複数量子ビットオブザーバブルのパーティショニング方法、および情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2022/001759 WO2023139681A1 (ja) 2022-01-19 2022-01-19 複数量子ビットオブザーバブルのパーティショニングプログラム、複数量子ビットオブザーバブルのパーティショニング方法、および情報処理装置

Publications (1)

Publication Number Publication Date
WO2023139681A1 true WO2023139681A1 (ja) 2023-07-27

Family

ID=87348193

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/001759 WO2023139681A1 (ja) 2022-01-19 2022-01-19 複数量子ビットオブザーバブルのパーティショニングプログラム、複数量子ビットオブザーバブルのパーティショニング方法、および情報処理装置

Country Status (1)

Country Link
WO (1) WO2023139681A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021168199A (ja) * 2017-05-15 2021-10-21 グーグル エルエルシーGoogle LLC 量子コンピューティングシステム内の演算子平均化
JP6985480B1 (ja) * 2020-09-28 2021-12-22 鉄道情報システム株式会社 計算方法、計算装置、計算プログラム、記録媒体

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021168199A (ja) * 2017-05-15 2021-10-21 グーグル エルエルシーGoogle LLC 量子コンピューティングシステム内の演算子平均化
JP6985480B1 (ja) * 2020-09-28 2021-12-22 鉄道情報システム株式会社 計算方法、計算装置、計算プログラム、記録媒体

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
TOMOCHI KURITA, MIKIO MORITA, HIROTAKA OSHIMA, SHINTARO SATO: "Fast measurement of quantum states using digital annealer", IPSJ SIG TECHNICAL REPORT, vol. 2021-QS-3, no. 15, 24 June 2021 (2021-06-24), JP, pages 1 - 7, XP009547887, ISSN: 2435-6492 *

Similar Documents

Publication Publication Date Title
CN108369668B (zh) 用于创建和使用量子玻尔兹曼机的系统和方法
Gong et al. Quantum neuronal sensing of quantum many-body states on a 61-qubit programmable superconducting processor
WO2023045078A1 (zh) 量子体系的本征态获取方法、装置、设备及存储介质
US11244026B2 (en) Optimization problem arithmetic method and optimization problem arithmetic device
CN112651418B (zh) 数据分类方法、分类器训练方法及系统
Kumagai et al. An external definition of the one-hot constraint and fast QUBO generation for high-performance combinatorial clustering
Cook et al. GPU based parallel ising computing for combinatorial optimization problems in VLSI physical design
US11656787B2 (en) Calculation system, information processing device, and optimum solution search process method
JP7491371B2 (ja) 数式モデル生成システム、数式モデル生成方法および数式モデル生成プログラム
Roui et al. A novel approach based on genetic algorithm to speed up the discovery of classification rules on GPUs
Nakhl et al. Calibrating the role of entanglement in variational quantum circuits
WO2023139681A1 (ja) 複数量子ビットオブザーバブルのパーティショニングプログラム、複数量子ビットオブザーバブルのパーティショニング方法、および情報処理装置
WO2022269712A1 (ja) 複数量子ビットオブザーバブルのパーティショニング方法、複数量子ビットオブザーバブルのパーティショニングプログラム、および情報処理装置
Deliparaschos et al. A parameterised genetic algorithm IP core: FPGA design, implementation and performance evaluation
Kashif et al. Qiskit as a simulation platform for measurement-based quantum computation
US20220114470A1 (en) Apparatus and method for optimization
Chu et al. Cell mapping for nanohybrid circuit architecture using genetic algorithm
WO2023209828A1 (ja) 複数量子ビットオブザーバブルのパーティショニングプログラム、複数量子ビットオブザーバブルのパーティショニング方法、および情報処理装置
US20220343202A1 (en) Arithmetic circuit, arithmetic device, information processing apparatus, and method for searching for ground state of ising model
WO2024214199A1 (ja) オブザーバブル測定支援プログラム、オブザーバブル測定支援方法、および情報処理装置
JP2022185927A (ja) 評価装置、評価方法、およびプログラム
Neira et al. Impact of Emerging Computing Architectures and Opportunities for Process Systems Engineering Applications
US20240289640A1 (en) Simulated annealing device and simulated annealing method
JP7553873B2 (ja) 量子回路設計装置、量子回路設計プログラムおよび量子回路設計方法
US20230012430A1 (en) Storage medium, model generation method, and information processing apparatus

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE