qilisdk.functionals.variational_program

Attributes

TFunctional

Classes

VariationalProgram

Bundle a parameterized functional, optimizer, and cost function into a variational loop.

Module Contents

TFunctional[source]
class VariationalProgram(functional: TFunctional, optimizer: qilisdk.optimizers.optimizer.Optimizer, cost_function: qilisdk.cost_functions.cost_function.CostFunction, store_intermediate_results: bool = False, parameter_constraints: list[qilisdk.core.variables.ComparisonTerm] | None = None)[source]

Bases: qilisdk.functionals.functional.Functional, Generic[TFunctional]

Bundle 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, optional) – Persist intermediate executions if requested by the optimizer.

  • parameter_constraints (list[ComparisonTerm] | None) – Optional constraints on parameter values that are enforced before optimizer updates are applied.

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.

result_type: ClassVar[type[qilisdk.functionals.functional_result.FunctionalResult]][source]

Concrete FunctionalResult subclass returned.

property functional: TFunctional[source]

Return the wrapped functional that will be optimised.

property optimizer: qilisdk.optimizers.optimizer.Optimizer[source]

Return the optimizer responsible for parameter updates.

property cost_function: qilisdk.cost_functions.cost_function.CostFunction[source]

Return the cost function applied to functional results.

property store_intermediate_results: bool[source]

Indicate whether intermediate execution data should be stored.

get_constraints() list[qilisdk.core.variables.ComparisonTerm][source]

Return variational-program-level constraints plus those from the underlying functional.

check_parameter_constraints(parameters: dict[str, float]) int[source]

Return a penalty-like score (0 if valid) indicating how many constraints are violated.