1
$\begingroup$

With the following code

from qiskit.providers.fake_provider import FakeGuadalupe
from qiskit.providers.aer.noise import NoiseModel
import numpy as np

backend = FakeGuadalupe()
nm = NoiseModel.from_backend(backend)

print(nm._local_quantum_errors['cx'][(0,1)].circuits[0])
print(len(nm._local_quantum_errors['cx'][(0,1)].circuits[0][1][0].params))

k11=np.transpose(nm._local_quantum_errors['cx'][(0,1)].circuits[0][1][0].params[0].conj())*nm._local_quantum_errors['cx'][(0,1)].circuits[0][1][0].params[0]
k22=np.transpose(nm._local_quantum_errors['cx'][(0,1)].circuits[0][1][0].params[1].conj())*nm._local_quantum_errors['cx'][(0,1)].circuits[0][1][0].params[1]
k33=np.transpose(nm._local_quantum_errors['cx'][(0,1)].circuits[0][1][0].params[2].conj())*nm._local_quantum_errors['cx'][(0,1)].circuits[0][1][0].params[2]
print(k11+k22+k33)

I get the following output:

     ┌────────────┐┌───────┐
q_0: ┤0           ├┤ kraus ├
     │  Pauli(II) │├───────┤
q_1: ┤1           ├┤ kraus ├
     └────────────┘└───────┘
3
[[1.        +0.j 0.        +0.j]
 [0.        +0.j 0.99257842+0.j]]

But I think that this means that the completeness relation of the kraus operators is not satisfied. Am I missing anything?

$\endgroup$
1
  • $\begingroup$ I don't know how the noise model is derived in this context, but have you considered the possibility that real noise does not preserve trace (i.e. you have loss)? $\endgroup$ Dec 11, 2023 at 16:15

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.