microsoft / QuantumLibraries

Q# libraries for the Quantum Development Kit
https://docs.microsoft.com/quantum
MIT License
542 stars 179 forks source link

Quantum State Tomography module #430

Open csferrie opened 4 years ago

csferrie commented 4 years ago

Feature Request Quantum State Tomography module (and similar Quantum Characterisation, Verification, and Validation modules).

Functionality

cgranade commented 4 years ago

That would make a very cool sample, @csferrie. Thanks for the suggestion! I think there's a couple feature requests I could extract that would be needed to support and implement that sample:

  • specify POVM measurement sets

This would likely require a library operation that reduces POVMs to be performed to the basic measurements built-in to Q# (that is, to measuring half-spaces of tensor products of Pauli operators).

  • generate random states according to a variety of distributions
  • simulate outcome of "prepare-and-measure" experiments

If I understand the feature request correctly, these two components would both likely require the ability to configure noise in state preparation when instantiating simulators (so that using statements prepare ρ instead of |0⟩, where ρ ~ chosen noisy distribution).

  • invert data to produce estimate of the quantum state using a variety of common state reconstruction methods

I believe that this part could be done fairly directly through Python interoperability.

Thanks again for your suggestion, @csferrie!

guenp commented 3 years ago

@cgranade it seems like having a simulator with noise would be a feature request here as well?

cgranade commented 3 years ago

Going to on and transfer this to libraries as a feature request. Thank you!

@csferrie: In the meantime, we've been working on an experimental open systems simulator in response to https://github.com/microsoft/qsharp-runtime/issues/504, hopefully that should help provide the functionality needed for this feature. If you have any feedback on the noisy simulator, we'd really appreciate it, thank you!