parallel_optimization_setup

- 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.

¶llel_optimization_setup STRING method = "simplex"; 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"; &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.`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.