Engine Tab

Figure 1 - Optimization Settings - Engine Tab

The Engine tab selects the optimization engine and settings that will be used during an analysis. Evolver has two optimization engines to search for optimum solutions to a problem - OptQuest and Genetic Algorithm.

The Genetic Algorithm engine mimics Darwinian principles of natural selection by creating an environment where hundreds of possible solutions to a problem can compete with one another, and only the fittest "survive". Just as in biological evolution, each solution can pass along its good “genes” through “offspring” solutions so that the entire population of solutions will continue to evolve better solutions.

The OptQuest engine uses metaheuristic, mathematical optimization, and neural network components to guide the search for best solutions to decision and planning problems of all types. OptQuest’s methods integrate state-of-the-art metaheuristic procedures, including Tabu Search, Neural Networks, Scatter Search, and Linear/Integer Programming, into a single composite method.

The Engine options available are:

  • Initial Seed - Configure the random number generator of the optimization algorithm. By setting this field to a fixed integer value, the same sequence of solutions will be generated in multiple optimization runs, given the same initial values in the adjustable cells. Leaving this field set to 'Automatic' sets Evolver to select the initial seed randomly.
  • Optimization Mode - Configure how the optimization engine will be selected. 'Automatic' allows Evolver to choose what it determines is the best engine. Selecting 'Manual' will expand the visible options; see Optimization Mode below for more information.

Optimization Mode

In most cases, Evolver can automatically detect which engine will give the best and fastest solutions to a model. However, there might be times when a specific engine is required or preferable. When the Manual option is selected, the visible options expand (Figure 2, right).

Figure 2 - Engine Tab - Manual Options

For Manual Optimization Mode, the options are:

  • Optimize Using - Select either the Genetic Algorithm or OptQuest engine.
  • Genetic Algorithm Settings - Only available when 'Genetic Algorithm' is selected. The options are:
    • Population Size. - The population size tells Evolver how many "organisms" (or complete sets of variables) to store in memory at any given time.
    • Although there is still much debate and research regarding the optimal population size to use on different problems, it is generally recommended that 30-100 organisms are used in a model's population, depending on the size of the problem (bigger population for larger problems). The common view is that a larger population takes longer to settle on a solution but is more likely to find a global solution because of its more diverse gene pool.

    • Crossover Rate - Crossover rate can be set to between 0.01 and 1.0, and reflects the likelihood that future scenarios or “organisms” will contain a mix of information from the previous generation of parent organisms. A rate of 0.5 means that an offspring organism will contain roughly 50% of its variable values from one parent and the remaining values from the other parent.  A rate of 0.9 means that roughly 90% of an offspring organism’s values will come from the first parent and 10% will come from the second parent. A Crossover rate of 1 means that no crossover will occur, so only clones of the parents will be evaluated.
    • Mutation Rate - The mutation rate can be set to between 0.0 and 1.0, and reflects the likelihood that future scenarios will contain some random values. A higher mutation rate means that more mutations, or random “gene” values, will be introduced into the population.
    • Because mutation occurs after crossover, setting the mutation rate to 1 (100% random values) will effectively prevent the crossover from having any effect, and Evolver will generate totally random scenarios.

    • By selecting Auto from for the Mutation rate, auto-mutation rate adjustment is enabled.  Auto-mutation rate adjustment allows Evolver to increase the mutation rate automatically when an organism "ages" significantly, that is, when it has not changed over an extended number of trials.  For many models, especially where the “best” mutation rate is not known, the Auto setting is preferred.

    • Operators - Select which Genetic Operators are included in Crossovers and Mutations. See Genetic Operators, below, for more information.

One of the most difficult problems with searching for optimal solutions, when a problem has seemingly endless possibilities, is in determining where to focus effort. How much computational time should be devoted to looking in new areas of the “solution space” and how much time should be devoted to fine-tuning the solutions in the population that have already proven to be fairly good?

A big part of the Genetic Algorithm (GA) success has been attributed to its ability to achieve this balance.  The structure of the GA allows good solutions to “breed,” but it also keeps “less fit” organisms in memory to maintain diversity, reasoning that a latent “gene” will prove important to the ultimate solution. Crossover and Mutation are two parameters that affect the scope of the analysis, and Evolver allows these parameters to change both before and during, the evolutionary process.  This enables users to assist the GA by deciding where the algorithm should focus its energy. For most purposes, the default crossover and mutation settings (0.5 and 0.1 respectively) should not need to be modified.  However, when fine-tuning the algorithm to a specific problem, or when conducting comparative studies (or just to experiment) these two parameters can be adjusted.

Genetic Operators

Figure 3 - Genetic Operators Window

The Genetic Operators options will only be applied when running a model that includes the Recipe solving method!

Genetic algorithms use genetic operators to create new members of the population from current members. Evolver includes selectable genetic operators that can be used when generating possible values for the adjustable cells. These options can be set manually, or Evolver can automatically test all available operators and identify the one that performs best for a model.

Evolver includes the following specialized genetic operators:

  • Default parent selection -
  • Default mutation -
  • Default crossover -
  • Linear Operators - These are designed to solve problems where the optimal solution lies on the boundary of the search space defined by the constraints.  This mutation and crossover operator pair is well suited for solving linear optimization problems.
  • Boundary Mutation - Designed to quickly optimize variables that affect the result in a monotonic fashion and can be set to the extremes of their range without violating constraints.
  • Cauchy Mutation - Produces small changes in variables most of the time, but can occasionally generate large changes.
  • Non-uniform Mutation - Produces smaller and smaller mutations as more trials are calculated.  This allows Evolver to fine-tune solutions.
  • Arithmetic Crossover - Creates new offspring by arithmetically combining the two parents (as opposed to swapping genes).
  • Heuristic Crossover - Utilizes values produced by the parents to determine how the offspring is produced.  It searches in the most promising direction and provides local fine-tuning.
  • Local Search -