iqm.error_reduction_tools.rem.rem_api.WorkflowConfiguration#

class iqm.error_reduction_tools.rem.rem_api.WorkflowConfiguration(rec=<factory>, twirling=<factory>, shots=20000, nearest_probability=True, force_mitigation=False, compilation_options=None)#

Bases: object

Configuration for the full readout error mitigation (REM) workflow.

Composes sub-configurations for readout error characterization and circuit twirling, plus workflow-level parameters.

Example:

config = WorkflowConfiguration(
    shots=40_000,
    twirling=TwirlingConfiguration(readout_twirl_strategy="LOCAL", seed=42),
)

# REM with custom compiler context (e.g. dynamical decoupling):
config_with_dd = WorkflowConfiguration(
    shots=40_000,
    twirling=TwirlingConfiguration(readout_twirl_strategy="LOCAL"),
    compilation_options={"DDStrategy": my_dd_strategy},
)

Attributes

compilation_options

Extra key-value pairs passed to the compiler context during circuit compilation.

force_mitigation

Apply mitigation even when complexity exceeds threshold.

nearest_probability

Project quasi-probabilities to nearest valid distribution.

shots

Number of measurement shots per input circuit, distributed across that circuit's twirled instances.

rec

Configuration for readout error characterization.

twirling

Configuration for circuit twirling.

Methods

__eq__(other)

Return self==value.

__repr__()

Return repr(self).

Parameters:
rec: RECConfiguration#

Configuration for readout error characterization.

twirling: TwirlingConfiguration#

Configuration for circuit twirling.

shots: int = 20000#

Number of measurement shots per input circuit, distributed across that circuit’s twirled instances.

nearest_probability: bool = True#

Project quasi-probabilities to nearest valid distribution.

force_mitigation: bool = False#

Apply mitigation even when complexity exceeds threshold.

compilation_options: dict[str, Any] | None = None#

Extra key-value pairs passed to the compiler context during circuit compilation.

Use this to activate compiler features such as dynamical decoupling.