Экспериментальный проект "Эволюция". Шаг 2. Упрощенная модель. Игра "Жизнь". |
![]() |
![]() |
Автор megabax | ||
29.09.2014 г. | ||
Экспериментальный проект "Эволюция". Шаг 2. Упрощенная модель. Игра "Жизнь".Исходники к уроку можно скачать здесь. На прошлом шаге я придумал модель, на которой буду проводить виртуальные эксперименты. К сожалению, разработка программы по этой модели весьма трудоемкий процесс. Более того, в процессе написания я вдруг понял, что в данной модели имеется ряд недостатков. В частности, если генетический код виртуальной бактерии подвергнется мутации, то та с очень большой вероятностью окажется нежизнеспособной. Но в природе это не так. В природе каждая особь подвергается множеству мутаций, по большему счету, нейтральных. Но, накапливаясь, эти мутации создают изменчивость, которая и является двигателем эволюции. Исходя из этих соображений я решил упростить модель, а что бы не изобретать велосипед, решил взять за основу игру "Жизнь" (см. описание в википедии). И так, описание игры (цитата из википедии): "Место действия этой игры — «вселенная» — это размеченная на клетки поверхность или плоскость — безграничная, ограниченная, или замкнутая (в пределе — бесконечная плоскость). Каждая клетка на этой поверхности может находиться в двух состояниях: быть «живой» или быть «мёртвой» (пустой). Клетка имеет восемь соседей (окружающих клеток). Распределение живых клеток в начале игры называется первым поколением. Каждое следующее поколение рассчитывается на основе предыдущего по таким правилам:
Игра прекращается, если на
поле не останется ни одной «живой» клетки, если при очередном шаге ни одна из
клеток не меняет своего состояния (складывается стабильная конфигурация) или
если конфигурация на очередном шаге в точности (без сдвигов и поворотов)
повторит себя же на одном из более ранних шагов (складывается периодическая
конфигурация)." Для реализации этой игры я создал простенький класс Universe (Вселеная):
И засунул его в специальную обертку. И так, что же получилось из моего эксперимента? Сначала у нас расположение бактерий выглядит хаотично: После запуска начинают формироваться устойчивые фигуры, некоторые из них движутся: Движущиеся фигуры сталкиваются с неподвижными, а так же друг с другом, появляются новые фигуры. Дело заканчивается тем, что остаются только устойчивые неподвижные фигуры: Как видим, система уперлась в эволюционный тупик - дальше она не развивается. Однако, можно заставить эти фигурки эволюционировать дальше - нужно всего то начать менять внешние условия. Именно так происходит и в природе: меняются обстоятельства, особи начинают к ним приспосабливаться. Нечто подобное задумал и я, но об этом расскажу в следующей статье, до новых встреч.
|
||
Последнее обновление ( 29.09.2014 г. ) |
Пред. » |
---|