evaluator¶
Classes for evaluating Operator, Constraint and ProblemRepresentation instances under a State.
- This module contains 3 abstract base classes to facilitate easy and flexible custom evaluation:
OperatorEvaluator: evaluatesOperator,OperatorProductandOperatorPolynomialinstances.ConstraintEvaluator: evaluatesConstraintinstances.ProblemEvaluator: evaluatesProblemRepresentationinstances.
All base classes are generic over the operator, state and problem classes. Custom building of evaluation pipelines of custom types is best achieved using composition over inheritance.
For examples, see the implementations for basis states in the Pauli basis (PauliBasisState)
in parityos.evaluate.pauli_evaluator.
- class parityos.evaluators.evaluator.OperatorEvaluator¶
Bases:
ABC,Generic[StateT_contra,OperatorT_contra]Abstract base class for evaluating
Operator,OperatorProductandOperatorPolynomialinstances.Subclasses must implement abstract
evaluate_operatorand may overrideevaluate_operator_productandevaluate_operator_polynomialfor which a default implementation is given here.- abstractmethod evaluate_operator(state: StateT_contra, operator: OperatorT_contra) float¶
Evaluate
operatorfor the givenstate.- Parameters:
state – The state for which to evaluate
operator.operator – The operator which to evaluate for
state.
- Returns:
The value of
operatorforstate.
- evaluate_operator_product(state: StateT_contra, operator_product: OperatorProduct[OperatorT_contra]) float¶
Default implementation of
OperatorProductevaluation as a product of singleOperatorevaluations.Subclasses may override this implementation.
- Parameters:
state – The state for which to evaluate
operator_product.operator_product – The operator product which to evaluate for
state.
- Returns:
The value of
operator_productforstate.
- evaluate_operator_polynomial(state: StateT_contra, operator_polynomial: OperatorPolynomial[OperatorT_contra]) Symbolic | complex¶
Default implementation of
OperatorPolynomialevaluation as a weighted sum of singleOperatorProductterm evaluations.Subclasses may override this implementation.
- Parameters:
state – The state for which to evaluate
operator_polynomial.operator_polynomial – The operator polynomial which to evaluate for
state.
- Returns:
The value of
operator_polynomialforstate.
- class parityos.evaluators.evaluator.ConstraintEvaluator¶
Bases:
Generic[StateT_contra],ABCAbstract base class for evaluating
Constraintinstances.Subclasses must implement abstract
evaluate_constraintsSubclasses may take custom or built-inOperatorEvaluatorobjects as helpers.- abstractmethod evaluate_constraints(state: StateT_contra, constraints: Iterable[ConstraintT]) Symbolic | complex¶
Evaluate
constraintsfor the givenstate.- Parameters:
state – The state for which to evaluate
constraints.constraints – Constraints which to evaluate for
state.
- Returns:
The value of
constraintsforstate.
- class parityos.evaluators.evaluator.ProblemEvaluator¶
Bases:
Generic[StateT_contra],ABCAbstract base class for evaluating
ProblemRepresentationinstances.Subclasses must implement abstract
evaluate_problem. Subclasses may take custom or built-inOperatorEvaluatorand/orConstraintEvaluatorobjects as helpers.- abstractmethod evaluate_problem(state: StateT_contra, problem: ProblemRepresentation[QubitT_co]) Symbolic | complex¶
Evaluate
problemfor the givenstate.- Parameters:
state – The state for which to evaluate
problem.problem – The problem which to evaluate for
state.
- Returns:
The value of
problemforstate.