qiskit-advocate / qamp-spring-23

Qiskit advocate mentorship program (QAMP) Spring 23 cohort (April - July 2023)
12 stars 2 forks source link

Weyl chamber tools in Qiskit #6

Open ajavadia opened 1 year ago

ajavadia commented 1 year ago

Description

The Weyl chamber is a handy geometric interpretation of different two-qubit quantum gates. All two-qubit quantum gates (e.g. CNOT, sqrt(CNOT), iSWAP, SWAP, etc.) have a coordinate in the Weyl chamber, and two gates that map to the same coordinate are always convertible to each other by local pre-/post-rotations (i.e. they are "locally equivalent").

Qiskit already has tools to get the coordinate of any two-qubit unitary in the Weyl chamber via the KAK decomposition. However it does not currently have any visualization tools. Beyond just gate coordinates, we are often interested in what part of the Weyl chamber is reachable by a certain "family" of gates, which takes the form of drawing polytopes in the chamber. An example below:

image

The Weyl chamber is introduced here: https://arxiv.org/abs/quant-ph/0209120

A good introduction is here: https://threeplusone.com/pubs/on-gates-v4/ However this particular one has a different convention for the coordinates. We want to make sure that we use Qiskit's coordinate convention in this project, i.e. pi/4 >= a >= b >= |c| >=0

There is an open source tool https://github.com/qucontrol/weylchamber, but it doesn't have the right conventions. It also doesn't plot regions/polytopes, only points. We can draw inspiration from it though.

Deliverables

Mentors details

Number of mentees

2

Type of mentees

mpham26uchicago commented 1 year ago

I'd love to contribute to this project. I just learned about the Cartan decomposition on two qubit and now I'm looking at canonical class vector in the Weyl chamber!

evmckinney9 commented 1 year ago

Here is my version of this, if you are interested. My implementation of the 3D coverage regions is quite messy though. https://github.com/Pitt-JonesLab/slam_decomposition/tree/main/src/slam/utils/polytopes

evmckinney9 commented 1 year ago

I rewrote my plotting tool to be much simpler and nicer looking.

https://github.com/evmckinney9/monodromy