Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement MCMC (Markov Chain Monte Carlo) algorithm #116

Open
tmptrash opened this issue Feb 5, 2018 · 0 comments
Open

Implement MCMC (Markov Chain Monte Carlo) algorithm #116

tmptrash opened this issue Feb 5, 2018 · 0 comments
Assignees

Comments

@tmptrash
Copy link
Owner

tmptrash commented Feb 5, 2018

20180205_184035
Нужно реализовать алгоритм MCMC на популяции. Для этого нужно ввести конфиг orgMCMCPeriod, который будет запускать одну итерацию алгоритма. Он состоит в следующем:

  • при наступлении периода нужно отсортировать все организмы по их мутагенезу (кол-во мутаций за время. думаю можно взять период мутаций и их процент)
  • пройти по всем отсортированным организмам и брать пары по индексам 1,2; 2,3; ...
  • для каждой пары вычислить вероятность обмена мутагенезом: смотри формулу в левом нижнем углу доски. Где, mi и mi+1 - это мутагенез, Fi и Fi+1 - фитнесс (нужно попробовать с другими параметрами, например скорость нахождения энергии)
  • mi < mi+1, Fi+1 < Fi, bi = 1/mi, bi+1 = 1/mi+1. p (вероятность обмена) = min(1, e^(-(bi+1 - bi)*(Fi+1 - Fi)))
  • вызываем Math.random() <= p тогда меняем параметры мутагенеза
  • применяем этот алгоритм ко всем парам организмов в популяции

Так же, для успешной работы алгоритма, нужно чтобы в популяции всегда были организмы с низким и высоким мутагенезом. Для этого нужно ввести другой конфиг orgUpdateMutationsPeriod или что-то похожее. При наступлении этого периода нужно искусственно вводить мутагенез организмам по какому-то распределению.

@tmptrash tmptrash added this to the v0.2.2 DOS improvements milestone Feb 5, 2018
@tmptrash tmptrash self-assigned this Feb 5, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant