Expectations (qiskit.opflow.expectations
)¶
Expectations are converters which enable the computation of the expectation value of an
Observable with respect to some state function. They traverse an Operator tree, replacing
OperatorStateFn
measurements with equivalent
measurements which are more amenable to computation on quantum or classical hardware.
For example, if one would like to measure the
expectation value of an Operator o
expressed as a sum of Paulis with respect to some state
function, but only has access to diagonal measurements on Quantum hardware, we can create a
measurement ~StateFn(o), use a PauliExpectation
to convert it to a diagonal measurement
and circuit prerotations to append to the state, and sample this circuit on Quantum hardware with
a CircuitSampler
. All in all, this would be:
my_sampler.convert(my_expect.convert(~StateFn(o)) @ my_state).eval()
.
Expectation Base Class¶
The ExpectationBase class gives an interface for algorithms to ask for Expectations as
execution settings. For example, if an algorithm contains an expectation value step within it,
such as VQE
, the algorithm can give the opportunity for the user
to pass an ExpectationBase of their choice to be used in that expectation value step.
A base for Expectation value converters. 
Expectations¶
A factory class for convenient automatic selection of an Expectation based on the Operator to be converted and backend used to sample the expectation value. 

An Expectation converter for using Aer’s operator snapshot to take expectations of quantum state circuits over Pauli observables. 

An Expectation converter which converts Operator measurements to be matrixbased so they can be evaluated by matrix multiplication. 

An Expectation converter for Paulibasis observables by changing Pauli measurements to a diagonal ({Z, I}^n) basis and appending circuit postrotations to the measured state function. 

Compute the Conditional Value at Risk (CVaR) expectation value. 