dual_from_marginal_probabilities

dual_from_marginal_probabilities(povm: BasePOVM, state: SparsePauliOp | DensityMatrix | Statevector, *, threshold: float = 1e-05) BaseDual[source]

Return the Dual frame of povm based on the marginal distribution of a supplied state.

This method constructs a product Dual frame where each local Dual frame is parametrized with the alpha-parameters set as the marginal outcome probabilities of the supplied state.

You can use this function like any of the Dual frame constructors to set the POVMPostProcessor.dual attribute as shown in this how-to guide.

Warning

Computing this Dual frame obviously requires knowledge of an exact reference state and, thus, is limited in its applicability to development and testing cases in which an exact state is available.

Parameters:
  • povm (BasePOVM) – the POVM for which we want to build a Dual frame.

  • state (SparsePauliOp | DensityMatrix | Statevector) – the state from which to compute the marginal outcome probabilities.

  • threshold (float) – if an outcome probability is below this value, an offset equal to the threshold magnitude will be added to all probabilities in the same marginal distribution. This is designed to avoid having parameters of the frame super-operator set to zero, which would result in a ZeroDivisionError.

Raises:

NotImplementedError – if povm is not a ProductPOVM instance. If you have MultiQubitPOVM, have a look at dual_from_state().

Returns:

The Dual frame based on the marginal outcome probabilities of the given state.

Return type:

BaseDual