Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Efficient representation of sparse Pauli error #205

Unanswered
EmilianoG-byte asked this question in Q&A
Discussion options

Hi (again),

Is there a way to efficiently represent/implement a sparse Pauli channel? For instance, in Qiskit I could use the pauli_error function with a Pauli String representation as input.

This "efficient" representation is particularly useful, because I am considering up to weight-2 Pauli strings, so for a high number of qubits n not having to save the $4^n$ vector would be useful. I am aware of the general_depolarizing_channel in TC, but this would imply running into the latter problem.

Any idea?

You must be logged in to vote

Replies: 2 comments · 3 replies

Comment options

@refraction-ray any idea? 🤔

You must be logged in to vote
0 replies
Comment options

What you mean is Kraus operator like $[X_1X_2, X_1Y_2, ..., Z_2Y_3, ... Z_{n-1}Z_n]$? If applied in non-jit version, it can be done by Monte Carlo trajectory simulation, where one of the local operators is applied on the system depending on the random number.

However, if jit is enabled, I cannot think of an efficient way to implement this for now. The essential problem is the same as applying two-qubit gates on random indices while maintaining jit, see related discussion: #171 (comment)

You must be logged in to vote
3 replies
@refraction-ray
Comment options

Ah, actually if the two-qubit operators are all local and Pauli, then an efficient jittable MPO representaion could exist. It is more like this case: #171 (comment). Therefore, you can run jittable efficient simulation with Monte Carlo trajectory approach.

@EmilianoG-byte
Comment options

Actually I don’t necessarily need to keep it jittable for now. So there is no way of doing this with a DMCircuit?

My problem at the moment is that when going beyond 6 qubits, the list of Kraus of operators is so long that even just applying the noise with circuit_with_noise becomes super slow. I thought I could avoid this by applying the local noise to specific indices instead of creating the sparse tensor on the full system. I see the link you sent attempts this with MonteCarlo, right?

@EmilianoG-byte
Comment options

Oh no wait, the solution is using MPO tensors right? Let me try it out!!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
🙏
Q&A
Labels
None yet
2 participants
Morty Proxy This is a proxified and sanitized view of the page, visit original site.