Лекция світів-10

Creation of Worlds — 10. Приклади різноманітних моделей, їх задум і дизайн

Огляд декількох різних моделей. Це усе можна розвивати...

10. Приклади різноманітних моделей, їх задум і дизайн

10.1. Підбірка моделей для знайомства з варіантами їх побудови

Можна не сумніватися, що для того, щоб з успіхом використовувати імітаційне моделювання у своїй роботі, біологу потрібно вміти не тільки використовувати найпростіші інструменти для побудови моделей. Він повинен бачити ситуації, в яких йому може допомогти моделювання, вміти ставити завдання, яку повинна вирішувати модель, а також розробляти дизайн моделі — набір вхідних параметрів, обчислюваних величин, зв'язків між ними, і, зрештою, набір вихідних параметрів моделі.

Як цьому навчитися? Аналізуючи чужі моделі й створюючи власні.

Автор даного курсу пропонує розглянути декілька моделей, які йому доводилося розробляти для вирішення різних завдань. Далеко не в усьому ці моделі є взірцевими (скоріше — навпаки); проте, студенти можуть отримати корисний для себе досвід не тільки аналізуючи гідності наявних моделей, але навіть розглядаючи їх недоліки. Моделі, приклади яких тут наведені, робилися для ілюстрації тих чи інших положень, що обговорювалися в колонках (статтях, що відображають авторський погляд) в журналі "Компьютерра". Щоб розібратися в структуру й особливості моделей, треба прочитати самі колонки (а також, при необхідності, джерела, на які ці колонки посилаються) і побачити, куди "вписані" розглянуті моделі.

47. Коли добір стає неефективним? Модель із цієї колонки можна завантажити тут.

50. Альтруизм и парадокс Симпсона. Модель (громіздку, "некрасиву") з цієї колонки можна завантажити тут.

51. Подпорки альтруизма. З цієї колонки модель розміщена тут.

137. Обговорення переходу від гермафродитизму до роздільностатевості як приклад некласичного розвитку природничо-наукової гіпотези. Модель до цієї колонки описана далі, а сама вона наявна у варіанті для Excel-2013 та у варіанті для Excel-2003.

138. Про природу чоловічого і жіночого, або від кон’югації до оогамії. Ось варианти модели для Excel-2013 та для Excel-2003.

Задача про хлопчиків та дівчат. Ця задача викликала суперечки. Простий спосіб отримати однозначну відповідь — побудувати модель

 

10.2. Модель динаміки епідемії

Нижче наведено опис створення нескладної моделі, що описує поширення епідемії. Цю модель можна завантажити з сайту або створити самостійно згідно з описом (останнє — краще).

Модель розглядає чотири стани особин: вразливий ( код 1), хворий (2), імунний (3), померлий (4). Для моделювання слід задати ймовірності переходів між цими станами: зараження імунного при наявності поруч хворого (1→2), а також одужання хворого і його переходу у стан імунного (1→3). Ймовірність загибелі хворого — одиниця мінус ймовірність його одужання.

Рис. 10.1.1. Вікно моделі epidemia Щоб керувати змінами цих навчальних параметрів можна застосувати смугу прокрутки. Щоб вставити смугу, пройдіть по шляху «Перегляд / Панелі інструментів» і оберіть панель «Елементи керування». На аркуші LO Calc з'яв
Рис. 10.1.1. Вікно моделі epidemia

Щоб керувати змінами цих навчальних параметрів можна застосувати смугу прокрутки. Щоб вставити смугу, пройдіть по шляху «Перегляд / Панелі інструментів» і оберіть панель «Елементи керування». На аркуші LO Calc з'явиться ця панель. Перейдіть в режим розробки за допомогою кнопки, на якій написано «ОК»: «Режим розробки». Вам стануть доступні елементи управління, серед яких можна вибрати смугу прокрутки. Вибравши її, окресліть якийсь простір на аркуші; LO Calc вставить туди цей елемент управління. Залежно від того, який простір ви окреслите для цього елементу, він буде горизонтальним або вертикальним.

Щоб налаштувати смугу прокрутки, виділіть її, залишаючись в режимі розробки. Стане активною кнопка «Елемент керування», на якій зображені перекреслені інструменти. Натиснувши її, ви потрапите в діалог «Властивості: Смуга прокрутки». На першій вкладці, «Загальні», можна налаштувати властивості смуги, в число яких входять розміри, положення, мінімальне і максимальне значення, що задаються за допомогою цієї смуги, крок зміни, її розміри тощо. На другій вкладці, «Дані», слід вказати ту комірку, значення в якій буде змінюватися за допомогою цієї смуги прокрутки. Після того, як властивості елементу керування налаштовані, вікно діалогу можна просто закрити: зміни будуть збережені. Зверніть увагу: смуга прокрутки запрацює лише тоді, коли ви вийдете з режиму розробки! Щоб змінити розташування смуги або її інші властивості, треба буде знову входити у режим розробки.

Один зі способів використання смуги прокрутки такий. Смуга керує значенням, що знаходиться у певній комірці (можна — у комірці, що схована під самою смугою). Значення цієї комірки змінюється від 1 до 100. У комірці, де розраховується значення початкового параметра, стоїть формула, що ділить значення комірки, якою керує смуга прокрутки, на 100. Це значення можна показувати у процентах. Такий ускладнений шлях пов’язаний з тим, що за допомогою смуги прокрутки можна задавати лише цілі значення, а початкові параметри (ймовірності) мають бути виражені частками одиниці.

Крім того, до числа початкових параметрів належить початковий склад популяції. Його також можна задавати за допомогою смуг прокрутки. Наприклад, можна визначити частку хворих та частку імунних; усі інші особини — це вразливі.

Найпростіший варіант побудови моделі такий. На певному просторі (у прикладі, що надається, це — прямокутник 10 на 10, але можливий і будь-який інший варіант) слід випадково розташувати особин відповідно до розподілу, що заданий початковими параметрами. Для кожної комірки на цьому полі слід визначити, яка особина її займає. Для таких задач слід використовувати порівняння випадкового числа (від 0 до 1) з розподілом одиниці. Якби ми розглядали 2 стани комірок (наприклад, білі та чорні), ми могли б вираховувати випадкове число у самій формулі (якщо випадкове число менша за ймовірність появи білої клітини — комірка біла, а якщо воно вище — чорна). Ми використовуємо розподіл з трьома станами; в одній формулі те ж саме випадкове число, що розраховується в ній самій, неможливо порівнювати водночас з двома різними числами. Тому десь на листі Calc слід розмістити поле випадкових чисел (на демонстраційній моделі це поле позначене жовтим кольором). У кожній комірці цього поля стоїть формула =RAND().

Тепер в полі початкового розподілу можна визначити, які особини займають кожну комірку. Для цього використано формулу =IF(випадкове_число<$частка_вразливих;1;IF(випадкове_число<($частка_вразливих+$частка_хворих);2;3)). Кожна комірка поля початкових значень посилається на своє випадкове число; значення часток вразливих та хворих, що задана початковими параметрами, однакова для усіх комірок на цьому полі. Наведена формула спочатку порівнює випадкове число з часткою (ймовірністю) вразливих; якщо воно менше за таку ймовірність, у комірці з’являється вразлива особина. Якщо випадкове число більше за ймовірність появи вразливої особини, воно порівнюється з сумою ймовірностей появи вразливих та хворих особин. Менша — особина буде хворою; більша — імунною. Такі формули дозволяють зайняти потрібну площу випадково розташованими особинами, ймовірність появи яких задана початковими параметрами.

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

=IF(комірка_початкового_розподілу=1;IF(COUNTIF(сусідні_комірки;2)=0;1;IF(RAND()<COUNTIF(сусідні_комірки;2)*$ймовірність_захворіти;2;1));IF(комірка_початкового_розподілу=2;IF(RAND()<$ймовірність_одужати;3;4);3)).

Щоб визначити, скільки хворих межує з вразливою особиною, слід виділити групу 3 на 3, в якій порахувати кількість хворих (двійок). Так, якщо нас цікавить, скільки двійок межує з коміркою C11, можна використати формулу COUNTIF(B10:D12;2). Сама комірка C11 також потрапляє у цю групу, але це не впливає на розрахунок, оскільки в ній одиниця, а не двійка. Ймовірність захворіти визначає добуток кількості хворих сусідів на ймовірність заразитися від хворого сусіда. Щоб визначити, чи захворіє особина, яка нас цікавить, випадкове число порівнюється з цим добутком; якщо випадкове число менше за добуток, особина захворіє. Слід врахувати, що добуток може бути більшим за одиницю (наприклад, вразлива особина має три хворих сусіди; ймовірність заразитися від кожного з них дорівнює 0,5, сумарно — більше за одиницю); тоді випадкове число завжди буде меншим добутку, і особина захворіє з ймовірністю 1.

Якщо в комірці, що нас цікавить, розташована хвора особина, вона може одужати або померти. В цьому випадку її долю також визначає порівняння випадкового числа з ймовірностями, що задані в початкових параметрах. Якщо ж в комірці початкового розподілу була не вразлива і не хвора особина, там була імунна особина. Така сама особина в ній й залишиться.

Тепер можна підрахувати, скільки яких особин у зміненому розподілі. Для цього можна використати формули =COUNTIF(діапазон;1). Діапазон — це поле зі зміненим розподілом. Наведена формула розраховує кількість вразливих. Зрозуміло, що для того, щоб показувати кількість хворих, потрібна формула =COUNTIF(діапазон;2).

На підставі кількості вразливих, хворих та імунних слід розрахувати ймовірності появи таких особин у наступному розподілі. Припустимо, що на тому місці, де були померлі особини, з’являться (з характерними ймовірностями) нові особини. Тоді ймовірність появи вразливих особин можна розрахувати за формулою =кількість_вразливих/(кількість_вразливих+кількість_хворих+кількість_імунних).

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

Щоб побудувати змінений розподіл другого циклу можна скопіювати відповідні комірки першого циклу.

Перед тим, як копіювати другий цикл до третього циклу, слід убрати абсолютну адресацію (позначки $) з формул. Якщо це не зробити, початкове поле третього циклу буде будуватися відповідно до розрахунку ймовірностей появи різних особин наприкінці першого, а не другого циклу.

Щоб розподіли особин можна було оцінювати з першого погляду, можна використати умовне форматування. Виділить первинні та змінені розподіли. Пройдіть шляхом «Формат / Умовне форматування / Умова». Для кожного можливого значення оберіть тій чи інший стиль. Розподіл стане більш наочним...

Щоб побудувати графік, виведіть в одну групу кількість вразливих, хворих, імунних та померлих особин на кожному циклі. Пересуньте ці групи так, щоб вони розташувалися одна під одною. Побудуйте за цими даними графік.

10.3. Перехід від гермафродитизму до роздільностатевості

Докладний опис моделі, що ілюструє процеси, описані в колонці про перехід від гермафродитизму до роздільностатевості. Модель побудована в Excel-2013. Її можна завантажити за цим посиланням, а за цим — варіант для Excel-2003 (працездатність другого варіанту не перевірялася!).

Модель являє собою аркуш Excel, на якому розміщені блок для введення значень початкових параметрів, блок обчислень (побудованих на різницевих рівняннях) і блок демонстрації результатів (графік). Блоки розміщені на аркуші таким чином, щоб усе, що потрібно для експериментування з моделлю, розміщалося на початковому екрані.

structure

Зовнішній вигляд початкового екрана моделі такий.

start

Ось той опис роботи моделі, який включено в неї саму:

У моделі описується популяція, де відтворюються три форми:  гермафродити, самці і самки. Для кожної форми вказується початкова частка чисельності, виживаність, результати можливих схрещувань. Модель повторює цикл, що складається з наступних етапів:
— випадково (залежно від випадкових чисел) формується стадо плідників зі 100 особин (на першому циклі — залежно від початкового співвідношення форм, пізніше — залежно від співвідношення форм нащадків, що утворилися на попередньому циклі);
— із групи плідників випадково формуються пари (якщо в підборі пар відображаються вподобання особин, вибір першого партнера змінює розподіл імовірностей вибору різних форм на роль другого партнера); для утвореної пари  визначається (за таблицею з результатами схрещувань) склад їх нащадків;
— після схрещування кожної пари склад плідників коригується; запліднені гермафродити і самки виходять зі складу стада плідників;
— з потомства (з урахуванням відносної виживаності, що впливає на ймовірність потрапити в стадо плідників) формується наступне стадо плідників і цикл повторюється.

У блоці для визначення початкових параметрів використовуються елементи керування, що називаються в Excel смугами прокрутки.

У роботі моделі використовується кодування: гермафродити позначаються цифрою 1, самці — 2, самки — 3. Комірки, де можуть знаходитися ці символи, підсвічуються по-різному залежно від того, який символ у них знаходиться.

При введенні в модель початкової чисельності (початкового співвідношення форм) за допомогою смуг прокрутки встановлюється відсоткова частка самців і самок (у діапазоні від 0% до 50%); залежно від цих значень визначається чисельність гермафродитів.

При визначенні відносної виживаності за допомогою смуг прокрутки для всіх трьох форм встановлюється виживаність від 0% до 100%. Абсолютна виживаність у моделі не розглядається. Припустимо, з 1000 гермафродитів виживає 8, з 1000 самців — 10, з 1000 самок — 5. У такому разі відносна виживаність самців (найуспішнішої статі) становить 100%, гермафродитів — 80%, а самок — 50%.

У таблиці, де задаються результати схрещувань, на перетині рядків і стовпців, що відповідають двом партнерам, вказується кількість їх нащадків.

Вподобання при виборі партнерів задаються за допомогою смуг прокрутки. Усі значення змінюються від 0% до 500%. Значення 100% відповідає рівній імовірності вибору, нижчі — зниженню такої ймовірності, вищі — її підвищенню.

Фрагмент робочої зони файлу з поясненнями, що обчислюється в її комірках, наведений на малюнку.

calculations

Спочатку обчислюється склад стада плідників, які для першого року (циклу обчислення) розташовуються в рядку 26. Одразу обчислюється всі 100 особин. Потім обчислення йдуть по стовпцях усередині групи рядків, що відповідають року. Охарактеризувати використовувані обчислення найпростіше, перелічивши ці комірки по порядку, використовуючи адреси рядків. Скопійовані з комірок моделі формули підсвічені жовтим фоном.

F26 — =IF(F27<$R$2;1;IF(F27<($R$2+$R$3);2;3)) — формула, що визначає стать особини у складі нерестового стада, залежно від випадкового числа, що знаходиться в комірці F27. $R$2 і $R$2 — адреси комірок, у яких вказані частки представників різних статей у популяції. При аналогічних обчисленнях у роки, починаючи з другого, тут використовується співвідношення статей, отримане за результатами попереднього року (A39, A40 і A41 для другого року).

F27 — =RAND() — генероване програмою випадкове число, що знаходиться в межах від 0 до 1; використовується для визначення статі однієї особини зі стада плідників (комірки F26).

F28 — =E28-(IF(E36=1;IF(E37=1;2;IF(E37=2;1;0));0)+IF(E37=1;IF(E36=2;1;0);0)) — обчислення кількості гермафродитів у складі стада плідників, які можуть брати участь у спарюваннях. Воно виконується на підставі значення комірки E28 (де визначалася загальна кількість гермафродитів у складі стада до початку утворення пар) і статі особин у комірках E36 і E37, де вказувалася стать особин, що утворювали попередню пару. Якщо гермафродит опинявся у складі пари із самцем або гермафродитом, він вагітнів і виходив зі складу стада плідників. 

F29 — =E29 — обчислення кількості самців у складі стада плідників, які можуть брати участь у спарюваннях. Ця кількість визначається їх початковою кількістю в стаді плідників, оскільки самці не вагітніють і можуть розмножуватися багато разів.

F30 — =E30-(IF(E36=3;IF(E37=1;1;IF(E37=2;1;0));0)+IF(E37=3;IF(E36=1;1;IF(E36=2;1;0));0)) — обчислення кількості самок у складі стада плідників, які можуть брати участь у спарюваннях. Аналогічно такому для гермафродитів.

F31 — =SUM(F28:F30) — сума трьох попередніх комірок.

F32 — =IF(F31<2;0;IF(F36=1;(F28-1)*$N$19/((F28-1)*$N$19+F29*$P$19+F30*$R$19);0)+IF(F36=2;F28*$N$21/(F28*$N$21+(F29-1)*$P$21+F30*$R$21);0)+IF(F36=3;F28*$N$23/(F28*$N$23+F29*$P$23+(F30-1)*$R$23);0)) — з урахуванням того, що в комірці F36 вибраний перший партнер у парі, виконується перерахунок імовірності того, що другий партнер буде гермафродитом. $N$19 та інші посилання вказують на комірки, у яких задаються вподобання при утворенні пар. Якщо загальна чисельність можливих партнерів у стаді плідників менша за два, значення в комірці буде дорівнювати 0.

F33 — =IF(F31<2;0;IF(F36=1;F29*$P$19/((F28-1)*$N$19+F29*$P$19+F30*$R$19);0)+IF(F36=2;(F29-1)*$P$21/(F28*$N$21+(F29-1)*$P$21+F30*$R$21);0)+IF(F36=3;F29*$P$23/(F28*$N$23+F29*$P$23+(F30-1)*$R$23);0)) — аналогічно попередньому; імовірність того, що другий партнер буде самцем.

F34 — =IF(F31<2;0;IF(F36=1;F30*$R$19/((F28-1)*$N$19+F29*$P$19+F30*$R$19);0)+IF(F36=2;F30*$R$21/(F28*$N$21+(F29-1)*$P$21+F30*$R$21);0)+IF(F36=3;(F30-1)*$R$23/(F28*$N$23+F29*$P$23+(F30-1)*$R$23);0)) — аналогічно двом попереднім; імовірність того, що другий партнер буде самкою.

F35 — =RAND() — генероване програмою випадкове число, що знаходиться в межах від 0 до 1; використовується для визначення статі першого партнера в парі.

F36 — =IF(F31=0;0;IF(F35<F28/F31;1;IF(F35<(F28+F29)/F31;2;3))) — стать першого партнера в парі, що визначається випадковим числом у попередній комірці, залежно від кількості потенційних партнерів у складі стада плідників.

F37 — =IF((F32+F33+F34)=0;0;IF(F38<F32;1;IF(F38<(F32+F33);2;3))) — стать другого партнера в парі, що визначається з урахуванням вподобань у виборі першого партнера на підставі значень випадкового числа в наступній комірці.

F38 — =RAND() — генероване програмою випадкове число, що знаходиться в межах від 0 до 1; використовується для визначення статі другого партнера в парі.

F39 — =IF(F36=1;IF(F37=1;$O$12;IF(F37=2;$O$13;IF(F37=3;$O$14;0)));0)+IF(F36=2;IF(F37=1;$O$13;IF(F37=2;$O$15;IF(F37=3;$O$16;0)));0)+IF(F36=3;IF(F37=1;$O$14;IF(F37=2;$O$16;IF(F37=3;$O$17;0)));0) — кількість нащадків-гермафродитів, що визначається залежно від складу пари.

F40 — =IF(F36=1;IF(F37=1;$P$12;IF(F37=2;$P$13;IF(F37=3;$P$14;0)));0)+IF(F36=2;IF(F37=1;$P$13;IF(F37=2;$P$15;IF(F37=3;$P$16;0)));0)+IF(F36=3;IF(F37=1;$P$14;IF(F37=2;$P$16;IF(F37=3;$P$17;0)));0) — кількість нащадків-самців, що визначається залежно від складу пари.

F41 — =IF(F36=1;IF(F37=1;$Q$12;IF(F37=2;$Q$13;IF(F37=3;$Q$14;0)));0)+IF(F36=2;IF(F37=1;$Q$13;IF(F37=2;$Q$15;IF(F37=3;$Q$16;0)));0)+IF(F36=3;IF(F37=1;$Q$14;IF(F37=2;$Q$16;IF(F37=3;$Q$17;0)));0) — кількість нащадків-самок, що визначається залежно від складу пари.

Після того, як була проведена імітація формування 100 пар, обчислюються загальні результати року. Комірки, в яких це робиться, розташовані в стовпці A.

A31 — =SUM(E39:CZ41) — загальна сума нащадків, вироблених у даному році (на даному циклі роботи моделі).

A35 — =SUM(E39:CZ39)/A31 — частка гермафродитів, вироблених на даному циклі моделі.

A36 — =SUM(E40:CZ40)/A31 — частка самців, вироблених на даному циклі моделі.

A37 — =SUM(E41:CZ41)/A31 — частка самок, вироблених на даному циклі моделі.

A39 — =A35*$R$7 — частка гермафродитів, що доживають до наступного року (з урахуванням їх виживаності, заданої в початкових параметрах).

A40 — =A36*$R$8 — частка самців, що доживають до наступного року (з урахуванням їх виживаності, заданої в початкових параметрах).

A41 — =A37*$R$9 — частка самок, що доживають до наступного року (з урахуванням їх виживаності, заданої в початкових параметрах).

Підсумки імітації на кожному циклі роботи моделі виносяться в блок комірок, що знаходиться в крайній правій частині аркуша. За набором чисел, що формується таким чином, будується графік, який є головною формою виведення результатів роботи моделі.

Користуватися моделлю дуже просто. З використанням блоку для визначення початкових параметрів необхідно задати набір вихідних значень. Після цього залишається тільки натиснути кнопку F9, зачекати деякий час, який визначається швидкодією комп’ютера, і інтерпретувати графік, що вийшов. 

10.4. Популяційна динаміка і правило Гаузе (на межі можливостей електронних таблиць!)

10.4.1. Модель Gause-100

Автором цього посібника на базі Microsoft Excel зроблена модель, що описує взаємодію чотирьох конкуруючих форм, які можуть належати до одного або різних видів. На жаль, незалежний облік великої кількості особин у модельній популяції вимагає досить великого обсягу обчислень. У представленій тут моделі розглядається гільдія (тобто сукупність форм, що використовують один і той самий ресурс), що складається з 280 або меншої кількості особин, кожна з яких належить до однієї з чотирьох форм.

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

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

Модель дозволяє змінювати кілька початкових параметрів, що характеризують кожну групу особин, у тому числі  задавати результати їх схрещування.З початкового пулу особин формується розглянута моделлю гільдія (тобто сукупність особин, у т.ч. різних видів, які експлуатують один і той самий ресурс). Імітується конкурентне скорочення чисельності в тому випадку, якщо потреби гільдії в ресурсах перевищують ємність середовища. Потім імітується утворення пар (з числа особин, здатних брати участь у розмноженні, тобто тих, що входять до складу нерестового стада) і виробництво потомства. На наступному кроці імітації (у типовому випадку, що відповідає року) новий склад гільдії утворюється з попереднього і потомства, що з’явилося на попередньому кроці. 

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

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

gause 01

Сама модель займає на аркуші Excel набагато більший простір

gause 02

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

gause 03

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

gause 04

Нарешті, на наступному малюнку показана зона, де збираються дані про динаміку гільдії за результатами кожного року моделювання. Кожен рядок цієї зони збирає дані з відповідних рядків зони для обчислень. В останніх двох стовпцях обчислюється сумарна чисельність представників двох видів. Ці стовпці служать цифровим матеріалом для побудови діаграми, що знаходиться в зоні введення-виведення.

gause 05

Параметри життєздатності в моделі Gause-100:
— Viability (Життєздатність);
— Requirement (Потреби);
— Competitiveness (Конкурентоспроможність);
— Maturity (Дозрівання);
— Male Fertlity (Плодючість самців);
— Maximum Mating Males Number (Максимальна кількість спарювань самців);
— Female Fertlity (Плодючість самок).

 10.5. Вимоги до професійної моделі Gause

10.5.1. Загальна характеристика

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

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

У деяких суттєвих аспектах робота професійної моделі Gause (імовірно, написаної мовою Python), має нагадувати роботу моделі Gause-100. Проте, сенс побудови професійної моделі в тому, щоб отримати в результаті її створення значно ширші можливості для моделювання. Зокрема, ця модель має: 

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

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

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

передбачати можливість задавати динаміку ємності середовища (стохастичну; відповідно до якогось циклу; циклічну зі стохастичною компонентою);

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

Остання вимога накладає серйозні обмеження на спосіб реалізації моделі. І в моделі Batrachometrics, і в моделі Антона Леонова як окремі одиниці розглядалися не особини, а групи, що складаються з ідентичних особин (що належать до однієї форми і мають один вік). У моделі Gause-100 як окремі одиниці розглядаються саме особини (хоча особини однієї форми і віку залишаються ідентичними). У моделі Gause треба розглядати як окремі одиниці саме особини, і при цьому включати в характеристику кожної особини ряд її ознак, перш за все — характер її онтогенетичної стратегії. Це означає, що в моделі має бути передбачений механізм для визначення цих стратегій і керування ними.

10.5.2. Онтогенетичні стратегії особин

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

Стратегии 

 Параметри

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

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

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

down

ups

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

ups

down

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

down

ups

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

ups

down

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

ВОС

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

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

(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 має передбачати можливість імітування обох цих механізмів.

10.5.3. Моделювання онтогенетичних стратегій

Залежно від передісторії особини визначається характерне для неї значення змінної Strategy. Залежно від цього значення та віку особини визначається її життєздатність, розмір та участь у нересті та плодючість. Імовірно, треба передбачити можливість для кожного з 22 генотипів задавати два різних варіанти, що відповідають крайнім значенням параметра Strategy (наприклад, від +3 до -3). Природно, потрібно передбачити і можливість не задавати таку варіативність.

Якщо стратегія визначається тільки належністю до певної форми, особин з різними стратегіями можна розглядати як таких, що належать до різних форм, для яких задавати різні значення параметрів.

Якщо стратегія визначається тільки середовищем, для кожної форми треба задати крайні значення, і передбачити функцію, яка коригує значення параметра Strategy у певному віці залежно від певної характеристики модельної гільдії (найімовірніше — від гостроти конкуренції).

Найскладніше реалізувати варіант, при якому стратегія визначається частково генетичною схильністю, а частково — впливом середовища. Конкретного розв'язання цієї проблеми в мене на момент написання цих рядків немає. Один із варіантів такий: у характеристики кожної особини включити стан її кількох генів. Значення параметра Strategy (і, можливо, інших параметрів, насамперед — тих, що описують ефективність споживання різних частин ресурсного спектра, як це описано в наступному пункті) визначати за правилами, що враховують стан цих генів. Утім, спосіб реалізації цього варіанта ще треба обговорювати.

10.5.4. Моделювання розділення ніш

Оскільки одним із завдань програми Gause є моделювання конкурентного виключення за Гаузе, у цій моделі має бути передбачений механізм розділення їхніх екологічних ніш. У цьому випадку, екологічна ніша — це характер зв'язку популяції з її середовищем; розділення екологічних ніш пов'язане з диференціацією ресурсних ніш, тобто сукупностей споживаних ресурсів.

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

Я пропоную використовувати один параметр (розмір здобичі; утім, його можна інтерпретувати і якось інакше), що складається, наприклад, із 12 ресурсних категорій. Ємність середовища (кількість доступних ресурсів) задається окремо для цих дванадцяти категорій (дванадцятьма числами, а не одним, як у моделі Gause-100). У параметри кожної форми входить ефективність споживання кожної з цих дванадцяти категорій.

Наслідком із цієї зміни алгоритму виявляється те, що колишній алгоритм конкурентного скорочення чисельності (яким ми пишалися), потребує заміни або зміни.

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

Недоліком цього алгоритму є те, що у випадку конкуренції численних груп зменшиться ймовірність різкого скорочення або збільшення чисельності якоїсь із них. Треба вирішити, чи можна моделювати ефект випадкових відхилень при дискретизації ймовірностей у малих вибірках.

 

10.5.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 форм). Утім, очевидно, що в переважній більшості випадків більшість цих комірок буде невикористовуваною. Найчастіше моделюватимуться ситуації, у яких розглядатимуться форми, що належать до самок та самців; у цьому випадку, заповнювати слід тільки ті комірки, які відповідають схрещуванню самця та самки. При моделюванні ситуацій, у яких розглядаються гермафродити, здатні до гібридизації різних форм, треба буде використовувати всі комірки; ба більше, їхню кількість не можна навіть скоротити наполовину, тому що потомство від схрещування двох гермафродитних форм А та В може бути різним, залежно від того, який із гермафродитних батьків виконував для нащадків материнську роль, а який — жіночу.