quantumlib / Cirq

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

[Routing] Add support for directed device graphs. #5863

Open ammareltigani opened 2 years ago

ammareltigani commented 2 years ago

Summarize the task Currently, if a user wants to route their circuit on a device that has asymmetric coupling (i.e. you can execute a CNOT(q1, q2) but not CNOT(q2, q1)) then the transformer raises an error.

Acceptance criteria - when is the task considered done? As an improvement, we can support directed device graphs using the swap decomposition: SWAP(0,1) <=> CNOT(0,1), H(0), H(1), CNOT(0,1), H(0), H(1), CNOT(0,1)

Related issues: #5838

smburdick commented 12 months ago

I'm interested in taking this one on.

pavoljuhas commented 11 months ago

Thank you for taking this on!

mhucka commented 2 weeks ago

@smburdick for planning purposes, could we get a status update on this item?