R : Copyright 2005, The R Foundation for Statistical Computing Version 2.1.1 (2005-06-20), ISBN 3-900051-07-0 R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for a HTML browser interface to help. Type 'q()' to quit R. > ### *
> ### > attach(NULL, name = "CheckExEnv") > assign(".CheckExEnv", as.environment(2), pos = length(search())) # base > ## add some hooks to label plot pages for base and grid graphics > setHook("plot.new", ".newplot.hook") > setHook("persp", ".newplot.hook") > setHook("grid.newpage", ".gridplot.hook") > > assign("cleanEx", + function(env = .GlobalEnv) { + rm(list = ls(envir = env, all.names = TRUE), envir = env) + RNGkind("default", "default") + set.seed(1) + options(warn = 1) + delayedAssign("T", stop("T used instead of TRUE"), + assign.env = .CheckExEnv) + delayedAssign("F", stop("F used instead of FALSE"), + assign.env = .CheckExEnv) + sch <- search() + newitems <- sch[! sch %in% .oldSearch] + for(item in rev(newitems)) + eval(substitute(detach(item), list(item=item))) + missitems <- .oldSearch[! .oldSearch %in% sch] + if(length(missitems)) + warning("items ", paste(missitems, collapse=", "), + " have been removed from the search path") + }, + env = .CheckExEnv) > assign("..nameEx", "__{must remake R-ex/*.R}__", env = .CheckExEnv) # for now > assign("ptime", proc.time(), env = .CheckExEnv) > grDevices::postscript("genalg-Examples.ps") > assign("par.postscript", graphics::par(no.readonly = TRUE), env = .CheckExEnv) > options(contrasts = c(unordered = "contr.treatment", ordered = "contr.poly")) > options(warn = 1) > library('genalg') > > assign(".oldSearch", search(), env = .CheckExEnv) > assign(".oldNS", loadedNamespaces(), env = .CheckExEnv) > cleanEx(); ..nameEx <- "plot.rbga" > > ### * plot.rbga > > flush(stderr()); flush(stdout()) > > ### Name: plot.rbga > ### Title: R Based Genetic Algorithm Plot Function > ### Aliases: plot.rbga > ### Keywords: multivariate > > ### ** Examples > > evaluate <- function(string=c()) { + returnVal = 1 / sum(string); + returnVal + } > > rbga.results = rbga.bin(size=10, mutationChance=0.01, zeroToOneRatio=0.5, + evalFunc=evaluate) > > plot(rbga.results) > plot(rbga.results, type="hist") > > > > cleanEx(); ..nameEx <- "rbga" > > ### * rbga > > flush(stderr()); flush(stdout()) > > ### Name: rbga > ### Title: R Based Genetic Algorithm (floating point chromosome) > ### Aliases: rbga genalg > ### Keywords: multivariate > > ### ** Examples > > # 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) Testing the sanity of parameters... Not showing GA settings... Starting with random values in the given domains... Starting iteration 1 Calucating evaluation values... ........................................................................................................................................................................................................ done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 6 mutations applied Starting iteration 2 Calucating evaluation values... ....................................................... done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 6 mutations applied Starting iteration 3 Calucating evaluation values... ............................................................ done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 0 mutations applied Starting iteration 4 Calucating evaluation values... ........................................................ done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 5 mutations applied Starting iteration 5 Calucating evaluation values... .............................................................. done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 3 mutations applied Starting iteration 6 Calucating evaluation values... .............................................. done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 2 mutations applied Starting iteration 7 Calucating evaluation values... ................................................ done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 5 mutations applied Starting iteration 8 Calucating evaluation values... .......................................................... done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 3 mutations applied Starting iteration 9 Calucating evaluation values... ..................................................... done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 7 mutations applied Starting iteration 10 Calucating evaluation values... ............................................................ done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 3 mutations applied Starting iteration 11 Calucating evaluation values... ....................................................................... done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 3 mutations applied Starting iteration 12 Calucating evaluation values... ................................................ done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 3 mutations applied Starting iteration 13 Calucating evaluation values... ...................................................... done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 5 mutations applied Starting iteration 14 Calucating evaluation values... .................................................................. done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 1 mutations applied Starting iteration 15 Calucating evaluation values... ............................................................ done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 3 mutations applied Starting iteration 16 Calucating evaluation values... .......................................................... done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 4 mutations applied Starting iteration 17 Calucating evaluation values... ................................................... done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 4 mutations applied Starting iteration 18 Calucating evaluation values... ........................................................ done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 5 mutations applied Starting iteration 19 Calucating evaluation values... ........................................................ done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 2 mutations applied Starting iteration 20 Calucating evaluation values... ............................................................. done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 5 mutations applied Starting iteration 21 Calucating evaluation values... ................................................................ done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 5 mutations applied Starting iteration 22 Calucating evaluation values... .................................................................. done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 4 mutations applied Starting iteration 23 Calucating evaluation values... ........................................................... done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 4 mutations applied Starting iteration 24 Calucating evaluation values... ....................................................... done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 1 mutations applied Starting iteration 25 Calucating evaluation values... .................................................................. done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 2 mutations applied Starting iteration 26 Calucating evaluation values... .............................................................. done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 4 mutations applied Starting iteration 27 Calucating evaluation values... ............................................... done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 5 mutations applied Starting iteration 28 Calucating evaluation values... ............................................................. done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 4 mutations applied Starting iteration 29 Calucating evaluation values... ................................................... done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 1 mutations applied Starting iteration 30 Calucating evaluation values... ........................................................ done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 0 mutations applied Starting iteration 31 Calucating evaluation values... ............................................... done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 6 mutations applied Starting iteration 32 Calucating evaluation values... ............................................................ done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 4 mutations applied Starting iteration 33 Calucating evaluation values... .................................................. done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 2 mutations applied Starting iteration 34 Calucating evaluation values... ........................................................ done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 4 mutations applied Starting iteration 35 Calucating evaluation values... ................................................................ done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 4 mutations applied Starting iteration 36 Calucating evaluation values... .................................................. done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 1 mutations applied Starting iteration 37 Calucating evaluation values... ................................................... done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 5 mutations applied Starting iteration 38 Calucating evaluation values... ..................................................... done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 3 mutations applied Starting iteration 39 Calucating evaluation values... .......................................................... done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 1 mutations applied Starting iteration 40 Calucating evaluation values... ................................................... done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 3 mutations applied Starting iteration 41 Calucating evaluation values... ............................................................... done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 3 mutations applied Starting iteration 42 Calucating evaluation values... .................................................... done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 4 mutations applied Starting iteration 43 Calucating evaluation values... ............................................................... done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 1 mutations applied Starting iteration 44 Calucating evaluation values... .......................................................... done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 5 mutations applied Starting iteration 45 Calucating evaluation values... ................................................................. done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 4 mutations applied Starting iteration 46 Calucating evaluation values... ......................................................... done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 2 mutations applied Starting iteration 47 Calucating evaluation values... ................................................................ done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 3 mutations applied Starting iteration 48 Calucating evaluation values... .................................................... done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 0 mutations applied Starting iteration 49 Calucating evaluation values... ............................................................ done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 4 mutations applied Starting iteration 50 Calucating evaluation values... ....................................................... done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 4 mutations applied Starting iteration 51 Calucating evaluation values... .................................................. done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 3 mutations applied Starting iteration 52 Calucating evaluation values... ............................................................ done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 2 mutations applied Starting iteration 53 Calucating evaluation values... .................................................... done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 1 mutations applied Starting iteration 54 Calucating evaluation values... ...................................................... done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 2 mutations applied Starting iteration 55 Calucating evaluation values... ......................................................... done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 4 mutations applied Starting iteration 56 Calucating evaluation values... ................................................ done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 0 mutations applied Starting iteration 57 Calucating evaluation values... ...................................................... done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 5 mutations applied Starting iteration 58 Calucating evaluation values... ......................................................... done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 2 mutations applied Starting iteration 59 Calucating evaluation values... ...................................................... done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 2 mutations applied Starting iteration 60 Calucating evaluation values... ....................................................... done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 0 mutations applied Starting iteration 61 Calucating evaluation values... ........................................................ done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 2 mutations applied Starting iteration 62 Calucating evaluation values... ...................................................... done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 3 mutations applied Starting iteration 63 Calucating evaluation values... .......................................................... done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 2 mutations applied Starting iteration 64 Calucating evaluation values... ................................................. done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 5 mutations applied Starting iteration 65 Calucating evaluation values... .............................................................. done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 3 mutations applied Starting iteration 66 Calucating evaluation values... ............................................................ done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 3 mutations applied Starting iteration 67 Calucating evaluation values... .................................................... done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 7 mutations applied Starting iteration 68 Calucating evaluation values... ................................................................... done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 1 mutations applied Starting iteration 69 Calucating evaluation values... ................................................... done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 4 mutations applied Starting iteration 70 Calucating evaluation values... ......................................................... done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 2 mutations applied Starting iteration 71 Calucating evaluation values... ............................................ done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 4 mutations applied Starting iteration 72 Calucating evaluation values... ...................................................... done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 4 mutations applied Starting iteration 73 Calucating evaluation values... ............................................................... done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 4 mutations applied Starting iteration 74 Calucating evaluation values... .......................................................... done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 1 mutations applied Starting iteration 75 Calucating evaluation values... ....................................................... done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 3 mutations applied Starting iteration 76 Calucating evaluation values... ............................................................ done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 3 mutations applied Starting iteration 77 Calucating evaluation values... .................................................... done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 6 mutations applied Starting iteration 78 Calucating evaluation values... ....................................................................... done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 1 mutations applied Starting iteration 79 Calucating evaluation values... ....................................................... done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 3 mutations applied Starting iteration 80 Calucating evaluation values... ...................................................... done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 4 mutations applied Starting iteration 81 Calucating evaluation values... ................................................ done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 2 mutations applied Starting iteration 82 Calucating evaluation values... ................................................................. done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 4 mutations applied Starting iteration 83 Calucating evaluation values... ...................................................... done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 4 mutations applied Starting iteration 84 Calucating evaluation values... ..................................................... done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 1 mutations applied Starting iteration 85 Calucating evaluation values... ................................................. done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 5 mutations applied Starting iteration 86 Calucating evaluation values... ............................................... done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 3 mutations applied Starting iteration 87 Calucating evaluation values... .............................................................. done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 4 mutations applied Starting iteration 88 Calucating evaluation values... .............................................................. done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 3 mutations applied Starting iteration 89 Calucating evaluation values... ............................................. done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 1 mutations applied Starting iteration 90 Calucating evaluation values... ................................................. done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 1 mutations applied Starting iteration 91 Calucating evaluation values... ..................................................... done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 6 mutations applied Starting iteration 92 Calucating evaluation values... ....................................................... done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 3 mutations applied Starting iteration 93 Calucating evaluation values... .................................................................. done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 5 mutations applied Starting iteration 94 Calucating evaluation values... ............................................................ done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 4 mutations applied Starting iteration 95 Calucating evaluation values... ........................................................... done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 1 mutations applied Starting iteration 96 Calucating evaluation values... ............................................................ done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 4 mutations applied Starting iteration 97 Calucating evaluation values... ........................................................... done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 1 mutations applied Starting iteration 98 Calucating evaluation values... ...................................................... done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 0 mutations applied Starting iteration 99 Calucating evaluation values... .................................................... done. Sending current state to rgba.monitor()... Creating next generation... sorting results... applying elitism... applying crossover... applying mutations... 3 mutations applied Starting iteration 100 Calucating evaluation values... ....................................................... done. Sending current state to rgba.monitor()... > > plot(rbga.results) > plot(rbga.results, type="hist") > plot(rbga.results, type="vars") > > > > cleanEx(); ..nameEx <- "rbga.bin" > > ### * rbga.bin > > flush(stderr()); flush(stdout()) > > ### Name: rbga.bin > ### Title: R Based Genetic Algorithm (binary chromosome) > ### Aliases: rbga.bin > ### Keywords: multivariate > > ### ** Examples > > # a very simplistic optimization > evaluate <- function(string=c()) { + returnVal = 1 / sum(string); + returnVal + } > > rbga.results = rbga.bin(size=10, mutationChance=0.01, zeroToOneRatio=0.5, + evalFunc=evaluate) > > plot(rbga.results) > > # in this example the four variables in the IRIS data set are complemented > # with 36 random variables. Variable selection should find the four original > # variables back (example by Ron Wehrens). > ## Not run: > ##D data(iris) > ##D library(MASS) > ##D X <- cbind(scale(iris[,1:4]), matrix(rnorm(36*150), 150, 36)) > ##D Y <- iris[,5] > ##D > ##D iris.evaluate <- function(indices) { > ##D result = 1 > ##D if (sum(indices) > 2) { > ##D huhn <- lda(X[,indices==1], Y, CV=TRUE)$posterior > ##D result = sum(Y != dimnames(huhn)[[2]][apply(huhn, 1, > ##D function(x) > ##D which(x == max(x)))]) / length(Y) > ##D } > ##D result > ##D } > ##D > ##D monitor <- function(obj) { > ##D minEval = min(obj$evaluations); > ##D plot(obj, type="hist"); > ##D } > ##D > ##D woppa <- rbga.bin(size=40, mutationChance=0.05, zeroToOneRatio=10, > ##D evalFunc=iris.evaluate, verbose=TRUE, monitorFunc=monitor) > ## End(Not run) > > # another realistic example: wavelenght selection for PLS on NIR data > ## Not run: > ##D library(pls.pcr) > ##D data(NIR) > ##D > ##D numberOfWavelenghts = ncol(NIR$Xtrain) > ##D evaluateNIR <- function(chromosome=c()) { > ##D returnVal = 100 > ##D minLV = 2 > ##D if (sum(chromosome) < minLV) { > ##D returnVal > ##D } else { > ##D xtrain = NIR$Xtrain[,chromosome == 1]; > ##D pls.model = pls(xtrain, NIR$Ytrain, validation="CV", grpsize=1, > ##D ncomp=2:min(10,sum(chromosome))) > ##D returnVal = pls.model$val$RMS[pls.model$val$nLV-(minLV-1)] > ##D returnVal > ##D } > ##D } > ##D > ##D monitor <- function(obj) { > ##D minEval = min(obj$evaluations); > ##D filter = obj$evaluations == minEval; > ##D bestObjectCount = sum(rep(1, obj$popSize)[filter]); > ##D # ok, deal with the situation that more than one object is best > ##D if (bestObjectCount > 1) { > ##D bestSolution = obj$population[filter,][1,]; > ##D } else { > ##D bestSolution = obj$population[filter,]; > ##D } > ##D outputBest = paste(obj$iter, " #selected=", sum(bestSolution), > ##D " Best (Error=", minEval, "): ", sep=""); > ##D for (var in 1:length(bestSolution)) { > ##D outputBest = paste(outputBest, > ##D bestSolution[var], " ", > ##D sep=""); > ##D } > ##D outputBest = paste(outputBest, "\n", sep=""); > ##D > ##D cat(outputBest); > ##D } > ##D > ##D nir.results = rbga.bin(size=numberOfWavelenghts, zeroToOneRatio=10, > ##D evalFunc=evaluateNIR, monitorFunc=monitor, > ##D popSize=200, iters=100, verbose=TRUE) > ## End(Not run) > > > > cleanEx(); ..nameEx <- "summary.rbga" > > ### * summary.rbga > > flush(stderr()); flush(stdout()) > > ### Name: summary.rbga > ### Title: R Based Genetic Algorithm Summary Function > ### Aliases: summary.rbga > ### Keywords: multivariate > > ### ** Examples > > evaluate <- function(string=c()) { + returnVal = 1 / sum(string); + returnVal + } > > rbga.results = rbga.bin(size=10, mutationChance=0.01, zeroToOneRatio=0.5, + evalFunc=evaluate) > > summary(rbga.results) > > > > ### *