I'm trying to understand how the noise model works in Qiskit Aer noise simulator. From this information page, add_all_qubit_quantum_error() has two required arguments: param, which specifies the noise strength, and instructions, which is ' the instructions error applies to'.

For 1-qubit noise, I noticed the general way to produce a noise model (say the depolarization channel) is

error_1 = depolarizing_error(0.1, 1)
depolarizing_model.add_all_qubit_quantum_error(error_1, ['u1', 'u2', 'u3'])

What is the appropriate instruction for 2-qubit circuits? Should I use the following code?

error_2 = depolarizing_error(0.1, 2)
depolarizing_model.add_all_qubit_quantum_error(error_2, ['cx'])

I also noticed if I add any random instructions to the list, like

depolarizing_model.add_all_qubit_quantum_error(error_2, ['cx','ww','yz1'])

It seems like the noise simulation still works. What is the appropriate way to build a noise model for a 2-qubit circuit? Which kind of instructions should I use?



2 Answers 2


This depends on your circuit. If you have only 1-qubit gates, you can construct a noise model from single-qubit errors. But if you want to do something interesting, you need to entangle your qubits with 2-qubit gates. Then you can add a depolarizing error for 2 qubits or a tensor product of two single-qubit errors to the noise model.


It depends if you want to apply the same error to any two-qubits gate you use in your circuit or not.

This answer explains it very well How to selectively apply noise in Qiskit simulations? If you want to use different noise for your two-qubit gates you will need to label them and use those labels as instruction


Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.