pyriemann_qiskit.utils.utils.get_docplex_optimizer_from_params_bag

pyriemann_qiskit.utils.utils.get_docplex_optimizer_from_params_bag(logger, quantum, quantum_instance, upper_bound, qaoa_optimizer, classical_optimizer, create_mixer, n_reps, qaoa_initial_points, qaoacv_implementation)[source]

Factory function to create optimizer based on parameters.

Creates and returns the appropriate optimizer instance (quantum or classical) based on the provided parameters. Selects between NaiveQAOAOptimizer, QAOACVAngleOptimizer, QAOACVOptimizer, or ClassicalOptimizer depending on the configuration.

Parameters:
  • logger (object) – Logger object with _log method for logging optimizer selection.

  • quantum (bool) – If True, creates a quantum optimizer. If False, creates a classical optimizer.

  • quantum_instance (QuantumInstance or None) – Quantum instance for running quantum circuits. Required when quantum=True.

  • upper_bound (int) – Upper bound for integer variables in NaiveQAOAOptimizer.

  • qaoa_optimizer (Optimizer) – Classical optimizer for QAOA parameter optimization.

  • classical_optimizer (Optimizer) – Classical optimizer instance used when quantum=False.

  • create_mixer (callable or None) – Function to create custom mixer for QAOA-CV. If None and quantum is True, uses NaiveQAOAOptimizer.

  • n_reps (int) – Number of repetitions for QAOA ansatz layers.

  • qaoa_initial_points (array-like) – Initial parameter values for QAOA optimization.

  • qaoacv_implementation (str) – QAOA-CV implementation variant. “ulvi” selects QAOACVAngleOptimizer, “luna” or other values select QAOACVOptimizer. If not quantum or create_mixer is undefined, then does nothing.

Returns:

optimizer – or QAOACVOptimizer Configured optimizer instance based on the provided parameters.

Return type:

ClassicalOptimizer, NaiveQAOAOptimizer, QAOACVAngleOptimizer,

Notes

The function selects the optimizer according to the following logic: - If quantum=False: returns ClassicalOptimizer - If quantum=True and create_mixer is None: returns NaiveQAOAOptimizer - If quantum=True and create_mixer is provided:

  • If “ulvi” in qaoacv_implementation: returns QAOACVAngleOptimizer

  • Otherwise: returns QAOACVOptimizer

Added in version 0.4.1.

Changed in version 0.5.0: add qaoacv_implementation parameter