ProjectQ icon indicating copy to clipboard operation
ProjectQ copied to clipboard

How we use Reset Qubits without using measurement in Project Q?

Open saifawan2703 opened this issue 1 year ago • 1 comments

Hi everyone,

I would like to know if there is a way to reset a qubit to the |0⟩ state in ProjectQ without performing a measurement. The reason is that after measuring, I am unable to use the compute-uncompute pattern. like that

with Compute(eng):
    All(H) | k0
    All(H) | k1
    All(X) | k0
    All(X) | k1

with Control(eng, k0[0:4]):
        with Control(eng, k1[0:-1]):
            Z | k1[-1]  
Uncompute(eng)  #

Any guidance on this would be appreciated.

saifawan2703 avatar Oct 08 '24 04:10 saifawan2703

You want to use a measurement within the with Compute section?

A reset or measurement of a qubit within the compute section is not possible (compiler would need to automatically generate an inverse for the uncompute section which is not possible in general, i.e., unknown quantum state before reset or measurement)

Ancilla qubits can be allocated with the compute section and deallocated if they are returned to 0 deterministically. See doc

For more advanced use cases there is always the option to specify the uncompute section with a CustomUncompute

damiansteiger avatar Oct 11 '24 08:10 damiansteiger