pyanno4rt.optimization.solvers.configurations

Solution algorithms module.


This module aims to provide functions to configure the solution algorithms for the optimization packages.

Overview

Function

configure_proxmin(problem_instance, lower_variable_bounds, upper_variable_bounds, lower_constraint_bounds, upper_constraint_bounds, algorithm, max_iter, tolerance, callback)

Configure the Proxmin solver.

configure_pyanno4rt(problem_instance, lower_variable_bounds, upper_variable_bounds, lower_constraint_bounds, upper_constraint_bounds, algorithm, max_iter, tolerance, callback)

Configure the pyanno4rt solver.

configure_pymoo(number_of_variables, number_of_objectives, number_of_constraints, problem_instance, lower_variable_bounds, upper_variable_bounds, lower_constraint_bounds, upper_constraint_bounds, algorithm, initial_fluence, max_iter, tolerance)

Configure the Pymoo solver.

configure_pypop7(number_of_variables, problem_instance, lower_variable_bounds, upper_variable_bounds, lower_constraint_bounds, upper_constraint_bounds, algorithm, max_iter, tolerance)

Configure the PyPop7 solver.

configure_scipy(problem_instance, lower_variable_bounds, upper_variable_bounds, lower_constraint_bounds, upper_constraint_bounds, algorithm, max_iter, tolerance, callback)

Configure the SciPy solver.

Functions

pyanno4rt.optimization.solvers.configurations.configure_proxmin(problem_instance, lower_variable_bounds, upper_variable_bounds, lower_constraint_bounds, upper_constraint_bounds, algorithm, max_iter, tolerance, callback)[source]

Configure the Proxmin solver.

Supported algorithms: ADMM, PGM, SDMM.

Parameters:
  • problem_instance (object of class LexicographicOptimization WeightedSumOptimization) – The object representing the optimization problem.

  • lower_variable_bounds (list) – Lower bounds on the decision variables.

  • upper_variable_bounds (list) – Upper bounds on the decision variables.

  • lower_constraint_bounds (list) – Lower bounds on the constraints.

  • upper_constraint_bounds (list) – Upper bounds on the constraints.

  • algorithm (str) – Label for the solution algorithm.

  • max_iter (int) – Maximum number of iterations.

  • tolerance (float) – Precision goal for the objective function value.

  • callback (callable) – Callback function from the class ProxminSolver.

Returns:

  • fun (callable) – Minimization function from the Proxmin library.

  • arguments (dict) – Dictionary with the function arguments.

pyanno4rt.optimization.solvers.configurations.configure_pyanno4rt(problem_instance, lower_variable_bounds, upper_variable_bounds, lower_constraint_bounds, upper_constraint_bounds, algorithm, max_iter, tolerance, callback)[source]

Configure the pyanno4rt solver.

Supported algorithms: …

Parameters:
  • problem_instance (object of class LexicographicOptimization WeightedSumOptimization) – The object representing the optimization problem.

  • lower_variable_bounds (list) – Lower bounds on the decision variables.

  • upper_variable_bounds (list) – Upper bounds on the decision variables.

  • lower_constraint_bounds (list) – Lower bounds on the constraints.

  • upper_constraint_bounds (list) – Upper bounds on the constraints.

  • algorithm (str) – Label for the solution algorithm.

  • max_iter (int) – Maximum number of iterations.

  • tolerance (float) – Precision goal for the objective function value.

  • callback (callable) – Callback function from the class Pyanno4rtSolver.

Returns:

  • fun (callable) – Minimization function from the pyanno4rt library.

  • arguments (dict) – Dictionary with the function arguments.

pyanno4rt.optimization.solvers.configurations.configure_pymoo(number_of_variables, number_of_objectives, number_of_constraints, problem_instance, lower_variable_bounds, upper_variable_bounds, lower_constraint_bounds, upper_constraint_bounds, algorithm, initial_fluence, max_iter, tolerance)[source]

Configure the Pymoo solver.

Supported algorithms: NSGA-3.

Parameters:
  • number_of_variables (int) – Number of decision variables.

  • number_of_objectives (int) – Number of objective functions.

  • number_of_constraints (int) – Number of constraint functions.

  • problem_instance (object of class ParetoOptimization The object representing the optimization problem.)

  • lower_variable_bounds (list) – Lower bounds on the decision variables.

  • upper_variable_bounds (list) – Upper bounds on the decision variables.

  • lower_constraint_bounds (list) – Lower bounds on the constraints.

  • upper_constraint_bounds (list) – Upper bounds on the constraints.

  • algorithm (str) – Label for the solution algorithm.

  • initial_fluence (ndarray) – Initial fluence vector.

  • max_iter (int) – Maximum number of iterations.

  • tolerance (float) – Precision goal for the objective function value.

Returns:

  • fun (callable) – Minimization function from the Pymoo library.

  • algorithm_object (object of class from pymoo.algorithms) – The object representing the solution algorithm.

  • problem (object of class from pymoo.core.problem) – The object representing the Pymoo-compatible structure of the multi-objective (Pareto) optimization problem.

  • termination (object of class from pymoo.termination) – The object representing the termination criterion.

pyanno4rt.optimization.solvers.configurations.configure_pypop7(number_of_variables, problem_instance, lower_variable_bounds, upper_variable_bounds, lower_constraint_bounds, upper_constraint_bounds, algorithm, max_iter, tolerance)[source]

Configure the PyPop7 solver.

Supported algorithms: LMCMA, LMMAES.

Parameters:
  • problem_instance (object of class LexicographicOptimization WeightedSumOptimization) – The object representing the optimization problem.

  • lower_variable_bounds (list) – Lower bounds on the decision variables.

  • upper_variable_bounds (list) – Upper bounds on the decision variables.

  • lower_constraint_bounds (list) – Lower bounds on the constraints.

  • upper_constraint_bounds (list) – Upper bounds on the constraints.

  • algorithm (str) – Label for the solution algorithm.

  • initial_fluence (ndarray) – Initial fluence vector.

  • max_iter (int) – Maximum number of iterations.

  • tolerance (float) – Precision goal for the objective function value.

Returns:

  • fun (object) – The object representing the optimization algorithm.

  • arguments (dict) – Dictionary with the function arguments.

pyanno4rt.optimization.solvers.configurations.configure_scipy(problem_instance, lower_variable_bounds, upper_variable_bounds, lower_constraint_bounds, upper_constraint_bounds, algorithm, max_iter, tolerance, callback)[source]

Configure the SciPy solver.

Supported algorithms: L-BFGS-B, TNC, trust-constr.

Parameters:
  • problem_instance (object of class LexicographicOptimization WeightedSumOptimization) – The object representing the optimization problem.

  • lower_variable_bounds (list) – Lower bounds on the decision variables.

  • upper_variable_bounds (list) – Upper bounds on the decision variables.

  • lower_constraint_bounds (list) – Lower bounds on the constraints.

  • upper_constraint_bounds (list) – Upper bounds on the constraints.

  • algorithm (str) – Label for the solution algorithm.

  • max_iter (int) – Maximum number of iterations.

  • tolerance (float) – Precision goal for the objective function value.

  • callback (callable) – Callback function from the class SciPySolver.

Returns:

  • fun (callable) – Minimization function from the SciPy library.

  • arguments (dict) – Dictionary with the function arguments.