According to the Qiskit documentation, a gate error is simulated by a thermal relaxation channel followed by a depolarisation channel, where the parameter of the depolarisation channel is adjusted so that the average gate infidelity corresponds to the gate error from the backend.properties().

However, if the calculated average gate infidelity of the thermal relaxation error is greater than the gate error of the backend.properties().gate_error(gate,qubits), the thermal relaxation error is returned directly to the NoiseModel. This sometimes leads to large deviations (up to 100%) of the simulated gate error rate and occurs in particular when the dephasing time $T_2$ is small ($\approx 20\mu s$), since $1-\overline{F}_{relax} \approx \frac{1}{6} t/T_1 + \frac{1}{3} t/T_2$ (where $t$ is the gate time and $t\ll T_{1,2}$).

backend = FakeMontreal()  
noise = NoiseModel.from_backend(backend)

cx_error = noise._local_quantum_errors['cx'][(1,0)]
error_cal = 1 - average_gate_fidelity(cx_error)
error_rep = backend.properties().gate_error('cx',(1,0))

print(f'gate error from noise model: {error_cal:0.2%}')  # 1.17%
print(f'gate error from backend: {error_rep:0.2%}')      # 0.70%

Why are too large gate errors accepted instead of applying e.g. only a depolarization error?



Your Answer

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