Я реализую алгоритм GA. Хромосомы имеют комбинацию значений -1,0,1. В части мутации я хочу изменить -1 на 1 с помощью prob (-1 до 1) и изменить 1 на -1 с помощью prob (от 1 до -1). Я не знаю, есть ли какая-либо функция в R, которая облегчит мне работу. Кто-нибудь скажет мне, есть ли функция, которая помогает мне заменить значения в соответствии с их вероятностью?Как реализовать функцию мутации генетического алгоритма в R?
0
A
ответ
1
Вы можете бросить кубики, и если 1 появится, вы измените исходное значение на другое значение. Вы можете добавить инструкции для всех своих переходов. Если вы хотите мутировать всю строку за один шаг, это может быть лучше оптимизировано.
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)
+0
Спасибо большое, это сработало для меня. – Pegah
Не зависит ли ваша модель от вашей модели? –
Нет, вероятности заданы заранее. @ RomanLuštrik – Pegah
Как вы храните значения? Укажите небольшой пример и желаемый результат. –