Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error mitigation #450

Open
fieldofnodes opened this issue Dec 31, 2022 · 1 comment
Open

Error mitigation #450

fieldofnodes opened this issue Dec 31, 2022 · 1 comment

Comments

@fieldofnodes
Copy link

A significant barrier to the usefulness of quantum computers is by far the noise generated by various operations. For example measurement noise, that is the noise generated by taking measurements of some quantum circuit.

Qiskit and Pyquil both have noise models in there simulators to generate a so-called noisy state.

I am not sure if Yao.jl does.

Error mitigation is the general set of methods and protocols to deal with such errors. Consider

$$\hat{y} = Ax, $$

where $\hat{y}$ is a noisy probability vector, $A$ is the calibration matrix and $x$ is the ideal state. The standard method, readout error mitigation is take a noisy state and left multiply by $A^{-1}$. The $Z$ basis is often chosen (i.e. qubits are represented by a $0$ or $1$ once measured).

Now error mitigation is obviously akin to sampling problems and probility in general. In small circuits, this problem is trivial. But what about even 8 qubits. The computational basis is $2^8$ and the calibration matrix is $2^8 \times 2^8$. So as the number of qubits increases, the problem becomes untenable by standard approaches.

I would like to open the issue of developing some error mitigation techniques.

@exAClior
Copy link
Collaborator

Hi @fieldofnodes, thank you for starting the conversation! I feel like there’s a whole new story to be told here.

Firstly, like you said, noise is the main problem limiting the usefulness of quantum computers. As Roger pointed out in #434, it is currently feasible to use real hardware with Yao.jl. Hence, it would be reasonable to think about what kind of error mitigation and characterization we need to introduce to Yao. Ultimately, I feel like we should have features like Zero Noise Extrapolation, Dynamical Decoupling and etc, in Yao so that users don’t have to leave Yao to be able to do everything in NISQ era. Furthermore, I feel like a module that generates measurement characterization circuits needs to be there prior to implementing the actual measurement mitigation technique you mentioned. But these both very much depends on the philosophy behind Yao. Also, as Roger pointed out in #434, an elegant and powerful way of implementing all these features in Yao is not very clear yet. We might have to discuss more on this point.

Secondly, you might have notice that implementation of noise channel is listed as TODO in #395. So, that’s something missing from the puzzle. And, I think you might agree that it’s quite an important piece to have if one wants to see error mitigation features in Yao. I feel like have a good noise channel implementation will further strength the necessity for the inclusion of error mitigation compilation tools and post-processing tools.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants