×
Menu
Index

5.4 The optimisation algorithm

The optimisation algorithm used in the iVN is the Genetic Algorithm (GA), implemented using the pyGMO library.  The details of the GA are widely available and there is online documentation on the pyGMO library here: https://esa.github.io/pygmo2/. Here we provide a brief summary of this algorithm:
1.       The iVN model and the optimisation parameters set by the user are used to prepare a set of models with randomly determined choices for each decision variable.  A set of different individuals are created which then forms the initial population.
2.       Each individual is simulated in the iVN engine.  This is performed as a parallel batch process.
3.       Once each simulation is completed and the results data for each individual is calculated, the fitness of each individual is evaluated using a fitness function which is based on the user-specified objective functions.
4.       The fitness values are used to generate a new population by creating a set of new individuals.  These new individuals have decision vectors which are relative to the subset of individuals with the best fitness values.
5.       Steps 2-4 above are repeated for 50 generations.
6.       Once the last generation has been evaluated, the individual with the best fitness score is returned as the optimal result.
Note: Because the optimisation algorithm is computing thousands of models with different decision vectors, the simulation process takes a lot longer than a normal simulation.