


POP_MULTI Class definition for a population to be
used for multi-objective optimization
POP_MULTI is a SubClass of POP_SINGLE. The class
constructor works in the same way as that of POP_SINGLE,
with the exception that an additional property is set:
pop.num_objectives (number of objectives)
All inputs and other properties are the same as for
POP_SINGLE -- type 'help pop_single' for more information.
The method ITERATE is now suited to optimize multi-
objective problems. To that end, several other (hidden)
methods have been implemented:
NON_DOMINATED_SORT()
a general implementation of NSGA-II's non-dominated
sorting procedure. Sorts the current population
according to the domination level of the individuals.
pool = TOURNAMENT_SELECTION(pool_size, tournament_size)
a general tournament selection procedure, that takes
[tournament_size] individuals randomly selected from
the offspring population and lets them compete with
the rankings and crowding distances as determining
factors. The winning individual of each tournament
is inserted into [pool] until that [pool] contains
[pool_size] individuals.
UPDATE_ALGORITHMS()
Called from NON_DOMINATED_SORT(), updates some
globaly changing values for the different algorithms.
In pop_single, this is done in REPLACE_PARENTS(), but
as that step is not executed here, an extra method is
required. This updates for instance the [lbest],
[nbest] and [gbest] for PSO, and the temperature for
ASA.
See also pop_single, GODLIKE.