Information processing program, information processing method, and information processing device
By dynamically classifying execution paths and generating allocation information for conditional branches, the method addresses the challenge of assigning physical qubits to logical qubits in quantum circuits, enhancing reliability and reducing errors.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- FUJITSU LTD
- Filing Date
- 2025-01-17
- Publication Date
- 2026-07-30
AI Technical Summary
Conventional methods struggle to appropriately assign physical qubits to logical qubits in quantum circuits, particularly in dynamic quantum circuits with conditional branches, leading to reduced reliability due to increased size, depth, and error probability.
An information processing method that identifies portions of a quantum circuit with conditional branches, classifies execution paths based on conditional branch results, and generates information for dynamic allocation of physical qubits to minimize swap gates, thereby optimizing qubit assignment.
Improves the reliability of quantum circuits by reducing the size and depth, minimizing error probability, and enhancing coherence time through intelligent qubit allocation.
Smart Images

Figure 2026123648000001_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to an information processing program, an information processing method, and an information processing apparatus.
Background Art
[0002] Conventionally, there exists a quantum circuit representing a series of operations to be performed on a plurality of logical qubits. The quantum circuit may include, for example, conditional branches. When executing the quantum circuit on an actual quantum computer, a physical qubit is assigned to each logical qubit. Also, in the middle of the quantum circuit, a swap gate may be inserted into the quantum circuit so as to reassign physical qubits to each logical qubit.
[0003] As prior art, for example, there is one that applies an initialized external control field onto a qubit corresponding to a quantum gate and collects actual measurement data of the quantum gate. Also, for example, there is a technique for performing operation scheduling based on the topology of a quantum computer and unscheduled quantum operations. Also, for example, there is a technique for executing real-time quantum error correction. Also, for example, there is a technique for parallel optimization of continuously executed quantum error correction.
Prior Art Documents
Patent Documents
[0004]
Patent Document 1
Patent Document 2
Patent Document 3
Patent Document 4
Summary of the Invention
Problems to be Solved by the Invention
[0005] However, with conventional technology, it can be difficult to appropriately assign physical qubits to each logical qubit in order to improve the reliability of quantum circuits. For example, the appropriate way to assign physical qubits to logical qubits tends to differ depending on the result of the conditional branch judgment, and it is possible that the reliability of the quantum circuit may decrease when it is executed with a particular assignment method.
[0006] In one aspect, the present invention aims to appropriately assign physical qubits to logical qubits. [Means for solving the problem]
[0007] According to one embodiment, a portion of a quantum circuit having multiple conditional branches is identified, comprising a first portion having one or more first conditional branches and a second portion located behind the first portion in the quantum circuit and having one or more second conditional branches. Based on the results of executing the quantum circuit multiple times using a quantum computer having multiple physical qubits, multiple execution paths are obtained, each representing a combination of the conditional branch determination results in the quantum circuit. By referring to the obtained multiple execution paths, the combinations of the first conditional branch determination results in the identified first portion are classified into multiple groups based on the similarity between the combinations of the second conditional branch determination results in the identified second portion, and a first information representing how the multiple physical qubits are allocated to the first portion is obtained. An information processing program, information processing method, and information processing device are proposed to control a quantum computer executing a quantum circuit, such that the quantum computer executes the quantum circuit by generating information, generating second information representing how to allocate the plurality of physical qubits to the second part in association with each of the plurality of groups that have been generated and classified, based on the combination of the determination results of the second conditional branch in the second part corresponding to each of the plurality of groups, and after executing the first part by allocating the plurality of physical qubits to the first part according to the generated first information, and then executing the second part by allocating the plurality of physical qubits to the second part according to the second information generated in association with the group to which the current combination of determination results of the first conditional branch in the executed first part belongs. [Effects of the Invention]
[0008] According to one embodiment, it becomes possible to appropriately assign physical qubits to logical qubits. [Brief explanation of the drawing]
[0009] [Figure 1] Figure 1 is an explanatory diagram showing one embodiment of the information processing method according to the embodiment. [Figure 2] Figure 2 is an explanatory diagram showing an example of the information processing system 200. [Figure 3]Figure 3 is a block diagram showing an example of the hardware configuration of the information processing device 100. [Figure 4] Figure 4 is a block diagram showing an example of the hardware configuration of the quantum computing device 201. [Figure 5] Figure 5 is a block diagram showing an example of the functional configuration of the information processing device 100. [Figure 6] Figure 6 is an explanatory diagram (part 1) showing a first example of operation of the information processing device 100. [Figure 7] Figure 7 is an explanatory diagram (part 2) showing a first example of operation of the information processing device 100. [Figure 8] Figure 8 is an explanatory diagram (part 3) showing a first example of operation of the information processing device 100. [Figure 9] Figure 9 is an explanatory diagram (part 4) showing a first example of operation of the information processing device 100. [Figure 10] Figure 10 is an explanatory diagram (part 5) showing a first example of operation of the information processing device 100. [Figure 11] Figure 11 is an explanatory diagram (part 6) showing a first example of operation of the information processing device 100. [Figure 12] Figure 12 is an explanatory diagram (part 7) showing a first example of operation of the information processing device 100. [Figure 13] Figure 13 is an explanatory diagram (part 8) showing a first example of operation of the information processing device 100. [Figure 14] Figure 14 is an explanatory diagram (part 9) showing a first example of operation of the information processing device 100. [Figure 15] Figure 15 is an explanatory diagram (part 10) showing a first example of operation of the information processing device 100. [Figure 16] Figure 16 is an explanatory diagram (part 11) showing a first example of operation of the information processing device 100. [Figure 17] Figure 17 is an explanatory diagram (part 1) showing a second example of operation of the information processing device 100. [Figure 18] Figure 18 is an explanatory diagram (part 2) showing a second example of operation of the information processing device 100. [Figure 19]FIG. 19 is an explanatory diagram (Part 3) showing a second operation example of the information processing apparatus 100. [Figure 20] FIG. 20 is an explanatory diagram (Part 4) showing a second operation example of the information processing apparatus 100. [Figure 21] FIG. 21 is an explanatory diagram (Part 5) showing a second operation example of the information processing apparatus 100. [Figure 22] FIG. 22 is an explanatory diagram (Part 6) showing a second operation example of the information processing apparatus 100. [Figure 23] FIG. 23 is an explanatory diagram (Part 7) showing a second operation example of the information processing apparatus 100. [Figure 24] FIG. 24 is an explanatory diagram (Part 8) showing a second operation example of the information processing apparatus 100. [Figure 25] FIG. 25 is an explanatory diagram (Part 9) showing a second operation example of the information processing apparatus 100. [Figure 26] FIG. 26 is an explanatory diagram (Part 1) showing a third operation example of the information processing apparatus 100. [Figure 27] FIG. 27 is an explanatory diagram (Part 2) showing a third operation example of the information processing apparatus 100. [Figure 28] FIG. 28 is a flowchart showing an example of the overall processing procedure.
Embodiments for Carrying Out the Invention
[0010] Hereinafter, embodiments of an information processing program, an information processing method, and an information processing apparatus according to the present invention will be described in detail with reference to the drawings.
[0011] (An Example of the Information Processing Method According to the Embodiment) FIG. 1 is an explanatory diagram showing an example of an information processing method according to the embodiment. The information processing apparatus 100 is a computer for allocating physical qubits to logical qubits. The information processing apparatus 100 is, for example, a server or a PC (Personal Computer).
[0012] Conventionally, quantum computers exist that perform specific calculations by manipulating the quantum state represented by physical qubits using quantum mechanical effects. A quantum computer has multiple physical qubits. In actual quantum computers, errors can occur in the quantum state due to environmental noise, interference between qubits, and noise during qubit manipulation. It can be difficult to implement error correction functions in actual quantum computers. For example, it is difficult to implement error correction functions in actual quantum computers of a scale called NISQ (Noisy Intermediate Scale Quantum).
[0013] The calculations performed by a quantum computer are defined by a model called a quantum circuit. A quantum circuit involves multiple logic qubits. A quantum circuit describes, for example, how to manipulate the quantum state represented by a logic qubit. A quantum circuit includes, for example, quantum gates that act on logic qubits and manipulate the quantum state represented by them. Examples of quantum gates include an Hadamard gate that acts on a single qubit, or a rotation gate that acts on a single qubit. Examples of quantum gates include an entangling gate that acts on multiple qubits.
[0014] Furthermore, there are quantum circuits that represent non-deterministic operation. Specifically, there are quantum circuits with conditional branching. Conditional branching corresponds to if statements or while statements. An if statement specifies that the quantum gate applied to a logical qubit is switched depending on a condition f relating to the classical bit. Condition f does not have to be deterministic. Condition f may, for example, be random. Condition f may utilize external states such as the execution history of past quantum circuits. A while statement specifies that the quantum gate is repeatedly applied to a logical qubit depending on a condition f relating to the classical bit.
[0015] In the following explanation, quantum circuits that have conditional branching and exhibit non-deterministic behavior may be referred to as "dynamic quantum circuits." Conversely, quantum circuits that do not have conditional branching and exhibit deterministic behavior may be referred to as "static quantum circuits."
[0016] In a real quantum computer, when executing a quantum circuit involving multiple logic qubits, a specific quantum gate is decomposed into a combination of one or more native gates. Furthermore, certain quantum gates may require the use of specific physical qubits. For example, a specific quantum gate acting on a logic qubit may not be able to properly manipulate the quantum state represented by that logic qubit unless that logic qubit is assigned to a specific physical qubit.
[0017] Therefore, when executing a quantum circuit involving multiple logic qubits on a real quantum computer, it is desirable to appropriately allocate each logic qubit to each physical qubit possessed by the quantum computer. For example, it is desirable to allocate each logic qubit to each physical qubit possessed by the quantum computer as an initial state at the beginning of the quantum circuit. Furthermore, it is desirable to re-allocate each logic qubit to each physical qubit possessed by the quantum computer at some point in the quantum circuit. This re-allocation is also called routing.
[0018] Specifically, in order to reassign each logic qubit to its corresponding physical qubit, a swap gate must be inserted into the quantum circuit. Depending on how each logic qubit is assigned to its corresponding physical qubit, the number of swap gates that need to be inserted into the quantum circuit may increase, potentially increasing the size or depth of the quantum circuit.
[0019] As the size or depth of a quantum circuit increases, coherence time violations may occur. Furthermore, as the size or depth of a quantum circuit increases, the probability of errors occurring in the quantum state may increase due to environmental noise, interference between qubits, and noise during qubit manipulation. This can lead to a decrease in the overall reliability of the quantum circuit. Reliability is also known as fidelity. Therefore, it is desirable to appropriately allocate each logical qubit and each physical qubit to improve the overall reliability of the quantum circuit.
[0020] However, it is difficult to appropriately assign each logical qubit to each physical qubit.
[0021] For example, a first method can be considered in which the allocation of each logic qubit to each physical qubit in the entire static quantum circuit is predetermined in order to minimize the number of swap gates inserted into the static quantum circuit. For the first method, see, for example, references 1, 2, or 3 below.
[0022] Reference 1: Venturelli, Davide, et al. “Temporal planning for compilation of quantum approximate optimization circuits.” Scheduling and Planning Applications Workshop (SPARK). 2017.
[0023] Reference 2: Wille, Robert, Lukas Burgholzer, and Alwin Zulehner. “Mapping quantum circuits to IBM QX architectures using the minimal number of SWAP and H operations.” Proceedings of the 56th Annual Design Automation Conference 2019. 2019.
[0024] Reference 3: Li, Gushu, Yufei Ding, and Yuan Xie. “Tackling the qubit mapping problem for NISQ-era quantum devices.” Proceedings of the twenty-fourth international conference on architectural support for programming languages and operating systems. 2019.
[0025] Furthermore, for example, a second method can be considered in which the allocation of each logic qubit to each physical qubit in the static quantum circuit as a whole is predetermined in order to minimize the sum of the reliability evaluation values for each quantum gate. For more information on this second method, please refer to, for example, Reference 4 or Reference 5 below.
[0026] Reference 4: Tannu, Swamit S., and Moinuddin K. Qureshi. “A case for variability-aware policies for nisq-era quantum computers.” arXiv preprint arXiv:1805.10224 (2018).
[0027] Reference 5: Niu, Siyuan, et al. “A hardware-aware heuristic for the qubit mapping problem in the nisq era.” IEEE Transactions on Quantum Engineering 1 (2020): 1-14.
[0028] Furthermore, a third method can be considered in which the allocation of each logic qubit to each physical qubit within the static quantum circuit is predetermined in order to minimize the time required to execute the static quantum circuit. For more information on this third method, please refer to, for example, reference 5 mentioned above.
[0029] Here, for example, one might consider applying the first, second, or third method described above to a dynamic quantum circuit by ignoring the subcircuit involved in conditional branching, or by fixing the result of the conditional branching determination. In this case, however, it becomes difficult to appropriately assign each logic qubit to each physical qubit.
[0030] For example, the appropriate allocation of each logical qubit to each physical qubit tends to differ depending on the result of the conditional branching judgment of the dynamic quantum circuit. Therefore, when applying the first method, the second method, or the third method described above to a dynamic quantum circuit, there is a problem that the predetermined allocation of each logical qubit to each physical qubit may become inappropriate depending on the result of the conditional branching judgment.
[0031] Furthermore, a fourth method can be considered in which, for example, the allocation of each logic qubit to each physical qubit is determined in advance of the next time the dynamic quantum circuit is actually executed, based on the results of actually testing the dynamic quantum circuit. In this fourth method, for example, the allocation of each logic qubit to each physical qubit is determined to minimize a predetermined objective function, based on the results of statistically analyzing the conditional branching judgments when the dynamic quantum circuit is actually tested. The predetermined objective function evaluates, for example, the number of swap gates to be inserted into the dynamic quantum circuit.
[0032] Even with the fourth method described above, it is difficult to appropriately assign each logical qubit to each physical qubit. In the fourth method described above, there is a problem that the predetermined assignment of each logical qubit to each physical qubit, based on the results of actually testing the dynamic quantum circuit, may become inappropriate depending on the result of the conditional branching judgment when actually executing the dynamic quantum circuit.
[0033] In contrast, one approach is to dynamically reassign each logic qubit and each physical qubit during the execution of a dynamic quantum circuit, depending on the result of a conditional branch. However, this approach has the problem that it is difficult to reassign each logic qubit and each physical qubit within the coherence time and to insert a swap gate into the dynamic quantum circuit.
[0034] Therefore, this embodiment describes an information processing method that can appropriately assign physical qubits to logical qubits.
[0035] In Figure 1, the information processing device 100 can control the execution unit 101 that executes the quantum circuit 110. The execution unit 101 is located, for example, inside the information processing device 100. The execution unit 101 may also be, for example, a physical quantum computer located outside the information processing device 100.
[0036] The quantum circuit 110 is a dynamic quantum circuit. The quantum circuit 110 has multiple conditional branches. Among the multiple conditional branches, other conditional branches may be nested within one of them. Conditional branches are, for example, if statements or while statements. In the example in Figure 1, the quantum circuit 110 specifically has conditional branches 111 to 113. Let's assume that conditional branches 111 to 113 are, for example, if statements.
[0037] The information processing device 100 identifies a part of the quantum circuit 110 that has one or more first conditional branches, a first part 114, and a second part 115 that has one or more second conditional branches. The second part 115 is located after the first part 114. The first conditional branch is, for example, an if statement or a while statement. The second conditional branch is, for example, an if statement or a while statement.
[0038] The information processing device 100 identifies the first part 114 and the second part 115 by dividing the quantum circuit 110 into a first part 114 having a first number of first conditional branches and a second part 115 having a second number of second conditional branches. The first and second numbers are set in advance by the user.
[0039] The first part 114 and the second part 115 may be pre-configured by the user. The information processing device may specify the first part 114 and the second part 115 of the quantum circuit 110 that have been pre-configured by the user. In the example in Figure 1, the first conditional branch is specifically conditional branches 111 and 112. The second conditional branch is specifically conditional branch 113.
[0040] The information processing device 100 handles the first part 114 and the second part 115 separately, thereby dynamically switching the way in which multiple physical qubits are allocated to the second part 115, according to the actual combination of the determination results of the first conditional branch in the first part 114. The information processing device 100 performs, for example, a series of processes shown in (1-1) to (1-5) below.
[0041] (1-1) Based on the results of executing the quantum circuit 110 multiple times, the information processing device 100 obtains multiple execution paths 120, each representing a combination of the conditional branch judgment results in the quantum circuit 110. In the example in Figure 1, each execution path 120 specifically represents the combination of the conditional branch judgment results "True → True → True" for conditions 111 to 113. This allows the information processing device 100 to obtain guidance for determining how to allocate multiple physical qubits to the quantum circuit 110.
[0042] (1-2) The information processing device 100 refers to the multiple execution paths 120 obtained and classifies the combinations of the first conditional branch judgment results in the first part 114 into multiple groups based on the similarity between the combinations of the second conditional branch judgment results in the second part 115. The similarity is identified, for example, based on the distribution of the combinations of the second conditional branch judgment results. In the example of Figure 1, the information processing device 100 specifically classifies the combinations of the conditional branch judgment results 111 and 112 into multiple groups based on the similarity between the judgment results "True" and "False" of the conditional branch 113.
[0043] More specifically, the information processing device 100 classifies combinations of the judgment results of conditional branches 111 and 112 into one group if the probability of the judgment result of conditional branch 113 being "True" is greater than or equal to the probability of "False". More specifically, the information processing device 100 classifies combinations of the judgment results of conditional branches 111 and 112 into one group if the probability of the judgment result of conditional branch 113 being "True" is less than the probability of "False". As a result, the information processing device 100 can identify a group of combinations of judgment results of the first conditional branch that are considered to have a high probability of having a common allocation method for multiple physical qubits to the second part 115.
[0044] (1-3) The information processing device 100 generates first information 131 representing how to allocate multiple physical qubits to the first part 114. In the example in Figure 1, the information processing device 100 specifically generates first information 131 that is common to each combination of the first conditional branch judgment results and represents how to allocate multiple physical qubits to the first part 114. More specifically, the information processing device 100 generates first information 131 representing how to allocate multiple physical qubits to the first part 114 in such a way that the number of swap gates to be inserted into the first part 114 is minimized. This allows the information processing device 100 to make the first part 114 executable.
[0045] (1-5) The information processing device 100 generates second information 132 representing how to allocate multiple physical qubits to the second part 115, associated with each of the classified groups. The information processing device 100 generates second information 132 representing how to allocate multiple physical qubits to the second part 115, associated with each group, based on a combination of the second conditional branch determination results in the second part 115, associated with that group. Specifically, the information processing device 100 generates second information 132 in association with each group, based on a combination of the second conditional branch determination results in that group, so as to statistically minimize the number of swap gates to be inserted into the second part 115.
[0046] In the example shown in Figure 1, it is possible that the probability of the conditional branch 113 result being "True" is greater than or equal to the probability of it being "False". In this case, the information processing device 100 generates the second information 132 such that the number of swap gates inserted into the second part 115 is reduced when the conditional branch 113 result is "True".
[0047] As a result, the information processing device 100 can estimate the combination of the determination results for the second conditional branch before executing the second part 115, depending on the combination of the determination results for the first conditional branch. Therefore, the information processing device 100 can estimate how it is preferable to allocate the multiple physical qubits to the second part 115 before executing the second part 115.
[0048] (1-6) The information processing device 100 controls the execution unit 101 to execute the quantum circuit 110 according to the generated first information 131 and the generated second information 132. For example, the information processing device 100 assigns a plurality of physical qubits to the first part 114 according to the generated first information 131 and executes the first part 114. As a result, the information processing device 100 can execute the first part 114 and obtain the current combination of the first conditional branch judgment result, which serves as a guideline for estimating how it is preferable to assign the plurality of physical qubits to the second part 115.
[0049] The information processing device 100, for example, after executing the first part 114, identifies second information 132 that it has generated in association with the group to which the current combination of the first conditional branch judgment result belongs. The information processing device 100 controls the execution unit 101 to assign a plurality of physical qubits to the second part 115 and execute the second part 115, for example, according to the identified second information 132. In this way, the information processing device 100 can switch how the plurality of physical qubits are assigned to the second part 115 according to the current combination of the first conditional branch judgment result in the first part 114.
[0050] The information processing device 100 can estimate the combination of the determination results for the second conditional branch before executing the second part 115, for example, depending on the combination of the determination results for the first conditional branch. Therefore, the information processing device 100 can estimate how it is preferable to allocate multiple physical qubits to the second part 115 before executing the second part 115. Specifically, the information processing device 100 can determine how it is preferable to allocate multiple physical qubits to the second part 115 according to any of the second information 132.
[0051] The information processing device 100 can appropriately allocate multiple physical qubits to the second section 115, for example. Specifically, the information processing device 100 can appropriately allocate multiple physical qubits to the second section 115 by inserting quantum gates such as swap gates, thereby suppressing an increase in the size and depth of the quantum circuit 110. As a result, the information processing device 100 can reduce the probability of errors occurring in the quantum state and improve the overall reliability of the quantum circuit 110.
[0052] The information processing device 100 can generate the second information 132 in advance before executing the quantum circuit 110, and during the execution of the quantum circuit 110, it only needs to select one of the second information 132, thus avoiding the need to generate new second information 132. Therefore, the information processing device 100 can appropriately reallocate multiple physical qubits to the second part 115 within the coherence time.
[0053] Furthermore, if it is desired to execute the quantum circuit 110 multiple times after generating the first information 131 and the second information 132, the information processing device 100 may reclassify the combination of the judgment results of the first conditional branch into multiple groups. The information processing device 100 may execute the quantum circuit 110 multiple times by repeating a series of processes, for example, as shown below, which involves reclassifying the combination of the judgment results of the first conditional branch into multiple groups and executing the quantum circuit 110.
[0054] The information processing device 100 controls the execution unit 101 to execute the quantum circuit 110 according to, for example, the first information 131 and the second information 132, and obtains multiple execution paths for when the quantum circuit 110 is executed this time. Based on the multiple execution paths obtained, the information processing device 100 reclassifies the combination of the first conditional branch judgment results into multiple groups. Based on the reclassified results, the information processing device 100 regenerates the first information 131 and the second information 132. The information processing device 100 controls the execution unit 101 to execute the quantum circuit 110 according to the regenerated first information 131 and the second information 132.
[0055] Here, we have described the case in which the quantum circuit 110 is divided into two parts: a first part 114 having a first conditional branch for a first number of minutes, and a second part 115 having a second conditional branch for a second number of minutes. However, it is not limited to this case. For example, the quantum circuit 110 may be divided into three or more parts. Specifically, the quantum circuit 110 may be divided into three parts: an early part, an intermediate part, and a late part. The case in which the quantum circuit 110 is divided into three or more parts will be described later using Figures 26 and 27.
[0056] Here, we have described the case where the functions of the information processing device 100 are realized by a single computer, but this is not the only case. For example, the functions of the information processing device 100 may be realized through the collaboration of multiple computers. For example, the functions of the information processing device 100 may be realized on the cloud.
[0057] (An example of information processing system 200) Next, using Figure 2, we will describe an example of an information processing system 200 to which the information processing device 100 shown in Figure 1 is applied.
[0058] Figure 2 is an explanatory diagram showing an example of an information processing system 200. In Figure 2, the information processing system 200 includes an information processing device 100, a quantum computing device 201, and a client device 202.
[0059] In the information processing system 200, the information processing device 100 and the quantum computing device 201 are connected via a wired or wireless network 210. The network 210 is, for example, a LAN (Local Area Network), a WAN (Wide Area Network), or the Internet. Also in the information processing system 200, the information processing device 100 and the client device 202 are connected via a wired or wireless network 210.
[0060] The information processing device 100 is a computer for assigning physical qubits to logical qubits. The information processing device 100 receives a processing request that requests the execution of a dynamic quantum circuit. The processing request includes, for example, a dynamic quantum circuit. The information processing device 100 may receive the processing request, for example, by receiving it from another computer. The other computer is, for example, a client device 202. The information processing device 100 may also receive the processing request by accepting input of the processing request based on user input, for example.
[0061] The information processing device 100 acquires real-world information about the quantum computing device 201. This real-world information includes, for example, the topology of the physical qubits possessed by the quantum computing device 201. The information processing device 100 acquires this real-world information, for example, by receiving it from another computer. This other computer is, for example, the quantum computing device 201. The information processing device 100 may also acquire this real-world information by, for example, accepting input of this real-world information based on user input.
[0062] The information processing device 100 acquires execution parameters used when executing a dynamic quantum circuit. These execution parameters include, for example, the number of shots used when executing the dynamic quantum circuit. The information processing device 100 acquires the execution parameters, for example, by receiving them from another computer. The other computer is, for example, the client device 202. The information processing device 100 may also acquire the execution parameters by accepting input of the execution parameters based on user input, for example.
[0063] Upon receiving a processing request, the information processing device 100 uses the quantum computing device 201 to determine how to assign the physical qubits possessed by the quantum computing device 201 to each of the multiple logic qubits that form a dynamic quantum circuit.
[0064] The information processing device 100 divides a dynamic quantum circuit having multiple conditional branches into a first part having one or more conditional branches and a second part having one or more conditional branches. The information processing device 100 uses the quantum computing device 201, for example, to test the dynamic quantum circuit multiple times and obtain multiple execution paths. Each execution path represents a combination of the judgment results for each of the multiple conditional branches. Specifically, the information processing device 100 tests the dynamic quantum circuit multiple times and obtains multiple execution paths by sending an execution request to the quantum computing device 201 requesting the execution of the dynamic quantum circuit.
[0065] The information processing device 100, for example, classifies combinations of conditional branching judgment results in the first part into multiple groups based on the similarity of the combinations of conditional branching judgment results in the second part, based on multiple execution paths. The information processing device 100 generates first information representing how multiple physical qubits are allocated to the first part, for example. The information processing device 100 generates second information representing how multiple physical qubits are allocated to the second part, associated with each group, for example.
[0066] As a result, the information processing device 100 can determine, based on the first information and the second information, how to assign the physical qubits possessed by the quantum computing device 201 to each of the multiple logic qubits that form a dynamic quantum circuit. Specific examples of how the information processing device 100 determines how to assign physical qubits to logic qubits will be described later, for example, using Figures 6 to 25.
[0067] The information processing device 100 uses the quantum computing device 201 to execute a dynamic quantum circuit, which dynamically changes how multiple physical qubits are allocated to the second part based on the first information and the second information. The information processing device 100 executes the dynamic quantum circuit, for example, by sending an execution request to the quantum computing device 201 that includes the first information and the second information and requests that the dynamic quantum circuit be executed.
[0068] The information processing device 100 receives from the quantum computing device 201 the results of measuring each of the multiple logic qubits that form the dynamic quantum circuit, as a result of executing the dynamic quantum circuit. The information processing device 100 transmits the results of executing the dynamic quantum circuit to another computer. The other computer is, for example, the client device 202. The information processing device 100 is, for example, a server or a PC.
[0069] The quantum computing device 201 is a computer that performs requested computational processing. The quantum computing device 201 is capable of performing quantum computations. The quantum computing device 201 may also be capable of performing classical computations. The quantum computing device 201 executes a dynamic quantum circuit one or more times in accordance with the control of the information processing device 100. For example, when the quantum computing device 201 receives an execution request from the information processing device 100 that requests the execution of a dynamic quantum circuit, it executes the dynamic quantum circuit. The quantum computing device 201 returns the result of executing the dynamic quantum circuit to the information processing device 100.
[0070] The quantum computing device 201 returns to the information processing device 100, for example, an execution path representing a combination of the judgment results for each of the multiple conditional branches in the dynamic quantum circuit, as a result of executing the dynamic quantum circuit. The quantum computing device 201 also returns to the information processing device 100, for example, the results of measuring each of the multiple logic qubits forming the dynamic quantum circuit, as a result of executing the dynamic quantum circuit. The quantum computing device 201 is, for example, a physical quantum computer.
[0071] The client device 202 is a computer used by a user who wishes to execute a dynamic quantum circuit. Based on the user's input, the client device 202 generates a processing request to execute the dynamic quantum circuit and transmits it to the information processing device 100. The client device 202 receives the result of executing the dynamic quantum circuit from the information processing device 100. The client device 202 outputs the result of executing the dynamic quantum circuit so that the user can refer to it. The client device 202 may be, for example, a PC, a tablet terminal, or a smartphone.
[0072] Here, we have described a case where the information processing device 100 uses the quantum computing device 201 to perform multiple trials of a dynamic quantum circuit, but this is not the only case. For example, the information processing device 100 may also use a quantum simulator to perform multiple trials of a dynamic quantum circuit.
[0073] This section describes a case where the information processing device 100 and the quantum computing device 201 are different devices, but is not limited to this case. For example, the information processing device 100 may have the functionality of a quantum computing device 201 and may operate as a quantum computing device 201. Similarly, this section describes a case where the information processing device 100 and the client device 202 are different devices, but is not limited to this case. For example, the information processing device 100 may have the functionality of a client device 202 and may operate as a client device 202.
[0074] Furthermore, the information processing system 200 may include a control device located on the network 210 close to the quantum computing device 201. The information processing device 100 may, for example, control the quantum computing device 201 via the control device.
[0075] (Example of hardware configuration of information processing device 100) Next, an example of the hardware configuration of the information processing device 100 will be described using Figure 3.
[0076] Figure 3 is a block diagram showing an example of the hardware configuration of the information processing device 100. In Figure 3, the information processing device 100 includes a CPU (Central Processing Unit) 301, a memory 302, and a network interface 303. The information processing device 100 also includes a recording medium interface 304, a recording medium 305, a display 306, and an input device 307. Each component is connected by a bus 300.
[0077] Here, the CPU 301 is responsible for the overall control of the information processing device 100. The memory 302 includes, for example, ROM (Read Only Memory), RAM (Random Access Memory), and flash ROM. Specifically, for example, flash ROM and ROM store various programs, and RAM is used as the work area for the CPU 301. Programs stored in memory 302 are loaded into the CPU 301, causing the CPU 301 to execute the coded processes.
[0078] The network interface 303 is connected to network 210 via a communication line, and then connects to other computers via network 210. The network interface 303 manages the internal interface with network 210 and controls the input and output of data from other computers. The network interface 303 is, for example, a modem or a LAN adapter.
[0079] The recording medium interface (I / F) 304 controls the reading and writing of data to the recording medium 305 according to the control of the CPU 301. The recording medium interface (I / F) 304 is, for example, a disk drive, an SSD (Solid State Drive), or a USB (Universal Serial Bus) port. The recording medium 305 is a non-volatile memory that stores the data written under the control of the recording medium interface (I / F) 304. The recording medium 305 is, for example, a disk, semiconductor memory, or USB memory. The recording medium 305 may be detachable from the information processing device 100.
[0080] Display 306 displays data such as cursors, icons, toolboxes, documents, images, or functional information. Display 306 is, for example, a CRT (Cathode Ray Tube), a liquid crystal display, or an organic EL (Electroluminescence) display. Input device 307 has keys for inputting characters, numbers, or various instructions, and performs data input. Input device 307 is, for example, a keyboard or a mouse. Input device 307 may also be, for example, a touch panel input pad or a numeric keypad.
[0081] The information processing device 100 may have, in addition to the components described above, a camera, for example. Furthermore, the information processing device 100 may have, in addition to the components described above, a printer, scanner, microphone, or speaker, for example. Also, the information processing device 100 may have multiple recording medium interfaces 304 and recording mediums 305, for example. Furthermore, the information processing device 100 does not necessarily have, for example, a display 306 or an input device 307. Also, the information processing device 100 does not necessarily have, for example, recording medium interfaces 304 and recording mediums 305.
[0082] (Example hardware configuration of quantum computing device 201) Next, we will describe an example of the hardware configuration of the quantum computing device 201 using Figure 4.
[0083] Figure 4 is a block diagram showing an example of the hardware configuration of the quantum computing device 201. In Figure 4, the quantum computing device 201 includes a CPU 401, a memory 402, a network interface 403, a recording medium interface 404, and a recording medium 405. The quantum computing device 201 further includes a chassis interface 406 and a chassis 407. Each component is connected by a bus 400.
[0084] Here, the CPU 401 is responsible for the overall control of the quantum computing device 201. Memory 402 includes, for example, ROM, RAM, and flash ROM. Specifically, for example, flash ROM and ROM store various programs, and RAM is used as the work area for CPU 401. Programs stored in memory 402 are loaded into CPU 401, causing CPU 401 to execute the coded processes.
[0085] The network interface 403 is connected to network 210 via a communication line, and then connects to other computers via network 210. The network interface 403 manages the internal interface with network 210 and controls the input and output of data from other computers. The network interface 403 is, for example, a modem or a LAN adapter.
[0086] The recording medium interface (I / F) 404 controls the reading and writing of data to the recording medium (SSD) 405 according to the control of the CPU 401. The recording medium interface (I / F) 404 is, for example, a disk drive, SSD, or USB port. The recording medium (SSD) 405 is a non-volatile memory that stores the data written under the control of the recording medium interface (I / F) 404. The recording medium (SSD) 405 is, for example, a disk, semiconductor memory, or USB memory. The recording medium (SSD) 405 may be detachable from the quantum computing device (SSD) 201.
[0087] The chassis interface 406 controls access to the chassis 407 according to the control of the CPU 401. The chassis interface 406 uses a microwave pulse generator to convert the output signal from the CPU 401 into an input signal for the chassis 407 and transmits it to the chassis 407. The chassis interface 406 uses a microwave pulse demodulator to convert the output signal from the chassis 407 into an input signal for the CPU 401 and transmits it to the CPU 401.
[0088] The enclosure 407 is a computing device equipped with one or more qubit chips, cooled to an extremely low temperature of 10 mK. The qubit chips represent, for example, logical qubits. The enclosure 407 uses one or more qubit chips to perform predetermined calculations in response to input signals and outputs output signals corresponding to the results of the predetermined calculations.
[0089] In addition to the components described above, the quantum computing device 201 may also have, for example, a keyboard, mouse, display, printer, scanner, microphone, speaker, etc. Furthermore, the quantum computing device 201 may have multiple recording medium interfaces 404 and 405. Alternatively, the quantum computing device 201 may not have recording medium interfaces 404 and 405. Also, the qubit chip in the housing 407 may be controlled by a method other than microwaves. The qubit chip in the housing 407 may, for example, implement optical qubits.
[0090] (Example hardware configuration for client device 202) The hardware configuration example for client device 202 is specifically the same as the hardware configuration example for information processing device 100 shown in Figure 3, so a detailed explanation will be omitted.
[0091] (Example of the functional configuration of the information processing device 100) Next, an example of the functional configuration of the information processing device 100 will be described using Figure 5.
[0092] Figure 5 is a block diagram showing an example of the functional configuration of the information processing device 100. The information processing device 100 includes a storage unit 500, an acquisition unit 501, an identification unit 502, an experiment unit 503, a classification unit 504, a first generation unit 505, a second generation unit 506, an execution control unit 507, and an output unit 508.
[0093] Furthermore, the information processing device 100 can control the execution unit 510. The execution unit 510 has the function of executing dynamic quantum circuits. The execution unit 510 is located, for example, inside the information processing device 100. The execution unit 510 is, for example, a physical quantum computer located outside the information processing device 100. The physical quantum computer is, for example, the quantum computing device 201.
[0094] The storage unit 500 is implemented by a storage area such as the memory 302 or recording medium 305 shown in Figure 3. The following description will focus on the case where the storage unit 500 is included in the information processing device 100, but is not limited to this case. For example, the storage unit 500 may be included in a device different from the information processing device 100, and the contents of the storage unit 500 may be accessible from the information processing device 100.
[0095] The acquisition unit 501 to the output unit 508 function as an example of a control unit. Specifically, the acquisition unit 501 to the output unit 508 realize their functions, for example, by having the CPU 301 execute a program stored in a storage area such as the memory 302 or recording medium 305 shown in Figure 3, or by using the network interface 303. The processing results of each functional unit are stored in a storage area such as the memory 302 or recording medium 305 shown in Figure 3.
[0096] The memory unit 500 stores various information that is referenced or updated in the processing of each functional unit. The memory unit 500 stores dynamic quantum circuits. A dynamic quantum circuit has multiple conditional branches. A dynamic quantum circuit represents non-deterministic operation. A dynamic quantum circuit applies to multiple logic qubits. A dynamic quantum circuit describes how to manipulate the quantum state represented by the logic qubits. A dynamic quantum circuit includes, for example, a quantum gate that acts on a logic qubit and manipulates the quantum state represented by the logic qubit. A dynamic quantum circuit specifies that the quantum gate applied to the logic qubit is switched according to the result of the conditional branch determination.
[0097] Conditional branching corresponds to if statements or while statements, etc. An if statement specifies that the quantum gate applied to a logical qubit is switched depending on a condition f relating to classical bits. Classical bits store, for example, the result of measuring any of the logical qubits. Condition f does not have to be deterministic. Condition f may, for example, be random. A while statement specifies that the quantum gate is repeatedly applied to a logical qubit depending on a condition f relating to classical bits.
[0098] Quantum gates include, for example, an Hadamard gate that acts on a single qubit, or a rotation gate that acts on a single qubit. A rotation gate represents, for example, a rotation around the X, Y, or Z axis. Quantum gates also include, for example, an entungling gate that acts on multiple qubits. An entungling gate is, for example, a swap gate or a CNOT gate. Dynamic quantum circuits are acquired, for example, by the acquisition unit 501.
[0099] The memory unit 500 stores, for example, information about a physical quantum computer. The physical quantum computer is, for example, a quantum computing device 201. The information includes, for example, the topology of the physical qubits of the quantum computer. The information is acquired, for example, by the acquisition unit 501. The information may be pre-set by, for example, a user.
[0100] The memory unit 500 acquires, for example, execution parameters used when executing a dynamic quantum circuit. These execution parameters include, for example, the number of shots taken when executing the dynamic quantum circuit. The execution parameters are acquired, for example, by the acquisition unit 501. The execution parameters may be pre-set by, for example, the user.
[0101] The acquisition unit 501 acquires various types of information used in the processing of each functional unit. The acquisition unit 501 stores the acquired information in the storage unit 500 or outputs it to each functional unit. The acquisition unit 501 may also output the information stored in the storage unit 500 to each functional unit. The acquisition unit 501 acquires various types of information, for example, based on user input. The acquisition unit 501 may also receive various types of information from a device other than the information processing device 100, for example.
[0102] The acquisition unit 501 acquires, for example, a processing request that requests the execution of a dynamic quantum circuit. The processing request may include, for example, a dynamic quantum circuit. The processing request may include, for example, actual device information. The processing request may include, for example, execution parameters. Specifically, the acquisition unit 501 acquires a processing request by receiving the input of a processing request based on user operation input. Specifically, the acquisition unit 501 may acquire a processing request by receiving a processing request from another computer. The other computer is, for example, a client device 202.
[0103] The acquisition unit 501 acquires, for example, a dynamic quantum circuit. Specifically, the acquisition unit 501 acquires a dynamic quantum circuit by extracting it from a processing request. Specifically, the acquisition unit 501 may acquire a dynamic quantum circuit by accepting input of a dynamic quantum circuit based on user operation input. Specifically, the acquisition unit 501 may acquire a dynamic quantum circuit by receiving a dynamic quantum circuit from another computer. The other computer is, for example, a client device 202.
[0104] The acquisition unit 501 acquires, for example, actual machine information. Specifically, the acquisition unit 501 acquires actual machine information by extracting it from a processing request. Specifically, the acquisition unit 501 may acquire actual machine information by accepting input of actual machine information based on user operation input. Specifically, the acquisition unit 501 may acquire actual machine information by receiving it from another computer. The other computer is, for example, a client device 202.
[0105] The acquisition unit 501 acquires, for example, execution parameters. Specifically, the acquisition unit 501 acquires execution parameters by extracting them from a processing request. Specifically, the acquisition unit 501 may acquire execution parameters by accepting input of execution parameters based on user operation input. Specifically, the acquisition unit 501 may acquire execution parameters by receiving them from another computer. The other computer is, for example, a client device 202.
[0106] The acquisition unit 501 may receive a start trigger to initiate processing in any of the functional units. A start trigger may be, for example, a predetermined operation input by a user. A start trigger may also be, for example, the receipt of predetermined information from another computer. A start trigger may also be, for example, the output of predetermined information by any of the functional units. The acquisition unit 501 accepts, for example, the acquisition of a processing request as a start trigger to initiate processing in the identification unit 502, the trial unit 503, the classification unit 504, the first generation unit 505, the second generation unit 506, and the execution control unit 507.
[0107] The specific unit 502 identifies a portion included in the dynamic quantum circuit, which has one or more first conditional branches, and a second portion located after the first portion and having one or more second conditional branches.
[0108] The identification unit 502 identifies the first part and the second part by dividing the dynamic quantum circuit into, for example, a first part having a first number of conditional branches, each designated as a first conditional branch, and a second part having a second number of conditional branches, each designated as a second conditional branch, according to a predetermined rule. The first number and the second number are, for example, predetermined by the user. In this way, the identification unit 502 can identify the first part which fixes the allocation method of the multiple physical qubits and the second part which dynamically switches the allocation method of the multiple physical qubits, and the first part and the second part can be handled separately.
[0109] Specifically, it is preferable that the first number be set to a predetermined upper limit or lower. More specifically, it is preferable that the first number be set to a predetermined lower limit or higher. This allows the specific unit 502 to appropriately control the number of possible combinations of the first conditional branch judgment results in the first part.
[0110] For example, if the first number is set to a predetermined upper limit or lower, the specification unit 502 can make the scale of the second part, which dynamically switches the allocation of multiple physical qubits, relatively large. Also, for example, if the first number is set to a predetermined lower limit or higher, the specification unit 502 can diversify the combinations of the first conditional branch judgment results in the first part, making it easier to accurately estimate the combinations of the second conditional branch judgment results in the second part.
[0111] The trial unit 503 obtains multiple execution paths, each representing a combination of the conditional branch judgment results in the dynamic quantum circuit, based on the results of multiple trials of the dynamic quantum circuit. For example, if the dynamic quantum circuit has a conditional branch corresponding to an if statement, each of the multiple execution paths will contain True or False, which are the judgment results in the if statement. For example, if the dynamic quantum circuit has a conditional branch corresponding to a while statement, each of the multiple execution paths will contain the loop count, which are the judgment results in the while statement.
[0112] The trial unit 503 controls the execution unit 510 to, for example, perform multiple trials of the dynamic quantum circuit. Based on the results of these multiple trials, the trial unit 503 obtains multiple execution paths, each representing a combination of conditional branching judgment results in the dynamic quantum circuit. This allows the trial unit 503 to obtain guidance for determining how to allocate multiple physical qubits to the dynamic quantum circuit.
[0113] The trial unit 503 may, for example, have a quantum simulator. The trial unit 503 may, for example, use the quantum simulator to perform multiple trials of the dynamic quantum circuit. Based on the results of these multiple trials of the dynamic quantum circuit, the trial unit 503 may obtain multiple execution paths, each representing a combination of conditional branching decision results in the dynamic quantum circuit. This allows the trial unit 503 to obtain guidance for determining how to allocate multiple physical qubits to the dynamic quantum circuit.
[0114] The specific unit 502, after the trial unit 503 has tried the dynamic quantum circuit multiple times, then proceeds to the dynamic quantum circuit The included parts may be identified as a first part having one or more first conditional branches and a second part having one or more second conditional branches. The identification unit 502 identifies the first part and the second part, for example, based on a plurality of execution paths obtained by the trial unit 503, such that the number of possible combinations of judgment results of the first conditional branches in the first part is equal to or greater than a first threshold, or less than or equal to a second threshold. The first threshold is smaller than the second threshold. The first threshold and the second threshold are set in advance by the user, for example. This allows the identification unit 502 to appropriately identify the first part and the second part according to the trend of the execution paths.
[0115] The classification unit 504 refers to multiple execution paths obtained by the trial unit 503 and classifies the combinations of the first conditional branch judgment results in the first part identified by the identification unit 502 into multiple groups. For example, the classification unit 504 classifies the combinations of the first conditional branch judgment results in the first part into multiple groups based on the similarity between the combinations of the second conditional branch judgment results in the second part identified by the identification unit 502.
[0116] Specifically, the classification unit 504 uses a clustering method to classify the combinations of the first conditional branch judgment results in the first part into multiple groups based on the similarity between the combinations of the second conditional branch judgment results in the second part. This allows the classification unit 504 to identify multiple groups that serve as the basis for dynamically switching how multiple physical qubits are allocated to the second part.
[0117] The first generation unit 505 generates first information representing how multiple physical qubits are allocated to the first part. The first information represents, for example, how multiple physical qubits are allocated at the beginning of the first part, and how multiple physical qubits are allocated in the middle of the first part by inserting a first swap gate into the first part.
[0118] The first generator 505 generates first information such as reducing the number of times the first swap gate is inserted into the first part. This allows the first generator 505 to determine how to allocate multiple physical qubits to the first part. As a result, the first generator 505 can make the first part executable and enable the dynamic quantum circuit to start execution.
[0119] The second generation unit 506 generates second information representing how multiple physical qubits are allocated to the second part, in association with each group, based on the combination of the determination results of the second conditional branch in the second part, corresponding to each group classified by the classification unit 504. The second information represents, for example, how multiple physical qubits are allocated at the beginning of the second part, and how multiple physical qubits are allocated in the middle of the second part by inserting a second swap gate into the second part.
[0120] The second generator 506 generates second information, for example, based on the combination of the second conditional branch determination results in the second part corresponding to each group, so as to reduce the number of times the second swap gate is inserted into the second part, in association with that group. This allows the second generator 506 to determine how to allocate multiple physical qubits to the second part in association with each group. As a result, the second generator 506 can make the second part executable and enable the dynamic quantum circuit to complete execution.
[0121] The second generation unit 506 can, for example, estimate the combination of the judgment results for the second conditional branch before executing the second part, depending on the combination of the judgment results for the first conditional branch, and select appropriate second information. For this reason, the second generation unit 506 can dynamically switch, for example, how multiple physical qubits are allocated to the second part. Consequently, the second generation unit 506 can prevent an increase in the scale and depth of the dynamic quantum circuit, make it less likely for errors in the quantum state to occur, and improve the reliability of the dynamic quantum circuit.
[0122] The execution control unit 507 controls the execution unit 510 to execute the dynamic quantum circuit based on the first information generated and the second information generated. For example, the execution control unit 507 controls the execution unit 510 to execute the first part by assigning a plurality of physical qubits to the first part according to the first information. For example, after executing the first part, the execution control unit 507 controls the execution unit 510 to execute the second part by assigning a plurality of physical qubits to the second part according to the second information generated in association with the group to which the current combination of the first conditional branch judgment result belongs.
[0123] Specifically, the execution control unit 507 controls the execution unit 510 to execute the first part and the second part in order, as described above, by passing the first information, the second information, and the dynamic quantum circuit together to the execution unit 510. Specifically, the execution control unit 507 may control the execution unit 510 to execute the first part by passing the first information and the dynamic quantum circuit to the execution unit 510, and then control the execution unit 510 to execute the second part by passing the second information to the execution unit 510.
[0124] As a result, the execution control unit 507 can appropriately allocate multiple physical qubits to the dynamic quantum circuit and execute the dynamic quantum circuit. The execution control unit 507 can allocate multiple physical qubits to the second part within the coherence time, thereby enabling the dynamic quantum circuit to be executed appropriately.
[0125] The execution control unit 507 obtains the results of executing the dynamic quantum circuit from the execution unit 510. For example, the execution control unit 507 obtains from the execution unit 510 the results of measuring each of the multiple logic qubits that form the dynamic quantum circuit as a result of executing the dynamic quantum circuit. This allows the execution control unit 507 to obtain the results of executing the dynamic quantum circuit in a usable format.
[0126] The output unit 508 outputs the processing result of at least one of the functional units. The output format can be, for example, display on a screen, print to a printer, transmit to an external device via the network interface 303, or store in a storage area such as the memory 302 or recording medium 305. This allows the output unit 508 to notify the user of the processing result of at least one of the functional units, thereby improving the usability of the information processing device 100.
[0127] The output unit 508 outputs, for example, the dynamic quantum circuit, the first information generated by the first generation unit 505, and the second information generated by the second generation unit 506 in association. Specifically, the output unit 508 outputs the dynamic quantum circuit, the first information generated by the first generation unit 505, and the second information generated by the second generation unit 506 in association, so that it can be referenced by a user. Specifically, the output unit 508 may transmit the dynamic quantum circuit, the first information generated by the first generation unit 505, and the second information generated by the second generation unit 506 in association to another computer. The other computer is, for example, a client device 202. In this way, the output unit 508 can make the dynamic quantum circuit, the first information generated by the first generation unit 505, and the second information generated by the second generation unit 506 available to external parties. The output unit 508 can enable the dynamic quantum circuit to be properly executed externally.
[0128] The output unit 508 outputs, for example, the result of executing the dynamic quantum circuit acquired by the execution control unit 507. Specifically, the output unit 508 outputs the result of executing the dynamic quantum circuit in a way that is accessible to the user. Specifically, the output unit 508 may also transmit the result of executing the dynamic quantum circuit to another computer. The other computer may be, for example, a client device 202. This allows the output unit 508 to make the result of executing the dynamic quantum circuit available externally.
[0129] Here, we have described a case in which the identification unit 502 identifies two parts of the dynamic quantum circuit: a first part having one or more first conditional branches and a second part having one or more second conditional branches. However, it is not limited to this case. For example, the identification unit 502 may identify three or more parts of the dynamic quantum circuit, each having one or more conditional branches. In this case, the trial unit 503 obtains multiple execution paths, each representing a combination of the conditional branch determination results in the dynamic quantum circuit, based on the results of executing the dynamic quantum circuit multiple times.
[0130] The classification unit 504 refers to the multiple execution paths obtained and, for each of the three or more identified parts other than the first part, classifies the combination of conditional branching judgment results in one or more parts preceding that part into multiple groups. For example, for each of the parts other than the first part, the classification unit 504 classifies the combination of conditional branching judgment results in one or more parts preceding that part into multiple groups based on the similarity of the conditional branching judgment results in that part. One or more parts are, for example, all parts that exist before that part. One or more parts may also be, for example, the part that exists immediately before that part.
[0131] The first generation unit 505 generates first information representing how multiple physical qubits are allocated to the leading portion. The second generation unit 506 generates second information representing how multiple physical qubits are allocated to each of the three or more identified portions other than the leading portion, in association with each classified group. For example, the second generation unit 506 generates second information for each portion other than the leading portion, in association with each group, based on a combination of the conditional branching judgment results in that portion.
[0132] The execution control unit 507 controls the execution unit to execute the first part by assigning multiple physical qubits to the first part according to the first information it has generated. After executing the first part, the execution control unit 507 controls the execution unit to execute each of the remaining parts in order. When executing each part in order, the execution control unit 507 identifies the second information it has generated, which is associated with the group to which the current combination of conditional branch judgment results in one or more parts preceding that part belongs. When executing each part in order, the execution control unit 507 assigns multiple physical qubits to that part according to the identified second information.
[0133] As a result, the information processing device 100 can dynamically assign multiple physical qubits to each of the three or more parts included in the dynamic quantum circuit, each having one or more conditional branches, excluding the first part. The information processing device 100 can improve the reliability of the dynamic quantum circuit.
[0134] Here, we have described a case in which the information processing device 100 includes an acquisition unit 501, a identification unit 502, a trial unit 503, a classification unit 504, a first generation unit 505, a second generation unit 506, an execution control unit 507, and an output unit 508, but it is not limited to this. For example, the information processing device 100 may not include any of the functional units. Specifically, the information processing device 100 may not include the execution control unit 507. In this case, the information processing device 100 may be able to communicate with another computer that has an execution control unit 507.
[0135] (First example of operation of the information processing device 100) Next, a first example of operation of the information processing device 100 will be described using Figures 6 to 16.
[0136] Figures 6 to 16 are explanatory diagrams showing a first example of operation of the information processing device 100. In Figure 6, the information processing device 100 acquires a dynamic quantum circuit 600 relating to logical qubits q0, q1, q2, and q3 and classical bit c. The classical bit c stores the result of measuring one of the logical qubits q0, q1, q2, or q3.
[0137] The dynamic quantum circuit 600 includes quantum gates 601 to 608. The dynamic quantum circuit 600 has a conditional branch 610 corresponding to an if statement. The conditional branch 610 changes the quantum gate applied to the logical qubit depending on the result of a function f, which takes c0 (the result measured by quantum gate 608 and stored in classical bit c) as an argument. The function f will be described later, for example, using Figure 8. The conditional branch 610 includes quantum gates 611 and 612 to be applied to the logical qubit when the result of the function f is True. The conditional branch 610 includes quantum gate 613 to be applied to the logical qubit when the result of the function f is False.
[0138] The dynamic quantum circuit 600 includes quantum gates 621 to 625. The dynamic quantum circuit 600 has a conditional branch 630 corresponding to an if statement. The conditional branch 630 changes the quantum gate applied to the logical qubit depending on the result of the function f, which takes c1 (the result measured by quantum gate 625 and stored in classical bit c) as an argument. The conditional branch 630 includes quantum gates 631 to 633 to be applied to the logical qubit when the result of the function f is True. The conditional branch 630 includes quantum gates 634 and 635 to be applied to the logical qubit when the result of the function f is False.
[0139] The dynamic quantum circuit 600 includes a quantum gate 641. The dynamic quantum circuit 600 has a conditional branch 650 corresponding to an if statement. The conditional branch 650 changes the quantum gate applied to the logical qubit depending on the result of a function f, which takes c2 (the result measured by quantum gate 641 and stored in classical bit c) as its argument. The conditional branch 650 includes quantum gates 651 and 652 to be applied to the logical qubit when the result of the function f is True. The conditional branch 650 includes quantum gate 653 to be applied to the logical qubit when the result of the function f is False. Next, we will move on to the explanation of Figure 7.
[0140] In Figure 7, the information processing device 100 acquires real-world information about the quantum computing device 201. This real-world information includes, for example, the topology 700 of the physical qubits Q0, Q1, Q2, and Q3 of the quantum computing device 201. The topology 700 is a directed graph representing the orientation of two quantum gates acting on two logical qubits.
[0141] In the example in Figure 7, there is a constraint that a two-quantum gate must be implemented to control one of the physical qubits Q1, Q2, or Q3 depending on the physical qubit Q0. Specifically, it is not possible to implement a two-quantum gate to control physical qubit Q2 depending on physical qubit Q1. Therefore, when executing the dynamic quantum circuit 600, it may be necessary to reallocate the logic qubits q0, q1, q2, q3 and the physical qubits Q1, Q2, Q3 using a swap gate. Next, we will move on to the explanation of Figure 8 and describe the function f used in conditional branches 610, 630, and 650.
[0142] Figure 8 shows program 800 for function f. Function f has a Boolean argument b. Function f randomly generates an integer between 1 and 100 and assigns it to variable a. Function f returns False if variable a ≤ 10. Function f returns argument b if variable a > 10. Next, we will move on to the explanation of Figure 9.
[0143] In Figure 9, the information processing device 100 divides the dynamic quantum circuit 600 into a first half portion 910 and a second half portion 920. Based on user input, the information processing device 100 divides the dynamic quantum circuit 600 into a first half portion 910 and a second half portion 920 such that the subcircuit having two conditional branches 610 and 630 from the beginning of the dynamic quantum circuit 600 is the first half portion 910. The first half portion 910 is the range from the beginning to the dotted line 900. The second half portion 920 is the range from the dotted line 900 to the end.
[0144] As a result, the information processing device 100 can divide the dynamic quantum circuit 600 into a first part 910 that fixes the assignment of physical qubits Q0, Q1, Q2, and Q3, and a second part 920 that dynamically switches the assignment of physical qubits Q0, Q1, Q2, and Q3. Next, we will move on to the explanation of Figure 10.
[0145] In Figure 10, the information processing device 100 compiles the dynamic quantum circuit 600 and controls the quantum computing device 201 to run the dynamic quantum circuit 600 multiple times. The information processing device 100 obtains from the quantum computing device 201 multiple execution paths, each representing a combination of the judgment results of the conditional branches 610, 630, and 650 when the dynamic quantum circuit 600 was run.
[0146] The execution path represents, for example, a combination of the judgment results of conditional branches 610, 630, and 650. The judgment result is, for example, True or False. In the example in Figure 10, the information processing device 100 specifically obtains an execution path representing the combination of judgment results of conditional branches 610, 630, and 650, "True → False → True". Next, we will move on to the explanation of Figure 11.
[0147] In Figure 11, the information processing device 100 analyzes the acquired execution paths and generates correspondence information that represents the correspondence between the combination of the judgment results of conditional branches 610 and 630 in the first part 910 and the combination of the judgment results of conditional branch 650 in the second part 920.
[0148] In the example shown in Figure 11, the information processing device 100 specifically generates multiple first-half paths, each representing a combination of the judgment results of the conditional branches 610 and 630 in the first half 910, based on the multiple execution paths obtained. The first-half paths represent, for example, one of the combinations of the judgment results of the conditional branches 610 and 630: "True→True", "True→False", "False→True", and "False→False".
[0149] Specifically, the information processing device 100 generates a second half path that represents the probability of combinations of judgment results of conditional branch 650 in the second half 920, corresponding to each first half path, based on the multiple execution paths obtained. The second half path represents, for example, the probability of combinations of judgment results of conditional branch 650, such as "True: 70%, False: 30%". Specifically, as shown in Table 1100, the information processing device 100 generates correspondence information that represents the correspondence between each first half path and the second half path corresponding to that first half path.
[0150] Subsequently, the information processing device 100 classifies the multiple first-half paths into multiple groups based on the similarity of the second-half paths. For example, the information processing device 100 classifies one or more first-half paths where the probability of the second-half path being True is greater than or equal to the probability of it being False into the same group 1101. Also, for example, the information processing device 100 classifies one or more first-half paths where the probability of the second-half path being True is less than the probability of it being False into the same group 1102. Next, we will move on to the explanation of Figure 12.
[0151] In Figure 12, the information processing device 100 refers to the actual device information and determines how to assign logical qubits q0, q1, q2, q3 and physical qubits Q0, Q1, Q2, Q3 to the first half 910 of the dynamic quantum circuit 600. For example, based on multiple first-half passes, the information processing device 100 determines the assignment so that the average number of quantum gates applied to the logical qubits in the first half 910 is reduced.
[0152] Specifically, in the first part 910, the information processing device 100 determines how to allocate the quantum gates applied to the logical qubits in such a way that the average number of quantum gates applied to the logical qubits is reduced when each combination of the judgment results of the conditional branches 610 and 630 occurs. The information processing device 100 generates a partial quantum circuit 1200 that represents the result of inserting quantum gates such as swap gates into the first part 910 according to the determined allocation method.
[0153] In the example shown in Figure 12, the information processing device 100 specifically decides at the beginning of the first part 910 to assign the logical qubits q0, q1, q2, and q3 to the physical qubits Q3, Q1, Q2, and Q0 in order. Furthermore, the information processing device 100 specifically decides to reassign the logical qubits q0, q1, q2, and q3 to the physical qubits Q0, Q1, Q2, and Q3 in the middle of the first part 910 by inserting quantum gates 1201, 1211 to 1216.
[0154] Specifically, the information processing device 100 generates a partial quantum circuit 1200 that represents the result of inserting quantum gates 1201, 1211~1216 into the first part 910, depending on how the logical qubits q0, q1, q2, q3 and the physical qubits Q0, Q1, Q2, Q3 are assigned. Next, we will move on to the explanation of Figure 13.
[0155] In Figure 13, the information processing device 100, referring to the actual device information, determines how to assign logical qubits q0, q1, q2, q3 to the latter half 920 of the dynamic quantum circuit 600, corresponding to group 1101. For example, based on one or more latter-half passes corresponding to group 1101, the information processing device 100 determines the assignment method such that the number of quantum gates applied to the logical qubits in the latter half 920 is probabilistically reduced.
[0156] Specifically, in the latter part 920, the information processing device 100 determines an allocation method such that the number of quantum gates applied to the logic qubits is reduced when the result of the conditional branch 650 is True, because the probability of the result being True tends to be relatively high. According to the determined allocation method, the information processing device 100 generates a partial quantum circuit 1300 that represents the result of inserting quantum gates such as swap gates into the latter part 920.
[0157] In the example shown in Figure 13, the information processing device 100 specifically decides at the beginning of the latter part 920 to assign the logical qubits q0, q1, q2, and q3 to the physical qubits Q0, Q1, Q2, and Q3 in order. Furthermore, the information processing device 100 specifically decides to reassign the logical qubits q0, q1, q2, and q3 to the physical qubits Q0, Q1, Q2, and Q3 in the middle of the latter part 920 by inserting quantum gates 1301, 1311 to 1313.
[0158] Specifically, the information processing device 100 generates a partial quantum circuit 1300 that represents the result of inserting quantum gates 1301, 1311~1313 into the latter part 920, depending on how the logical qubits q0, q1, q2, q3 and the physical qubits Q0, Q1, Q2, Q3 are assigned. Next, we will move on to the explanation of Figure 14.
[0159] In Figure 14, the information processing device 100, referring to the actual device information, determines how to assign logical qubits q0, q1, q2, q3 to the latter half 920 of the dynamic quantum circuit 600, corresponding to group 1102. For example, based on one or more latter-half passes corresponding to group 1102, the information processing device 100 determines the assignment method such that the number of quantum gates applied to the logical qubits in the latter half 920 is probabilistically reduced.
[0160] Specifically, in the latter part 920, the information processing device 100 determines the allocation method such that the number of quantum gates applied to the logical qubits is reduced when the result of the conditional branch 650 is False, because the probability of the result being False tends to be relatively high. According to the determined allocation method, the information processing device 100 generates a partial quantum circuit 1400 that represents the result of inserting quantum gates such as swap gates into the latter part 920.
[0161] In the example shown in Figure 14, the information processing device 100 specifically decides at the beginning of the latter part 920 to assign the logical qubits q0, q1, q2, and q3 to the physical qubits Q0, Q1, Q2, and Q3 in order. Furthermore, the information processing device 100 specifically decides to reassign the logical qubits q0, q1, q2, and q3 to the physical qubits Q0, Q1, Q2, and Q3 in the middle of the latter part 920 by inserting quantum gates 1401-1403 and 1411.
[0162] Specifically, the information processing device 100 generates a partial quantum circuit 1400 that represents the result of inserting quantum gates 1401-1403 and 1411 into the latter part 920, depending on how the logical qubits q0, q1, q2, and q3 are assigned to the physical qubits Q0, Q1, Q2, and Q3. Next, we will move on to the explanation of Figure 15.
[0163] In Figure 15, the information processing device 100 uses the quantum computing device 201 to execute the generated partial quantum circuit 1200, which corresponds to the first half 910 of the dynamic quantum circuit 600, thereby identifying the current first half path. In the example in Figure 15, the current first half path represents the combination of the judgment results of conditional branches 610 and 630, which is "True → False".
[0164] This allows the information processing device 100 to start executing the dynamic quantum circuit 600. The information processing device 100 can obtain a criterion for estimating which of the generated partial quantum circuit 1300 and the generated partial quantum circuit 1400, which correspond to the latter half 920 of the dynamic quantum circuit 600, is preferable to execute. Next, we will move on to the explanation of Figure 16.
[0165] In Figure 16, the information processing device 100 identifies that the combination of the judgment results of conditional branches 610 and 630, "True → False," represented by the first half of the current pass, belongs to group 1102, as shown in Table 1600. Based on this, the information processing device 100 can infer that it is preferable to execute the partial quantum circuit 1400, which corresponds to the latter half 920 of the dynamic quantum circuit 600 and is generated in association with group 1102.
[0166] The information processing device 100 obtains the result of executing the dynamic quantum circuit 600 by using the quantum computing device 201 to execute a partial quantum circuit 1400 that was generated in association with group 1102, which corresponds to the latter half 920 of the dynamic quantum circuit 600. The result of executing the dynamic quantum circuit 600 includes, for example, the result of measuring the logic qubits at the end of the dynamic quantum circuit 600. This allows the information processing device 100 to complete the execution of the dynamic quantum circuit 600.
[0167] The information processing device 100 can, for example, appropriately assign physical qubits Q0, Q1, Q2, and Q3 to the dynamic quantum circuit 600 and execute the dynamic quantum circuit 600. Specifically, the information processing device 100 can easily switch the assignment of physical qubits Q0, Q1, Q2, and Q3 to the latter part 920 within the coherence time.
[0168] The information processing device 100 can, for example, prevent an increase in the size and depth of the dynamic quantum circuit 600 even when quantum gates such as swap gates are inserted into the dynamic quantum circuit 600. Therefore, the information processing device 100 can, for example, reduce the processing burden and processing time required when executing the dynamic quantum circuit 600. The information processing device 100 can, for example, reduce the probability of errors occurring in the quantum state, thereby improving the overall reliability of the dynamic quantum circuit 600.
[0169] (Second example of operation of the information processing device 100) Next, a second example of operation of the information processing device 100 will be explained using Figures 17 to 25.
[0170] Figures 17 to 25 are explanatory diagrams showing a second example of operation of the information processing device 100. In Figure 17, the information processing device 100 acquires a dynamic quantum circuit 1700 relating to logical qubits q0, q1, q2, and q3 and classical bit c. The classical bit c stores the result of measuring one of the logical qubits q0, q1, q2, or q3.
[0171] The dynamic quantum circuit 1700 includes quantum gates 1701 to 1708. The dynamic quantum circuit 1700 has a conditional branch 1710 corresponding to a while statement. The conditional branch 1710 controls the number of times the quantum gates are applied to the logical qubit, depending on the result of a function f, which takes c0 (the result measured by quantum gate 1708 and stored in classical bit c) as its argument. The function f follows, for example, the program 800 shown in Figure 8. The conditional branch 1710 includes quantum gates 1711 to 1713 that are repeatedly applied to the logical qubit while the result of the function f is True. The conditional branch 1710 stops applying quantum gates 1711 to 1713 to the logical qubit when the result of the function f is False.
[0172] The dynamic quantum circuit 1700 includes quantum gates 1721-1724. The dynamic quantum circuit 1700 has a conditional branch 1730 corresponding to a while statement. The conditional branch 1730 controls the number of times quantum gates are applied to a logical qubit, depending on the result of a function f, which takes c1 (the result measured by quantum gate 1724 and stored in classical bit c) as its argument. The conditional branch 1730 includes quantum gates 1731-1733 that are repeatedly applied to the logical qubit while the result of the function f is True. The conditional branch 1730 stops applying quantum gates 1731-1733 to the logical qubit when the result of the function f is False.
[0173] The dynamic quantum circuit 1700 includes quantum gates 1741 and 1742. The information processing device 100 also acquires real-world information about the quantum computing device 201, similar to that in Figure 7. This real-world information includes, for example, the topology 700 of the physical qubits Q0, Q1, Q2, and Q3 of the quantum computing device 201. The topology 700 is a directed graph representing the orientation of two quantum gates acting on two logical qubits. Next, we will move on to the explanation of Figure 18.
[0174] In Figure 18, the information processing device 100 divides the dynamic quantum circuit 1700 into a first part 1810 and a second part 1820. Based on user input, the information processing device 100 divides the dynamic quantum circuit 1700 into a first part 1810 and a second part 1820 such that the first part 1810 is the subcircuit having one conditional branch 1710 from the beginning of the dynamic quantum circuit 1700. The first part 1810 is the range from the beginning to the dotted line 1800. The second part 1820 is the range from the dotted line 1800 to the end.
[0175] As a result, the information processing device 100 can divide the dynamic quantum circuit 1700 into a first part 1810 that fixes the assignment of physical qubits Q0, Q1, Q2, and Q3, and a second part 1820 that switches the assignment of physical qubits Q0, Q1, Q2, and Q3. Next, we will move on to the explanation of Figure 19.
[0176] In Figure 19, the information processing device 100 compiles the dynamic quantum circuit 1700 and controls the quantum computing device 201 to run the dynamic quantum circuit 1700 multiple times. The information processing device 100 obtains from the quantum computing device 201 multiple execution paths, each representing a combination of the judgment results of the conditional branches 1710 and 1730 when the dynamic quantum circuit 1700 was run.
[0177] The execution path represents, for example, a combination of the judgment results of conditional branches 1710 and 1730. The judgment result is, for example, the number of loops. In the example in Figure 19, the information processing device 100 specifically obtains an execution path that represents the combination of the judgment results of conditional branches 1710 and 1730, "Loop1: 1 time → Loop2: 1 time". Loop1 represents conditional branch 1710. Loop2 represents conditional branch 1730. Next, we will move on to the explanation of Figure 20.
[0178] In Figure 20, the information processing device 100 analyzes the acquired execution paths and generates correspondence information that represents the correspondence between the combination of the judgment results of the conditional branch 1710 in the first part 1810 and the combination of the judgment results of the conditional branch 1730 in the second part 1820.
[0179] In the example shown in Figure 20, the information processing device 100 specifically generates multiple first-half paths, each representing a combination of the judgment results of the conditional branch 1710 in the first half 1810, based on the multiple execution paths obtained. The first-half paths represent, for example, combinations of the judgment results of the conditional branch 1710, such as "Loop1: 0 times", "Loop1: 1 time", "Loop1: 2 times", and "Loop1: 3 times or more".
[0180] Specifically, the information processing device 100 generates a second half path that represents the probability of combinations of judgment results of conditional branch 1730 in the second half 1820, corresponding to each first half path, based on the multiple execution paths obtained. The second half path represents, for example, the probability of combinations of judgment results of conditional branch 1730, such as "Loop2: {0 times: 90%, 1 time: 3%, 2 times: 2%, 3 or more times: 5%}". Specifically, the information processing device 100 generates correspondence information that represents the correspondence between each first half path and the second half path corresponding to that first half path, as shown in Table 2000.
[0181] Subsequently, the information processing device 100 classifies the multiple first-half passes into multiple groups based on the similarity of the second-half passes. For example, the information processing device 100 classifies first-half passes with one or more occurrences of Loop2 (2 or more occurrences) in the same group 2001 if the sum of the probabilities of Loop2 (2 or more occurrences) in the second-half passes is less than 50% and the number of Loop2 occurrences is relatively small. Also, the information processing device 100 classifies first-half passes with one or more occurrences of Loop2 (2 or more occurrences) in the same group 2002 if the sum of the probabilities of Loop2 (2 or more occurrences) in the second-half passes is 50% or more and the number of Loop2 occurrences is relatively large. Next, we will move on to the explanation of Figure 21.
[0182] In Figure 21, the information processing device 100, referring to actual device information, determines how to assign logical qubits q0, q1, q2, q3 and physical qubits Q0, Q1, Q2, Q3 to the first half 1810 of the dynamic quantum circuit 1700. For example, based on multiple first-half passes, the information processing device 100 determines the assignment so that the average number of quantum gates applied to the logical qubits in the first half 1810 is reduced.
[0183] Specifically, the information processing device 100 determines how to allocate the quantum gates in the first part 1810 such that, on average, the number of quantum gates applied to the logical qubits is reduced when each combination of the judgment results of the conditional branch 1710 occurs. The information processing device 100 generates a partial quantum circuit 2100 that represents the result of inserting quantum gates such as swap gates into the first part 1810 according to the determined allocation method.
[0184] In the example shown in Figure 21, the information processing device 100 specifically decides at the beginning of the first half 1810 to assign the logical qubits q0, q1, q2, and q3 to the physical qubits Q3, Q1, Q2, and Q0 in order. Furthermore, the information processing device 100 specifically decides to reassign the logical qubits q0, q1, q2, and q3 to the physical qubits Q0, Q1, Q2, and Q3 in the middle of the first half 1810 by inserting the quantum gate 2101.
[0185] Specifically, the information processing device 100 generates a partial quantum circuit 2100 that represents the result of inserting a quantum gate 2101 into the first part 1810, depending on how the logical qubits q0, q1, q2, q3 and the physical qubits Q0, Q1, Q2, Q3 are assigned. Next, we will move on to the explanation of Figure 22.
[0186] In Figure 22, the information processing device 100, referring to the actual device information, determines how to assign logical qubits q0, q1, q2, q3 and physical qubits Q0, Q1, Q2, Q3 to the latter half 1820 of the dynamic quantum circuit 1700, in association with group 2001. For example, based on one or more latter-half passes corresponding to group 2001, the information processing device 100 determines the assignment method such that the number of quantum gates applied to the logical qubits in the latter half 1820 is probabilistically reduced.
[0187] Specifically, in the latter part 1820, the information processing device 100 determines an allocation method such that the number of quantum gates applied to the logic qubits is reduced when the number of Loop2 operations is relatively small. The information processing device 100 generates a partial quantum circuit 2200 that represents the result of inserting quantum gates such as swap gates into the latter part 1820 according to the determined allocation method.
[0188] In the example shown in Figure 22, the information processing device 100 specifically decides at the beginning of the latter part 1820 to assign the logical qubits q0, q1, q2, and q3 to the physical qubits Q0, Q1, Q2, and Q3 in order. Furthermore, the information processing device 100 specifically decides to reassign the logical qubits q0, q1, q2, and q3 to the physical qubits Q0, Q1, Q2, and Q3 midway through the latter part 1820 by inserting the quantum gates 2201, 2211, and 2212. Specifically, the information processing device 100 generates a partial quantum circuit 2200 that represents the result of inserting the quantum gates 2201, 2211, and 2212 into the latter part 1820 according to the determined assignment method. Next, we will move on to the explanation of Figure 23.
[0189] In Figure 23, the information processing device 100, referring to the actual device information, determines how to assign logical qubits q0, q1, q2, q3 and physical qubits Q0, Q1, Q2, Q3 to the latter half 1820 of the dynamic quantum circuit 1700, in association with group 2002. For example, based on one or more latter-half passes corresponding to group 2002, the information processing device 100 determines the assignment method such that the number of quantum gates applied to the logical qubits in the latter half 1820 is probabilistically reduced.
[0190] Specifically, in the latter part 1820, the information processing device 100 determines an allocation method such that the number of quantum gates applied to the logic qubits decreases when the number of Loop2 operations is relatively high. The information processing device 100 generates a partial quantum circuit 2300 that represents the result of inserting quantum gates such as swap gates into the latter part 1820 according to the determined allocation method.
[0191] In the example shown in Figure 23, the information processing device 100 specifically decides at the beginning of the latter part 1820 to assign the logical qubits q0, q1, q2, and q3 to the physical qubits Q0, Q1, Q2, and Q3 in order. Furthermore, the information processing device 100 specifically decides to reassign the logical qubits q0, q1, q2, and q3 to the physical qubits Q0, Q1, Q2, and Q3 midway through the latter part 1820 by inserting the quantum gates 2301, 2302, and 2311. Specifically, the information processing device 100 generates a partial quantum circuit 2300 that represents the result of inserting the quantum gates 2301, 2302, and 2311 into the latter part 1820 according to the determined assignment method. Next, we will move on to the explanation of Figure 24.
[0192] In Figure 24, the information processing device 100 uses the quantum computing device 201 to execute the generated partial quantum circuit 2100, which corresponds to the first half 1810 of the dynamic quantum circuit 1700, thereby identifying the current first half path. In the example in Figure 15, the current first half path represents "Loop1: 2 times," which is a combination of the judgment results of the conditional branch 1710.
[0193] This allows the information processing device 100 to start executing the dynamic quantum circuit 1700. The information processing device 100 can obtain a criterion for estimating which of the generated partial quantum circuit 2200 and the generated partial quantum circuit 2300, which correspond to the latter part 1820 of the dynamic quantum circuit 1700, is preferable to execute. Next, we will move on to the explanation of Figure 25.
[0194] In Figure 25, the information processing device 100 identifies that "Loop1: 2 times," which is the combination of the judgment results of conditional branch 1710 represented by the first half of the current pass, belongs to group 2001, as shown in Table 2500. Based on this, the information processing device 100 can infer that it is preferable to execute the partial quantum circuit 2200, which corresponds to the latter half 1820 of the dynamic quantum circuit 1700 and is generated in association with group 2001.
[0195] The information processing device 100 obtains the result of executing the dynamic quantum circuit 1700 by using the quantum computing device 201 to execute a partial quantum circuit 2200 that was generated in association with group 2001, which corresponds to the latter part 1820 of the dynamic quantum circuit 1700. The result of executing the dynamic quantum circuit 1700 includes, for example, the result of measuring the logic qubits at the end of the dynamic quantum circuit 1700. This allows the information processing device 100 to complete the execution of the dynamic quantum circuit 1700.
[0196] The information processing device 100 can, for example, appropriately assign physical qubits Q0, Q1, Q2, and Q3 to the dynamic quantum circuit 1700 and execute the dynamic quantum circuit 1700. Specifically, the information processing device 100 can easily switch the assignment of physical qubits Q0, Q1, Q2, and Q3 to the latter part 1820 within the coherence time.
[0197] The information processing device 100 can, for example, prevent an increase in the size and depth of the dynamic quantum circuit 1700 even when quantum gates such as swap gates are inserted into the dynamic quantum circuit 1700. Therefore, the information processing device 100 can, for example, reduce the processing burden and processing time required when executing the dynamic quantum circuit 1700. The information processing device 100 can, for example, reduce the probability of errors occurring in the quantum state, thereby improving the overall reliability of the dynamic quantum circuit 1700.
[0198] (Third example of operation of the information processing device 100) Next, a third example of operation of the information processing device 100 will be described using Figures 26 and 27. Specifically, the first and second examples of operation described the case in which the information processing device 100 divides the target dynamic quantum circuits 600 and 1700 into two. In contrast, the third example of operation describes the case in which the information processing device 100 divides the target dynamic quantum circuit 2600 into three or more.
[0199] Figures 26 and 27 are explanatory diagrams showing a third example of operation of the information processing device 100. In Figures 26 and 27, the information processing device 100 acquires a dynamic quantum circuit 2600 relating to logical qubits q0, q1, q2, and q3 and classical bit c.
[0200] Since the dynamic quantum circuit 2600 is identical to the dynamic quantum circuit 600, the elements forming the dynamic quantum circuit 2600 are given the same designation as the elements forming the dynamic quantum circuit 600, and their explanation is omitted. The information processing device 100 acquires actual machine information regarding the quantum computing device 201.
[0201] The information processing device 100 divides the dynamic quantum circuit 600 into a first part 2610, an intermediate part 2620, and a second part 2630. The first part 2610 is the range from the beginning to the dotted line 2601. The intermediate part is the range from the dotted line 2601 to the dotted line 2602. The second part 2630 is the range from the dotted line 2602 to the end.
[0202] This allows the information processing device 100 to identify the first part 2610, which fixes the allocation of the physical qubits Q0, Q1, Q2, and Q3. The information processing device 100 can also identify the middle part 2620 and the latter part 2630, which dynamically switch the allocation of the physical qubits Q0, Q1, Q2, and Q3. In the following description, the range formed by concatenating the first part 2610 and the middle part 2620 may be referred to as the "concatenated part 2640".
[0203] The information processing device 100 compiles the dynamic quantum circuit 600 and controls the quantum computing device 201 to run the dynamic quantum circuit 600 multiple times. The information processing device 100 obtains from the quantum computing device 201 multiple execution paths, each representing a combination of the judgment results of the conditional branches 610, 630, and 650 when the dynamic quantum circuit 600 was run. Next, we will move on to the explanation of Figure 27.
[0204] In Figure 27, the information processing device 100 analyzes the acquired execution paths and generates first correspondence information for pairs of the first part 2610 and the middle part 2620. The first correspondence information represents the correspondence between the combination of the judgment results of the conditional branch 610 in the first part 2610 and the combination of the judgment results of the conditional branch 650 in the middle part 2620.
[0205] The information processing device 100 analyzes the acquired execution paths and generates second correspondence information for pairs of the linked portion 2640 and the latter portion 2630. The second correspondence information represents the correspondence between the combination of the judgment results of the conditional branches 610 and 630 in the linked portion 2640 and the combination of the judgment results of the conditional branch 650 in the latter portion 2630.
[0206] In the example shown in Figure 11, the information processing device 100 specifically generates multiple first-half paths, each representing a combination of the judgment results of the conditional branch 610 in the first half 2610, based on the multiple execution paths obtained. Each first-half path represents, for example, either "True" or "False," which are combinations of the judgment results of the conditional branch 610.
[0207] Furthermore, the information processing device 100 specifically generates intermediate paths that represent the probabilities of combinations of judgment results for conditional branch 630 in the intermediate section 2620, corresponding to each of the first half paths, based on the multiple execution paths obtained. The intermediate paths represent, for example, the probabilities of combinations of judgment results for conditional branch 630, such as "True: 70%, False: 30%".
[0208] Furthermore, the information processing device 100 specifically generates multiple linked paths based on the acquired multiple execution paths, each representing a combination of the judgment results of the conditional branches 610 and 630 in the linked section 2640. The linked paths represent, for example, one of the combinations of the judgment results of the conditional branches 610 and 630: "True→True", "True→False", "False→True", and "False→False".
[0209] Furthermore, the information processing device 100 specifically generates a second half path based on the acquired multiple execution paths, which represents the probability of combinations of judgment results for the conditional branch 650 in the second half 2630 corresponding to each linked path. The second half path represents, for example, the probability of combinations of judgment results for the conditional branch 650, such as "True: 70%, False: 30%".
[0210] Specifically, the information processing device 100 generates correspondence information representing the correspondence between each first half path and the intermediate path corresponding to that first half path, as shown in Table 2700. Furthermore, specifically, the information processing device 100 generates correspondence information representing the correspondence between each connected path and the second half path corresponding to that connected path, as shown in Table 2710.
[0211] Subsequently, the information processing device 100 classifies the multiple first-half paths into multiple groups based on the similarity of the intermediate paths. For example, the information processing device 100 classifies one or more first-half paths where the probability of an intermediate path being True is greater than or equal to the probability of an intermediate path being False into the same group 2701. Also, the information processing device 100 classifies one or more first-half paths where the probability of an intermediate path being True is less than the probability of an intermediate path being False into the same group 2702.
[0212] Furthermore, the information processing device 100 classifies multiple linked paths into multiple groups based on the similarity of the second half paths. For example, the information processing device 100 classifies one or more linked paths where the probability of the second half path being True is greater than or equal to the probability of it being False into the same group 2711. Also, the information processing device 100 classifies one or more linked paths where the probability of the second half path being True is less than the probability of it being False into the same group 2712.
[0213] The information processing device 100 determines how to assign logical qubits q0, q1, q2, q3 to the first half 2610 of the dynamic quantum circuit 600, similar to the operation examples 1 and 2. The information processing device 100 generates a first half quantum circuit that represents the result of inserting a quantum gate, such as a swap gate, into the first half 2610 according to the determined assignment.
[0214] The information processing device 100, similar to operation example 1 and operation example 2, determines how to assign logical qubits q0, q1, q2, q3 and physical qubits Q0, Q1, Q2, Q3 to the intermediate portion 2620, associating them with groups 2701 and 2702. The information processing device 100 generates an intermediate portion quantum circuit that represents the result of inserting quantum gates such as swap gates into the intermediate portion 2620, according to the determined assignments, as associated with groups 2701 and 2702.
[0215] The information processing device 100, similar to operation example 1 and operation example 2, determines how to assign logical qubits q0, q1, q2, q3 and physical qubits Q0, Q1, Q2, Q3 to the latter part 2630, corresponding to each group 2711, 2712. The information processing device 100 generates a latter part quantum circuit that represents the result of inserting quantum gates such as swap gates into the latter part 2630, corresponding to each group 2711, 2712, according to the determined assignment.
[0216] The information processing device 100 uses the quantum computing device 201 to execute the dynamic quantum circuit 2600 based on the first-half quantum circuit, the intermediate quantum circuit, and the second-half quantum circuit. The information processing device 100 identifies the current first-half path by executing the generated first-half quantum circuit corresponding to the first-half portion 2610, for example. This allows the information processing device 100 to start executing the dynamic quantum circuit 600. The information processing device 100 can obtain a criterion for estimating which of the generated intermediate quantum circuits corresponding to the intermediate portion 2620 is preferable to execute.
[0217] The information processing device 100 determines that it is preferable to execute the intermediate quantum circuit corresponding to the intermediate portion 2620, which was generated in association with either group 2701 or 2702 to which the current first pass belongs. The information processing device 100 identifies the current connected path by executing the intermediate quantum circuit corresponding to the intermediate portion 2620, which was generated in association with either group 2701 or 2702 to which the current first pass belongs. As a result, the information processing device 100 can continue executing the dynamic quantum circuit 600 up to the intermediate portion 2620. The information processing device 100 can obtain a criterion for estimating which of the generated second-half quantum circuits corresponding to the second-half portion 2630 is preferable to execute.
[0218] The information processing device 100 determines that it is preferable to execute the latter half quantum circuit corresponding to the latter half 2630, which was generated in association with either group 2711 or 2712 to which the current linked path belongs. The information processing device 100 obtains the result of executing the dynamic quantum circuit 2600 by executing the latter half quantum circuit corresponding to the latter half 2630, which was generated in association with either group 2711 or 2712 to which the current linked path belongs. As a result, the information processing device 100 can complete the execution of the dynamic quantum circuit 2600.
[0219] The information processing device 100 can, for example, appropriately assign physical qubits Q0, Q1, Q2, and Q3 to the dynamic quantum circuit 2600 and execute the dynamic quantum circuit 2600. Specifically, the information processing device 100 can easily switch the assignment of physical qubits Q0, Q1, Q2, and Q3 to the intermediate portion 2620 and the latter portion 2630 within the coherence time.
[0220] The information processing device 100 can, for example, prevent an increase in the size and depth of the dynamic quantum circuit 2600 even when quantum gates such as swap gates are inserted into the dynamic quantum circuit 2600. Therefore, the information processing device 100 can, for example, reduce the processing burden and processing time required when executing the dynamic quantum circuit 2600. The information processing device 100 can, for example, reduce the probability of errors occurring in the quantum state, thereby improving the overall reliability of the dynamic quantum circuit 2600.
[0221] Here, we have described a case in which the information processing device 100 generates first correspondence information for the pair of the first part 2610 and the middle part 2620, and second correspondence information for the pair of the connecting part 2640 and the latter part 2630, but it is not limited to this. For example, the information processing device 100 may also generate first correspondence information for the pair of the first part 2610 and the middle part 2620, and second correspondence information for the pair of the middle part 2620 and the latter part 2630.
[0222] In this case, the information processing device 100 can switch the allocation of physical qubits Q0, Q1, Q2, and Q3 to the intermediate section 2620 according to the current first pass during the execution of the dynamic quantum circuit 2600. Furthermore, the information processing device 100 can switch the allocation of physical qubits Q0, Q1, Q2, and Q3 to the latter half section 2630 according to the current intermediate pass during the execution of the dynamic quantum circuit 2600.
[0223] (Overall processing procedure) Next, using Figure 28, an example of the overall processing procedure executed by the information processing device 100 using the quantum computing device 201 will be described. The overall processing is realized, for example, by the CPU 301 shown in Figure 3, storage areas such as memory 302 and recording medium 305, and network I / F 303.
[0224] Figure 28 is a flowchart illustrating an example of the overall processing procedure. In Figure 28, the information processing device 100 acquires the dynamic quantum circuit (step S2801). The information processing device 100 also acquires actual machine information regarding the quantum computing device 201 (step S2802). The information processing device 100 also acquires execution parameters (step S2803).
[0225] Next, the information processing device 100 divides the acquired dynamic quantum circuit into a first half and a second half (step S2804). Then, using the quantum computing device 201, the information processing device 100 executes the entire dynamic quantum circuit multiple times based on the acquired execution parameters and generates multiple execution paths (step S2805).
[0226] Next, the information processing device 100 classifies the partial paths corresponding to the divided first half into multiple groups based on the multiple execution paths, according to the similarity to the partial paths corresponding to the divided second half (step S2806).
[0227] Then, the information processing device 100 refers to the acquired actual machine information and compiles the divided first half based on the partial path corresponding to the divided first half (step S2807). The information processing device 100 also refers to the acquired actual machine information and compiles the divided second half based on the partial path classified into the group corresponding to the divided second half (step S2808).
[0228] Next, the information processing device 100 sets i to 1 (step S2809). Then, the information processing device 100 uses the quantum computing device 201 to execute the compiled first half and obtain the partial path corresponding to the first half (step S2810).
[0229] Next, the information processing device 100 identifies the group to which the acquired partial path belongs from among several groups (step S2811). Then, the information processing device 100 identifies the compiled latter part corresponding to the identified group (step S2812).
[0230] Next, the information processing device 100 uses the quantum computing device 201 to execute the identified compiled second half (step S2813). Then, the information processing device 100 increments i (step S2814).
[0231] Next, the information processing device 100 determines whether i > N (step S2815). If i > N is not true (step S2815: No), the information processing device 100 proceeds to the process in step S2810. On the other hand, if i > N (step S2815: Yes), the information processing device 100 proceeds to the process in step S2816.
[0232] In step S2816, the information processing device 100 outputs the execution result of the dynamic quantum circuit (step S2816). Then, the information processing device 100 terminates the entire process. As a result, the information processing device 100 can appropriately allocate physical qubits to the dynamic quantum circuit and execute the dynamic quantum circuit.
[0233] Here, the information processing device 100 may perform some of the steps in Figure 28 in a different order. For example, the order of steps S2801 to S2803 can be changed. Also, the information processing device 100 may omit some of the steps in Figure 28. For example, the steps S2809 to S2816 can be omitted.
[0234] As explained above, the information processing device 100 can identify a part of a quantum circuit having multiple conditional branches, specifically a first part having one or more first conditional branches, and a second part located after the first part and having one or more second conditional branches. The information processing device 100 can obtain multiple execution paths, each representing a combination of conditional branch determination results in the quantum circuit, based on the results of executing the quantum circuit multiple times. The information processing device 100 can refer to the multiple execution paths and classify the combinations of first conditional branch determination results in the identified first part into multiple groups based on the similarity between the combinations of second conditional branch determination results in the identified second part. The information processing device 100 can generate first information representing how multiple physical qubits are allocated to the first part. The information processing device 100 can generate second information representing how multiple physical qubits are allocated to the second part, associated with each group, based on the combinations of second conditional branch determination results in the second part corresponding to that group. According to the information processing device 100, the execution unit can be controlled to allocate multiple physical qubits to a first part according to the generated first information and execute the first part. According to the information processing device 100, after executing the first part, the execution unit can be controlled to allocate multiple physical qubits to a second part according to the second information corresponding to the group to which the current combination of the first conditional branch judgment result belongs and execute the second part. In this way, the information processing device 100 can reduce the size and depth of the quantum circuit during execution, allocate physical qubits to the quantum circuit, and execute the quantum circuit.
[0235] According to the information processing device 100, the quantum circuit can be identified by dividing it into a first part having a first conditional branch of a first fraction of duration, and a second part having a second conditional branch of a second fraction of duration, according to a predetermined rule. As a result, the information processing device 100 can identify the first part and the second part even if they are not pre-configured.
[0236] According to the information processing device 100, multiple execution paths can be obtained based on the results of executing the quantum circuit multiple times, which are obtained by controlling the execution unit to execute the quantum circuit. As a result, the information processing device 100 can control the execution unit to actually execute the quantum circuit and obtain multiple execution paths.
[0237] According to the information processing device 100, if the quantum circuit has a conditional branch corresponding to an if statement, it can obtain multiple execution paths, each containing True or False, which are the results of the judgment in the if statement. As a result, the information processing device 100 can obtain execution paths that contain information that serves as a guideline for allocating multiple physical qubits to the quantum circuit.
[0238] According to the information processing device 100, if the quantum circuit has a conditional branch corresponding to a while statement, it is possible to obtain multiple execution paths, each containing the number of loop iterations, which are the result of the determination in the while statement. As a result, the information processing device 100 can obtain execution paths containing information that serves as a guideline for allocating multiple physical qubits to the quantum circuit.
[0239] The information processing device 100 can generate first information representing how to allocate multiple physical qubits at the beginning of the first part, and how to allocate multiple physical qubits in the middle of the first part by inserting a first swap gate into the first part. The information processing device 100 can generate first information such that, for example, the number of times the first swap gate is inserted into the first part is reduced. As a result, the information processing device 100 can appropriately allocate multiple physical qubits to the first part and generate first information.
[0240] According to the information processing device 100, second information can be generated that represents how multiple physical qubits are allocated at the beginning of the second part, and how multiple physical qubits are allocated in the middle of the second part by inserting a second swap gate into the second part. According to the information processing device 100, for example, based on the combination of the determination results of the second conditional branch corresponding to each group, second information can be generated in association with the group so as to reduce the number of times the second swap gate is inserted into the second part. As a result, the information processing device 100 can appropriately allocate multiple physical qubits to the second part and generate second information.
[0241] According to the information processing device 100, by utilizing a clustering method and referring to multiple execution paths, the combination of the first conditional branch judgment results can be classified into multiple groups based on the similarity between the combinations of the second conditional branch judgment results. As a result, the information processing device 100 can accurately classify the combination of the first conditional branch judgment results into multiple groups.
[0242] According to the information processing device 100, the device can be divided into a first part having a first number of conditional branches that are less than or equal to a predetermined upper limit, which is designated as the first conditional branch, and a second part having a second number of conditional branches that are designated as the second conditional branch. This allows the information processing device 100 to make the scale of the second part, which dynamically switches the allocation method of multiple physical qubits, relatively large.
[0243] According to the information processing device 100, the execution unit located inside the information processing device 100 can be controlled. This allows the information processing device 100 to execute quantum circuits internally.
[0244] According to the information processing device 100, it is possible to control the execution unit, which is the actual quantum computer located outside the information processing device 100. This allows the information processing device 100 to control the execution unit to execute quantum circuits externally.
[0245] According to the information processing device 100, it is possible to identify three or more parts included in a quantum circuit having multiple conditional branches, each having one or more conditional branches. According to the information processing device 100, based on the results of executing the quantum circuit multiple times, it is possible to obtain multiple execution paths, each representing a combination of the conditional branch judgment results in the quantum circuit. According to the information processing device 100, by referring to the multiple execution paths, it is possible to classify the combinations of conditional branch judgment results in one or more parts preceding each part other than the first part into multiple groups. According to the information processing device 100, it is possible to generate first information representing how to allocate multiple physical qubits to the first part. According to the information processing device 100, for each part other than the first part, it is possible to generate second information representing how to allocate multiple physical qubits to that part, associated with each of the classified groups. According to the information processing device 100, according to the generated first information, it is possible to control the execution unit to allocate multiple physical qubits to the first part and execute the first part. According to the information processing device 100, after executing the first part, it is possible to control the execution unit to execute each of the parts other than the first part in order. According to the information processing device 100, multiple physical qubits can be assigned to the execution part according to second information generated by associating the current combination of conditional branch judgment results in one or more parts preceding the execution part with the group to which it belongs. This allows the information processing device 100 to dynamically assign multiple physical qubits to each of the three or more parts, excluding the first part. The information processing device 100 can improve the reliability of the quantum circuit.
[0246] The information processing method described in this embodiment can be implemented by executing a pre-prepared program on a computer such as a PC or workstation. The information processing program described in this embodiment is recorded on a computer-readable recording medium and executed by being read from the recording medium by the computer. The recording medium can be a hard disk, flexible disk, CD (Compact Disc)-ROM, MO (Magneto Optical Disc), DVD (Digital Versatile Disc), etc. Furthermore, the information processing program described in this embodiment may be distributed via a network such as the Internet.
[0247] With regard to the embodiments described above, the following additional information is disclosed.
[0248] (Note 1) A part included in a quantum circuit having multiple conditional branches, which is defined as a first part having one or more first conditional branches, and a second part located after the first part in the quantum circuit and having one or more second conditional branches, Based on the results of executing the quantum circuit multiple times using a quantum computer having multiple physical qubits, multiple execution paths are obtained, each representing a combination of the conditional branching judgment results in the quantum circuit. By referring to the multiple execution paths obtained, the combinations of the first conditional branch judgment results in the identified first part are classified into multiple groups based on the similarity between the combinations of the second conditional branch judgment results in the identified second part. First information is generated that represents how the plurality of physical qubits are allocated to the first part, Based on the combination of the determination results of the second conditional branch in the second part corresponding to each of the classified groups, second information is generated that represents how the multiple physical qubits are allocated to the second part in association with the group. The quantum computer executing the quantum circuit is controlled to allocate the plurality of physical qubits to a first part according to the generated first information, execute the first part, and then, according to second information generated in association with the group to which the current combination of the first conditional branch judgment results in the executed first part belongs, allocate the plurality of physical qubits to a second part and execute the second part. An information processing program characterized by having a computer perform the processing.
[0249] (Note 2) The process to be specified above is: The information processing program according to Appendix 1, characterized in that the quantum circuit is divided into a first part having a first conditional branch of a first fraction of the same duration, which serves as the first conditional branch, and a second part having a second conditional branch of a second fraction of the same duration, in accordance with a predetermined rule, thereby identifying the first part and the second part.
[0250] (Note 3) The process to be obtained above is: The information processing program according to Appendix 2, characterized in that it obtains the plurality of execution paths based on the results of executing the quantum circuit multiple times, which are obtained by controlling the quantum computer to execute the quantum circuit.
[0251] (Note 4) If the quantum circuit has the conditional branch corresponding to the if statement, The information processing program according to Appendix 3, characterized in that each of the aforementioned multiple execution paths includes True or False, which is the result of the determination in the if statement.
[0252] (Note 5) If the quantum circuit has the conditional branch corresponding to the while statement, The information processing program described in Appendix 4, characterized in that each of the aforementioned multiple execution paths includes the number of loop iterations which is the result of the determination in the while statement.
[0253] (Note 6) The first information represents the allocation of the plurality of physical qubits at the beginning of the first part, and the allocation of the plurality of physical qubits in the middle of the first part by inserting the first swap gate into the first part. The process for generating the first information is: The information processing program according to Appendix 5, characterized in that it generates the first information such that the number of times the first swap gate is inserted into the first part is reduced.
[0254] (Note 7) The second information represents the allocation of the plurality of physical qubits at the beginning of the second part, and the allocation of the plurality of physical qubits in the middle of the second part by inserting a second swap gate into the second part. The process for generating the aforementioned second information is: The information processing program according to Appendix 6, characterized in that it generates the second information in association with each group, based on the combination of the determination results of the second conditional branch in the second part corresponding to each of the aforementioned groups, such that the number of times the second swap gate is inserted in the second part is reduced.
[0255] (Note 8) The above classification process is The information processing program according to Appendix 7, characterized in that it uses a clustering method to refer to the acquired plurality of execution paths and classifies the combination of the determination results of the first conditional branch in the identified first part into a plurality of groups based on the similarity between the combinations of determination results of the second conditional branch in the identified second part.
[0256] (Note 9) The information processing program according to Note 2, characterized in that the first number is less than or equal to a predetermined upper limit.
[0257] (Note 10) The information processing program described in any one of Notes 1 to 9, characterized in that the quantum computer exists inside the computer.
[0258] (Note 11) The information processing program according to any one of Notes 1 to 9, characterized in that the quantum computer exists outside the computer.
[0259] (Note 12) Three or more parts included in the quantum circuit, each having one or more of the conditional branches, Based on the results of executing the quantum circuit multiple times using the quantum computer, multiple execution paths are obtained, each representing a combination of the conditional branching judgment results in the quantum circuit. By referring to the multiple execution paths obtained, and with respect to each of the three or more identified parts other than the first part, the combinations of the conditional branching judgment results in one or more parts preceding that part are classified into multiple groups based on the similarity of the conditional branching judgment results in that part. First information is generated that represents how the multiple physical qubits are assigned to the aforementioned leading portion. For each of the three or more identified parts other than the first part, second information is generated that represents how the multiple physical qubits are allocated to that part, in association with the group, based on the combination of the conditional branching determination results in that part corresponding to each of the classified multiple groups. In accordance with the first information generated, the plurality of physical qubits are assigned to the first part, and after executing the first part, when executing each part other than the first part in order, the quantum computer is controlled to assign the plurality of physical qubits to that part according to the second information generated in association with the group to which the current combination of the conditional branching judgment results in one or more parts preceding that part belongs among the classified plurality of groups. An information processing program according to any one of the appendices 1 to 11, characterized in that it causes the computer to perform the processing.
[0260] (Appendix 13) A part included in a quantum circuit having a plurality of conditional branches, comprising a first part having one or more first conditional branches, and a second part that exists behind the first part in the quantum circuit and has one or more second conditional branches, identify, Based on the results of executing the quantum circuit multiple times using a quantum computer having a plurality of physical qubits, obtain a plurality of execution paths respectively representing combinations of determination results of the conditional branches in the quantum circuit, Refer to the obtained plurality of execution paths, and classify the combinations of determination results of the first conditional branches in the identified first part into a plurality of groups based on the similarity between the combinations of determination results of the second conditional branches in the identified second part, Generate first information representing the assignment method of the plurality of physical qubits to the first part, Based on the combination of determination results of the second conditional branches in the second part corresponding to each of the classified plurality of groups, generate second information representing the assignment method of the plurality of physical qubits to the second part in association with the group, According to the generated first information, assign the plurality of physical qubits to the first part, and after executing the first part, according to the second information generated in association with the group to which the current combination of determination results of the first conditional branches in the executed first part belongs, assign the plurality of physical qubits to the second part and execute the second part, control the quantum computer that executes the quantum circuit, An information processing method characterized in that a computer executes the process.
[0261] (Appendix 14) A part included in a quantum circuit having a plurality of conditional branches, comprising a first part having one or more first conditional branches, and a second part that exists behind the first part in the quantum circuit and has one or more second conditional branches, identify, Based on the results of executing the quantum circuit multiple times using a quantum computer having a plurality of physical qubits, obtain a plurality of execution paths respectively representing combinations of determination results of the conditional branches in the quantum circuit, Referring to the obtained plurality of execution paths, classify the combinations of the determination results of the first conditional branch in the identified first part into a plurality of groups based on the similarity between the combinations of the determination results of the second conditional branch in the identified second part, Generate first information representing the allocation method of the plurality of physical qubits to the first part, Based on the combination of the determination results of the second conditional branch in the second part corresponding to each of the classified plurality of groups, generate second information representing the allocation method of the plurality of physical qubits to the second part in association with the group, According to the generated first information, allocate the plurality of physical qubits to the first part and execute the first part. After that, according to the second information generated in association with the group to which the current combination of the determination results of the first conditional branch in the executed first part belongs, allocate the plurality of physical qubits to the second part and control the quantum computer that executes the quantum circuit to execute the second part, An information processing apparatus characterized by having a control unit.
Explanation of Signs
[0262] 100 Information processing apparatus 101,510 Execution unit 110 Quantum circuit 111~113,610,630,650,1710,1730 Conditional branch 114 First part 115 Second part 120 Execution path 131 First information 132 Second information 200 Information processing system 201 Quantum computing device 202 Client device 210 Network 300,400 Bus 301,401 CPU 302,402 Memory 303,403 Network I / F 304,404 Recording medium I / F 305,405 recording media 306 displays 307 Input device 406 Chassis I / F 407 cabinets 500 storage section 501 Acquisition Department 502 Specific part 503 Trial Unit 504 Classification Department 505 1st generation part 506 Second generation part 507 Execution Control Unit 508 Output section 600, 1700, 2600 Dynamic Quantum Circuits Quantum gates 601-608, 611-613, 621-625, 631-635, 641, 651-653, 1201, 1211-1216, 1301, 1311-1313, 1401-1403, 1411, 1701-1708, 1711-1713, 1721-1724, 1731-1733, 1741, 1742, 2101, 2201, 2211, 2212, 2301, 2302, 2311 700 Topologies 800 programs 900, 1800, 2601, 2602 (dotted line) 910,1810,2610 First half 920,1820,2630 second half 1100,1600,2000,2500,2700,2710 Table Groups 1101, 1102, 2001, 2002, 2701, 2702, 2711, 2712 1200,1300,1400,2100,2200,2300 partial quantum circuit 2620 Middle part 2640 Connecting part
Claims
1. A portion of a quantum circuit having multiple conditional branches is defined as a first portion having one or more first conditional branches, and a second portion located after the first portion in the quantum circuit having one or more second conditional branches. Based on the results of executing the quantum circuit multiple times using a quantum computer having multiple physical qubits, multiple execution paths are obtained, each representing a combination of the conditional branching judgment results in the quantum circuit. By referring to the multiple execution paths obtained, the combinations of the first conditional branch judgment results in the identified first part are classified into multiple groups based on the similarity between the combinations of the second conditional branch judgment results in the identified second part. First information is generated that represents how the plurality of physical qubits are allocated to the first part, Based on the combination of the determination results of the second conditional branch in the second part corresponding to each of the classified groups, second information is generated that represents how the multiple physical qubits are allocated to the second part in association with the group. The quantum computer executing the quantum circuit is controlled to assign the plurality of physical qubits to a first part according to the generated first information, execute the first part, and then, according to second information generated in association with the group to which the current combination of the first conditional branch judgment results in the executed first part belongs, assign the plurality of physical qubits to a second part and execute the second part. An information processing program characterized by having a computer perform the processing.
2. The process to be identified is, The information processing program according to claim 1, characterized in that the quantum circuit is divided into a first part having a first number of conditional branches that constitute the first conditional branch, and a second part having a second number of conditional branches that constitute the second conditional branch, in accordance with a predetermined rule, thereby identifying the first part and the second part.
3. The aforementioned acquisition process is, The information processing program according to claim 2, characterized in that it obtains the plurality of execution paths based on the results of executing the quantum circuit multiple times, which are obtained by controlling the quantum computer to execute the quantum circuit.
4. If the quantum circuit has the conditional branch corresponding to the if statement, The information processing program according to claim 3, characterized in that each of the plurality of execution paths includes True or False, which is the result of the determination in the if statement.
5. If the quantum circuit has the conditional branch corresponding to the while statement, The information processing program according to claim 4, characterized in that each of the plurality of execution paths includes the number of loop iterations which is the result of the determination in the while statement.
6. The first information represents the allocation of the plurality of physical qubits at the beginning of the first part, and the allocation of the plurality of physical qubits in the middle of the first part by inserting a first swap gate into the first part. The process for generating the first information is: The information processing program according to claim 5, characterized in that it generates the first information such that the number of times the first swap gate is inserted into the first part is reduced.
7. The second information represents the allocation of the plurality of physical qubits at the beginning of the second part, and the allocation of the plurality of physical qubits in the middle of the second part by inserting a second swap gate into the second part. The process for generating the second information is: The information processing program according to claim 6, characterized in that it generates the second information in association with each group, based on the combination of the determination results of the second conditional branch in the second part corresponding to each of the aforementioned groups, such that the number of times the second swap gate is inserted in the second part is reduced.
8. The aforementioned classification process is, The information processing program according to claim 7, characterized in that it uses a clustering method to refer to the acquired plurality of execution paths and classifies the combination of the determination results of the first conditional branch in the identified first part into a plurality of groups based on the similarity between the combinations of determination results of the second conditional branch in the identified second part.
9. A portion of a quantum circuit having multiple conditional branches is defined as a first portion having one or more first conditional branches, and a second portion located after the first portion in the quantum circuit having one or more second conditional branches. Based on the results of executing the quantum circuit multiple times using a quantum computer having multiple physical qubits, multiple execution paths are obtained, each representing a combination of the conditional branching judgment results in the quantum circuit. By referring to the multiple execution paths obtained, the combinations of the first conditional branch judgment results in the identified first part are classified into multiple groups based on the similarity between the combinations of the second conditional branch judgment results in the identified second part. First information is generated that represents how the plurality of physical qubits are allocated to the first part, Based on the combination of the determination results of the second conditional branch in the second part corresponding to each of the classified groups, second information is generated that represents how the multiple physical qubits are allocated to the second part in association with the group. The quantum computer executing the quantum circuit is controlled to assign the plurality of physical qubits to a first part according to the generated first information, execute the first part, and then, according to second information generated in association with the group to which the current combination of the first conditional branch judgment results in the executed first part belongs, assign the plurality of physical qubits to a second part and execute the second part. An information processing method characterized in that the processing is performed by a computer.
10. A portion of a quantum circuit having multiple conditional branches is defined as a first portion having one or more first conditional branches, and a second portion located after the first portion in the quantum circuit having one or more second conditional branches. Based on the results of executing the quantum circuit multiple times using a quantum computer having multiple physical qubits, multiple execution paths are obtained, each representing a combination of the conditional branching judgment results in the quantum circuit. By referring to the multiple execution paths obtained, the combinations of the first conditional branch judgment results in the identified first part are classified into multiple groups based on the similarity between the combinations of the second conditional branch judgment results in the identified second part. First information is generated that represents how the plurality of physical qubits are allocated to the first part, Based on the combination of the determination results of the second conditional branch in the second part corresponding to each of the classified groups, second information is generated that represents how the multiple physical qubits are allocated to the second part in association with the group. The quantum computer executing the quantum circuit is controlled to assign the plurality of physical qubits to a first part according to the generated first information, execute the first part, and then, according to second information generated in association with the group to which the current combination of the first conditional branch judgment results in the executed first part belongs, assign the plurality of physical qubits to a second part and execute the second part. An information processing device characterized by having a control unit.