qiskit/docs
Matthew Treinish 75c0e46faf
Migrate measure mitigation from ignis for QuantumInstance (#6867)
* Migrate measure mitigation from ignis for QuantumInstance

This commit migrates the measurement mitigation code from qiskit-ignis
into qiskit-terra for use with the QuantumInstance class. The
QuantumInstance class's usage of the measurement mitigation from ignis
is the one thing blocking us from deprecating qiskit-ignis completely.
By embedding the code the quantum instance depends on inside
qiskit.utils users of QuantumInstance (and therefore qiskit.algorithms)
can construct and use measurement mitigation in it's current form. The
use of this migrated module is only supported for use with the
QuantumInstance class and is explicitly documented as internal/private
except for how it gets used by the QuantumInstance.

There is ongoing work to create a standardized mitigation API in #6485
and #6748, this does not preclude that work, but we should adapt this as
part of those efforts to use the standardized interface. Ideally this
would have been made a private interface and not exposed it as user facing
(in deference to the standardization effort), but unfortunately the
QuantumInstance expects classes of these classes as it's public interface
for selecting a mitigation technique which means users need to be able to
use the classes. However, as only the classes are public interfaces we
can adapt this as we come up with a standardized mitigation interface
and rewrite the internals of this and how the QuantumInstance leverages
mitigators to use the new interface.

A good follow-up here would be to adapt the mitigator selection kwarg to
deprecate the use of classes and then we can make things explicitly
private in the migrated code and wait for #6495 and #6748 to be ready
for our user facing API. I opted to not include that in this PR to
minimize changes to just what we migrated from ignis and update usage of
old ignis classes to rely on the migrated version.

* Update releasenotes/notes/ignis-mitigators-70492690cbcf99ca.yaml

Co-authored-by: Steve Wood <40241007+woodsp-ibm@users.noreply.github.com>

* Finish release notes

* Move API stability warning to the top

* Apply suggestions from code review

Co-authored-by: Jake Lishman <jake@binhbar.com>

* Remove unecessary test subclassing

* Fix skip logic in algorithm mitigation tests

* Fix exception handling on missing ignis in algorithms

* Assert deprecation message for ignis use mentions ignis

* Make filters module properly private

* Fix lint

Co-authored-by: Steve Wood <40241007+woodsp-ibm@users.noreply.github.com>
Co-authored-by: Jake Lishman <jake@binhbar.com>
2021-10-01 17:06:56 -04:00
..
_static Use sphinx-panels for accordion content (#5354) 2020-11-07 06:28:28 -05:00
_templates Optimise documentation build (#6865) 2021-08-05 20:11:44 +00:00
apidocs Migrate measure mitigation from ignis for QuantumInstance (#6867) 2021-10-01 17:06:56 -04:00
images Module level documentation for qiskit.visualization (#3187) 2019-10-14 09:45:19 -04:00
source_images Add supplementary information to transpiler module (#4134) 2020-05-04 21:12:35 +00:00
Makefile Move API docs for Terra into source (#3085) 2019-09-30 12:50:44 -04:00
conf.py Optimise documentation build (#6865) 2021-08-05 20:11:44 +00:00
index.rst Jupyter widget for circuit library (#3861) 2020-03-29 23:23:44 -04:00
release_notes.rst Move API docs for Terra into source (#3085) 2019-09-30 12:50:44 -04:00