Skip to main content
LibreTexts - Ukrayinska

19.3: Взаємодія агента з навколишнім середовищем

  • Page ID
    67746
  • \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \) \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)\(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\) \(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\)

    Одним із важливих компонентів, який ви повинні розглянути, додаючи до вашого ПРО, є взаємодія між агентами та їх середовищем. Екологічний стан все ще є частиною загального стану системи, але воно визначається над простором, а не пов'язане з конкретними агентами. Стан навколишнього середовища динамічно змінюється або спонтанно, або за допомогою дій агентів (або обох). Розглянуті досі приклади (модель сегрегації Шеллінга, DLA, Boids) не включали таке середовище, але багато ABM явно представляють середовища, на які діють агенти та взаємодіють з. Важливість взаємодії агент-середовище добре ілюструється тим, що NetLogo [13], популярна платформа ABM, використовує «черепахи» та «патчі» за замовчуванням для представлення агентів та середовища відповідно. Ми можемо зробити те ж саме в Python.

    Хорошим прикладом такої взаємодії агент-середовище є модель агрегації шламу Келера-Сегеля, яку ми обговорювали в розділі 13.4, де клітини слизу поводяться як агенти і взаємодіють з середовищем, виготовленим з молекул цАМФ. Концентрація цАМФ визначається всюди в просторі, і вона змінюється властивою їй динамікою (природним розпадом) і діями агентів (секреція молекул цАМФ агентами). Ця модель може бути реалізована у вигляді ПРО, розроблена покроково наступним чином:

    1. Розробіть структуру даних для зберігання атрибутів агентів. Якщо клітини слизової цвілі представлені окремими агентами, їх концентрація в оригінальній моделі Келера-Сегеля представлена щільністю агентів, тому вони більше не матимуть ніяких ознак, крім просторового положення в 2-D просторі. Тому x і y є єдиними атрибутами агентів у цій моделі.

    2. Спроектуйте структуру даних для зберігання станів навколишнього середовища. Середовище в цій моделі - це просторова функція, яка представляє концентрацію молекул цАМФ в кожному місці. Ми можемо представити це середовище, дискретизуючи простір і присвоюючи значення кожній дискретній просторовій комірці, як ми це робили для числового моделювання PDE. Ми можемо використовувати структуру даних масиву для цієї мети.

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

    Код 19.9 pt1.PNG

    Код 19.9 pt2.PNG
    3. Опишіть правила того, як оточення поводиться самостійно. Притаманною динаміці середовища в цій моделі є дифузія і спонтанний занепад концентрації цАМФ. Вони можуть бути змодельовані за допомогою дискретної версії оператора Лапласа, а також експоненціального коефіцієнта розпаду, застосованого до станів навколишнього середовища скрізь у просторі на кожній ітерації. Це нічим не відрізняється від того, що ми зробили для числового моделювання PDE. Ми можемо реалізувати їх у коді наступним чином:

    Код 19.10 пт 1.PNG

    Код 19.10 pt2.PNG

    Тут ми приймаємо періодичні граничні умови для простоти.

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

    Код 19.11 pt1.PNG

    Інший спосіб - хемотаксис, який може бути реалізований декількома різними способами. Наприклад, ми можемо змусити кожного агента подивитися на клітину, випадково обрану з її околиці, і рухатися туди з ймовірністю, визначеною різницею концентрації цАМФ (\(∆c\)) між сусідньою клітиною та клітиною, де зараз знаходиться агент. сигмовидна функція
    \[P ( \Delta c ) = \frac { e ^ { \Delta c / c _ { 0 } } } { 1 + e ^ { \Delta c / c _ { 0 } } } \label{(19.1)} \]

    буде придатним для цієї мети, де\(c_{o}\) параметр, який визначає, наскільки чутлива ця ймовірність до\(∆c\). \(P(∆c)\)підходи 1 с\(∆c → ∞\), або 0 с\(∆c → −∞\). Ця частина може бути реалізована в функції оновлення наступним чином:

    Код 19.12.PNG
    Тут diff відповідає\(∆c\), і ми використовували\(c_0 = 0.1\).

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

    6. Опишіть правила взаємодії агентів один з одним. У цій моделі агенти не взаємодіють один з одним безпосередньо; всі взаємодії між ними є непрямими, опосередкованими змінними навколишнього середовища (концентрація цАМФ в даному випадку), тому немає необхідності нічого реалізовувати для безпосередньої взаємодії агентів один з одним. Непряма взаємодія агент-агент через інформаційні сигнали, написані в навколишньому середовищі, називається стигмергією, яка є важливим координаційним механізмом, що використовується багатьма соціальними організмами [88].

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

    Код 19.13 pt1.PNG

    Код 19.13 pt2.PNG

    Код 19.13 pt3.PNG

    Код 19.13 pt4.PNG

    Код 19.13 pt5.PNG

    Код 19.13 pt6.PNG
    Як бачите, код стає довшим і складнішим, ніж раніше, що є типовим наслідком, коли ви реалізуєте ПРО.

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

    Що унікальне в цій ABM-версії моделі Келера-Сегеля, порівняно з її оригінальною версією на основі PDE, полягає в тому, що результат моделювання виглядає більш «природним» - формування піків населення не є одночасним, але вони поступово з'являються один за одним, і просторові розташування цих піків є не регулярний. На відміну від цього, в PDE-варіанті плями утворюються одночасно через рівні проміжки часу (див.

    Рис 19.4 pt1.PNG

    Рис 19.4 пт 2.PNG

    Рис 19.4 pt3.PNG
    Малюнок\(\PageIndex{1}\): Візуальний висновок коду 19.13. Час тече зліва направо, потім зверху вниз.

    Рис. 13.4.3). Така «природна зовнішність» результатів, отриманих за допомогою ПРО, походить від того, що ПРО засновані на поведінці дискретних індивідуальних агентів, які часто включають багато реалістичної невизначеності.

    Вправа\(\PageIndex{1}\)

    Проводити моделювання ПРО версії моделі Келера-Сегеля з k, Dc і f різноманітно систематично. Чи є вплив цих параметрів на формування шаблону подібним до ефектів у версії PDE тієї ж моделі (див. (14.3.40)?

    Вправа\(\PageIndex{2}\)

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

    Вправа\(\PageIndex{3}\)

    Збір сміття мурахами Це ще одна цікава ПРО з взаємодією агент-середовище, яка вперше була представлена Мітчелом Резніком у своїй знаменитій книзі «Черепахи, терміти і пробки» [89]. Припустимо, що є багато крихітних шматочків сміття, розкиданих у 2-D просторі, де багато мурах блукають випадково. Коли мураха приходить в місце, де є якесь сміття, він поводиться за такими дуже простими правилами:

    1. Якщо мураха тримає шматок сміття, він скидає шматок.

    2. Якщо мураха не тримає сміття, він забирає шматок сміття.

    Що буде результатом цих правил? Чи будуть сміттєві шматки все більше і більше розкидані через цих безмозких комах? Реалізуйте ПРО цієї моделі та проведіть моделювання, щоб з'ясувати, яка колективна поведінка виникає.

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