Flocking (model): различия между версиями
Patarakin (обсуждение | вклад) |
Patarakin (обсуждение | вклад) |
||
Строка 7: | Строка 7: | ||
см. понятие [[Flocking]] | см. понятие [[Flocking]] | ||
== ЧТО ЭТО ТАКОЕ? == | == Примеры == | ||
* https://eater.net/boids - пример модели | |||
== Модель в [[Snap!]] == | |||
== Модель в [[StarLogo Nova]] == | |||
== NetLogo == | |||
=== ЧТО ЭТО ТАКОЕ? === | |||
Эта модель - попытка имитировать стаю птиц. (Результирующее движение также напоминает косяки рыб.) Стаи, которые появляются в этой модели, никоим образом не создаются и не ведутся специальными птицами-лидерами. Скорее, каждая птица следует точно такому же набору правил, из которых появляются стаи. | Эта модель - попытка имитировать стаю птиц. (Результирующее движение также напоминает косяки рыб.) Стаи, которые появляются в этой модели, никоим образом не создаются и не ведутся специальными птицами-лидерами. Скорее, каждая птица следует точно такому же набору правил, из которых появляются стаи. | ||
== КАК ЭТО РАБОТАЕТ == | === КАК ЭТО РАБОТАЕТ === | ||
Птицы следуют трем правилам: «выравнивание», «разделение» и «сплоченность». | Птицы следуют трем правилам: «выравнивание», «разделение» и «сплоченность». | ||
Строка 23: | Строка 31: | ||
Эти три правила влияют только на направление птицы. Каждая птица всегда движется вперед с одинаковой постоянной скоростью. | Эти три правила влияют только на направление птицы. Каждая птица всегда движется вперед с одинаковой постоянной скоростью. | ||
== КАК ЭТО ИСПОЛЬЗОВАТЬ == | === КАК ЭТО ИСПОЛЬЗОВАТЬ === | ||
Сначала определите количество птиц, которое вы хотите использовать в симуляции, и установите ползунок POPULATION на это значение. Нажмите SETUP, чтобы создать птиц, и нажмите GO, чтобы они начали летать. | Сначала определите количество птиц, которое вы хотите использовать в симуляции, и установите ползунок POPULATION на это значение. Нажмите SETUP, чтобы создать птиц, и нажмите GO, чтобы они начали летать. | ||
Строка 33: | Строка 41: | ||
ВИДЕНИЕ - это расстояние, на котором каждая птица может видеть вокруг себя на 360 градусов. | ВИДЕНИЕ - это расстояние, на котором каждая птица может видеть вокруг себя на 360 градусов. | ||
== НА ЧТО НУЖНО ОБРАТИТЬ ВНИМАНИЕ == | === НА ЧТО НУЖНО ОБРАТИТЬ ВНИМАНИЕ === | ||
Центральное место в модели занимает наблюдение, что стаи формируются без лидера. | Центральное место в модели занимает наблюдение, что стаи формируются без лидера. | ||
Строка 45: | Строка 53: | ||
Иногда птица отрывается от своей стаи. Как это произошло? Вам может потребоваться замедлить модель или запустить ее шаг за шагом, чтобы наблюдать это явление. | Иногда птица отрывается от своей стаи. Как это произошло? Вам может потребоваться замедлить модель или запустить ее шаг за шагом, чтобы наблюдать это явление. | ||
== ЧТО ПОПРОБОВАТЬ == | === ЧТО ПОПРОБОВАТЬ === | ||
Поиграйте с ползунками, чтобы увидеть, сможете ли вы получить более плотные стаи, более рыхлые стаи, меньшее количество стай, большее количество стай, большее или меньшее разделение и объединение стай, более или менее перестановку птиц внутри стай и т. Д. | Поиграйте с ползунками, чтобы увидеть, сможете ли вы получить более плотные стаи, более рыхлые стаи, меньшее количество стай, большее количество стай, большее или меньшее разделение и объединение стай, более или менее перестановку птиц внутри стай и т. Д. | ||
Строка 53: | Строка 61: | ||
Будет ли работа модели в течение длительного времени производить статичную стаю? Или птицы никогда не сойдутся в неизменном строю? Помните, что в этой модели не используются случайные числа. | Будет ли работа модели в течение длительного времени производить статичную стаю? Или птицы никогда не сойдутся в неизменном строю? Помните, что в этой модели не используются случайные числа. | ||
== РАСШИРЕНИЕ МОДЕЛИ == | === РАСШИРЕНИЕ МОДЕЛИ === | ||
В настоящее время птицы могут «видеть» все вокруг себя. Что произойдет, если птицы могут видеть только перед собой? Для этого можно использовать примитив in-cone. | В настоящее время птицы могут «видеть» все вокруг себя. Что произойдет, если птицы могут видеть только перед собой? Для этого можно использовать примитив in-cone. | ||
Строка 67: | Строка 75: | ||
Есть ли другие интересные способы сделать птиц отличными друг от друга? Популяции могут быть случайными, или у вас могут быть разные «виды» птиц. | Есть ли другие интересные способы сделать птиц отличными друг от друга? Популяции могут быть случайными, или у вас могут быть разные «виды» птиц. | ||
== ФУНКЦИИ NETLOGO == | === ФУНКЦИИ NETLOGO === | ||
Обратите внимание на необходимость примитивной и специальной процедуры | Обратите внимание на необходимость примитивной и специальной процедуры '''subtract-headings''' для усреднения направления групп. Простое вычитание чисел или их усреднение не дает ожидаемых результатов из-за разрыва, когда направленя (heading) возвращаются к 0, когда они достигают 360. | ||
== ПОХОЖИЕ МОДЕЛИ == | === ПОХОЖИЕ МОДЕЛИ === | ||
* Мотыльки | * Мотыльки | ||
* Форимирование V-образных стай | * Форимирование V-образных стай |
Версия 13:30, 11 марта 2023
Описание модели | Модель самопроизвольного формирования стаи в результате действий множества участников (птиц, рыб, людей) |
---|---|
Область знаний | NetSci, Биология, Информатика, Управление |
Веб-страница - ссылка на модель | https://ccl.northwestern.edu/netlogo/models/Flocking |
Видео запись | |
Разработчики | |
Среды и средства, в которых реализована модель | Snap!, StarLogo Nova, NetLogo |
Диаграмма модели | |
Описание полей данных, которые модель порождает | |
Модель создана студентами? | {{{Student-created}}}«{{{Student-created}}}» — не булево значение (да/нет). |
ODD protocol | DREAM О чём эта модель? Как устроена модель (правила внутри) Как пользоваться моделью На что следует обратить внимание Что стоит попробовать Расширение возможностей модели Функции среды программирования, которые использованы в этой модели Похожие модели |
см. понятие Flocking
Примеры
- https://eater.net/boids - пример модели
Модель в Snap!
Модель в StarLogo Nova
NetLogo
ЧТО ЭТО ТАКОЕ?
Эта модель - попытка имитировать стаю птиц. (Результирующее движение также напоминает косяки рыб.) Стаи, которые появляются в этой модели, никоим образом не создаются и не ведутся специальными птицами-лидерами. Скорее, каждая птица следует точно такому же набору правил, из которых появляются стаи.
КАК ЭТО РАБОТАЕТ
Птицы следуют трем правилам: «выравнивание», «разделение» и «сплоченность».
- «Выравнивание» означает, что птица поворачивается так, чтобы двигаться в том же направлении, что и ближайшие птицы.
- «Сплоченность» означает, что птица будет двигаться к другим ближайшим птицам.
- «Разделение» означает, что птица поворачивается, чтобы избежать столкновения с другой птицей, которая летит слишком близко.
Когда две птицы находятся слишком близко, правило «разделения» отменяет действие двух других, которые деактивируются до тех пор, пока не будет достигнуто минимальное разделение.
Эти три правила влияют только на направление птицы. Каждая птица всегда движется вперед с одинаковой постоянной скоростью.
КАК ЭТО ИСПОЛЬЗОВАТЬ
Сначала определите количество птиц, которое вы хотите использовать в симуляции, и установите ползунок POPULATION на это значение. Нажмите SETUP, чтобы создать птиц, и нажмите GO, чтобы они начали летать.
Настройки по умолчанию для ползунков обеспечат достаточно хорошее поведение стаеобразования. Однако вы можете поиграть с ними, чтобы получить вариации:
Три ползунка TURN-ANGLE регулируют максимальный угол, на который птица может повернуть в соответствии с каждым правилом.
ВИДЕНИЕ - это расстояние, на котором каждая птица может видеть вокруг себя на 360 градусов.
НА ЧТО НУЖНО ОБРАТИТЬ ВНИМАНИЕ
Центральное место в модели занимает наблюдение, что стаи формируются без лидера.
В этой модели не используются случайные числа, за исключением исходного положения птиц. Плавное, реалистичное поведение птиц полностью определяется детерминированными правилами.
Также обратите внимание, что каждая стая динамична. Не гарантируется, что стая, однажды собравшееся, удержит всех своих членов. Как вы думаете, почему это так?
Через некоторое время после запуска модели все птицы будут иметь примерно одинаковый курс. Почему?
Иногда птица отрывается от своей стаи. Как это произошло? Вам может потребоваться замедлить модель или запустить ее шаг за шагом, чтобы наблюдать это явление.
ЧТО ПОПРОБОВАТЬ
Поиграйте с ползунками, чтобы увидеть, сможете ли вы получить более плотные стаи, более рыхлые стаи, меньшее количество стай, большее количество стай, большее или меньшее разделение и объединение стай, более или менее перестановку птиц внутри стай и т. Д.
Вы можете полностью отключить правило, установив ползунок угла этого правила на ноль. Достаточно ли одного правила, чтобы произвести хоть какое-то стайство? А как насчет двух правил? Чего не хватает в результирующем поведении, когда вы опускаете каждое правило?
Будет ли работа модели в течение длительного времени производить статичную стаю? Или птицы никогда не сойдутся в неизменном строю? Помните, что в этой модели не используются случайные числа.
РАСШИРЕНИЕ МОДЕЛИ
В настоящее время птицы могут «видеть» все вокруг себя. Что произойдет, если птицы могут видеть только перед собой? Для этого можно использовать примитив in-cone.
Есть ли способ получить V-образные стаи, как перелетные гуси?
Что произойдет, если вы поставите стены по краям мира, через которые птицы не могут перелететь и от которых они будут ?
Сможете ли вы заставить птиц облетать препятствия посреди мира?
Что бы произошло, если бы вы дали птицам разные скорости? Например, вы можете заставить птиц, которых нет рядом с другими птицами, летать быстрее, чтобы догнать стаю. Или вы можете имитировать уменьшение сопротивления воздуха, которое птицы испытывают при совместном полете, заставляя их летать быстрее, когда они находятся в группе.
Есть ли другие интересные способы сделать птиц отличными друг от друга? Популяции могут быть случайными, или у вас могут быть разные «виды» птиц.
ФУНКЦИИ NETLOGO
Обратите внимание на необходимость примитивной и специальной процедуры subtract-headings для усреднения направления групп. Простое вычитание чисел или их усреднение не дает ожидаемых результатов из-за разрыва, когда направленя (heading) возвращаются к 0, когда они достигают 360.
ПОХОЖИЕ МОДЕЛИ
- Мотыльки
- Форимирование V-образных стай