Description Usage Arguments Note Author(s) References See Also Examples
View source: R/GA4StratificationP3m.R
This is the mutation operation in the Genetic Algorithm approach for the determination of the stratum boundaries and sample sizes in each stratum in stratified sampling with an Neyman Sample Allocation Scheme.
1 | GA4StratificationP3m(mutationGeneration, mutationRate, it)
|
mutationGeneration |
The generation that will be crossovered and transfered to the next generation. |
mutationRate |
A numeric: The mutation rate in the Genetic Algorithm process. Mutation rate must be in between 0 and 1, inclusive. Small levels of mutation rate is preferable in Genetic Algorithm approach. |
it |
An integer: The number of the iteration |
This study is part of a project supported by the Scientific and Technological Research Council of Turkey (TUBITAK).
Sebnem Er, Timur Keskinturk, Charlie Daly
Maintainer: Sebnem Er <er.sebnem@gmail.com>
http://ideas.repec.org/a/eee/csdana/v52y2007i1p53-67.html
http://www.sciencedirect.com/science/article/B6V8V-4NHM520-1/2/a21e0295aa1616ff56da1ddf2c0ba1ac
GA4StratificationP3
GA4StratificationP3fit
GA4StratificationP3fitt
GA4StratificationP3x
GA4StratificationSelection
randomnumGenerator
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | ## The function is currently defined as
function(mutationGeneration,mutationRate,it)
{
rowOfMutationGeneration=nrow(mutationGeneration)
for ( i in 1:rowOfMutationGeneration)
{
for ( k in 1:5 )
{
if ( runif(1,0,1) < mutationRate )
{
if ( runif(1,0,1) < mutationRate )
{
if ( it<50 )
{
ones=which(mutationGeneration[i,]==1,arr.ind=TRUE)
zeros=which(mutationGeneration[i,]==0,arr.ind=TRUE)
mutationPoint=ones[sample((length(ones)-1),1)]
mutationPoint1=zeros[sample(length(zeros),1)]
mutationGeneration[i,mutationPoint]=0
mutationGeneration[i,mutationPoint1]=1
} else
{
ones=which(mutationGeneration[i,]==1,arr.ind=TRUE)
mutationPoint=ones[sample((length(ones)-1),1)]
if ( runif(1,0,1)<0.51 )
{
if ( mutationGeneration[i,(mutationPoint+1)]==0 )
{
mutationGeneration[i,mutationPoint]=0
mutationGeneration[i,(mutationPoint+1)]=1
}
} else if ( mutationPoint>1)
{
if ( mutationGeneration[i,(mutationPoint-1)]==0 )
{
mutationGeneration[i,mutationPoint]=0;
mutationGeneration[i,mutationPoint-1]=1;
}
}
}
}
}
}
}
return(mutationGeneration)
}
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.