如何在R中实现遗传算法的变异函数?

时间:2015-04-19 05:54:23

标签: r genetic-algorithm mutation

我正在实施GA算法。染色体具有 -1,0,1 值的组合。在变异部分,我想用 prob(-1到1)将-1改为1,用 prob(1到-1)将1改为-1。 我不知道R中是否有任何功能可以让我轻松。是否有人告诉我是否有一个函数可以帮助我根据它们的概率替换值?

1 个答案:

答案 0 :(得分:1)

你可以扔一个骰子,如果1出现,你将原始值更改为另一个值。您可以为所有转换添加if语句。如果您想在一个步骤中改变整个字符串,可以更好地优化它。

from <- c(1,-1,1,0,-1)

probToMutate <- function(x) {
    if (x == 1) {
        dice <- rbinom(1, size = 1, prob = 0.1)
        if (dice == 1) {
            x <- -1
        } else {
            x <- 1
        }
    } else {
        x
    }
}

sapply(from, FUN = probToMutate)