Q: What are the genetic operators that come with Evolver Professional and Industrial Editions?
A: For each group of adjustable cells in your model, you can specify one or more operators that control how Evolver optimizes that group of cells. These can be set by clicking the Operators… button in the Adjustable Cells dialog. Similar to the Strategies of Evolver version 3.5 and earlier, these operators modify the standard method Evolver uses to search for better solutions. Evolver comes with several built-in genetic operators, but you can also create your own using the Evolver Developer's Kit (EDK).
Each operator works specifically with a particular Evolver solving method, and modifies its standard optimization technique. For example, the Boundary Mutation operator, which is available only with the Recipe solving method, encourages Evolver to preferentially search along the boundaries of the constraint ranges. The effectiveness of these operators is, of course, model dependent. In other words, an operator (or combination of operators) that was effective on one model may or may not be as effective on a different model. If you select more than one operator, Evolver will attempt to intelligently cycle through the combinations of these operators, looking for those that work well for your model.
Each solving method has a set of default operators which are always available. In addition, the Recipe solving method (by far the most common solving method used) ships with these seven additional operators:
The standard Recipe crossover technique involves picking two parent organisms and randomly swapping their genes to construct a new child organism. In Arithmetic Crossover, this behavior is changed so that the child organism is constructed by taking the genes of the two parents and mathematically averaging them, weighted by the crossover rate.
Heuristic Crossover is similar to Arithmetic Crossover in that it mathematically combines the genes of two parent organisms to form the offspring organism. However, instead of averaging them, as done in Arithmetic Crossover, the child genes are constructed from a linear extrapolation of the difference between the two parents. The amount of extrapolation is randomly chosen based on the crossover rate.
The standard Recipe mutation algorithm does not rely on the current value that a gene has when it generates a new value for that gene. The probability distribution of the new gene value is uniformly distributed across its entire allowed range. The Cauchy Mutation operator modifies this procedure so the new gene value is instead distributed like a Cauchy function, centered at the current value and with a width dependent on how close the current value is to the boundaries of the allowed range.
This operator forces Recipe to mutate genes to the boundaries of the allowed range, instead of uniformly distributed within that range. The standard Recipe mutation algorithm often has difficulty finding a solution that sits directly on a boundary.
The standard Recipe mutation algorithm does not change as a function of how many trials of the optimization have been evaluated. The Non-Uniform Mutation operator modifies Recipe so that at the beginning of the optimization mutations are uniformly distributed across the entire allowed range of a gene. As the optimization proceeds, however, the distribution narrows in width, thus confining the mutation more locally around the current value of the gene. Thus, near the beginning of the optimization, Evolver will be looking for global optima, but as the optimization proceeds, the search will become more and more focused on the regions that are know to be good solutions. The rate of this progress is dynamically controlled by the operator.
Linear problems have optimal solutions that lie on the constraint boundaries. The Linear operator assumes the problem at hand is linear, and searches along the constraint boundaries, backtracking where necessary, to find the best solution. The Linear operator differs from the Boundary Mutation operator in that Linear contains modifications of Recipe's default crossover, parent selection, and mutation algorithms, not just its mutation algorithm.
Local search changes the Recipe solving method so that each new solution generated is based on a short, local "walk" of an existing element of the population. Crossover between organisms is ignored. The size of the walk is dynamically adjusted by Evolver depending on the nature of the model.