Электронные таблицы и математическое моделирование. Математическое моделирование
Пример имитационной модели. Что такое имитационная модель
Пример имитационной модели. Пример имитационного моделирования в электронной таблице
Упражнения для самостоятельной работы
Как и в предыдущем параграфе, пример возьмем из класса моделей, описывающих эволюцию популяций.
Пусть на определенном пространстве случайным образом расселяются живые организмы. В дальнейшем происходит процесс смены поколений: в каких-то местах расселения жизнь сохраняется, н каких-то исчезает. Эти процессы протекают в соответствии с закона ми эволюции. Законы эволюции в описании модели представляются в виде формальных правил.
Цель моделирования — проследить изменение в расселении живых организмов со сменой поколений.
Сначала рассмотрим простейший вариант задачи: жизненное пространство одномерное. Это значит, живые организмы расселяются вдоль линии. Будем считать жизненное пространство ограниченным, т. е. рассмотрим отрезок. Отрезок разделяется на ячейки, и пределах каждой из которых может поселиться один организм. До говоримся, что самые крайние ячейки не заселяются. Они определи ют границу жизненного пространства.
На рисунке 4.3 показано первоначальное расселение организмов на поле, состоящем из 20 ячеек. Организмы поселились в ячейках с номерами 5, 8 и 12. Ячейки 1 и 20 всегда должны быть пустыми.
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
Рис. 4.3. Первоначальное расселение организмов
Теперь сформулируем законы эволюции. В следующем поколении в пустой ячейке жизнь может либо появиться, либо нет. В заселенной ячейке жизнь может либо сохраниться, либо исчезнуть. На состояние данной ячейки влияют ее ближайшие соседи: два соседа слева и два соседа справа. Если ячейка была заселена и число живых соседей не превышает двух, то в следующем поколении в этой ячейке жизнь сохранится, иначе жизнь исчезнет (погибнет от перенаселения). Если в ячейке жизни не было, но среди ее соседей есть 1, 2 или 3 живые ячейки, то в следующем поколении в этой ячейке появится жизнь. В противном случае ячейка останется пустой.
Следует учитывать, что у ячеек, расположенных у края, число соседей меньше других. У ячейки номер 2 соседи: 1, 3 и 4. Но ячейка 1 всегда пустая. У ячейки номер 3 из четырех соседей живыми могут быть не больше трех (2, 4, 5). Аналогичная ситуация у крайних правых ячеек.
То, что сказано выше, есть модельное описание процесса эволюции популяции. Формализуем это описание. Распределение живых организмов по ячейкам будем кодировать последовательностью из нулей и единиц. Ноль обозначает пустую ячейку, единица — живую. Например, расселение, отображенное на рис. 4.3, кодируется следующим образом:
00001001000100000000
Номер ячейки обозначим n, а двоичное число, соответствующее этой ячейке в текущем поколении, обозначим R(n)). В рассматриваемом примере R(5) = R(8) = R(12) = 1. Все остальные значения ячеек равны нулю.
Значения кода в n-й ячейке для следующего поколения будем обозначать S(n). Внимательно проанализировав сформулированные выше правила эволюции, приходим к следующей формуле:
Если 1 ≤ R(n - 2) + R(n - 1) + R(n) + R(n + 1) + R(n + 2) ≤ 3,
то S(n) = 1, иначе S(n) = 0.
Эта формула работает для значений я от 3 до 18. Всегда: S( 1) = S(20) = 0. Для ячеек с номерами 2 и 19 в данной сумме нужно убрать по одному слагаемому. Но можно поступить иначе, чтобы оставить справедливой данную формулу для всех ячеек жизненного пространства. Для этого к отрезку добавим по одной фиктивной ячейке справа и слева. Их номера будут, соответственно, 0 и 21. В этих ячейках, как и в ячейках 1 и 20, всегда будут храниться нули. Тогда написанную формулу можно применять для n от 2 до 19.
Итак, модель построена и формализована. Однако имитационной моделью она станет только в результате реализации с помощью какого-то программного компьютерного средства. В качестве такого средства выберем табличный процессор.
Моделью жизненного пространства будет строка электронной таблицы. Первая строка — первое поколение, вторая строка — второе поколение и т. д. Тогда номера ячеек будут идентифицироваться именами столбцов таблицы. Ячейка 0 — столбец А, ячейка 1 столбец В и т. д., ячейка 21 — столбец V.
В первой строке выставим единицы в ячейках, заселенных в первом поколении. Это будут ячейки F1, I1, M1. Значения незаполненных ячеек по умолчанию приравниваются к нулю.
Теперь в ячейки второй строки нужно записать формулы. Сделать это достаточно один раз. Например, в ячейку С2 занести следующую формулу
=ECЛИ(И(Al+Bl+Cl+Dl+El>=l;
A1+B1+C1+D1+E1<=3);1;0)
Далее, скопировав эту формулу во все остальные ячейки второй строки с D2 по Т2, получим картину распределения живых организмов во втором поколении.
Чтобы получить третье поколение, достаточно скопировать вторую строку (блок С2:Т2) в третью строку (блок СЗ:ТЗ). Так можно продолжать сколько угодно.
На рисунке 4.4 показаны результаты имитационного моделирования процесса эволюции исходного расселения живых организмов вплоть до 10-го поколения. Все очень наглядно.
Обратите внимание1, как драматично развивались события!
В шестом поколении наступило состояние перенаселения. В результате в седьмом поколении вымерли все организмы, кроме крайних. Их спасло свободное пространство слева и справа. От них пошла новая волна жизни!
Рассмотренная задача является упрощенным (одномерным) вариантом известной модели Дж. Конуэя, которая называется «Жизнь». В этой модели эволюция популяции живых организмов происходит в двумерном пространстве. Рассматривается прямоугольная область, разделенная на квадратные ячейки. Тогда у каждой внутренней ячейки имеются 8 соседей. Судьба жизни в ячейке также зависит от состояния соседних клеток. Но теперь правила эволюции такие: если клетка живая и в ее окружении более трех живых клеток, то она погибает от перенаселения; если же живых соседей меньше двух, то она погибает от одиночества. В пустой клетке в следующем поколении зарождается жизнь, если у нее есть ровно три живых соседа.
Попробуйте самостоятельно получить имитационную модель для этой задачи в среде электронной таблицы. Последовательность действий будет аналогичной рассмотренной в примере. По-прежнему для перехода к новому поколению нужно использовать метод копирования диапазона. Но только теперь придется копировать не линейный диапазон, а прямоугольный.
Рассмотренная имитационная модель эволюционного типа позволяет проследить за изменениями в расселении живых организмов со сменой поколений.
Удобство применения электронной таблицы для имитационного моделирования заключается в простоте реализации вычислительного алгоритма и наглядности представления результатов.
1. Где используется метод имитационного моделирования?
2. В чем отличие эволюционной задачи, решавшейся методом математического моделирования в § 25, от задачи, решавшейся в данном параграфе методом имитационного моделирования?
3. Проведите вычислительный эксперимент на линейной имитационной модели для различных вариантов исходного расселения организмов:
а) возможно ли такое расселение, при котором все организмы в конце концов вымрут?
б) не ведет ли любое расселение в конечном итоге к одной и той же последовательности поколений?
в) что меняется с изменением размера жизненного пространства?
4*. Постройте в электронных таблицах двумерную модель «Жизнь». Проведите вычислительный эксперимент с разными вариантами первоначального расселения организмов.
Попробуйте найти такие первоначальные расселения, которые:
а) обречены на гибель;
б) не меняются со сменой поколений;
в) ведут к периодической смене повторяющихся конфигураций расселения.
Следующая страница Практическое занятие № 17