qilisdk.functionals.variational_program
Classes
Bundle a parameterized functional, optimizer, and cost function into a variational loop. |
Module Contents
- class VariationalProgram(functional: qilisdk.functionals.functional.PrimitiveFunctional, optimizer: qilisdk.optimizers.optimizer.Optimizer, cost_function: qilisdk.cost_functions.cost_function.CostFunction, store_intermediate_results: bool = False, parameter_constraints: list[qilisdk.core.comparison.Comparison] | None = None)[source]
Bases:
qilisdk.functionals.functional.FunctionalBundle a parameterized functional, optimizer, and cost function into a variational loop.
Example
program = VariationalProgram(functional, optimizer, cost_function)- Parameters:
functional (
PrimitiveFunctional) – Parameterized functional to optimize.optimizer (
Optimizer) – Optimization routine controlling parameter updates.cost_function (
CostFunction) – Metric used to evaluate functional executions.store_intermediate_results (
bool) – Persist intermediate executions if requested by the optimizer. Defaults to False.parameter_constraints (
list[Comparison] | None) – Optional constraints on parameter values that are enforced before optimizer updates are applied. Defaults to None.
- Raises:
ValueError – if the user applies constraints on parameters that are not present in the variational program. Or the constraints contain Objects that are not parameters.
- property functional: qilisdk.functionals.functional.PrimitiveFunctional[source]
Parameterized functional that will be optimised.
- property optimizer: qilisdk.optimizers.optimizer.Optimizer[source]
Optimizer responsible for parameter updates.
- property cost_function: qilisdk.cost_functions.cost_function.CostFunction[source]
Cost function applied to functional results.
- property store_intermediate_results: bool[source]
Whether intermediate execution data should be stored.
- get_constraints() list[qilisdk.core.comparison.Comparison][source]
Return variational-program-level constraints plus those from the underlying functional.
- Returns:
- Combined list of constraints from the
program and the wrapped functional.
- Return type:
list[Comparison]
- check_parameter_constraints(parameters: dict[str, float]) int[source]
Return a penalty score indicating how many constraints are violated.
Each violated constraint adds 100 to the returned score; a fully valid parameter set returns 0.
- Parameters:
parameters (
dict[str,float]) – Proposed parameter values keyed by label.- Returns:
Cumulative penalty (0 when all constraints are satisfied).
- Return type:
int