pyanno4rt.optimization.solvers.configurations._configure_pymoo

Pymoo algorithm configuration.

Overview

Classes

PymooProblem

Pymoo optimization problem class.

Function

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.

Classes

class pyanno4rt.optimization.solvers.configurations._configure_pymoo.PymooProblem(number_of_variables, number_of_objectives, number_of_constraints, problem_instance, lower_variable_bounds, upper_variable_bounds, lower_constraint_bounds, upper_constraint_bounds)[source]

Bases: pymoo.core.problem.ElementwiseProblem

Pymoo optimization problem class.

This class provides a Pymoo-compatible structure of the problem and a method to evaluate the fitness of the solution in each iteration.

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.

problem_instance

See ‘Parameters’.

Type:

object of class ParetoOptimization

Notes

Fitness evaluation is based on a modification suggested in the paper by Pang et al. (2020): DOI 10.1109/ACCESS.2020.3032240.

Functions

pyanno4rt.optimization.solvers.configurations._configure_pymoo.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.