Open speller26 opened 1 year ago
If I may, two questions:
CliffordString
in the quantum_information
module? Or would we have to mess around with young tablueax in another module?[1] - https://docs.pennylane.ai/en/stable/code/qml_pauli.html
@kvathupo
@kvathupo Any updates on your progress? Can we provide any support? :)
@JordanAWS Thanks for checking in, I just got busy with work! The PauliString
methods seem straight-forward:
dot(self, other: PauliString, inplace: bool = False) -> PauliString
power(self, power: int, inplace: bool = False) -> PauliString
to_circuit(self) -> Circuit
I initially believed something like a CliffordString
was wanted (so analogous to PauliString
but with CNOT(a,b)
, H
, and S
), but I believe just the tableau is wanted? If so, my plan is to use qiskit's tableau convention from Aaronson and Gottesman. I'll have to finish the paper, but I see how to do dot(self, other: CliffordTableau)
and power(self, power: int, inplace: bool = False)
in time linear of qubit count (page 4), but I'll have to read further to figure out how to easily do the adjoint from just the tableau.
P.S. I am doing this as a part of Unitary Hack, so I do ask that the issue be assigned to whoever has a merged PR. Hopefully yours truly : ^)
@kvathupo do you need any help to submit your solution?
Just submitted a PR, but just for the non-Tableau half š«£ As for CliffordTableau
, I would have to read more about the tableau representation of Clifford gates. So another can feel free to jump in!
From Aaronson and Gottesman, I can see how multiplication of a CliffordTableau
by a generator of the Clifford Group is linear in qubit count but I'd have to finish reading the paper/check out other sources to see how to multiply two arbitrary Clifford tableaux with complexity linear in qubit count, given just the tableau representations š°
@kvathupo Thanks for your contribution! I imagine it would be pretty challenging to complete this issue before the end of UnitaryHack today (which is the requirement to win the bounty), so if you are interested, we can get you some AWS credits if you wanted to keep working on it! :)
@kvathupo Sorry, correction! Because you submitted a PR with the main functionality before the June 13th deadline, you are still eligible to win the bounty as long as you complete the requested changes and get your code approved and merged by June 20th :)
@JordanAWS No need for a financial incentive (I recall learning about the GottesmanāKnill theorem in school, so it's cool to see it in practice), but I won't say no to free credits : ~). I look forward to feedback on the existing PR in the meantime !
@kvathupo For the credits, you'll need to create an AWS account (if you don't have one already), and share your account ID with unitary-hack-braket-support@amazon.com with a request for credits to work on the issue :)
The Qiskit
quantum_information
contains helpful classes for efficiently manipulating quantum information, most notably the Pauli and Clifford groups. The respectivePauli
andClifford
classes allow users to quickly compose operators, enabling step-by-step inspection of an evolving quantum state. Furthermore, they can be converted to circuits to run on quantum devices.The Amazon Braket SDK contains a
quantum_information
module consisting of aPauliString
class; this module can be expanded to fully encompass the Pauli and Clifford groups.Describe the feature you'd like
CliffordTableau
with, at the very least, multiplication and power operators that scale linearly with qubit count, anadjoint
method, and ato_circuit
method for converting to aCircuit
.to_circuit
on the existingPauliString
class.