During my PhD I wrote a simple but effective genetic algorithm package for R. Because there was a bug recently found, and there is interest in extending the functionality, I have set up a SourceForge project called genalg.

The package provides GA support for binary and real-value chromosomes (and integer chromosomes is something that will be added soon), and allows to use custom evaluation functions. Here is some example code:

# optimize two values to match pi and sqrt(50)

evaluate <- function(string=c()) {

returnVal = NA;

if (length(string) == 2) {

returnVal = abs(string[1]-pi) + abs(string[2]-sqrt(50));

} else {

stop("Expecting a chromosome of length 2!");

}

returnVal

}

monitor <- function(obj) {

# plot the population

xlim = c(obj$stringMin[1], obj$stringMax[1]);

ylim = c(obj$stringMin[2], obj$stringMax[2]);

plot(obj$population, xlim=xlim, ylim=ylim, xlab="pi", ylab="sqrt(50)");

}

rbga.results = rbga(c(1, 1), c(5, 10), monitorFunc=monitor,

evalFunc=evaluate, verbose=TRUE, mutationChance=0.01)

plot(rbga.results)

plot(rbga.results, type="hist")

plot(rbga.results, type="vars")

*Related*

To

**leave a comment** for the author, please follow the link and comment on his blog:

** chem-bla-ics**.

R-bloggers.com offers

**daily e-mail updates** about

R news and

tutorials on topics such as: visualization (

ggplot2,

Boxplots,

maps,

animation), programming (

RStudio,

Sweave,

LaTeX,

SQL,

Eclipse,

git,

hadoop,

Web Scraping) statistics (

regression,

PCA,

time series,

trading) and more...

If you got this far, why not

__subscribe for updates__ from the site? Choose your flavor:

e-mail,

twitter,

RSS, or

facebook...