| Модель генетической эволюции в виде одномерного клеточного автомата |
[Feb. 24th, 2007|05:09 pm] |
Поле представляет собой ленту 1 х бесконечность с пронумерованными клетками. Имеется набор фишек разных цветов (некоего достаточно большого количества цветов). Цвета следуют один за другим в замкнутой последовательности (например, синий-красный-зеленый-синий-красный итд). Такую последовательность будем называть программой. На каждом ходу на первой пустой клетке появляется новая фишка по следующим правилам: С вероятностью 1-х - фишка цвета, следующего за цветом последней поставленной фишки, С вероятностью х - фишка любого случайного цвета.
Если х равен нулю, то программа воспроизводит сама себя с коэффициентом, равным количеству повторов последовательности, деленному на количество использованных клеток. Коэффициент воспроизведения уменьшается пропорционально количеству цветов в программе и значению х (вероятности ошибки).
При нулевом х коэффициенты воспроизведения будут такими: 1 цвет = 1 2 цвета = 0,5 3 цвета = 0,33 4 цвета = 0,25 и так далее
При х = 0,25: 1 цвет = 0,75 (1*(1-х) 2 цвета = 0,375 (0,5*(1-х) 3 цвета = 0,2475 (0,33*(1-х) и так далее
Пусть теперь программа обладает свойством автоэволюции. При воспроизведении с коэффициентом, большем 0,5, количество цветов в программе увеличивается на единицу с вероятностью v/4, где v - условный "коэффициент эволюции". При коэффициенте воспроизведения, меньшем 0,5-(v*количество цветов), набор цветов уменьшается на единицу, но не может стать меньше единицы. Чем больше коэффициент эволюции v, тем больше вероятность возникновения сложных программ (пять-шесть цветов и выше) и тем меньшая воспроизводимость допустима для них. Следовательно, чем больше v, тем большее падение коэффициента воспроизведения для таких программ (например, возможно возникновение переусложненной программы, не способной к самовоспроизведению и не могущей отбросить лишние элементы - это эволюционный тупик). При меньшем v меньше вероятность усложнения программы и выше требования к ее воспроизводимости.
Выбор функции эволюции произволен, но удобно сделать ее линейной от коэффициента воспроизведения, как описано выше, тогда все коэффициенты получают вполне приличную интерпретацию: 1. Вероятность ошибки x - физический фактор среды, например, уровень радиации. Радиационные всплески препятствуют нормальной репликации ДНК. 2. "Порог эволюции" - у меня в программе 0,5 - значение коэффициента воспроизведения, при котором возможно усложение программы. По сути, это выживаемость потомства. Если воспроизводится больше организмов, чем минимум выживаемости, то появляется пространство для генетических вариаций. 3. Наконец, "коэффициент эволюции" v - внутренний параметр, характеризующий длину цикла воспроизведения ДНК. Чем длинее цикл, тем больше вероятность изменений генетического материала и одновременно тем резче уменьшается размножаемость и склонность к риску (К-сдвигу в развитии популяции). То есть более простые организмы склонны к экспансии, а более сложные - к выживанию в заданной среде.
Тесты показывают ряд интересных вещей, но об этом - по их завершении. |
|
|
| Comments: |
| From: | phantom |
| Date: | February 25th, 2007 - 10:01 am |
|---|
| | | (Link) |
|
т.е. если x == 0, лента просто циклически сдвигается? интересен "ряд интересных вещей"
Если программа эволюционирует, то период цикла меняется, а так да. Подозреваю, что мне точности не хватает, то бишь мало попыток даю своему генератору случайных чисел. Из программы могу кинуть основной цикл, потому как сбор статистики можно улучшать, а ее показ и сохранение привязаны к платформе все равно.
| From: | phantom |
| Date: | February 26th, 2007 - 05:01 am |
|---|
| | | (Link) |
|
проще, быть может, просто на svn внешний выкладывать такие дела
но сначала расскажи результаты, ибо они интересны
| From: | phantom |
| Date: | February 25th, 2007 - 10:01 am |
|---|
| | | (Link) |
|
та и всю программу ты кинул бы... | |