R-GENetic Optimization Using Derivatives (RGENOUD)

Walter R. Mebane, Jr. and Jasjeet S. Sekhon

This webpage is for the distribution of the R version of GENOUD (GENetic Optimized Using Derivatives). Genoud is a function that combines evolutionary search algorithms with derivative-based (Newton or quasi-Newton) methods to solve difficult optimization problems. Genoud may also be used for optimization problems for which derivatives do not exist.

For an introduction to the package with documentation and examples, please see "Genetic Optimization Using Derivatives: The rgenoud package for R" Journal of Statistical Software,42(11): 1-26. 2011.

The easiest way to install the latest version (5.7-10), if you have an active network connection, is to type in a R session:
> install.packages("rgenoud")

Alternatively, the package may be directly downloaded:
R Source Package: rgenoud_5.7-10.tar.gz
OS X/Windows binary Packages: http://cran.r-project.org/package=rgenoud

The genoud() help page describes the package in detail. Examples are provided for how to use multiple chips on the same computer to perform parallel computations. Examples are also provided for how to use multiple computers to perform parallel computations (for tunnelling version here here). A Change Log is available which tracks changes across versions. For general R documentation click here.

Genoud solves problems that are nonlinear or perhaps even discontinuous in the parameters of the function to be optimized. When a statistical model's estimating function (for example, a log-likelihood) is nonlinear in the model's parameters, the function to be optimized will generally not be globally concave and may have irregularities such as saddlepoints or discontinuities. Optimization methods that rely on derivatives of the objective function may be unable to find any optimum at all. Multiple local optima may exist, so that there is no guarantee that a derivative-based method will converge to the global optimum. On the other hand, algorithms that do not use derivative information (such as pure genetic algorithms) are for many problems needlessly poor at local hill climbing. Most statistical problems are regular in a neighborhood of the solution. Therefore, for some portion of the search space, derivative information is useful. Genoud, via the cluster option, supports the use of multiple computers, CPUs or cores to perform parallel computations.

Nine different R packages on CRAN rely on rgenoud. For example, the Matching package (for multivariate and propensity score matching for causal inference) makes extensive use of the parallel and lexical optimization functions. And the FAiR package (by Ben Goodrich) for estimating factor analysis models with arbitrary restrictions makes use of the transform option. Ben Goodrich provided a patch to support this option. The other seven packages on CRAN that rely on rgenoud are: anchors, BARD, ivivc, multinomRob, PKfit, qpcR, and Synth. Many other software projects also depend on rgenoud, such as Bear Braumoeller's Boolean package.

Return to Jasjeet Sekhon's Homepage