Skip to content

Implementation of the "hidden inverse" coherent error cancellation method in pytket.

Notifications You must be signed in to change notification settings

CQCL/hidden_inverse_exp

Repository files navigation

Hidden Inverse Circuits for Coherent Error Supression

Hack month week 1

Key reference: https://arxiv.org/abs/2104.01119

Idea: Self adjoint gates such as CX have two equivalent decompositons into hardware native gates. Find symmetric circuits and use both decompostions to cancel coherent errors.

Contributions and suggestions for future work welcome.

If we have a matrix $M$ satisfying $M=M^\dagger$ we say that $M$ is self adjoint. We can decompose this matrix $M$ in two ways.

$$ \begin{equation} M = ABC = C^\dagger B^\dagger A^\dagger = M^\dagger \end{equation} $$

Here $M$ represents the unitary (and self-adjoint) matrix associated with a two qubit gate.

alt text

alt text

What does this repo contain? Hidden inverse passes targeting the H-Series gateset

  1. A method to quickly get the hidden inverse circuits for an two qubit gate with a hidden inverse. The H-Series gateset is used -> here.
  2. An "alernating CNOT decompostion" pass -> here that compiles every CNOT to the H-Series gateset and uses the hidden inverse decomposition if a CNOT uses the same two qubits as a previous CNOT.
  3. A compilation pass to compile Pauli gadget circuits using the LHS and RHS decomposition of CNOT gates -> here
  4. A phase gadget pass (probably legacy) -> here should be covered by (2.)
  5. A demo notebook -> here
  6. Various utilities -> here
  7. Tests (need more!) -> here

Ideas and Future Directions

  1. Run some phase/pauli gadgets on H-series emulator/real device. Find out if coherent errors are suppressed
  2. Test out this method for QEC gadgets (Maybe on real hardware? Talk more to Ben and Natalie).
  3. Test this out with classical ToffoliBox circuits?
  4. Figure out how this might play nicely with OptimisePhaseGadgets and PauliSimp.
  5. Benchmark performance of alternating CNOT decomposition post FullPeepholeOptimise
  6. Clean up and generalise code. Integrate into TKET somehow?

About

Implementation of the "hidden inverse" coherent error cancellation method in pytket.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published