Qutrits for quantum GANs

I am want to use default.qutrit , instead of lightning.qubit . Just a quick question, can I use same Parametrized circuit used in Patch Quantum GAN, using qutrit? Is all the rotation gates and controlled gates, supported in qubit be applied to qutrit? Are there any list of available gates to be used in qutrits. In the demo for qutrits, I saw the gates such as THadamard, TShift and TAdd gates. What all other gates are there? Any parameterized gates, such as rotation gates.
Also I know that from https://discuss.pennylane.ai/t/how-to-scale-the-qgan-example-to-more-qubits/2958/11?u=mass_of_15

So If I use qutrit, will each wires give three probability values. What would be the equation then?

Last question, will the the runtime speedup?

Hi @mass_of_15!

Thank you for creating this thread.
For anyone else looking at this, the original question came from this other thread.

I’ve asked our expert on qutrits to see if there are some insights they can share with you.

In the meantime, did you check out our demo on qutrits? Did you find any answers to your questions there?

Hi @mass_of_15 ,
My colleague Mudit looked into your question and here’s the answer!

Here’s the list of operators and observables supported with default.qutrit:

  • Operators: qml.TRX, qml.TRY, qml.TRZ, qml.THadamard, qml.TShift, qml.TClock, qml.TAdd, qml.TSWAP, qml.QutritBasisState, qml.QutritUnitary, qml.ControlledQutritUnitary
  • Observables: qml.THermitian, qml.GellMann

With analytic execution, default.qutrit supports backprop so differentiation should be pretty fast, however, with classical simulations, dealing with 3s instead of 2s is a little bit more difficult and can lead to some overheads. However, if your GAN needs less qutrits compared to qubits such that the total size of the qutrit state vector is less than the size of the qubit state vector, there might be some speedups.

For the same number of qutrits vs qubits, qubit simulation will always be faster though. I should also mention that support for functions such as qml.matrix , qml.ctrl , etc. is not available with qutrit simulation.

Note that you can also check for qutrit operators and observables in this page in the docs.

I hope this helps :slightly_smiling_face: