FiQCIEstimator#

FiQCIEstimator computes expectation values of Pauli observables from quantum circuits with built-in error mitigation. It supports both readout error mitigation (M3) and zero-noise extrapolation (ZNE).

Basic Configuration#

Initialize the estimator with an IQM backend, mitigation level, and optional parameters:

from fiqci.ems import FiQCIEstimator

# Initialize estimator with mitigation level 1
estimator = FiQCIEstimator(backend, mitigation_level=1, calibration_shots=2000, calibration_file="cals.json")

For more details see the API reference documentation for FiQCIEstimator.

Mitigation Levels#

Mitigation levels apply predefined sets of error mitigation techniques.

Level

Mitigation Applied

Technique

0

None

Raw results

1

Readout Error Mitigation

M3 (matrix-free measurement mitigation)

2

Level 1 + additional

TBD

3

Level 2 + Zero Noise Extrapolation

Exponential Extrapolation, Local Folding

Mitigation Options#

Mitigators can also be configured manually using the provided methods.

REM (Readout Error Mitigation)#

Readout error mitigation uses M3 (matrix-free measurement mitigation) to correct measurement errors. It is enabled by default at mitigation level 1.

Configure REM using the rem() method:

estimator.rem(enabled=True, calibration_shots=2000, calibration_file="cals.json")

Parameter

Default

Description

enabled

True

Enable or disable readout error mitigation

calibration_shots

1000

Number of shots used for M3 calibration circuits

calibration_file

None

Path to save/load calibration data (JSON). Reuses cached calibrations when available.

ZNE (Zero-Noise Extrapolation)#

ZNE artificially scales circuit noise by folding gates, then extrapolates to the zero-noise limit. It is enabled at mitigation level 3.

Configure ZNE using the zne() method:

estimator.zne(
    enabled=True,
    fold_gates=["cx", "cz"],
    scale_factors=[1, 3, 5],
    folding_method="local",
    extrapolation_method="exponential",
)

Parameter

Default

Description

enabled

True

Enable or disable ZNE

fold_gates

None

Gate names to fold (e.g. ["cx", "cz"]). If None, folds all gates.

scale_factors

[1, 3, 5]

List of positive odd integers for noise scaling. At least 2 required.

folding_method

"local"

"local" (per-gate folding) or "global" (whole-circuit folding). When "global", fold_gates is ignored.

extrapolation_method

"exponential"

Extrapolation fit method. One of: "exponential", "richardson", "polynomial", "linear".

extrapolation_degree

None

Polynomial degree (only for "polynomial" method). Defaults to min(n_scales - 1, 2).

Inspecting Options#

Use the mitigator_options property to view currently applied mitigation settings:

estimator.mitigator_options

Results#

run() returns a FiQCIEstimatorJobCollection with the following methods:

Method

Description

expectation_values(index=None)

Mitigated expectation values

raw_expectation_values(index=None)

Raw (pre-extrapolation) expectation values

jobs()

All jobs executed by the estimator

results()

Results for each job

observables(index=None)

Observables used in the computation

Examples#