## Strong Pareto evolutionary algorithm SPEA

The goal of the strong Pareto evolutionary algorithm SPEA is to locate and maintain a front of non-dominated solutions, ideally a set of optimal Pareto solutions. This is achieved by using an evolutionary process (with surrogate procedures for genetic recombination and mutation) to explore the search space, and a selection process that uses a combination of the degree of dominance of a candidate solution (strong ) and an estimate of the density of the Pareto front as an assigned fitness.

An archive of the non-dominated set is kept separate from the population of candidate solutions used in the evolutionary process, providing a form of elitism.

Here are the functions of the strong Pareto evolutionary algorithm SPEA.

The CalculateRawFitness function calculates raw fitness as the sum of the strength values of the solutions that dominate a given candidate, where strength is the number of solutions that a given solution dominates. The CandidateDensity function estimates the density of an area of the Pareto front as 1 / (o ^ k + 2) where o ^ k is the Euclidean distance of the objective values between a given solution, the kth nearest neighbor of the solution, and k is the square root of the combined population and archive size.

The PopulateWithRemainingBest function iteratively populates the archive with the remaining candidate solutions in order of fitness. The RemoveMostSimilar function truncates the archive population by removing members with the smallest o ^ k values calculated against the archive.

The SelectParents function selects the parents of a population using a selection method of thegenetic algorithm such as the selection of binary tournaments. The CrossoverAndMutation function performs the genetic algorithm crossover and mutation operators.

The strong Pareto evolutionary algorithm SPEA has been designed and adapted to instances of optimization problems with multiple combinatorial objectives and continuous function. A binary representation can be used for continuous function optimization problems in conjunction with classical genetic operators such as point crossing and point mutation. A k value of 1 can be used for efficiency while providing useful results. The size of the archives is generally smaller than the size of the population.