xegaGaReplicateGene {xegaGaGene}R Documentation

Replicates a gene.

Description

xegaGaReplicateGene replicates a gene by applying a gene reproduction pipeline which uses crossover and mutation. The control flow may have the following steps:

Usage

xegaGaReplicateGene(pop, fit, lF)

Arguments

pop

Population of binary genes.

fit

Fitness vector.

lF

Local configuration of the genetic algorithm.

Details

xegaGaReplicateGene implements the control flow by a dynamic definition of the operator pipeline depending on the random choices for mutation and crossover:

  1. A gene g is selected and the boolean variables mut and cross are set to runif(1)<rate.

  2. The local function for the operator pipeline OPpip(g, lF) is defined by the truth values of cross and mut:

    1. (cross==FALSE) & (mut==FALSE): Identity function.

    2. (cross==TRUE) & (mut==TRUE): Mate selection, crossover, mutation.

    3. (cross==TRUE) & (mut==FALSE): Mate selection, crossover.

    4. (cross==FALSE) & (mut==TRUE): Mutation.

  3. Perform the operator pipeline and accept the result.

Value

A list of one gene.

See Also

Other Replication: xegaGaReplicate2Gene()

Examples

lFxegaGaGene$CrossGene<-xegaGaCrossGene
lFxegaGaGene$MutationRate<-function(fit, lF) {0.001}
lFxegaGaGene$Accept<-function(OperatorPipeline, gene, lF) {gene}
pop10<-lapply(rep(0,10), function(x) xegaGaInitGene(lFxegaGaGene))
epop10<-lapply(pop10, lFxegaGaGene$EvalGene, lF=lFxegaGaGene)
fit10<-unlist(lapply(epop10, function(x) {x$fit}))
newgenes<-xegaGaReplicateGene(pop10, fit10, lFxegaGaGene)

[Package xegaGaGene version 1.0.0.1 Index]