Обсуждение:Flocking (model)
- Railsback S.F., Grimm V. Agent-Based and Individual-Based Modeling: A Practical Introduction, Second Edition. Princeton University Press, 2019. 359 p.
Еще одна модель в разделе «Биология» библиотеки моделей NetLogo - это модель Flocking - образование стаи. Это версия NetLogo хорошо известного примера (например, Reynolds 1987) того, как сложная и реалистичная динамика может возникнуть из нескольких простых поведений агентов способами, которые невозможно полностью предсказать. Стаи рыб и стаи птиц можно рассматривать как пример того, как возникают стайные свойства в результате того, что отдельные животные двигаются в ответ на движения других животных. Стая или стадо могут выглядеть как единое целое, но они также могут распадаться и преобразовываться, а их форма постоянно меняется. (В сети есть увлекательные видео стай птиц, особенно скворцов.)
В модели Flocking индивидуумы демонстрируют одно общее поведение: регулируют направление своего движения в зависимости от местоположения и направления других ближайших особей (их «товарищей по стае», которыми являются все другие агенты-черепахи в радиусе, равном параметру зрения). Они принимают это решение, учитывая три цели: движение в том же направлении, что и их товарищи по стае («выравнивание»), движение к товарищам по стае («согласованность») и поддержание минимального расстояния от всех других особей («отдаление от других»). Параметры управляют относительной силой этих трех объективов, ограничивая максимальный угол, на который черепаха может повернуть, чтобы выровнять, связать и разделить. Параметр минимального разделения устанавливает расстояние, на котором черепахи пытаются отделиться друг от друга.
Вы быстро увидите, что на самом деле результаты модели Flocking сложны. Черепахи образуют стаи, которые постоянно меняют характеристики, и эти характеристики меняются по мере изменения параметров. Кроме того, кажется, что параметры взаимодействуют друг с другом (эффект одного параметра зависит от значения другого); например, посмотрите, что происходит, когда вы изменяете максимальный поворот когерентности, когда минимальное разделение сначала низкое, а затем высокое. (Чтобы ускорить модель, используйте комментарии в процедуре go, чтобы черепахи двигались вперед на одну единицу вместо пяти коротких ходов.)
Модель формирования стаи демонстрирует две общие (хотя и не универсальные) характеристики эмерджентной динамики. Во-первых, наиболее важные и интересные результаты модели кажутся качественными и их сложно описать числами. В то время как состояние модели простой рождаемости можно описать двумя числами (сколько красных и синих черепах живы), характеристики появляющихся стад явно меняются по мере того, как вы меняете параметры, но это непросто определить количественно. Во-вторых, требуется некоторое время, прежде чем появятся характеристики стада, как при запуске модели, так и при изменении значений параметров в середине цикла. У агентной модели часто бывает период «разогрева», в котором постепенно проявляется их динамика.
Стаеобразование - это увлекательный симулятор: мы задаем несколько простых правил агента и наблюдаем за возникающей сложной динамикой формирования стаи. Но когда мы занимаемся наукой, мы вместо этого пытаемся сделать обратное: мы идентифицируем некоторую сложную динамику, наблюдаемую в реальном мире, а затем пытаемся выяснить, какое поведение агентов системы объясняет эту возникающую динамику. Модели, подобные модели стаеобразования, на самом деле используются в серьезной науке
В частности, Huth и Wissel (1992) объединили ABM с исследованиями реальных рыб, чтобы ответить на вопрос: «Какие предположения о перемещении отдельных рыб объясняют возникающие характеристики реальных косяков рыб?» Мы можем использовать модель Flocking NetLogo для проведения упрощенных версий имитационных экспериментов Хута и Виссела.
Хут и Виссел начали с определения результатов моделирования, которые они могли бы сравнить с реальными косяками рыб. Это были статистические данные о таких свойствах, как, насколько близки особи к ближайшей другой рыбе и насколько сильно варьируется направление их движения. Мы можем легко получить аналогичные статистические результаты из модели Flocking, используя BehaviorSpace.