ИДЗ / Движение стай (Boids) / 2502_БулгаковАА
.pdfМИНОБРНАУКИ РОССИИ САНКТ–ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ ЭЛЕКТРОТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
«ЛЭТИ» ИМ. В.И. УЛЬЯНОВА (ЛЕНИНА)
Кафедра биотехнические системы и технологии
КУРСОВАЯ РАБОТА по дисциплине «Моделирование биологических процессов и систем»
Тема: АЛГОРИТМ ДВИЖЕНИЯ СТАЙ (BOIDS)
Студент гр. 2502 |
|
Булгаков А.А. |
|
Преподаватель |
|
Палогианнидис Д. |
|
|
|||
|
|
|
|
Санкт–Петербург
2025
ЗАДАНИЕ
НА КУРСОВУЮ РАБОТУ
Студент Булгаков А.А.
Группа 2502
Тема работы: Алгоритм движения стай (boids)
Исходные данные:
Необходимо изучить алгоритм движения стай (boids), рассмотреть его плюсы и минусы по сравнению с похожими технологиями, рассмотреть применение данного алгоритма в медицине
Содержание пояснительной записки:
«Содержание», «Введение», «Теоретическая основа», «Разработка системы или модели», «Результаты», «Заключение», «Список использованных источников»
Предполагаемый объем пояснительной записки:
Не менее 20 страниц.
Дата выдачи задания: 06.09.2025 |
|
Дата сдачи реферата: 08.12.2025 |
|
Дата защиты реферата: 15.12.2025 |
|
Студент |
Булгаков А.А. |
Преподаватель |
Палогианнидис Д. |
2
АННОТАЦИЯ
В работе исследован алгоритм моделирования стайного поведения Boids.
Разработана программа на MATLAB, визуализирующая движение группы агентов по правилам разделения, выравнивания и сцепления. Проведены эксперименты, показавшие влияние параметров (скорость, веса правил, размер группы) на формирование коллективных паттернов. Установлено, что баланс параметров критически важен для возникновения устойчивого скоординированного движения. Полученная модель служит основой для изучения принципов роевого интеллекта
SUMMARY
The paper investigates an algorithm for modeling the flock behavior of Boids. A MATLAB program has been developed that visualizes the movement of a group of agents according to the rules of separation, alignment and coupling. Experiments have been conducted that have shown the influence of parameters (speed, rule weights, group size) on the formation of collective patterns. It is established that the balance of parameters is critically important for the emergence of a stable coordinated movement. The resulting model serves as a basis for studying the principles of swarm intelligence.
3
|
СОДЕРЖАНИЕ |
|
|
Введение |
5 |
1 |
Теоретическая основа |
6 |
2 |
Разработка системы или модели |
12 |
3 |
Результаты |
16 |
|
Заключение |
19 |
|
Список использованных источников |
21 |
|
Приложение. Листинг программы |
22 |
4
Введение
Коллективное поведение, наблюдаемое в стаях птиц, косяках рыб и роях насекомых, представляет собой яркий пример самоорганизации в живой природе. Это явление возникает благодаря децентрализованному взаимодействию множества особей, каждая из которых следует простым локальным правилам, не обладая информацией о глобальной цели. Результатом такого взаимодействия является эмерджентность – возникновение сложных,
скоординированных паттернов поведения на уровне группы, которые невозможно предсказать, исходя лишь из свойств отдельных агентов. Изучение и моделирование подобных систем имеет не только теоретическое, но и большое практическое значение, находя применение в компьютерной графике,
робототехнике, управлении беспилотными системами, а также в биомедицинских исследованиях, таких как моделирование коллективной миграции клеток.
Актуальность данной работы обусловлена широким применением алгоритмов роевого интеллекта в различных областях, включая создание реалистичной анимации в кино и видеоиграх, оптимизацию сложных систем, а
также биомедицинское моделирование. Понимание принципов работы Boids и
умение их реализовать является важным навыком для специалистов в области компьютерного моделирования, биоинформатики и системного анализа.
Объектом исследования является алгоритм моделирования стайного поведения Boids. Предмет исследования – принципы работы, параметры,
возможности и ограничения алгоритма Boids, а также его применение для решения практических задач.
Цель работы – изучить алгоритм Boids, реализовать его модель на языке
MATLAB и исследовать влияние параметров алгоритма на коллективное поведение агентов.
5
Глава 1: Теоретическая основа
Коллективное поведение, наблюдаемое в стаях птиц, косяках рыб и роях насекомых, представляет собой пример самоорганизации в живой природе. Это явление возникает в децентрализованных системах, состоящих из множества взаимодействующих особей, каждый из которых следует набору локальных правил, не имея представления об общей картине или глобальной цели.
Ключевым свойством таких систем является эмерджентность – появление новых качеств, паттернов или функций на уровне целой группы, которые невозможно предсказать, изучая свойства отдельного объекта.
Парадокс коллективного поведения заключается в его простоте на микроуровне и сложности на макроуровне. Отдельная птица в стае не обладает
«планом построения клина» и не знает конечного пункта миграции всей стаи. Ее поведенческий репертуар может быть сведен к трем базовым императивам:
избегай столкновений с ближайшими соседями, двигайся в том же направлении,
что и окружающие особи, и старайся не отдаляться от локальной группы. Ни одно из этих правил в отдельности не предписывает формирование упорядоченной, динамически меняющейся стаи. Однако одновременное и итеративное выполнение этих правил всеми объектами системы приводит к возникновению сложного, слаженного и адаптивного глобального поведения:
стая маневрирует как единое целое, эффективно реагируя на внешние возмущения, такие как появление хищника.
Принципы самоорганизации и эмерджентности, столь наглядно демонстрируемые поведением стай животных, в полной мере проявляются и в микромире живых систем. Яркий пример – коллективная миграция клеток – скоординированное направленное движение группы клеток, участвующее как в нормальной физиологии, так и в патологических процессах.
До 1986 года моделирование коллективного поведения было либо чисто описательным, либо крайне централизованным. Учёные и аниматоры
6
сталкивались с фундаментальной проблемой: как формализовать и воспроизвести бесконечно вариативное, но при этом узнаваемое поведение стаи?
Статистические и гидродинамические модели рассматривали стаю как аналог сплошной среды – «жидкую» или «газообразную» массу. Её поведение описывали уравнениями, аналогичными уравнениям гидродинамики или теориям фазовых переходов. Фокус смещался с индивидуального поведения на глобальные параметры: плотность, среднюю скорость, корреляцию направлений.
Такой подход, хоть и позволял работать с очень большими ансамблями (сотни тысяч особей) на абстрактном уровне, находить макроскопические закономерности, однако полностью игнорировали агентность и локальные взаимодействия – ключевые, как мы теперь знаем, источники эмерджентности.
Модели были непригодны для анимации или изучения механизмов, лежащих в основе поведения. Они описывали что, но не объясняли как.
Другой подход – централизованные и предзапрограммированные траектории изначально использовались в компьютерной графике. Стаю либо анимировали вручную как единый жесткий объект, либо задавали каждой особи
(или всей группе) точную траекторию движения. Это давало полный контроль аниматора над результатом, но было трудоёмко и требовало больших вычислительных ресурсов. Результат выглядел механически: стая двигалась как поезд по рельсам, не реагируя на изменения среды. При столкновении с препятствием или потере нескольких членов вся иллюзия рушилась. Не было ни малейшей стохастичности или адаптивности.
Обоим подходам чего–то не хватало: теоретические модели были слишком абстрактны для практического применения, а практические методы были слишком примитивны и не соответствовали реальности. [1]
В фильме Тима Бёртона «Бэтмен возвращается» была сцена, в которой на жителей Готэма напала стая летучих мышей, а также сцена с марширующими
пингвинами. Их воплотили на экране при помощи компьютерной графики, а вот
7
за естественность стайного поведения отвечал алгоритм, разработанный экспертом по компьютерной графике Крейгом Рейнольдсом – он известен также тем, что приложил руку к фильму «Трон». Алгоритм этот называется Boids.
Крейг Рейнольдс не был самым первым человеком, который попытался создать симуляцию поведения групп существ. Но именно его алгоритм Boids
сейчас считается основой, на которой многие разработчики игр создают симуляции стайного поведения в своих проектах. [1–2]
Момент появления Boids был определён двумя факторами: ростом вычислительной мощности персональных компьютеров (достаточной для моделирования десятков агентов в реальном времени) и запросом индустрии развлечений на реалистичную анимацию природы.
Крейг Рейнольдс сделал фундаментальную вещь: он перенёс точку приложения модели с целой стаи на отдельную особь. Его гениальная догадка заключалась в том, что сложное поведение стаи – это не свойство стаи, а
эмерджентное свойство системы простых агентов. Boids предложил конкретный,
вычислительно эффективный и, что самое главное, визуально убедительный механизм движения стай объектов.
Рисунок 1 – Птицы из игры Half–Life, движущиеся по алгоритму Boids
8
Boid обладал рядом преимуществ по сравнению с предшественниками:
● Он напрямую моделировал предполагаемый биологический механизм
(локальные правила), а не его следствие.
●Алгоритм был прост в реализации и давал мгновенный, поразительно реалистичный визуальный результат.
●Добавление новых правил (избегание препятствий, следование к цели)
было интуитивно понятным. Система автоматически становилась устойчивой к
«потере» агентов.
● Отсутствие ведущего делало модель биологически достоверной и вычислительно масштабируемой.
Рисунок 2 – Наглядное выполнение правила разделения
Однако были и недостатки:
●Три правила – это грубое упрощение. Реальные животные используют более сложную сенсорную информацию (зрение, слух, поток жидкости), имеют память, различные поведенческие состояния (голод, страх).
●Веса правил (сила разделения, радиус сплочения) подбираются эмпирически для красивой картинки, а не выводятся из биологических данных.
9
● Boids не решает задачу оптимального перемещения стаи (минимум энергии, максимум скорости). Стая в Boids движется потому, что движется, а не для достижения глобальной цели.
● Определение соседей для каждого бойда требует проверки расстояний до всех остальных агентов (O(N²)), что ограничивает размер стаи.
Успех Boids породил целое направление – агентное моделирование и роевой интеллект. Последующие модели стремились преодолеть его ограничения. Введение явных физических сил (вязкое трение, инерция), более сложных зон восприятия (конус обзора спереди, как у реальной рыбы), шума в сенсорах и исполнительных механизмах, например в моделях, где агент
«предсказывает» положение соседа в следующий момент времени на основе его скорости. Гораздо точнее воспроизводят количественные характеристики реальных стай (распределение расстояний, корреляция скоростей). Однако, резко возрастает сложность модели и её вычислительная стоимость. Теряется элегантная простота Boids.
Гипотеза, что поведение в стае – это способ минимизировать индивидуальные энергозатраты (аэродинамика в клине летящих птиц) или максимизировать выгоду (коллективная защита от хищников). Поведение агента моделируется как поиск оптимальной позиции. Это даёт функциональное объяснение, зачем нужна стая, связывая форму с функцией, но часто требует глобальной информации или сложных вычислений «в голове» у агента, что биологически необоснованно.
Модели на основе нейронных сетей, обученных на движениях реальных стай дают более точный с точки зрения биологии результат, но сами становятся
«чёрным ящиком» из–за чего их невозможно полноценно описать.
В настоящее время часто используется технически более продвинутый
«роевой интеллект», который является более продвинутой моделью Boids. Он
10
