METHOD FOR ANALYZING A SIMULATION OF THE EXECUTION OF A QUANTUM CIRCUIT
20200380397 · 2020-12-03
Inventors
Cpc classification
G06N10/40
PHYSICS
G06N10/00
PHYSICS
G06N10/80
PHYSICS
International classification
G06N10/00
PHYSICS
G06F11/34
PHYSICS
Abstract
A method for analyzing a simulation of the execution of a quantum circuit comprises: a step of post-selecting (S2) one or more particular values of one or more qubits at one or more steps of the simulation, a step of retrieving (S5), by an iterator (7), all or some of the quantum states of the quantum state vector(s) derived from the post-selection(s) of qubits, a step of analyzing (S6) the part of the simulation that corresponds to the post-selection(s) of qubits and to the quantum state vector(s) retrieved.
Claims
1. Method for analyzing a simulation of the execution of a quantum circuit, comprising: a step of post-selecting (S2) one or more particular values of one or more qubits at one or more steps of the simulation, a step of retrieving (S5), by an iterator (7), all or some of the quantum states of the quantum state vector(s) derived from the post-selection(s) of qubits, a step of analyzing (S6) the part of said simulation that corresponds to the post-selection(s) of qubits and to the quantum state vector(s) retrieved.
2. Method for analyzing a simulation of the execution of a quantum circuit according to the preceding claim, characterized in that it comprises, between the step of post-selection (S2) and the step of analysis (S6): a step of setting filtration (S3) that sets the value of one or more quantum states of the quantum state vector(s) derived from the post-selections of qubits.
3. Method for analyzing a simulation of the execution of a quantum circuit according to the preceding claim, characterized in that it comprises, between the step of post-selection (S2) and the step of analysis (S6), and before the step of retrieval (S5): the step of setting filtration (S3) that sets the value of one or more quantum states of the quantum state vector(s) derived from the post-selection(s) of qubits.
4. Method for analyzing a simulation of the execution of a quantum circuit according to any one of the claims 1 to 3, characterized in that it comprises: a step of identifying each quantum state of said quantum state vector(s) and a parameter representative of a probability that is respectively associated with said each quantum state, located between the step of post-selection (S2) and the step of retrieval (S5), the step of retrieval (S5) further comprising the retrieval of each parameter representative of the probability respectively associated with each quantum state.
5. Method for analyzing a simulation of the execution of a quantum circuit according to any one of the preceding claims, wherein the step of post-selecting (S2) one or more particular values of one or more qubits is carried out at the output of the measurement of said qubit(s).
6. Method for analyzing a simulation of the execution of a quantum circuit according to any one of the preceding claims, wherein the step of post-selecting (S2) one or more particular values of one or more qubits is carried out after a quantum gate operation on said qubit(s).
7. Method for analyzing a simulation of the execution of a quantum circuit according to any one of the preceding claims, characterized in that it comprises: a step of communicating quantum states of one or more quantum state vectors between on the one hand a simulator (2) in which those quantum states are stored and on the other hand an application terminal (6) wherein those quantum states will be analyzed, as those quantum states are communicated in multiple installments, with the quantity of data communicated in each one not exceeding the size of a buffer memory (8a, 8b), that buffer memory (8a, 8b) size being less than the size of the memory (3) storing those quantum states in the simulator (2), preferably at least 10 times smaller, and preferentially at least 100 times smaller.
8. Method for analyzing a simulation of the execution of a quantum circuit according to claim 7, characterized in that: the size of the buffer memory (8a, 8b), in the application terminal (6) and in the simulator (2) is large enough for the time taken to process the contents of that buffer memory (8a, 8b) by the application terminal (6) to be longer than the time taken to transfer the data communicated between the simulator (2) and the application terminal (6).
9. Method for analyzing a simulation of the execution of a quantum circuit according to one of the claims 7 to 8, characterized in that: the size of the buffer memory is between 1 MB and 100 MB, preferably between 3 MB and 20 MB.
10. Method for analyzing a simulation of the execution of a quantum circuit according to any one of the preceding claims, characterized in that: the step of analysis (S6) is followed by a step of debugging (S7) the execution of the quantum circuit.
11. Method for analyzing a simulation of the execution of a quantum circuit according to any one of the preceding claims, characterized in that it comprises, between the step of post-selection (S2) and the step of analysis (S6): a step of threshold filtration (S4), setting a probability threshold below which the corresponding quantum states are removed from the quantum state vector to which they belong, and/or a step of value filtration (S4), selecting a value of a quantum state for which the corresponding quantum states are kept in the quantum state vector.
12. Method for analyzing a simulation of the execution of a quantum circuit according to any one of claim 2, 3, or 11, characterized in that it comprises, following the step of setting filtration (S3): a step of renormalizing the quantum state vector, so that the sum of the probabilities of the quantum states kept in that quantum state vector is still equal to 1.
13. Method for analyzing a simulation of the execution of a quantum circuit according to any one of the preceding claims, characterized in that it: is integrated into an application programming interface (API) capable of accessing a server (4) including a quantum circuit execution simulator (2) and a module (5) for communicating with a remote application terminal (6) separate from the simulator (2).
14. Method for analyzing a simulation of the execution of a quantum circuit according to any one of the preceding claims, characterized in that: the number of qubits in the quantum circuit is between 2 and 1000, preferably between 10 and 50.
15. Method for analyzing a simulation of the execution of a quantum circuit, comprising: a step of post-selecting (S2) one or more particular values once the measurement of one or more qubits is output, a step of analyzing (S6) the part of said simulation that corresponds to the post-selection(s) of qubits.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0059] Other features, details, and benefits of the invention will become apparent upon reading the detailed description below and upon analyzing the attached drawings, in which:
[0060]
[0061]
[0062]
[0063]
[0064]
[0065]
DESCRIPTION OF THE EMBODIMENTS
[0066] Reference is now made to
[0067] The system 1 particularly comprises a simulator 2 of a quantum circuit. More specifically, the simulator 2 makes it possible to simulate a quantum processor.
[0068] As an output of the simulator 2, a quantum state vector is obtained. The quantum state vector comprises 2.sup.n quantum states, n being the number of qubits that the simulation relies upon.
[0069] For example, the quantum state vector comprises between 2.sup.2 and 2.sup.1000. In other words, the quantum circuit comprises between 2 and 1000 qubits. Preferably, the quantum state vector comprises for example between 2.sup.10 and 2.sup.50. In other words, the quantum circuit comprises between 10 and 50 qubits.
[0070] The simulator 2 comprises for example a memory 3. The memory 3 may particularly be able to store the quantum state vector obtained. The memory 3 therefore comprises a large storage capacity in order to be able to store a quantum state vector comprising between 2.sup.2 and 2.sup.1000 and preferably between 2.sup.10 and 2.sup.50 possible quantum states.
[0071] The simulator 2 is for example stored on a server 4.
[0072] The server 4 comprises for example a communication module 5a, making it possible to enter into communication with an application terminal 6 via a communication module 5b of the application terminal 6.
[0073] The application terminal 6 is for example remote from the server 4. The application terminal 6 particularly enables an analyst to access the quantum state vector in order to analyze it, without storing it.
[0074] To that end, an iterator 7 may be implemented within the system 1. The iterator 7 enables an interaction between the application terminal 6 and the simulator 2.
[0075] More specifically, the iterator 7 makes it possible to avoid duplicating all the information, in other words, the quantum state vector obtained at the output of the simulator 2, to the application terminal 6. In other words, the iterator 7 enables the retrieval of the information at the output of the simulator 2, on the application terminal 6. The iterator 7 therefore enables an analyst to access the information at the output of the simulator 2 in a simple way.
[0076] More specifically, the iterator 7 loops onto each quantum state of the quantum state vector obtained at the output of the simulator 2, so that each quantum state can be retrieved on the application terminal.
[0077] The iterator 7 may further comprise filters F1, F2, and F3 to be applied to the quantum state vector. Those filters are described in greater detail with reference to
[0078] Furthermore, the system 1 may comprise a buffer memory 8a implemented in the simulator 2, and a buffer memory 8b implemented in the application terminal 6.
[0079] The information obtained at the output of the simulator 2 is for example transmitted to the application terminal 6, by means of the iterator 7, via the buffer memories 8a, 8b.
[0080] The iterator 7 is stored in the simulator 2 and is in communication with the buffer memory 8a.
[0081] The use of buffer memories 8a, 8b makes it possible to greatly reduce the memory size needed to access the information obtained at the output of the simulator 2.
[0082] The size of the buffer memories 8a, 8b may be chosen so that the time taken to process the content of the buffer memory 8b by the application terminal 6 is greater than the time taken to transfer the information obtained at the output of the simulator 2 to the application terminal 6.
[0083] Thus, the size of the buffer memories 8a, 8b may be chosen to be 1 MB and 100 MB, and preferably between 3 MB and 20 MB.
[0084] The result is that the size of the buffer memories 8a, 8b is at least 10 times, and preferably at least 100 times smaller than the memory 3 storing the information obtained at the output of the simulator 2.
[0085] Thus, at the end of the simulation, a quantum state vector 2.sup.n is obtained. The quantum state vector 2.sup.n is stored in the memory 3 of the simulator 2. The memory 3 communicates with the iterator 7. More specifically, the memory 3 transmits sections of the quantum state vector 2.sup.n to the iterator 7. The iterator 7 is configured to process those sections of the quantum state vector 2.sup.n, particularly by means of the filters F1, F2, and F3. The iterator 7 is configured to send the sections of the quantum state vector to the buffer memory 8a of the simulator 2 which transmits them, via the communication interfaces 5a, 5b, to the application terminal 6. The buffer memory 8b of the application terminal 6 receives the sections of the quantum state vector, so that they can be analyzed by an analyst directly on the application terminal. Communication between the server 4 and the application terminal 6 is for example done by radio waves or over the Internet.
[0086] According to one embodiment variant, the iterator 7 is stored within the buffer memory 8a of the simulator 2.
[0087]
[0088] During the step of simulation S1, the simulation of the quantum circuit is launched. When simulating the execution of a quantum circuit, the quantum state vector obtained is made up of a plurality of qubits having a quantum state 0 and 1.
[0089] With reference to
[0090] Thus, when the qubit 2 is measured, a probability p is associated with one of the two quantum states 0 or 1, and a probability p1 is associated with the other quantum state 0 or 1.
[0091] With each measurement, a new probability is associated with each quantum state 0 or 1 of the measured qubits.
[0092] Thus, when the qubit n is measured, a probability p is associated with one of the two quantum states 0 or 1 for the first qubit, and a probability 1-p is associated with the other one of the two quantum states 0 or 1. Likewise, for the nth qubit, a probability p is associated with one of the two quantum states 0 or 1 of the nth qubit, and a probability 1-p is associated with the other one of the two quantum states 0 or 1 of the nth qubit.
[0093] The probabilities p, p and p are generally different, but may, in some cases, be equal.
[0094] During the simulation, intermediate measurements are taken for each qubit. Those intermediate measurements influence the quantum state of the measured qubits, leading to a qubit to be set to a quantum state between 0 and 1.
[0095] The simulation therefore makes it possible to obtain an execution tree, illustrated in
[0096] At the end of the execution, a plurality of quantum state vectors, comprising 2.sup.n quantum states, is obtained.
[0097] The triangles symbolize quantum operations that can be carried out on qubits. By quantum operations it is meant for example applying quantum gates to the qubits, which may or may not modify the values of the qubits.
[0098] In the post-selection step S2, one or more particular values of one or more qubits are post-selected at one or more steps of the simulation. Particular value means a particular quantum state.
[0099] In other words, it is possible to post-select one or more branches of the execution. More specifically, it is possible to post-select a quantum state from one or more qubits at the time of execution.
[0100] Post-selection may amount to choosing the values of the quantum states of the quantum state vector.
[0101] For a given simulation, the post-selections of values of qubits may be successive. The post-selections may also be repetitive. For example, it is possible to post-select the same qubit value several times. For example, it is possible to post-select different values for the same qubit several times. For example, it is possible to select different values of different qubits several times.
[0102] In the remainder of the description, the term post-selection is used, although multiple post-selections may be performed, as described above.
[0103] Post-selection is performed at multiple steps of the simulation. For example, post-selection is performed at the output of the measurement of the qubits.
[0104] Post-selection is performed following a quantum gate operation on the qubit.
[0105] Next, a setting filtration step S3 is carried out. The setting filtration step sets the value of one or more quantum states of the quantum state vector(s) derived from post-selection(s) of qubits.
[0106] The terms quantum state vector derived from post-selection(s) of qubits and quantum state vector of the post-selected qubit(s) are used interchangeably in the remainder of the description.
[0107] The setting filtration step S3 is for example performed by the iterator 7, and particularly by applying the filter F1 depicted in
[0108] The setting filtration step S3 is for example located between the step of post-selection S2 and the step of retrieval S5, described below.
[0109] The setting filtration step S3 particularly comprises the setting of quantum state values of the quantum state vector derived from post-selection.
[0110] The setting filtration step particularly enables the iterator 7 to not need to browse the entire quantum state vector derived from post-selection of qubits when it is retrieved on the application terminal 6.
[0111] More specifically, if, out of one quantum state vector derived from post-selection of qubits of n quantum states, three quantum states are set during the setting filtration step, a vector of size 2.sup.n-3 is retrieved by means of the iterator 7, rather than a quantum vector of size 2.sup.n as before.
[0112] The setting filtration step therefore further makes it possible to reduce the size of the information to be transmitted to the application terminal.
[0113] According to one embodiment, an additional filtration step S4 is performed.
[0114] The additional filtration step S4 is implemented by the iterator 7.
[0115] For example, the additional filtration step S4 may comprise threshold filtration and/or value filtration of the quantum states of the quantum state vector derived from the post-selection of qubits.
[0116] Threshold filtration particularly comprises the defining of a probability threshold for which the quantum states associated with a probability that fall below that threshold are not retained.
[0117] Threshold filtration is performed by applying the filter F2 illustrated in
[0118] Value filtration particularly comprises the defining of a quantum state value for which the quantum states of the quantum state vector derived from post-selection of qubits having that value are not retrieved.
[0119] Value filtration is performed by applying the filter F3 illustrated in
[0120] This additional step of filtration S4 makes it possible, on the one hand, to reduce the size of the information to be sent to the application terminal 6 by eliminating certain quantum states of the quantum state vector derived from post-selecting qubits, and, on the other hand, to increase the completeness of the analysis by focusing only on the quantum states deemed interesting.
[0121] The filtration types may be combined and/or stacked for multiple quantum states of the quantum state vector.
[0122] According to one embodiment, the steps of setting filtration S3 and additional filtration S4 may be followed by a step of renormalizing the filtered quantum state vector, during which the probability of each quantum state saved in the filtered quantum state vector is modified so that the sum of the probabilities of each quantum state is equal to 1.
[0123] Next, a step of retrieval S5, by the iterator 7, of all or some of the quantum states of the quantum state vector(s) derived from the post-selections of qubits and filtered is carried out.
[0124] The step of retrieval S5 may also comprise the retrieval, by the iterator 7, of all or some of the quantum states of the quantum state vector(s) derived from the post-selection of qubits and derived from different types of filtration, described with reference to the steps of setting filtration S3 and additional filtration S4.
[0125] The step of retrieval S5 may further comprise the retrieval of each of the probabilities associated with each quantum state of the retrieved quantum state vector, whether renormalized or not.
[0126] In particular, the iterator 7 is able to identify a parameter representative of the probability of each quantum state of the quantum state vector, between the step of post-selection and the step of retrieval, for example before the step of setting filtration.
[0127] The iterator 7 is for example able to read the quantum state vector, and to associate a probability with each quantum state. The iterator is further able, based on a complex model of the matrix stabilizer type, to recalculate the elements of the matrix in order to put them into the form of a readable quantum state vector and to associate a probability with each quantum state of that quantum state vector.
[0128] The iterator 7 is configured to iterate on each of the quantum states of the quantum state vector obtained after step S4, and potentially on the probabilities associated with them, so that an analyst can access it from the application terminal 6 for a step of analysis S6.
[0129] The step of analysis S6 comprises for example the comparison of the quantum states of the quantum state vector retrieved with the quantum states of the quantum state vector expected following the steps of post-selection S2 and setting filtration S3.
[0130] In the step of debugging S7, the data from the analysis may be used for the purposes of debugging the execution of the quantum circuit.
[0131] The method is implemented on an application programming interface (or API) that can access the server 4.
[0132] In one variant, the threshold filtration particularly comprises the defining of a probability threshold for which the quantum states associated with a probability that fall above that threshold are not retained.
[0133] In one variant, the value filtration particularly comprises the defining of a quantum state value for which only the quantum states of the quantum state vector derived from post-selection of qubits having that value are retrieved.
INDUSTRIAL APPLICATION
[0134] The invention may have application particularly in the field of quantum computing and debugging the execution of quantum circuits.
[0135] The invention is not limited to the examples described above, which are only given as examples, but rather encompasses all variants that a person skilled in the art may envision within the scope of the protection sought.
LIST OF REFERENCE SIGNS
[0136] 1: System [0137] 2: quantum simulator [0138] 3: memory [0139] 4: server [0140] 5: communication interface [0141] 6: application terminal [0142] 7: iterator [0143] 8a, 8b: buffer memories [0144] S1: step of simulation [0145] S2: step of post-selection [0146] S3: step of setting filtration [0147] S4: step of additional filtration [0148] S5: step of retrieval [0149] S6: step of analysis [0150] S7: step of debugging