edaCriticalPopSize {copulaedas}R Documentation

Critical Population Size

Description

Determine the critical population size using a bisection method.

Usage

edaCriticalPopSize(eda, f, lower, upper, fEval, fEvalTol,
    totalRuns = 30, successRuns = totalRuns, lowerPop = 2,
    upperPop = NA, stopPercent = 10, verbose = FALSE)

Arguments

eda

EDA instance.

f

Objective function.

lower

Lower bounds of the variables of the objective function.

upper

Upper bounds of the variables of the objective function.

fEval

Optimum value of the objective function.

fEvalTol

A run is considered successful if the difference between fEval and the best found solution is less than fEvalTol.

totalRuns

Total number of runs.

successRuns

Required number of successfully runs.

lowerPop

Lower bound of the initial interval for the population.

upperPop

Upper bound of the initial interval for the population.

stopPercent

Stop percent.

verbose

Print progress information.

Details

This function determines the minimum population size required by the EDA to reach the value fEval of the objective function in successRuns runs out of a total of totalRuns independent runs (critical population size).

The population size is determined using a bisection method starting with the interval delimited by lowerPop and upperPop. The bisection procedure stops when the estimated population size is less than stopPercent percent away from the critical population size. If either lowerPop or upperPop is not specified, the algorithm will determine an initial interval based on the value of the popSize parameter and then continue using the bisection method.

See (Pelikan 2005) for a pseudocode of a similar algorithm.

Value

Either NULL if the critical population size was not determined or an EDAResults instance with the results of the runs of the EDA using the critical population size.

References

Gonzalez-Fernandez Y, Soto M (2014). copulaedas: An R Package for Estimation of Distribution Algorithms Based on Copulas. Journal of Statistical Software, 58(9), 1-34. http://www.jstatsoft.org/v58/i09/.

Pelikan M (2005). Hierarchical Bayesian Optimization Algorithm. Toward a New Generation of Evolutionary Algorithms. Springer-Verlag.

See Also

EDA, edaRun.

Examples

setMethod("edaReport", "EDA", edaReportDisabled)
setMethod("edaTerminate", "EDA",
    edaTerminateCombined(edaTerminateEval,
        edaTerminateMaxEvals))

UMDA <- CEDA(copula = "indep", margin = "norm",
    fEval = 0, fEvalTol = 1e-03, maxEvals = 10000)
UMDA@name <- "Univariate Marginal Distribution Algorithm"

results <- edaCriticalPopSize(UMDA, fSphere, rep(-600, 10),
    rep(600, 10), 0, 1e-03, totalRuns = 30, successRuns = 30,
    lowerPop = 50, upperPop = 100, verbose = TRUE)

show(results)
summary(results)

[Package copulaedas version 1.4.3 Index]