qiskit-ignis icon indicating copy to clipboard operation
qiskit-ignis copied to clipboard

Error mitigation using multiple gates

Open dcmckayibm opened this issue 5 years ago • 4 comments

Based on https://arxiv.org/abs/1801.03897

With open pulse we should eventually implement https://arxiv.org/abs/1805.04492

dcmckayibm avatar May 14 '19 15:05 dcmckayibm

Oak Ridge agreed to tackle this

dcmckayibm avatar May 28 '19 03:05 dcmckayibm

Regarding the Richardson extrapolation technique, my first thought was that it would be a part of Aqua instead of Ignis. But based on discussion with @rpooser it sounds like the idea was to have something like a RichardsonMitigator class inside of Ignis that can be passed to Aqua algorithms (or maybe even quantum instances in the same way measurement error mitigation is dealt with as per https://github.com/Qiskit/qiskit-aqua/blob/master/qiskit/aqua/quantum_instance.py#L66).

samanthavbarron avatar Jul 19 '19 18:07 samanthavbarron

The ignis architecture is based on a module that creates circuits and then a class that fits the results of those circuits.

In this case, similar to tomography, you would pass in your circuit (that you want to perform error mitigation on) and then the ignis code would generate a new list of circuits with the appropriately repeated gates. Then the results of that would be be passed onto a fitter which would return the zero noise results.

Pseudo-code might look like my_err_mit_circuits = ignis.error_mit_circuits(my_circ, r=[1,3,5,7]) results = backend.execute(my_error_mit_circuits).results() err_mit_result = ignis.ErrMitFitter(results, r=[1,3,5,7])

dcmckayibm avatar Jul 20 '19 05:07 dcmckayibm

Ok this is good. We're on the same page and essentially are producing a module under that model.

rpooser avatar Jul 20 '19 12:07 rpooser