PennyLaneAI/pennylane-qulacs

Add support for noise channels

hrushikesh890 opened this issue · 11 comments

Add support for noise channels like
AmplitudeDamping
PhaseDamping
DepolarizingChannel

Equivalents to these pennylane noise channels
qulacs.gate.AmplitudeDampingNoise
qulacs.gate.DephasingNoise
qulacs.gate.DepolarizingNoise

Thanks for the request @hrushikesh890! This is definitely something we would like to support in PL-Qulacs; we have recently added various noise channels to PennyLane, so it should be relatively straightforward to add support to the plugin.

Hi @josh146 , I am a new user of pennylane qulacs and I would love to contribute. If its straightforward i think it should be good place to start for me to understand the codebase. Can i work on this?

@hrushikesh890 yes for sure 🙂 I'm not too familiar with Qulacs, but it should be sufficient to:

Feel free to make a work in progress PR, and to tag us if you have any questions

Sorry for the sluggish progress Was busy with exams. Will write the test cases this week and finish it

Hey @hrushikesh890, just wanted to follow up and see if you are still working on this?

Hi @trbromley I have finished the codes but not the test cases. I have some interesting findings. The outputs of qulacs.gate.AmplitudeDampingNoise on qulacs and AmplitudeDamping when run on mixed simulator, do not match. Somehow the output of qulacs is a vector which I find very confusing. I am still looking into this and trying to understand where I am wrong

Thanks @hrushikesh890! Does this help? It looks like gate.update_quantum_state(state) is the way to go.

Hi @hrushikesh890! I'm also interested in this topic since I'm trying to find a way to implement a noisy circuit for my application (QML for HEP). Is there any news about this?

Hi everyone, just a fly-by thought: could the mismatch be due to the difference in qubit ordering that PennyLane and Qulacs use?

Hi I tried gate.update_quantum_state(state) however it doesnt seems to help. It seems to me that Qulacs noise gates do not use a density matrix simulation

I just had a look at qulacs source code. It could be that their noisy simulation is "monte carlo" style, i.e., it projects stochastically onto one of the possible output states (e.g., flip a bit), rather than using CPTP channels on density matrices like PennyLane's mixed simulator. If that's the case, we won't be able to support it at the moment (until we introduce support for this kind of probabilistic simulator device)