quantumlib / Cirq

A Python framework for creating, editing, and invoking Noisy Intermediate Scale Quantum (NISQ) circuits.
Apache License 2.0
4.28k stars 1.02k forks source link

Implement two qubit unitary to operations algorithm from https://arxiv.org/abs/quant-ph/0406176 #6777

Open NoureldinYosri opened 1 month ago

NoureldinYosri commented 1 month ago

The paper https://arxiv.org/abs/quant-ph/0406176 introduces an algorithm for performing quantum shannon decomposition. We have this algorithm implemented in Cirq in https://github.com/quantumlib/Cirq/blob/351a08e52b7090cfab3a1ad07859ebf09d54052a/cirq-core/cirq/transformers/analytical_decompositions/quantum_shannon_decomposition.py#L44

However, one of the base cases of the algorithms is not implemented. Namely A.2 the base case for a two qubit unitary, instead cirq uses another decomposition https://github.com/quantumlib/Cirq/blob/351a08e52b7090cfab3a1ad07859ebf09d54052a/cirq-core/cirq/transformers/analytical_decompositions/quantum_shannon_decomposition.py#L101-L113

Which is not as efficient as the decompositin described in A.2. It would be nice to implement A.2 and uses it in QSD.

What is the urgency from your perspective for this issue? Is it blocking important work?

P2 - we should do it in the next couple of quarters

RahilJain1366 commented 2 weeks ago

Hi @NoureldinYosri, can I take this up too since I am trying to find a solution for #6770?

senecameeks commented 2 weeks ago

Cirq Cynq: This will improve the performance by reducing the number of rotations and depth of the circuit.

senecameeks commented 2 weeks ago

@RahilJain1366, thanks for offering, let's discuss after #6770 is complete

ldi18 commented 1 week ago

Hi, I’m also interested in working on this if @RahilJain1366 hasn’t taken it up yet @senecameeks .