Обсуждение:Flocking(model): различия между версиями
| Строка 4: | Строка 4: | ||
= Эксперимент 1 = | = Эксперимент 1 = | ||
== Введение == | === Введение === | ||
'''Цель эксперимента:''' | '''Цель эксперимента:''' | ||
Исследовать, как соотношение между силой сплоченности (max-cohere-turn) и силой разделения (max-separate-turn) влияет на характеристики самоорганизации стаи: | Исследовать, как соотношение между силой сплоченности (max-cohere-turn) и силой разделения (max-separate-turn) влияет на характеристики самоорганизации стаи: | ||
| Строка 18: | Строка 18: | ||
правило «разделение» (max-separate-turn) является стабилизирующим фактором, предотвращающим столкновения и удерживающим агентов на дистанции друг от друга. Правило «сплоченность» (max-cohere-turn) — объединяющим фактором, притягивающим агентов в одну группу.Если сила сплоченности значительно превышает силу разделения, агенты сбиваются в плотную, но потенциально нестабильную кучу с частыми «толчками». Если разделение слишком сильно, стая не сможет сформироваться и распадется на одиночек или пары. | правило «разделение» (max-separate-turn) является стабилизирующим фактором, предотвращающим столкновения и удерживающим агентов на дистанции друг от друга. Правило «сплоченность» (max-cohere-turn) — объединяющим фактором, притягивающим агентов в одну группу.Если сила сплоченности значительно превышает силу разделения, агенты сбиваются в плотную, но потенциально нестабильную кучу с частыми «толчками». Если разделение слишком сильно, стая не сможет сформироваться и распадется на одиночек или пары. | ||
== Работа с NetLogo == | === Работа с NetLogo === | ||
Для получения датасета модель Flocking была загружена в NetLogo Desktop. Фиксируем параметры: population = 300, vision = 5, max-align-turn = 5, minimum-separation = 1 | Для получения датасета модель Flocking была загружена в NetLogo Desktop. Фиксируем параметры: population = 300, vision = 5, max-align-turn = 5, minimum-separation = 1 | ||
| Строка 34: | Строка 34: | ||
https://docs.google.com/spreadsheets/d/1lHd-Iij0O82hH8axMy864D0EGoGvmb0lQ6HWAHE8NDk/edit?usp=sharing | https://docs.google.com/spreadsheets/d/1lHd-Iij0O82hH8axMy864D0EGoGvmb0lQ6HWAHE8NDk/edit?usp=sharing | ||
== Визуализация == | === Визуализация === | ||
[[Файл:Cd1.png|400px]] | [[Файл:Cd1.png|400px]] | ||
На этом графике мы видим, что, зачастую, когда сплоченность равна или выше разделению птиц, уровень упорядоченности в стаях растет. Более упорядоченные стаи выделяются яркими красными точками. | На этом графике мы видим, что, зачастую, когда сплоченность равна или выше разделению птиц, уровень упорядоченности в стаях растет. Более упорядоченные стаи выделяются яркими красными точками. | ||
| Строка 41: | Строка 41: | ||
[[Файл:Cd2.png|400px]] | [[Файл:Cd2.png|400px]] | ||
На этом же графике заметна следующая последовательность: чем выше уровень упорядоченности, тем меньше стай. | На этом же графике заметна следующая последовательность: чем выше уровень упорядоченности, тем меньше стай. | ||
== Вывод == | === Вывод === | ||
Гипотеза в целом подтверждается данными графика: | Гипотеза в целом подтверждается данными графика: | ||
Правило сплоченности работает как объединяющий фактор, но только внутри крупных групп.Правило разделения работает как стабилизирующий фактор, особенно в условиях множества мелких групп. | Правило сплоченности работает как объединяющий фактор, но только внутри крупных групп.Правило разделения работает как стабилизирующий фактор, особенно в условиях множества мелких групп. | ||
Версия от 08:33, 27 декабря 2025
Описание модели
Модель самопроизвольного формирования стаи — агентно-ориентированная модель по Рейнольдсу (1987), показывающая, как сложные коллективные паттерны возникают без вожаков: каждый агент следует трём простым правилам — выравниванию (движение в направлении соседей), разделению (избегание столкновений) и сплочённости (стремление к центру группы). Правило разделения имеет приоритет, отменяя остальные при риске столкновения. Направление меняется по этим правилам, скорость остаётся постоянной. Модель применима к птицам, рыбам, насекомым и другим формам группового поведения.
Эксперимент 1
Введение
Цель эксперимента: Исследовать, как соотношение между силой сплоченности (max-cohere-turn) и силой разделения (max-separate-turn) влияет на характеристики самоорганизации стаи:
Упорядоченность (order) — насколько синхронно и согласованно движутся все агенты в одном направлении (0 = хаос, максимально разнонаправленное движение; 1 = полная согласованность, все летят в одну сторону);
Количество стай (num-flocks) — число отдельных, не связанных и не взаимодействующих групп агентов (чем больше отдельных подгрупп, тем ниже глобальная организация);
Мы хотим понять: при каком соотношении сил сплоченности и разделения система переходит от множества мелких, разрозненных подгрупп к единой глобальной, хорошо организованной стае?
Гипотеза: правило «разделение» (max-separate-turn) является стабилизирующим фактором, предотвращающим столкновения и удерживающим агентов на дистанции друг от друга. Правило «сплоченность» (max-cohere-turn) — объединяющим фактором, притягивающим агентов в одну группу.Если сила сплоченности значительно превышает силу разделения, агенты сбиваются в плотную, но потенциально нестабильную кучу с частыми «толчками». Если разделение слишком сильно, стая не сможет сформироваться и распадется на одиночек или пары.
Работа с NetLogo
Для получения датасета модель Flocking была загружена в NetLogo Desktop. Фиксируем параметры: population = 300, vision = 5, max-align-turn = 5, minimum-separation = 1
Создаем матрицу экспериментов: будем менять два параметра.
* max-cohere-turn: возьмем значения 0, 5, 10, 15, 20 * max-separate-turn: возьмем значения 0, 5, 10, 15, 20
Каждый прогон длился 400 тиков. Для каждого значения max-align-turn выполнено 5 независимых запусков (с разным случайным начальным положением птиц). Данные усреднены по повторам.
https://docs.google.com/spreadsheets/d/1lHd-Iij0O82hH8axMy864D0EGoGvmb0lQ6HWAHE8NDk/edit?usp=sharing
Визуализация
На этом графике мы видим, что, зачастую, когда сплоченность равна или выше разделению птиц, уровень упорядоченности в стаях растет. Более упорядоченные стаи выделяются яркими красными точками.
На этом же графике заметна следующая последовательность: чем выше уровень упорядоченности, тем меньше стай.
Вывод
Гипотеза в целом подтверждается данными графика: Правило сплоченности работает как объединяющий фактор, но только внутри крупных групп.Правило разделения работает как стабилизирующий фактор, особенно в условиях множества мелких групп. Также наблюдается обратная зависимость между эффективностью сплоченности и разделения в зависимости от количества групп:
Много групп → высокое разделение, низкая сплоченность.
Мало групп → высокая сплоченность, низкое разделение.
Эксперимент 2: Влияние дальности обзора (vision) на размер и количество стай
Гипотеза
Дальность обзора (vision) является ключевым фактором, определяющим масштаб самоорганизации. При малом vision агенты взаимодействуют только с ближайшими соседями, что приводит к формированию множества мелких, локально упорядоченных стай. С увеличением vision информация о направлении и положении соседей распространяется дальше, что позволяет сформироваться одной крупной глобальной стае.
https://docs.google.com/spreadsheets/d/11llgZhWIFs9NyiqzLolcKrxHxnisIoQLOWT6sUU4OZI/edit?usp=sharing
Цель эксперимента: Исследовать, как дальность обзора (vision) влияет на макроскопические характеристики самоорганизации:
- Упорядоченность (order) — насколько синхронно движутся все агенты (0 = хаос, 1 = полная согласованность);
- Количество стай (num-swarms) — число отдельных, не связанных групп;
- Размер наибольшей стаи (max-swarm-size) — сколько агентов в самой крупной группе.
Мы хотим понять: при каких значениях vision система переходит от множества мелких стай к единой глобальной стае
Настройки NetLogo
Для получения датасета модель Flocking была загружена в NetLogo Desktop. Были добавлены три глобальные переменные (order, num-swarms, max-swarm-size) для автоматического измерения ключевых метрик.
Эксперимент проводился при пяти значениях vision: 2, 3, 5, 7, 10, при фиксированных параметрах: population = 300, minimum-separation = 1, max-align-turn = 5, max-cohere-turn = 3, max-separate-turn = 1.5.
Каждый прогон длился 300 тиков (времени, достаточного для стабилизации системы). Для каждого значения vision выполнено 30 независимых запусков. Данные усреднены по повторам.
Таблица усредненных значений
Анализ результатов (Шаг 1–5)
На каждом шаге приведены усреднённые по 30 запускам значения метрик на 300-м тике.
- Ось X: значение параметра vision (2 → 10).
- Ось Y (слева): средняя упорядоченность (order).
- Ось Y (справа): среднее количество стай (num-swarms).
- Синие столбцы: размер наибольшей стаи (max-swarm-size).
Шаг 1 эксперимента (vision = 2)
Упорядоченность (order): средняя — 0.610
Количество стай (num-swarms): 86.167
Размер наибольшей стаи: 20.533 птиц
Вывод для Шага 1: при очень ограниченном радиусе обзора птицы взаимодействуют только с ближайшими соседями. Система фрагментирована: образуется множество мелких стай (в среднем по ~20 птиц). Глобальная координация слабая — каждая стая летит в своём направлении, поэтому order находится на среднем уровне.
Шаг 2 эксперимента (vision = 3)
Упорядоченность (order): высокая — 0.905
Количество стай (num-swarms): 17.367
Размер наибольшей стаи: 97.800 птицы
Вывод для Шага 2: увеличение vision до 3 расширяет зону взаимодействия. Стаи становятся крупнее, их количество снижается. Наибольшая стая теперь содержит ~98 птиц и демонстрирует устойчивое направление. Упорядоченность растёт, система начинает переходить к глобальной координации.
Шаг 3 эксперимента (vision = 5)
Упорядоченность (order): очень высокая — 0.954
Количество стай (num-swarms): 3.367
Размер наибольшей стаи: 221.667 птицы
Вывод для Шага 3: при vision = 5 система проходит фазовый переход. Формируется одна доминирующая стая, включающая ~74% популяции. Остальные птицы либо летят поодиночке, либо в мелких группах. Глобальная координация становится возможной — order резко возрастает.
Шаг 4 эксперимента (vision = 7)
Упорядоченность (order): очень высокая — 0.958
Количество стай (num-swarms): 3.267
Размер наибольшей стаи: 220.867 птицы
Вывод для Шага 4: при vision = 7 система остаётся в состоянии глобальной координации, но не достигает полного слияния. Формируется одна доминирующая стая (~74% популяции), а также несколько мелких групп. Движение синхронизировано, но не идеально (order ≈ 0.96).
Шаг 5 эксперимента (vision = 10)
Упорядоченность (order): почти идеальная — 0.977
Количество стай (num-swarms): 1.067
Размер наибольшей стаи: 291.300 птицы
Вывод для Шага 5: при максимальном vision = 10 система достигает состояния глобального порядка. Формируется единая стая из почти всех агентов (~291 из 300). Отклонения минимальны, хаотичное поведение отсутствует. vision = 10 эквивалентен «глобальному взаимодействию» — каждый агент «видит» почти всю популяцию.
Главный вывод
Гипотеза полностью подтверждена. Дальность обзора (vision) напрямую определяет масштаб самоорганизации в системе:
При низком vision (2) система остаётся локальной: множество мелких стай, средний order. При среднем vision (3–5) происходит фазовый переход к глобальной координации. При высоком vision (7–10) система достигает единого, устойчивого порядка. Это демонстрирует, что vision — это параметр глобальной связности. Он определяет, насколько далеко распространяется «социальная информация» о направлении движения. Без достаточного радиуса обзора глобальный порядок невозможен.
Заключение
Модель Flocking демонстрирует, что сложное, координированное поведение может возникать без лидера и без централизованного управления — достаточно трёх простых правил и достаточной дальности взаимодействия. Параметр vision выступает как «кнопка глобальности»: при его увеличении система переходит от хаоса к порядку через критический порог (vision ≈ 3–5). Это прекрасная иллюстрация эмерджентности — появления глобальных свойств из локальных взаимодействий.
Эксперимент 3: Роль правила "Выравнивание" (align) как фактора синхронизации
Гипотеза
Правило «выравнивание» не является строго необходимым для формирования скопления (кучи агентов), но оно критически важно для формирования именно стаи — группы, движущейся согласованно в одном направлении. Без выравнивания или при его слабой силе сформируется «роение» — плотное, но беспорядочно мечущееся скопление.
Цель эксперимента: Оценить вклад правила align в общий показатель упорядоченности order и в стабильность направления движения стаи.
Настройки NetLogo
Для получения датасета модель Flocking была загружена в NetLogo Desktop. Фиксируем параметры: vision=5, cohere=3, separate=1.5, min-sep=1, population=300.
Эксперимент проводился при шести значениях max-align-turn: 0, 1, 2, 5, 10, 20
Каждый прогон длился 400 тиков. Для каждого значения max-align-turn выполнено 5 независимых запусков (с разным случайным начальным положением птиц). Данные усреднены по повторам.
Таблица усредненных значений
Анализ результатов (Шаг 1–6)
На каждом шаге приведены усреднённые по 5 запускам значения метрик на 400-м тике.
Шаг 1 эксперимента (align = 0)
Средний order: 0.06 (очень низкий)
Средняя амплитуда: 0.03 (минимальная)
Вывод для Шага 1: Без правила выравнивания агенты не могут синхронизировать направление движения. Они образуют плотное скопление («рой»), которое дёргается на месте или медленно дрейфует без общего вектора. Низкая амплитуда означает, что система не колеблется между порядком и хаосом — она просто стабильно хаотична.
Шаг 2 эксперимента (align = 1)
Средний order: 0.89 (высокий, но не максимальный)
Средняя амплитуда: 0.15 (наибольшая среди всех значений)
Вывод для Шага 2: Появилось слабое выравнивание — агенты начинают двигаться согласованно, но система нестабильна. Стая часто меняет направление, «рыскает», что видно по высокой амплитуде. Это пограничный режим между роением и стаей.
Шаг 3 эксперимента (align = 2)
Средний order: 0.94 (близко к максимуму)
Средняя амплитуда: 0.04 (резкое снижение)
Вывод для Шага 3: Достаточная сила выравнивания для быстрой синхронизации и стабильности. Стая уверенно летит, редко меняет направление. Амплитуда снизилась в 4 раза по сравнению с align=1.
Шаг 4 эксперимента (align = 5)
Средний order: 0.97 (почти идеальный порядок)
Средняя амплитуда: 0.02 (очень низкая)
Вывод для Шага 4: Оптимальный режим. Стая быстро синхронизируется и движется плавно, без резких манёвров. Высокий order и минимальные колебания — идеальный баланс между реактивностью и устойчивостью.
Шаг 5 эксперимента (align = 10)
Средний order: 0.98 (максимальный)
Средняя амплитуда: 0.01 (самая низкая)
Вывод для Шага 5: Сильное выравнивание приводит к сверхстабильности. Стая становится почти «жесткой» — агенты мгновенно реагируют на изменения направления, но из-за этого система теряет гибкость. Тем не менее, в данных это проявляется как максимальный порядок и минимальные колебания.
Шаг 6 эксперимента (align = 20)
Средний order: 0.975 (остается на максимуме)
Средняя амплитуда: 0.02
Вывод для Шага 6: При экстремально сильном выравнивании стая демонстрирует сверхбыструю синхронизацию — любой лидер или флуктуация направления мгновенно передаётся всей группе. Движение стаи становится более «резким» — плавные дуги заменяются на более угловатые траектории, но общее направление сохраняется. Гипотеза о гиперреактивности подтверждается на уровне механики движения.
Заключение
Гипотеза подтвердилась. Правило «выравнивание» — это «двигатель» и «руль» стаи. Оно преобразует статичное или хаотичное скопление (`cohere`+`separate`) в целенаправленно движущееся образование. Его сила должна быть достаточной для быстрой синхронизации, но не чрезмерной, чтобы не вызывать резких нервных маневров всей группы.


