- type: setup command (for Pelegant only).
- function: define overall parallel optimization parameters and methods.
- N.B.: In addition to the optimization parameters used in the optimization_setup command, several new parameters are added for parallel optimization. User should replace optimization_setup with parallel_optimization_setup and append necessary parameters.
- Command syntax, including use of equations and subcommands, is discussed in 7.2.

¶llel_optimization_setup

STRING method = "simplex";

double hybrid_simplex_tolerance = -0.01;

double hybrid_simplex_tolerance_count = 2;

long hybrid_simplex_comparison_interval = 0;

double random_factor = 1

long n_iterations = 10000;

long max_no_change = 10000;

long population_size = 100;

STRING population_log = NULL;

long print_all_individuals = 0;

long output_sparsing_factor = 1;

STRING crossover = "twopoint";

STRING simplex_log = NULL;

long simplex_log_interval = 1;

&end

STRING method = "simplex";

double hybrid_simplex_tolerance = -0.01;

double hybrid_simplex_tolerance_count = 2;

long hybrid_simplex_comparison_interval = 0;

double random_factor = 1

long n_iterations = 10000;

long max_no_change = 10000;

long population_size = 100;

STRING population_log = NULL;

long print_all_individuals = 0;

long output_sparsing_factor = 1;

STRING crossover = "twopoint";

STRING simplex_log = NULL;

long simplex_log_interval = 1;

&end

- method — May be one of “genetic”, “hybridsimplex” or “swarm”. If the default “simplex” method is chosen, all the processors will do the same optimization as the serial version if there is only one particle for optimization tracking, or do optimization tracking in parallel if the number of particles is larger than the number of CPUs. All algorithms can be used for global optimization. “swarm” is recommended when there is sufficient computation resource available, so it can reach the optimization target fast. “hybridsimplex” is recommended when the initial point is close to the optimal result. “genetic” can be chosen for a global optimizer with a random start point (0 should be avoided for any initial coordinate).
- random_factor — The factor to scale the step size for both parallel swarm and genetic methods.
- n_restarts — For the parallel “hybridsimplex” method, this number should be set larger than 1, so the the best result across all processors can be used for the next restart. The parameter is not used for the swarm method.
- hybrid_simplex_tolerance , hybrid_simplex_tolerance_count — For the parallel “hybridsimplex” method, these set, respectively, the tolerance value for changes between full iterations (restarts). If the result does not improve by more than hybrid_simplex_tolerance after hybrid_simplex_tolerance_count iterations, the optimization terminates.
- hybrid_simplex_comparison_interval — For the parallel “hybridsimplex” method, sets the interval between comparisons of progress among the several optimizations, in units of function evaluations. Once any of the optimizations is below the target value, all optimizations are sent an abort command. Ignored if zero or negative, in which case all optimizations run to completion. Depending on the time required to perform a single function evaluation, setting this to a small value may increase the required run time due to the overhead of frequent interprocessor communication.
- simplex_log — For the parallel “hybridsimplex” method, rootname for files to which data from each simplex optimization will be written. Intended only for debugging as it will adversely impact performance.
- simplex_log_interval — Interval at which simplex_log files will be updated.
- n_iterations — The maximal number of generations/iterations for the parallel genetic and particle swarm optimization.
- population_size — The number of individuals to be generated for each generation/iteration for the swarm and genetic method. For the hybridsimplex method, the number of individuals is equal to the number of processors used.
- max_no_change — The maximal number of generations in which no change in the best evaluation is allowed before the genetic method stops (genetic method only).
- n_evaluations — This is not used as a stop condition in the genetic optimization. The n_iterations or max_no_change can be used instead. For the hybridsimplex method, this is the number of allowed evaluations per restart.
- population_log — An SDDS file to which the best individual in a population can be written after each iteration as optimization proceeds. Recommended value: “%s.pop”. For the parallel genetic method, user can choose to print out all the individuals (See print_all_individuals).
- print_all_individuals — If nonzero, all the strings in a population will be recorded in the population_log file. This is supported for the genetic method only.
- output_sparsing_factor — For genetic optimization, this is used to set the frequency of printing strings in the log file with the number of generations as the interval.
- crossover — For genetic optimization, it allows the user to choose a crossover type from “onepoint”, “twopoint” and “uniform”. “twopoint” is the default crossover type. If the dimension is 2, it will be set to onepoint crossover.

Note:

- Genetic optimization in Pelegant terminates when at least one of the stopping rules specified
has been met. The two stopping rules are:
- generation limit (n_iterations) exceeded
- no change in the best solution found in a given number of generations. The default is to stop when the generation limit (10000 is the default value) is reached. While the max_no_change is more favorite to use, as it will stop until the result can not be improved after a certain number of iterations (10000 is the default value). The n_iterations can be set to a very large number to use this rule as the stop condition alone.

- step size control – The mutation step size in the genetic optimization is selected from a Gaussian distribution with mean 0 and standard deviation step_size, where step_size is provided by user. All the dimensions will use the same standard deviation for an iteration. The step_size of the first dimension provided by user will be used as the original step size for all the dimensions. The step size will be reduced by the golden ratio (1.618) if the best value is unchanged after every 3000 iterations. After every 3000 iterations since the last time the step size is reduced, the step size will be increased by the golden ratio.
- As the genetic optimization implementation in Pelegant internally updates individuals with a relative change of the current value for a variable, 0 should be avoided to use as an initial value.

optimization_term