EcoSimulation — 05. Имитация ограничения доступного количества ресурсов

 

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

Учет демографической структуры популяций Имитация ограничения доступного количества ресурсов Подбор параметров и поиск решения
Имитационное моделирование биосистем-04 Имитационное моделирование биосистем-05 Имитационное моделирование биосистем-06

 

5. Имитация ограничения доступного количества ресурсов

5.1. Модель с ограничением размножения особей при недостатке ресурсов

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

Итого, способность среды поддерживать существование моделируемой популяции надо определять не как емкость среды K, заданную так, что общая численность особей после сокращения численности ωN не должна превышать K (т.е. ωN≤K), а как обеспеченность ресурсами R. В таком случае (в соответствии с принятыми нами правилами) нам понадобится еще два обозначения. Используем букву D (demand) для обозначения потребности в ресурсах, а букву U (use) – для обозначения потребленного количества ресурсов. Вероятно, потребность в ресурсах представителей разных групп должна быть разной. Скорее всего, для новорожденных самок и самцов она должна быть одинаковой: d(f0)=d(m0); а кроме этих величин, придется задать d(f1), d(f2) и т. д. Потребность в ресурсах может вычисляться для численности модельной популяции на разных этапах: для αN или для ωN; в соответствии с этим можно вычислять αD или ωD.

Рассмотрим два варианта таких ограничений. Для начала построим модель с ограничением размножения особей при недостатке ресурсов. Будем считать, что на свет появится столько особей, на сколько хватит свободных ресурсов. Впрочем, при этом размножение будет происходить только в том случае, если увеличение потребности в ресурсах со взрослением не будет перекрывать эффект от гибели части особей вследствие неполной выживаемости.

Предположим, в нашей модели начальная численность популяции будет обозначена как αN, альфа-численность. После сокращения альфа-численности, вызванного различной выживаемостью, мы перейдем к ωN, омега-численности. Если местообитание обеспечивает все потребное количество ресурсов для популяции (т.е. ωDR), то потребление популяции соответствует ее потребностям (ωD=U). Если потребности популяции превышают обеспеченность ресурсами, она сталкивается с определенными ограничениями.

При определении численности потомков на каждом шаге модели рассмотрим следующие три случая: 

  • ωD≥R, т.е. потребность в ресурсах уже имеющихся лягушек превосходит емкость среды. Приплода нет.
  • ωD<R, но (ωD+n(f0)×d(f0)+n(m0)×d(m0))>R, т.е. для имеющихся особей ресурсов достаточно, но если к имеющимся особям прибавить все возможное потомство, ресурсов хватать не будет. В этом случае количество потомства определяется как (R-ωD)/d(f0).
  • (ωD+n(f0)×d(f0)+n(m0)×d(m0))≤R, т.е. ресурсов хватает и для имеющихся особей, и для всех их возможных потомков. В таком случае приплод определяется количеством потенциальных родителей и их плодовитостью.

Построив такую модель, исследуйте ее динамику при разных значениях исходных параметров. В чем эта модель лучше, а в чем — хуже по сравнению с предыдущей?

5.2. Модель с конкурентным сокращением численности при недостатке ресурсов

Если вы построили описанную на предыдущем шаге модель, сделайте еще один шаг, и постройте модель с конкурентным сокращением численности при недостатке ресурсов. Для имитации такого сокращения численности можно применить алгоритм, использованный в работе М. А. Кравченко. Приведем этот алгоритм в слегка измененном виде, учитывающем систему обозначений, которую мы используем в данном пособии.

Мы рассматриваем популяцию (или гемиклональную популяционную систему гибридогенного комплекса зеленых лягушек, как в работе Кравченко, а может быть — гильдию, т. е совокупность разных популяций, использующих один и тот же ресурс). В рассматриваемой совокупности представлены особи, относящиеся к разным формам, обозначенным G. В предыдущем примере форм две: самки (F) и самцы (M), но, строго говоря, их может быть сколько угодно, i (в таком случае 1G, 2G, 3G ... iG — это разные генотипы, которые могут относиться к одному виду, как самцы и самки, или к разным видам, или к родительским видам гибридогенного комплекса и их разнообразным гибридам). Представители каждого генотипа могут быть представлены разными возрастными группами; чтобы подчеркнуть, что речь идет об отдельных группах представителей этих генотипов, будем использовать для их обозначения строчные буквы. Если возможно a возрастов, начиная с нулевого (новорожденных), то генотип iG может быть представлен следующими возрастными группами: ig0, ig1, ig2 ... iga

Особенностью данного алгоритма является то, что смертность в нем разделена на две группы: неконкурентная смертность и конкурентная смертность. Мерой, определяющей неконкурентную смертность, является выживаемость (s). Неконкурентная смертность не зависит от количества ресурсов; конкурентная имеет место только в том случае, когда наблюдается недостаток ресурсов. Логично неконкурентную смертность имитировать до того, как будет имитироваться конкурентная смертность. 

В обсуждаемой модели среди прочих начальных параметров задается значение выживаемости для всех групп: s(ig0), s(ig1), s(ig2) ... s(iga). Это можно сделать двумя разными способами. Можно перечислить каждое из значений s(iga) и указать в соответствующем окошке модели соответствующую величину (в учебной модели, которую будут делать студенты, проще всего сделать именно так). Второй подход заключается в том, чтобы задать определенную функцию, описывающую, как меняется выживаемость представителей каждого генотипа с возрастом. Конкретные значения s(igaбудут при этом вычисляться на основании этой функции. 

Мерой, определяющей конкурентную смертность, является относительная конкурентоспособность (с). Значение относительной конкурентоспособности для всех групп: с(ig0), с(ig1), с(ig2) ... с(iga) задается так же, как и значение выживаемости.

Преобразования, которые происходят с каждой группой особей iga, можно описать как переход по цепочке состояний αn(iga) → βn(iga) ωn(iga). Примем, что альфа-численность — это численность в начале цикла, бета-численность — численность после неконкурентной смертности, а омега-численность — численность после конкурентного сокращения численности.

Итак, в начале каждого цикла численность каждой группы составляет αn(iga). В начале цикла t начальная численность αn(iga) определяется окончательной численностью предыдущего возраста на цикле t-1: αn(iga)t=ωn(iga-1)t-1. В том случае, когда речь идет о потомстве, появившемся на предыдущем цикле работы модели (B), можно принять, что численность самок и самцов первого года жизни примерно равна половине от общей численности потомства прошлого года. Вычислять их можно так: вначале определить численность самок, а потом в зависимости от нее определить и численность самцов: αn(f1)t~1/2×Bt-1 и αn(m1)t=Bt-1-αn(f1)t.

Затем имитируется неконкурентная смертность, которая определяется выживаемостью: βn(iga)=αn(iga)×s(iga).

На следующем шаге имитируется конкурентное сокращение численности βn(iga) → ωn(iga). Конечно, самой сложной частью этой модели является алгоритм конкурентной смертности, вычисление омега-численности. Для того, чтобы упростить расчеты, мы можем вычислить промежуточные величины: квотированные по конкурентоспособности численности всех групп. Обозначим их как дельта-численности, и зададим, что γn(iga)=βn(iga)×c(iga). Кроме того, для последующих вычислений нам потребуются еще две величины: суммарная потребность в ресурсах особей до сокращения численности, βD=Σ(βn(igad(iga)), и суммарная потребность в ресурсах, соответствующая численности всех квотированных групп, γD=Σ(γn(igad(iga))=Σ(βn(igac(igad(iga))

Вычислив эти величины, мы можем установить, по какому сценарию будет проходить конкурентное сокращение численности.

I сценарий: βD≤R; ресурсов всем хватает, конкурентное сокращение численности не производится: ωn(iga)=βn(iga).

II сценарий: βD>R и γD≥R; ресурсов не хватает даже после квотированного сокращения; в этом случае квотированные численности сокращаются пропорционально R/γDωn(iga)=γn(igaR/Q.

III сценарий: βD>R и γD<R; ресурсов не хватает для всех, но больше, чем нужно квотированным численностям; в этом случае ωn(iga)=βn(iga)-(βn(iga)-γn(iga))*(βD-R)/(R-γD).

Один из возможных вариантов (но вовсе не обязательный для копирования студентами) размещения такой модели ни листе LibreOffice Calc показан на рис. 5.1.

Рис. 5.1. Общий вид модели с конкурентным сокращением численности при недостатке ресурсов

Естественно, наименее интуитивно понятным является третий сценарий. Чтобы его понять, надо учесть следующее. (βD-R)/(βD-γD) — это отношение недостатка ресурсов для несокращенной численности к разнице в потребности в ресурсах между несокращенной (β) и квотированной (γ) численностью. К примеру, бета-численность (несокращенная) требует 500 единиц ресурса, гамма-численность (квотированная) — 200 единиц. Всего в наличии 400. Недостаток ресурсов для бета-численности — 100 единиц, разница в потребности бета- и гамма-численности — 300 единиц. Отношение (βD-R)/(βD-γD) равно 1/3. Значит, из бета-численности надо вычесть треть разницы между бета- и гамма-численностью.

Такое сокращение численности удовлетворяет двум условиям.

1) численность до сокращения снижается до величины, которая соответствует обеспеченности ресурсами;

2) численность каждой группы до конкурентного сокращения βn(igaснижается до такой численности после конкурентного сокращения ωn(iga), что доля прошедших конкурентное сокращение особей каждой группы пропорциональна конкурентоспособности представителей этой группы: ωn(iga)/βn(iga)~c(iga).Выполнив этот алгоритм, полезно вычислить окончательное потребление ресурсов: U=Σ(ωn(iga)×d(iga)). Если U соответствует R, то сокращение проведено правильно. Надо подчеркнуть, что соответствие U и R будет точным равенством только в том случае, если вычисления проводились без округления, как это сделано в модели, показанной на рис. 5.1 (что, в общем-то, является далеким уходом от биологического смысла). В описанных расчетах следует использовать или сокращение вниз (в случае детерминированных моделей), или сокращение после прибавления случайного числа (в случае вероятностных моделей).

Для освоения рутинных действий, совершаемых в ходе имитационного моделирования, можно порекомендовать студентам вначале сделать детерминированную модель, сохранить ее, а потом сделать на ее основе вероятностную модель. Это позволить решить нетривиальную задачу: сравнить поведение одинаково построенных детерминированной и вероятностной моделей. 

5.3. Сравнение детерминированной и вероятностной моделей с использованием счетчика итераций

Для освоения рутинных действий, совершаемых в ходе имитационного моделирования, можно порекомендовать студентам вначале сделать детерминированную модель, сохранить ее, а потом сделать на ее основе вероятностную модель. Это позволить решить нетривиальную задачу: сравнить поведение одинаково построенных детерминированной и вероятностной моделей.

Скопируйте строки, соответствующие системе преобразований (см. пункт 1.10) построенной вами на предыдущем шаге модели. Вставьте копию ниже имеющихся строк. Если все сделано правильно, блок ввода начальных значений параметров модели будет «работать» на оба варианта системы преобразований. Теперь один из дублирующих друг друга вариантов системы преобразования можно изменить, чтобы установить, какое влияние оказывает это изменение на работу модели.

Оставьте верхний вариант системы преобразований детерминистским, а нижний сделайте вероятностным. Как мы уже установили (см. пункт 3.5), это можно сделать, добавив в формулы вероятностное округление: =ROUNDDOWN("ЗНАЧЕНИЕ_ЯЧЕЙКИ"+RAND();)}. Как вы поняли, «ЗНАЧЕНИЕ_ЯЧЕЙКИ» – это та формула, которая стояла в детерминистской модели. Естественно, вероятностное округление следует добавлять только в те формулы, которые определяют численности особей и в которых могут возникать нецелые значения; к примеру, в формулу для вычисления потребности в ресурсах никакое округление добавлять не нужно. Вероятно, при определении численности особей первого года (в том случае, если на предыдущем цикле определено общее количество потомков), достаточно округлить численность представителейодного пола, а потом вычесть ее из численности потомков и получить численность представителей другого пола.

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

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

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

Рис. 5.2. Сравнение детерминированной и вероятностной моделей «с птичьего полета» (один из возможных вариантов размещения модели на листе). При щелчке по этой картинке она откроется в новом окне с более высоким разрешением

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

Для работы со счетчиком надо включить режим итераций. Это можно сделать (рис. 5.3) в меню «Засоби/Параметри/LibreOffice Calc/Обчислення». 

Рис. 5.3. Режим итераций включен

В меню «Засоби керування/Елементи керування», работа с которым пояснялась в пункте 4.1, выберем режим «Перемкнути режим розробки» и вставим в модель элемент управления счетчик: «Лічильник». Этот элемент управления изменяет с каждым щелчком значение в определенной ячейке, которой он управляет.

Теперь нам понадобятся ячейки, в которых мы будем запоминать результаты каждой итерации. В каждой из этих ячеек можно было бы написать, какому значению счетчика соответствует эта ячейка (в одну помещается значение результата моделирования при показаниях счетчика 1, в другую – при показаниях счетчика 2 и так далее). Однако проще всего сделать ряд ячеек со значениями ряда натуральных чисел (поставить в одну ячейку 1, в другую – 2 и рястянуть ряд), а в ячейках для запоминания результата моделирования поставить условие равенства показаний счетчика значению ячейки в этом ряду. На рис. 5.4 показан такой вариант: ряд из 20 ячеек с номерами «обслуживает» 100 ячеек для результатов. В первом столбце ячеек для результатов показания счетчика сравниваются со значениями ячеек для номеров; во втором столбце к значению ячеек с номерами добавляется 20, в третьем – 40 и так далее.

Результаты моделирования отражаются в двух ячейках: одной для детерминированной модели и другой для вероятностной. Для характеристики исхода моделирования выбрано общее количество «половозрелых» особей («двухлеток» и «трехлеток»). Исходы детерминированного моделирования собираются в одной группе ячеек, вероятностного – в другой. В каждой группе в ячейках стоят формулы, аналогичные той, которая видна на рис. 5.4: =IF(cnt=0;"";IF(cnt=AQ4;probab;AR4)). Если в ячейке счетчика стоит 0, все ячейки для записи результатов освобождаются (выражение "" соответствует пустой ячейке). Если значение счетчика соответствует значению ячейки с номером, в ячейку для записи результатов помещается результат вероятностного моделирования. Если значения счетчика какое-то иное, значение ячейки равно самому себе, т.е. не изменяется.

Значения результатов детерминированного моделирования остаются одними и теми же (чего и следовало ожидать). Значения вероятностного моделирования изменяются. В модели на рис. 5.4 использован следующий прием. В столбце AY отображается количество разных исходов. В седьмой строке оно соответствует округленному вниз значению детерминированного моделирования, в шестой – на единицу меньше, в седьмой – на единицу больше и т. д. Полученное распределение показывается на гистограмме.

Рис. 5.4. Счетчик итераций. Обратите внимание на формулу ячейки AR4: обозначение cnt в ней соответствует показателю счетчика (AJ3), а probab – ячейке, в которой отображается итог вероятностного моделирования (AJ10)

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

5.4. Моделирование взаимодействия отдельных особей с отдельными единицами ресурса

В предыдущей модели мы описали механизм, сокращающий численность совокупности особей, обладающих различной конкурентоспособностью, до количества δN, соответствующего обеспеченности ресурсами (V). Надо отметить, что в одном важном отношении использованный нами механизм отличается от того, что мы можем наблюдать в действительности. Если ресурсов хватает на 100 особей, и популяция состоит из 100 особей, останется, вероятно, 100. А если популяция состоит из 200 особей? Существенная часть из них погибнет, но в конечном итоге останется, вероятно, не 100, а меньшее количество особей (ведь те индивиды, которым суждено погибнуть, успеют потребить определенное количество ресурса, и для тех, кто выживет, его останется меньше). А если на то количество ресурсов, которое может обеспечить 100 особей, будет претендовать 10000? В действительности будет хорошо, если из них останется жив хоть кто-то... 

Как отразить эти закономерности в имитационной модели? Чтобы сделать это, неизбежно придется перейти на моделирование взаимодействия отдельных особей с отдельными единицами ресурсов. Дело в том, что для того, чтобы учесть убыль ресурса в результате потребления его теми особями, которые смогут удовлетворить свои потребности лишь частично, а затем погибнут, так или иначе придется рассматривать судьбу частей той порции, которая должна достаться каждой особи.

Итак, мы рассматриваем совокупность из особей (более простой вариант — из групп одинаковых особей), потребляющих определенное количество единиц ресурса — можно, если хотите, говорить о "лягушках", которые ловят "мух". Важно то, что вероятность потребления единицы ресурса разными особями должна быть разной. Строго говоря, единицы ресурсов тоже могут быть разными ("мухи" могут быть "большими" или "маленькими", например). Обозначим вероятность потребления n-тым организмом (используем для его обозначения букву w) единицы ресурса j-той категории p(nw,jv).

Можно ожидать, что величина p(nw,jv) окажется такой характеристикой организма nw, которую можно было бы задавать во входных данных. Однако то, с какой вероятностью единица ресурса достанется определенной особи, зависит не только от ее свойств, но и от ее окружения. Смерть или появление иных представителей рассматриваемой популяции повлияет на шансы того, которого мы рассматриваем, даже если его свойства никак не изменились. Поэтому задавать вероятность получения единицы ресурса какой-то особью (или представителями определенной группы особей) желательно так, чтобы задаваемая величина не зависела от состава популяции. Этому условию удовлетворяет величина `p, которую можно определить так: `p(nw,jv)=p(nw,jv)/maxp(nw,jv), где maxp(nw,jv) — максимальное из значений вероятности получения единицы j-той категории ресурса, характерное для особей в моделируемой популяции. Удобнее всего задавать величинам `p значения в диапазоне от 0 до 1, отслеживая, чтобы максимальное использованное значение, соответствующее maxp(nw,jv), было равно 1.  

Определим понятие "относительная вероятность получения ресурса" таким образом. Относительная вероятность получения единицы ресурса (`p) равна частному от деления вероятности получения единицы ресурса данной особью на вероятность получения единицы ресурса той особью, для которой эта вероятность максимальна. Таким образом, относительная вероятность может изменяться от 0 до 1. 

...(страница в разработке)...