forest.benchmarking.direct_fidelity_estimation.generate_exhaustive_state_dfe_experiment(benchmarker: pyquil.api._benchmark.BenchmarkConnection, program: pyquil.quil.Program, qubits: list) → forest.benchmarking.observable_estimation.ObservablesExperiment

Estimate state fidelity by exhaustive direct fidelity estimation.

This leads to a quadratic reduction in overhead w.r.t. state tomography for fidelity estimation.

The algorithm is due to [DFE1] and [DFE2].

  • benchmarker – object returned from pyquil.api.get_benchmarker() used to conjugate each Pauli by the Clifford program
  • program – A program comprised of Clifford group gates that constructs a state for which we estimate the fidelity.
  • qubits – The qubits to perform DFE on. This can be a superset of the qubits used in program, in which case it is assumed the identity acts on these qubits. Note that we assume qubits are initialized to the |0> state.

an ObservablesExperiment that constitutes a state DFE experiment.