Advanced Optimization Settings

Macros Options

Figure 1 - Optimization Settings - Runtime Tab

VBA macros can be run at different times during an optimization and/or during each trial solution. This allows custom calculations to be invoked during an optimization. Check the box to the left of an option to enable it, and provide the name of the macro to be executed at that point of analysis.

This feature allows for calculations - that can only be performed through the use of a macro - to be made during an optimization. Examples of such macro-performed calculations are iterative looping calculations and calculations that require new data from external sources.

Macros can be executed at the following times during an optimization:

  • At the Start of the Optimization - The specified macro runs after the Start button is clicked, prior to the first trial solution being generated.
  • Before Recalculation of Each Trial - The specified macro runs before recalculation of each trial that is executed.
  • After Recalculation of Each Trial - The specified macro runs after recalculation of each trial that is executed.
  • After Storing Output - The specified macro runs after each trial that is executed and after the target cell’s value is stored in the optimization engine.
  • Any changes made to cell values will have no effect on the information passed to the optimization engine on that trial. This option can be used to update on optimization progress (or to log optimization progress)!

  • At the End of the Optimization - The specified macro runs when the optimization is completed.

 

 

 

Engine Options

Figure 2 - 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 3 - 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.

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.

View Options

Figure 4 - Optimization Settings - View Tab

The View tab in the Optimization Settings dialog displays Evolver settings that determine what will be shown during an optimization. 

Options on the View tab include:

  • Minimize Excel at Start - When checked, the Excel window will minimize when an optimization starts.
  • Show Excel Recalculations - Check this option to update the model spreadsheet formulas during analysis. The options are:
    • Every New Best Trial - The spreadsheet will only be updated when a new best solution is found.
    • Every Trial - The spreadsheet will update after every trial.