Observable Estimation and Error Mitigation

The module observable_estimation is at the heart of forest benchmarking. It provides a convenient way to construct experiments that measure observables and mitigate errors associated with readout (measurement) process.

Data structures

ObservablesExperiment(settings, …) A data structure for experiments involving estimation of the expectation of various observables measured on a core program, possibly with a collection of different preparations.
ExperimentSetting(in_state, observable) Input and output settings for an ObservablesExperiment.
ExperimentResult(setting, expectation, …) An expectation and standard deviation for the measurement of one experiment setting in an ObservablesExperiment.
TensorProductState([states]) A description of a multi-qubit quantum state that is a tensor product of many _OneQStates states.
_OneQState(label, index, qubit) A description of a named one-qubit quantum state.
to_json(fn, obj) Convenience method to save forest.benchmarking.observable_estimation objects as a JSON file.
read_json(fn) Convenience method to read forest.benchmarking.observable_estimation objects from a JSON file.


estimate_observables(qc, obs_expt, …) Standard wrapper for estimating the observables in an ObservableExperiment.
calibrate_observable_estimates(qc, …) Calibrates the expectation and std_err of the input expt_results and updates those estimates.
generate_experiment_programs(obs_expt, …) Generate the programs necessary to estimate the observables in an ObservablesExperiment.
group_settings(obs_expt, method) Group settings that are diagonal in a shared tensor product basis (TPB) to minimize number of QPU runs.
shots_to_obs_moments(bitarray, qubits, …) Calculate the mean and variance of the given observable based on the bitarray of results.
ratio_variance(a, numpy.ndarray], var_a, …) Given random variables ‘A’ and ‘B’, compute the variance on the ratio Y = A/B.
merge_disjoint_experiments(experiments, …) Merges the list of experiments into a single experiment that runs the sum of the individual experiment programs and contains all of the combined experiment settings.
get_results_by_qubit_groups(results, …) Organizes ExperimentResults by the group of qubits on which the observable of the result acts.