stopOnOCD: Stopping Condition: Online Convergence Detection.

Description Usage Arguments Details Value References See Also

View source: R/stoppingConditions.R


Online Convergence Detection (OCD) is a technique for detecting convergence of an algorithm based on statistical testing [1]. A two sided t-test as well as a chi-squared variance test are performed and serve as stopping criterion if significant.


stopOnOCD(varLimit, nPreGen, maxGen = NULL, fitnessValue = TRUE,
  dispersion = FALSE, evolutionPath = FALSE)



cma_stopping_condition specifies the variance limit passed to the chi-squared variance test. The null hypotheses of this test is: var(PI) >= VarLimit


The number nPreGen specifies the number of preceding generations for which the performance indicator values should be computed. The statistical tests consider exactly nPreGen generation in their testing procedure.


The number of iteration that should be spent at the maximum. maGen is the upper iteration limit if neither the t-test nor the chi-squared variance test terminate the optimization. Default is maGen = NULL.


The logical parameter fitnessValue indicates if the best fitness value of a population should be used as a performance indicator or not. Default is fitnessValue = TRUE.


The logical parameter dispersion indicates if the dispersion of the population should be used as a performance indicator or not. Default is dispersion = FALSE.


The logical parameter evolutionPath indicates if the evolutionPath or the step size, i.e. a cmaes parameter that controls the evolution of the population in the objective space, should be used as a performance indicator or not. Default is evolutionPath = FALSE.


Basically, two different analyses are performed for detecting convergence. A statistical chi-squared variance test is performed which checks whether the variance of a set of performance indicator values decreases below a predefined variance limit significantly. Additionally, a two sided t-test is performed in order to check if there is no significant linear trend of the performance indicator values. The significance level for both tests is fixed with alpha = 0.05. The algorithm execution is terminated if one of these conditions holds for the last i and second last (i - 1) generation. In this implementation, the performance indicator of interest are: fitnessValue, dispersion, evolutionPath. A performance indicator value corresponds to the difference between e.g. the best fitness value of the current generation and that of the last generation. Depending on the number nPreGen, a vector PI of length nPreGen is computed internally, that stores those differences for each active performance indicator.


stopOnOCD returns TRUE if the optimizer should terminate the execution or FALSE if not.


[1] Wagner and Trautmann (2009). OCD: Online Convergence Detection for Evolutionary Multi-Objective Algorithms Based on Statistical Testing. In Lecture Notes in Computer Science, pp. 198-215.

See Also

Other stopping.conditions: stopOnCondCov, stopOnIndefCovMat, stopOnMaxIters, stopOnNoEffectAxis, stopOnNoEffectCoord, stopOnOptParam, stopOnOptValue, stopOnTimeBudget

andreas-he/cmaesbenchmarking documentation built on May 10, 2017, 9:25 p.m.