English Français

Documentation / User's manual in Python : PDF version

Chapter IX. The Reoptimizer module

Chapter IX. The Reoptimizer module

IX.1. Introduction

The reoptimizer module provides optimisation features, using the relauncher architecture. It can indeed be considered as a specialisation of this module for the closed-loop case (optimisation steps usually depends on the previous steps). This document will present neither an introduction to the optimisation problem characteristics (one simple version can be found in [metho]), nor a description of the different algorithms. It will more discuss the possible combination of runners, solvers and masters with (if possible) their pros and cons. For a glimpse at the way the implementation of a script can be done, one can look at the use-cases, provided in Section XIV.10.

Two kinds of solver are proposed: local search ones, starting from an initial guess point and global search ones, starting from a random population of potential solutions. They differ on many points:

  • Problem types: only global solvers offer multi-objective optimisation.

  • Constraints: Global solvers deal with inequality but not equality constraints, while local ones deal with both of them.

  • Inputs nature: all solvers deal with continuous problems, and some global solvers can deal with combinatory problems, with extra works.

  • Convergence speed and robustness: local solvers need less evaluations to converge but can be trapped in a local minimum, while global ones are more robust.

  • Unavailable items: only global solvers can deal with it.

  • Parallelism: local solvers are intrinsically sequential, and the only way to parallelised them is to run many optimisations starting from different points. Global solvers are intrinsically parallel.

IX.1.1. local optimizer

A local solver proposes mono-objective optimisation with or without constraints. It uses the NLopt library [nlopt] and different solvers are proposed. These solvers could be distinguished with:

  • Needed information: some solvers need gradient information while others use just the objective value.

  • Constraints handling: some solvers handle constraints naturally while the others use the augmented Lagrangian method.

IX.1.2. global optimizer

A global solver proposes mono and multiobjective optimisation, potentially with constraints. It uses the Vizir library [Vizir] and offers different solvers.

IX.1.3. Number of objectives

The number of objectives to be minimised plays a crucial part in the technique to be used, along with the time needed for a given code to converge and provide results. The main idea behind this small discussion is to identify the needs when starting an analysis.

  • One objective or more than one but they are not antagonistic: a single objective optimisation can be done. When dealing with several criteria the idea is then to combine them into an homemade criteria, based on whatever recipe one wants to apply (weighted/unweighted criteria, L1 or L2 sum, ...). From there, the use of TNlopt algorithm is recommended.

  • More than one objective that cannot be combined. In this case, the approach recommended would be to use Vizir which contains multi and many objectives algorithms. The difference between multi and many is tidious and is oftenly set between 3 and 4. A discussion between these algorithm is provided in [metho].

/language/en