EcoSimulation — 13. Популяционная динамика и правило Гаузе. Приближение к пределу возможностей Excel

Д.А. Шабанов
Конспект курса
"
Имитационное моделирование сложных биосистем
(с использованием Microsoft Excel)
"

Примеры разнообразных моделей, их замысел и дизайн Популяционная динамика и правило Гаузе. Приближение к пределу возможностей Excel Пример модели. Переход от гермафродитизма к раздельнополости
Имитационное моделирование биосистем-12 Имитационное моделирование биосистем-13 Имитационное моделирование биосистем-14
   

 

1. Модель Gause-100

Автором этого пособия на базе Microsoft Excel сделана модель, описывающая взаимодействие четырех конкурирующих форм, которые могут относиться к одному или разным видам. К сожалению, независимый учет большого количества особей в модельной популяции требует достаточно большого объема вычислений. В представленной здесь модели рассматривается гильдия (т.е. совокупность форм, использующих один и тот же ресурс), состоящая из 280 или меньшего количества особей, каждая из которых относится к одной из четырех форм.

Саму модель (которая названа Gause-100) можно скачать здесь. Далее будет дано ее детальное описание. С одной стороны, это описание поможет в ходе экспериментов с этой моделью. Не менее важно то, что эта модель должна быть неким образцом для построения профессиональной модели, написанной на языке Python. Описание модели, выполненной в Excel, как надеется автор, поможен разработчикам ее расширенного аналога на Python или ином профессиональном языке программирования.

1.1. Предназначение модели

Модель служит для имитации популяционной динамики и конкуренции двух конкурирующих видов. В ней рассматривается взаимодействие четырех форм организмов (самок и самцов двух рассматриваемых видов). Каждая форма может быть представлена особями четырех разных возрастов (всего — 16 групп особей). Особи, относящиеся к одной группе (т.е. относящиеся к одной форме и имеющие один возраст) рассматриваются как идентичные.

Модель позволяет изменять несколько начальных параметров, характеризующих каждую группу особей, в том числе  задавать результаты их скрещивания.Из начального пула особей формируется рассматриваемая моделью гильдия (т.е. совокупность особей, в т.ч. разных видов, которые эксплуатируют один и тот же ресурс). Имитируется конкурентное сокращение численности в том случае, если потребности гильдии в ресурсах превышают емкость среды. Затем имитируется образование пар (из числа особей, способных участвовать в размножении, т.е. входящих в состав нерестового стада) и производство потомства. На следующем шаге имитации (в типичном случае соответствущем году) новый состав гильдии образуется из прежнего и потомства, появившегося на предыдущем шаге. 

1.2. Общая структура модели

Описываемая модель построена так, чтобы ее зона ввода-вывода помещалась на экране персонального компьютера, позволяя вносить изменения в начальные параметры и тут же наблюдать последствия этих изменений.

Сама модель занимает на листе Excel намного большее пространство

После зоны ввода-вывода располагается зона вычислений. Зона вычисления характеристик нерестового стада и выбор пар для размножения крупнее показан ниже. На рисунке виден блок строк, соответствующих первому году (устовному году, разумеется, точнее — шагу моделирования), и начало блока, соответствующего второму году.

А на рисунке ниже показана зона, где вычисляется состав гильдии (всей совокупности особей) и нерестового стада (совокупности особей, участвующих в размножении).

Наконец, на следующем рисунке показана зона, где собираются данные о динамике гильдии по результатам каждого года моделирования. Каждая строка этой зоны собирает данные из соответвующих строк зоны для вычислений. В последних двух столбцах вычисляется суммарная численность представителей двух видов. Эти столбцы служат цифровым материалом для построения диаграммы, находящейся в зоне ввода-вывода.

1.3. Параметры жизнеспособности в модели Gause-100

— Viability (Жизнеспособность);
— Requirement (Потребности);
— Competitiveness (Конкурентоспособность);
— Maturity (Созревание);
— Male Fertlity (Плодовитость самцов);
— Maximum Mating Males Number (Максимальное количество спариваний самцов);
— Female Fertlity (Плодовитость самок).

 

 2. Требования к профессиональной модели Gause

2.1. Общая характеристика

Одна из главных причин написания планируемой модели заключается в том, что эксперименты с более простыми моделями (вначале экселевской модели Batrachometrics‑2010.xls, описанной тут, а потом —профессиональной модели Антона Леонова, коротко описанной тут, а несколько подробнее — в статье, находящейся в печати), был обнаружен эффект, о котором мы коротко сообщили в этой публикации. В наших экспериментах он обнаружен при изучении закономерности конкуренции межвидовых полуклональных гибридов и особей одного из родительских видов. Мы предполагаем, что это — часть более широкой закономерности, связанной с принципом конкурентного исключения Гаузе. Кстати, именно с этим связано название предлагаемой модели — "Gause".

Задача модели Gause — имитационное моделирование гильдий (совокупностей популяций, гемиклональных популяционных систем etc), позволяющее изучать влияние на их устойчивость конкуренции, гибридизации (в том числе — гемиклональной), разнообразия онтогенетических стратегий, разнообразия способов воспроизводства, разделения ниш и иных подобных популяционнобиологических феноменов.

В некоторых существенных аспектах работа профессиональной модели Gause (вероятно, написанной на языке Python), должна напоминать работу модели Gause-100. Тем не менее, смысл построения профессиональной модели в том, чтобы получить в результате ее создания значительно более широкие возможности для моделирования. В частности, эта модель должна: 

— имитировать динамику взаимодействия не четырех форм, а значительно большего их количества (например, 22); связано это с тем, что эта же модель должна быть пригодна для моделирования популяционных систем зеленых лягушек, включающих триплоидов (характерных для IV региона распространения зеленых лягушек в Левобережной Лесостепи Украины), а для этого потребуется моделировать достаточно большое количество генотипов; 

— предусматривать возможность для каждой группы особей задавать ее предпочтения относительно образования пар с представителями всех других групп;

— предусматривать среди возможных состояний признака "пол" варианты гермафродитизма и партеногенетических самок (в том числе тех, которым требуется для размножения спаривание с каким-либо самцом); это связано с тем, что создаваемая модель должна быть пригодна для моделирования эволюции раздельнополости, описанного в серии "половых" колонок: первой, второй, третьей, четвертой, пятой, шестой, седьмойвосьмой и окончанием;

предусматривать возможность задавать динамику емкости среды (стохастичную; в соответствии с каким либо циклом; цикличную со стохастичной компонентой);

— предусматривать возможность переключения онтогенетических стратегий в зависимости от уровня конкурентности среды.

Последнее требование налагает серьезные ограничения на способ реализации модели. И в модели Batrachometrics, и в модели Антона Леонова как отдельные единицы рассматривались не особи, а группы, состоящие из идентичных особей (относящихся к одной форме и имеющие один возраст). В модели Gause-100 как отдельные единицы рассматриваются именно особи (хотя особи одной формы и возраста остаются идентичными). В модели Gause надо рассматривать как отдельные единицы именно особи, и при этом включать в характеристику каждой особи ряд ее признаков, прежде всего — характер ее онтогенетической стратегии. Это означает, что в модели должен быть предусмотрен механизм для определения этих стратегий и управления ими.

 

2.2. Онтогенетические стратегии особей

Важной причиной создания модели Gause служит моделирование онтогенетических стратегий. Прежде всего, следует разобраться в том, что они из себя представляют. В настоящее время лучше всего описаны видовые стратегии (в первую очередь  — r- и K-). Понятие стратегии остается запутанным. В самой общей форме стратегию можно определить, как иерархию приоритетов (подробнее — здесь). Наиболее распространены представления о стратегиях, как о разных вариантах выбора между поддержанием организмом себя самого и воспроизведением себя в потомках. Разнообразие зеленых лягушек и многих других животных по скорости их роста, возрасту начала размножения, плодовитости и продолжительности жизни можно описать как проявления онтогенетических стратегий. Понятие онтогенетических стратегий вводится в этой статье; там же приведено описание стратегий тугорослости и скороспелости. В соответствии с начальными предположениями мы ожидали, что две альтернативные стратегии могут быть описаны следующим образом.  

Стратегии 

 Параметры

Тугорослость

Скороспелость

 Скорость роста

 Возраст начала размножения

 Плодовитость за сезон

 Продолжительность жизни

 

Анализ скелетохронологических данных, полученных при изучении зеленых лягушек, заставил откорректировать этим представления. Ниже приведена таблица, где сравниваются две стратегии зеленых лягушек (статья, откуда она взята, находится на момент написания данной страницы в печати). 

 

ВОС

 

Характеристики

Малоразмерность

(undersized)

Крупноразмерность

(oversized)

Самки

Самцы

Самки

Самцы

Размеры

Относительно меньшие:

lL = 9,7 + 8,3×A

Относительно бóльшие:

bL = 32,5 + 8,3×A

Скорость роста
в возрасте 3–4 года

Относительно низкая:

lgme3 = 0,170; lgme4 =0,176

Относительно высокая:

bgme3 =0,450; bgme4 =0,288

Полноценное участие в нересте

Относительно раннее:

с 4 лет

Относительно позднее:

с 6 лет

Относительно позднее:

с 6 лет

Относительно раннее:

с 5 лет

Продолжительность жизни

Относительно высокая: до 10 лет

Относительно низкая: до 8 лет

Плодовитость самок

Относительно низкая:
F = ‑1325 + 335×A

Относительно высокая:
F = 179 + 316×A

Количество сезонов размножения

Особо большое:
до 7 лет

Относительно большое:
до 5 лет

Особо малое:
до 3 лет

Относительно малое:
до 4 лет

 

Описывая онтогенетические стратегии, мы вычисляем для каждой особи (в зависимости от ее размера) параметр Strategy. Он равен 1, если размер особи соответствует типичному для стратегии крупноразмерности, и -1, если он типичен для малоразмерности. 

Вероятно, следует моделировать различия особей по их онтогенетическим стратегиям следующим образом. Параметр Strategy должен стать одной из характеристик каждой особи. На настоящее время неизвестно, как он определяется в действительности. Можно предположить, что этот признак, как и подавляющее большинство иных ключевых характеристик особи, зависит частично от генотипа особи, и частично от средовых воздействий на нее. Модель Gause должна предусматривать возможность имитирования обоих этих механизмов.

 

2.3. Моделирование онтогенетических стратегий

В зависимости от предыстории особи определяется характерное для нее значение переменной Strategy. В зависимости от этого значения и возраста особи определяется ее жизнеспособность, размер и участие в нересте и плодовитость. Вероятно, надо предусмотреть возможность для каждого из 22 генотипов задавать два разных варианта, соответствующих крайним значениям параметра Strategy (например, от +3 до -3). Естественно, нужно предусмотреть и возможность не задавать такую вариативность.

Если стратегия определяется только принадлежностью к определенной форме, особей с разными стратегиями можно рассматривать, как относящихся к разным формам, для которых задавать разные значения параметров.

Если стратегия определяется только средой, для каждой формы надо задать крайние значения, и предусмотреть функцию, которая корректирует значение параметра Strategy в определенном возрасте в зависимости от определенной характеристики модельной гильдии (вероятнее всего — от остроты конкуренции).

Сложнее всего реализовать вариант, при котором стратегия определяется частично генетической предрасположенностью, а частично — влиянием среды. Конкретного решения этой проблемы у меня на момент написания этих строк нет. Один из вариантов таков: в характеристики каждой особи включить состояние ее нескольких генов. Значение параметра Strategy (и, возможно, иных параметров, прежде всего — описывающих эффективность потребления разных частей ресурсного спектра, как это описано в следующем пункте) определять по правилам, учитывающим состояние этих генов. Впрочем, способ реализации этого варианта еще надо обсуждать.

 

2.4. Моделирование разделения ниш

Поскольку одной из задач программы Gause является моделирование конкурентного исключения по Гаузе, в этой модели должен быть предусмотрен механизм разделения их экологических ниш. В данном случае, экологическая ниша — это характер связи популяции с ее средой; разделение экологических ниш связано с дифференциацией ресурсных ниш, т.е. совокупностей потребляемых ресурсов.

В соответствии с классическими представлениями, сосуществование конкурирующих видов может быть связано с тем, что они специализируются на потреблении разных частей спектра общих ресурсов. К примеру, и вид А, и вид В, существуюя сами по себе, могут потреблять весь спектр доступных ресурсов (например, питаться как маленькими, так и большими жертвами, или питаться в течение всех суток). Правило Гаузе заключается в том, что если эти два вида обитают вместе, устойчивость их сосуществования может быть обеспечена тем, что они делять ресурсные ниши: например, вид А питается мелкими жертвами, а вид В — крупными, или вид А питается днем, а вид В — ночью. Две-три переменных, по которым происходит разделение ниш (например, размер жертв, способ их добычи и время их добычи) позволяют обеспечить устойчивое сосуществование гильдий, состоящих из двухзначного количества популяций.

Я предлагаю использовать один параметр (размер добычи; впрочем, его можно интерпретировать и как-то иначе), состоящий, к примеру, из 12 ресурсных категорий. Емкость среды (количество доступных ресурсов) задается отдельно для этих двенадцати категорий (двенадцатью числами, а не одним, как в модели Gause-100). В параметры каждой формы входит эффективность потребления каждой из этих двенадцати категорий.

Следствием из этого изменения алгоритма оказывается то, что прежний алгоритм конкурентного сокращения численности (которым мы гордились), нуждается в замене или изменении.

Один из вариантов таков. Каждая категория ресурса делится между всеми группами-потребителями (отличающимися по принадлежности к определенной форме и по возрасту), которые ее эксплуатируют, пропорционально их численности и эффективности потребления этой категории ресурса. Определяется количество ресурса, полученного каждой группой. Происходит конкурентное сокращение особей этой группы, при котором шансы каждой особи на выживание пропорциональны их конкурентоспособности. В простейшем случае конкурентоспособность особей одной группы одинакова, однако в том случае, если особи внутри группы отличаются по их онтогенетическим стратегиям, их конкурентоспособность может быть различной.

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

 

2.5. Особенности интерфейса

Ввод данных в модель должен осуществляться через пять таблиц:

— значения параметров жизнеспособности для рассматриваемых форм особей;

— распределения вероятностей выбора друг друга особями разных форм (и возрастов?) при образовании пар;

— распределения вероятностей образования потомков от всех возможных вариантов скрещивания;

— начальный состав гильдии и закланированный характер иммиграции (прибытия определенных особей в рассматриваемую гильдию);

— состав и динамика ресурсов среды.

Непростой проблемой при проектировании модели Gause является проектирование ее интерфейса. Предположим, в модели рассматриваются 22 формы особей. Предложенное количество особей не избыточно. К примеру, в модели Batrachometrics рассматривается 13 форм: XLXL, XLYR, XRXR, XRYR, XR(XL), YR(XR), XR(YL), XL(XR), YL(XR), XL(YR), (XL)(XR), (XL)(YR), (YL)(XR). В модели Антона Леонова рассматривается тот же набор форм, но он остается открытым: туда можно добавлять новые формы (но, увы, в настоящее время неудобным для пользователя образом). Анализ триплоидов потребовал бы добавления к их числу целого ряда новых форм. Для каждой формы следует предусмотреть тут или иную продолжительность жизни. У зеленых лягушек максимальная зарегистрированная нами продолжительность жизни составляет 10 лет; при использовании модели для изучения каких-то иных форм следует предусмотреть существенно большую продолжительность жизни. Например, у серых жаб, на примере которых мы тоже изучаем онтогенетические стратегии, максимальная продолжительность жизни составляет не менее 15 лет. Предположим, мы рассматриваем 22 формы особей (11 видов в случае, если гибридизация отсутствует) с максимальной продолжительностью жизни 16 лет. Это означает, что в модели рассматривается 352 возрастные группы. Для каждой из них надо задать набор параметров жизнеспособности. В модели Gause-100 используются 7 параметров жизнеспособности. Если в модели Gause останется то же количество параметров (на самом деле, их количество должно измениться, но не принципиально), это будет означать, что, задавая параметры жизнеспособности, надо заполнить 2464 ячеек. Ситуацию усугубляет то, что как минимум для некоторых из этих ячеек надо задавать два значения: соответствующее скороспелости и соответствующее тугорослости. Итак, их максимальное количество может превысить 5 тысяч. Чтобы работа по вводу такого количества данных была выполнимой и осмысленной, нужно предусмотреть несколько механизмов, в числе которых:

— автоматическое заполнение ячеек в соответствии с тем или иным шаблоном (должна быть возможность создать несколько шаблонов значений параметров жизнеспособности, а потом указать для каждой формы подходящий для нее шаблон и тем самым обеспечить автоматическое заполнение ее ячеек);
— корректировка автоматически заполненных ячеек после применения определенного шаблона;
— автоматическое выключение неиспользуемых ячеек (когда количество форм менее 22 или максимальная продолжительность жизни менее 16 лет);
— экспорт заполненных таблиц жизнеспособности в простой формат (например, *.csv) и их импорт.

Еще серьезнее проблема определения вероятностей выбора особями друг друга при образовании пар. При принятых условиях в модели должно рассматриваться 22×22=484 парных сочетаний форм. Однако и этого количества может быть недостаточно. Во многих случаях существенным обстоятельством, определяющим потенциальную привлекательность партнера, является его возраст (точнее, не возраст, но связанные с возрастом параметры).

При определении состава потомства от скрещиваний потенциально следует рассматривать 22×22×22=10648 ячеек (для каждого варианта попарного скрещивания 22 двух форм необходимо указать вероятность появления в потомстве каждой из 22 форм). Впрочем, очевидно, что в подавляющем большинстве случаев большинство этих ячеек будет неиспользуемым. Чаще всего будут моделироваться ситуации, в которых будут рассматриваться формы, относящиеся к самкам и самцам; в этом случае, заполнять следует только те ячейки, которые соответствуют скрещиванию самца и самки. При моделировании ситуаций, в которых рассматриваются гермафродиты, способные к гибридизации разных форм, надо будет использовать все ячейки; более того, их количество нельзя даже сократить вполовину, потому что потомство,от скрещивания двух гермафродитичных форм А и В может быть разным, в зависимости от того, какой из гермафродитичных родителей выполнял для потомков материнскую роль, а какой — женскую.

 

Дорогие программисты! В этом тексте — много неясного. Сложные вопросы можно обсуждать в перписке со мной (d.a.shabanov@gmail.com), а можно — и в комментариях под этой страницей.

 

 

 

 

 

 

 

 

 

Комментарии

Думаю лучше всего огромную задачу разбить на некоторое количество кусков. В первую очередь, хотелось бы узнать, какой интерфейс подразумевается  это будет Excel подобный, или для ввода параметров можно будет использовать браузер, а сама модель будет отрабатывать удаленно? В таком случае, интересно, какой должна быть масштабируемость? Также в первую очередь необходимо отработать элементарную модель, допустим с 16 вариантами, или срезать их количество вдвое. Я подозреваю, что удобно было бы моделировать нейросеть в качестве особи, которая "может учиться в ограниченных" переделах. Или обратить внимание на странные аттракторы из теории хаоса http://www.polybook.ru/comma/4.8.pdf.  Однако и нейросети и странные атрракторы в данном случае связаны с привнесением многомерности, то есть  путь актора (индивидуума) во времени будет некоей одномерной прямой, однако вычисление итогового положения группы будет зависеть от наложения этих прямых и образования скопления в фазовом просстранстве. Таким образом можно будет накладывать варианты итоговых траекторий различных групп и смотреть на изменение в пределах 1 - 2 видов и далее.  Однако это существенное усложнение, вероятно, мои рассуждения можно упростить.

На основе того что я думаю, можно поробывать сделать прототип для 10-15 акторов, поведение которых будет вероятностным и зависеть от трех основных параметров - вероятности смерти, вероятности размножения и вероятности выжить. Далее, траектория каждого актора в зависимости от времени описывается этими переменными. Онтогенетические стратегии я вижу скорее как точки, возле которых будут находиться траектории индивидуумов группы, то есть точки равновесия для текущих условий. Текущие условия это состояние среды, состояние индивидуума, его действие, количество сыгранных ходов и т.д. 

Ну, прежде всего, хочу сказать, что ты, Рома, не учел главного: предназначения модели. Модель, подобная тому, что здесь описано, нужна для того, чтобы прозрачно и явно продемонстрировать, какие следствия вытекают из определенного набора начальных предположений. Мы ограничены в нашей способности просчитывать цепчки переплетающихся следствий их множества одновременно действующих причин. В этом нам может помочь модель, которая покажет: если выполняются такие-то начальные условия, следует ожидать таких-то следствий. Именно поэтому нейронные сети тут совершенно неприменимы. Их имеет смысл использовать, когда надо получить ответ на интересующий нас вопрос (прогноз, результат классификации и т.д.), и совершенно бессмысленно использовать как доказательство того, что из неких предпосылок вытекают некоторые следствия.

Странные аттракторы — замечательно интересная тема, но я не понимаю, чем они нам могут помочь. Наша задача — установить соответствие между начальными условиями, описывающими взаимодействующие популяции, и результатами такого взаимодействия...

Сделать вначале модель-лайт? Почему бы и нет...

 

Доброго времени суток! Давно Вам не писал, так как не всегда хватало времени уделить модели. На данный момент заканчиваю пару курсов по моделированию, так как взять задачу сразу не получилось. Есть мини вариант вашей реализации, только реализованный в чистом коде и вряд ли пока подходящий для использования. Для реализации использовался язык Python (Sympy + Numpy + pandas). Модель удобно разделить на 2 части: генерация данных согласно определенному алгоритму и выгрузка сырых в CSV. Это удобно сделать на Python,. Второй шаг - интерпретация данных, удобнее R, так как данный язык умеет много чего из коробки. Продолжаю читать книги намного более умных людей по моделированию.

Продвигаюсь медленно, но вроде как уверенно. Интересно ваше мнение, насчет интерфейса программы и насколько мои мысли близки к реальности. Буду рад если сможете ими поделиться.
 
С уважением, Роман

Ты спрашиваешь моего мнения, насколько твои мысли близки к реальности. А какие мысли - я должен догадаться?