Anvil: a multi-objective simulated annealing/genetic algorithm hybrid optimizer
Simulated annealing codes work in analogy to the search for a global energy minimum that occurs naturally in a slowly cooling metal. Random thermal fluctuations perturb the system, but these fluctuations decrease as the metal cools, allowing the system to settle into its lowest energy state. A typical simulated annealing code has only a single search point, which encodes the current state of the system. However, Anvil runs a population of search points to better sample the parameter space, and these search points communicate via genetic algorithm-like operators. Anvil is therefore best described as a mostly simulated annealing code, but one with significant genetic algorithm enhancements borrowed from Ferret.
Anvil can be used either as a stand-alone optimizer or as an alternative solution polisher to SAMOSA. It is a fast and efficient solver in stand-alone mode, and is well suited for problems of medium difficulty. As a polisher, it is more thorough than SAMOSA, but also more costly in terms of evaluations of the fitness function.
- Multi-objective analysis: Anvil is an efficient multi-objective optimizer that maps trade-off surfaces for medium-difficulty problems. Regions of parameter space can also be mapped for single-objective problems when a “fuzzy tolerance” is defined on the objective function.
- Multiple search points: Multiple simultaneous search points sample the parameter space more thoroughly than the single search point used in a typical simulated annealing code.
- Genetic algorithm hybridization: Genetic algorithms and simulated annealing are both powerful paradigms for optimization, and Anvil benefits from both worlds. Anvil's multiple search points communicate with each other via crossover, mutation and selection operators borrowed from Ferret.
- Self-adaptive cooling schedule: Anvil uses a self-adaptive cooling schedule that dynamically sets the temperature to optimize the performance of the algorithm, based on the distribution of energies in the population of search points. The cooling schedule is not arbitrary or determined a priori, which is a significant advantage over many other simulated annealing codes.