2015-04-19 2 views
0

Я реализую алгоритм GA. Хромосомы имеют комбинацию значений -1,0,1. В части мутации я хочу изменить -1 на 1 с помощью prob (-1 до 1) и изменить 1 на -1 с помощью prob (от 1 до -1). Я не знаю, есть ли какая-либо функция в R, которая облегчит мне работу. Кто-нибудь скажет мне, есть ли функция, которая помогает мне заменить значения в соответствии с их вероятностью?Как реализовать функцию мутации генетического алгоритма в R?

+0

Не зависит ли ваша модель от вашей модели? –

+0

Нет, вероятности заданы заранее. @ RomanLuštrik – Pegah

+0

Как вы храните значения? Укажите небольшой пример и желаемый результат. –

ответ

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

 Смежные вопросы

  • Нет связанных вопросов^_^