0

我正在实现 GA 算法。染色体具有-1,0,1值的组合。在突变部分,我想用prob(-1 to 1)将 -1 更改为 1 并用prob(1 to -1)将 1 更改为 -1 。我不知道 R 中是否有任何功能可以让我轻松。有人会告诉我是否有一种功能可以帮助我根据概率替换值吗?

4

1 回答 1

1

You could throw a dice and if 1 comes up, you change the original value to another value. You could add if statements for all of your transitions. If you mean to mutate the whole string in one step, this can be better optimized.

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)
于 2015-04-19T06:52:46.787 回答