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

Enabling density matrix computation for noisy simulations #84

Open
DmitryLyakh opened this issue Dec 4, 2020 · 2 comments
Open

Enabling density matrix computation for noisy simulations #84

DmitryLyakh opened this issue Dec 4, 2020 · 2 comments
Assignees

Comments

@DmitryLyakh
Copy link
Member

TN-QVM should be enhanced to compute the density matrix of a noisy quantum circuit, |Psi><Psi|. The implementation will be very similar to the wavefunction computation. The initial state will consist of 2N 1-body qubit tensors in |0> state, instead of N, that is |0000><0000|. The gates will be applied to both |Psi> and <Psi|. Additionally, after each gate application the corresponding Krauss tensor (1-body, 2-body, etc.) will be inserted between |Psi> and <Psi|. The resulting tensor network will be submitted to ExaTN for evaluation. Additionally, one may want to compute only a slice of the density matrix or individual amplitudes, absolutely analogously to the corresponding wavefunction features. And, of course, we need to be able to compute expectation values of operators via tracing the density matrix with the operator. This will enable noise modelling with an arbitrary rank of correlations (1-body gate noise, 2-body gate noise, etc). And read-out noise (which is currently done via an XACC decorator?).

@DmitryLyakh
Copy link
Member Author

Also, similarly to the Wavefunction computation, some kind of API will be needed to access the density matrix or its slices from XACC, like Accelerator.getDensityMatrix(Mask) -> const DensityMatrix &, where Mask specifies which qubits are projected to concrete bits and which are kept open in Thien's notation.

@DmitryLyakh
Copy link
Member Author

Since the density matrix is much larger than the wavefunction, I think the priority should go to the direct expectation value computation via tracing with the operator (a single closed tensor network submitted to ExaTN). Computing the full density matrix or its slice can be implemented after that (less priority).

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

No branches or pull requests

3 participants