US 11,675,763 B2
Performing unitary iteration and indexed operations
Craig Gidney, Goleta, CA (US); and Ryan Babbush, Venice, CA (US)
Assigned to Google LLC, Mountain View, CA (US)
Appl. No. 16/976,368
Filed by Google LLC, Mountain View, CA (US)
PCT Filed Apr. 19, 2019, PCT No. PCT/US2019/028227
§ 371(c)(1), (2) Date Aug. 27, 2020,
PCT Pub. No. WO2019/024678, PCT Pub. Date Oct. 24, 2019.
Claims priority of provisional application 62/660,494, filed on Apr. 20, 2018.
Prior Publication US 2021/0157781 A1, May 27, 2021
Int. Cl. G06N 10/00 (2022.01); G06F 16/22 (2019.01)
CPC G06F 16/2228 (2019.01) [G06N 10/00 (2019.01)] 31 Claims
OG exemplary drawing
 
1. A method for performing unary iteration to implement an indexed operation using a quantum computing device comprising a unary iteration quantum circuit, the method comprising:
constructing the unary iteration circuit, comprising:
defining a total-control circuit for implementing the indexed operation, the total-control circuit comprising a control register comprising multiple control qubits, one or more target qubits, and an index register comprising multiple index qubits, wherein the index register is configured to encode a plurality of index values;
applying a set of transformations to the total-control circuit to generate a first transformed circuit, comprising, for each index value in the plurality of index values that is less than a maximum index value in the plurality of index values:
removing a control of the indexed operation on an index qubit representing 2b when i) a result of a bitwise-or operator applied to the index value and 2b is greater than or equal to the maximum index value and ii) a result of a bitwise-and operator applied to the maximum index value minus one and 2b is equal to 2b; and
expanding remaining controls of the indexed operation into nested AND operations;
applying a set of optimizations to the first transformed circuit to generate the unary iteration circuit, comprising, for each adjacent AND uncomputation and AND re-computation:
removing the adjacent AND uncomputation and AND re-computation when control types of the adjacent AND uncomputation and AND re-computation match;
replacing the adjacent AND uncomputation and AND re-computation with CNOT and NOT operations when no control types of the adjacent AND uncomputation and AND re-computation match; and
replacing the adjacent AND uncomputation and AND re-computation with CNOT operations when one pair of control types of the adjacent AND uncomputation and AND re-computation match; and
applying the constructed unary iteration circuit to the index register, the control register, and the one or more target qubits, comprising:
encoding, by the quantum computing device, an index value in the index register of the unary iteration quantum circuit, the index register comprising the multiple index qubits;
encoding, by the quantum computing device, the index value in the control register of the unary iteration quantum circuit, the control register comprising the multiple control qubits; and
repeatedly computing and uncomputing, by the quantum computing device, control qubits from the multiple control qubits to perform, conditioned on a state of a final control qubit of the multiple control qubits, the indexed operation on the one or more target qubits of the unary iteration quantum circuit, the target qubits corresponding to the index value, wherein the state of the final control qubit specifies ON and OFF control types and wherein when the state is ON, the index operation is performed, and when the state is OFF, the indexed operation is not performed, and wherein during the encoding, computing, and uncomputing:
the multiple control qubits are made available in sequence, and
the multiple control qubits correspond to a one-hot encoding of the encoded index value.