|
|
(не показано 6 промежуточных версий этого же участника) |
Строка 1: |
Строка 1: |
| {{UserMGPU | | {{UserMGPU |
| |Description=Легкообучаемая, любопытная, лучезарная
| | |Field_of_knowledge=Математика, Образование |
| |Field_of_knowledge=Педагогика, Управление | | |similar_concepts=качество образования |
| |Ancestors=Маргарет Тетчер, Надежда Константиновна Крупская,
| |
| |similar_concepts=управление образованием | |
| |Working_On=Что делают в МЭШ учителя иностранного языка
| |
| }} | | }} |
| [[Категория: UserMGPU]] | | [[Категория:UserMGPU]] |
| [[Категория:УСК-2023]] | | [[Категория:УСО-231м]] |
| {{Model
| |
| |Description=Модель самопроизвольного формирования стаи в результате действий множества участников (птиц, рыб, людей). Модель формирования стаи - это классическая агентно-ориентированная модель, основанная на оригинальных моделях Рейнольдса (1987). Модель демонстрирует, что стаи птиц могут возникать даже в отсутствии специальных птиц-вожаков, которые ведут всех за собой. Скорее, каждая птица следует общему же набору правил, и из выполнения всеми простых правил появляются стаи. Каждая птица следует трем правилам: «выравнивание», «разделение» и «сплоченность».
| |
| # «Выравнивание» означает, что птица поворачивается так, что движется в том же направлении, что и ближайшие птицы.
| |
| # «Разделение» означает, что птица поворачивается, чтобы не столкнуться с другой птицей.
| |
| # «Сплоченность» означает, что птица движется к другим ближайшим птицам.
| |
|
| |
|
| Правило «разделения» имеет приоритет над двумя другими, что означает, что если две птицы приближаются друг к другу, они всегда будут разделяться. В этом случае два других правила отменяются до тех пор, пока не будет достигнуто минимальное разделение. Эти три правила влияют только на направление птицы. Каждая птица всегда движется вперед с одинаковой постоянной скоростью.
| | <uml> |
| | @startuml |
|
| |
|
| Правила удивительно надежны и могут быть адаптированы к скоплению насекомых, стаям рыб и паттернам «V» стаи гусей (Stonedahl & Wilensky, 2010a).
| | actor "Instructor" as I |
| |Field_of_knowledge=NetSci, Биология, Информатика, Управление
| | actor "Learner 1" as L1 |
| |Website=https://ccl.northwestern.edu/netlogo/models/Flocking
| | actor "Learner 2" as L2 |
| |Environment=Snap!, StarLogo Nova, NetLogo, Scratch
| |
| }}
| |
| см. понятие [[Flocking]]
| |
| | |
| === О чём эта модель? ===
| |
| | |
| Эта модель - попытка имитировать стаю птиц. (Результирующее движение также напоминает косяки рыб.) Стаи, которые появляются в этой модели, никоим образом не создаются и не ведутся специальными птицами-лидерами. Скорее, каждая птица следует точно такому же набору правил, из которых появляются стаи.
| |
| | |
| === Как устроена модель (правила внутри) ===
| |
| | |
| Птицы следуют трем правилам: «выравнивание», «разделение» и «сплоченность».
| |
| | |
| # «Выравнивание» означает, что птица поворачивается так, чтобы двигаться в том же направлении, что и ближайшие птицы.
| |
| # «Сплоченность» означает, что птица будет двигаться к другим ближайшим птицам.
| |
| # «Разделение» означает, что птица поворачивается, чтобы избежать столкновения с другой птицей, которая летит слишком близко.
| |
| | |
| Когда две птицы находятся слишком близко, правило «разделения» отменяет действие двух других, которые деактивируются до тех пор, пока не будет достигнуто минимальное разделение.
| |
| | |
| Эти три правила влияют только на направление птицы. Каждая птица всегда движется вперед с одинаковой постоянной скоростью.
| |
| | |
| === Как пользоваться моделью ===
| |
| | |
| Сначала определите количество птиц, которое вы хотите использовать в симуляции, и установите ползунок '''POPULATION''' на это значение. Нажмите '''SETUP''', чтобы создать птиц, и нажмите '''GO''', чтобы они начали летать.
| |
| | |
| Настройки по умолчанию для ползунков обеспечат достаточно хорошее поведение стаеобразования. Однако вы можете поиграть с ними, чтобы получить вариации поведения
| |
| | |
| Ползунок '''TURN-ANGLE''' регулирует максимальный угол, на который птица может повернуть в соответствии с каждым правилом.
| |
| | |
| * '''VISION''' - это расстояние, на котором каждая птица может видеть вокруг себя на 360 градусов.
| |
| | |
| === На что следует обратить внимание ===
| |
| | |
| * Центральное место в модели занимает наблюдение, что стаи формируются без лидера.
| |
| * В этой модели не используются случайные числа, за исключением исходного положения птиц. Плавное, реалистичное поведение птиц полностью определяется детерминированными правилами.
| |
| ** Также обратите внимание, что каждая стая динамична. Не гарантируется, что стая, однажды собравшееся, удержит всех своих членов. Как вы думаете, почему это так?
| |
| * Через некоторое время после запуска модели все птицы будут иметь примерно одинаковый курс. Почему?
| |
| * Иногда птица отрывается от своей стаи. Как это произошло? Вам может потребоваться замедлить модель или запустить ее шаг за шагом, чтобы наблюдать это явление.
| |
| | |
| === Что стоит попробовать ===
| |
| * Поиграйте с ползунками, чтобы увидеть, сможете ли вы получить более плотные стаи, более рыхлые стаи, меньшее количество стай, большее количество стай, большее или меньшее разделение и объединение стай, более или менее перестановку птиц внутри стай и т. Д.
| |
| * Вы можете полностью отключить правило, установив ползунок этого правила на ноль. Достаточно ли одного правила, чтобы произвести хоть какое-то стайство? А как насчет двух правил? Чего не хватает в результирующем поведении, когда вы опускаете каждое правило?
| |
| * Будет ли работа модели в течение длительного времени производить статичную стаю? Или птицы никогда не сойдутся в неизменном строю? Помните, что в этой модели не используются случайные числа.
| |
| | |
| === Расширение возможностей модели ===
| |
| * В настоящее время птицы могут «видеть» все вокруг себя. Что произойдет, если птицы могут видеть только перед собой? Для этого можно использовать примитив in-cone.
| |
| * Есть ли способ получить V-образные стаи, как перелетные гуси?
| |
| * Что произойдет, если вы поставите стены по краям мира, через которые птицы не могут перелететь и от которых они будут ?
| |
| * Сможете ли вы заставить птиц облетать препятствия посреди мира?
| |
| * Что бы произошло, если бы вы дали птицам разные скорости? Например, вы можете заставить птиц, которых нет рядом с другими птицами, летать быстрее, чтобы догнать стаю. Или вы можете имитировать уменьшение сопротивления воздуха, которое птицы испытывают при совместном полете, заставляя их летать быстрее, когда они находятся в группе.
| |
| | |
| Есть другие интересные способы сделать птиц отличными друг от друга? Популяции могут быть случайными, или у вас могут быть разные «виды» птиц.
| |
| | |
| === Функции среды программирования, которые использованы в этой модели ===
| |
| | |
| Обратите внимание на необходимость специальной процедуры '''subtract-headings''' для усреднения направления групп. Простое вычитание чисел или их усреднение не дает ожидаемых результатов из-за разрыва, когда heading возвращаются к 0, когда они достигают 360.
| |
| | |
| * turn-at-most (subtract-headings new-heading heading) max-turn
| |
| | |
| ; subtract-headings heading1 heading2
| |
| : Computes the difference between the given headings, that is, the number of degrees in the smallest angle by which heading2 could be rotated to produce heading1. A positive answer means a clockwise rotation, a negative answer counterclockwise. The result is always in the range -180 to 180, but is never exactly -180.
| |
|
| |
|
| === Похожие модели ===
| | entity Learning_Outputs as Outputs |
|
| |
|
| * Мотыльки
| | collections Books as Books |
| * Форимирование V-образных стай
| | database Datasets as Data |
| | collections Models as Models |
|
| |
|
| | L2 -> I : Ask Question |
| | I --> L2 : Provide Clarification |
|
| |
|
| | I --> L1 : Provide Feedback |
| | I --> L2 : Provide Feedback |
|
| |
|
| == Примеры ==
| | L1 -> Books : Access Relevant Literature |
| * https://eater.net/boids - пример модели
| | L2 -> Books : Access Relevant Literature |
|
| |
|
| === Модель в [[Scratch]] ===
| | L1 -> Data : Query Dataset |
| * https://scratch.mit.edu/projects/522014232/
| | L2 -> Data : Query Dataset |
| <scratch project="522014232" />
| |
|
| |
|
| === Модель в [[Snap!]] ===
| | L1 -> Models : Utilize Models |
| | L2 -> Models : Utilize Models |
|
| |
|
| * https://snap.berkeley.edu/snap/snap.html#present:Username=patarakin&ProjectName=Flocking_Snap
| | Books --> Outputs : Contribute to Understanding |
| | Data --> Outputs : Inform Analysis |
| | Models --> Outputs : Facilitate Application |
|
| |
|
| <snap project="Flocking_Snap" user="patarakin" />
| | Outputs --> L1 : Provide Learning Outcomes |
| | Outputs --> L2 : Provide Learning Outcomes |
|
| |
|
| ; Пример того, как можно [[Обратиться_к_объектам_по_их_свойствам]]
| | @enduml |
| #
| | </uml> |
| [[Файл:Flocking Snap OtherClones.png]]
| |
| | |
| === Модель в [[StarLogo Nova]] ===
| |
| * https://www.slnova.org/jljohnson19/projects/81854/
| |
| * https://www.slnova.org/biograph/projects/785938
| |
| ** https://www.slnova.org/biograph/projects/785938/ процедуры
| |
| | |
| | |
| | |
| {{#widget:iframe
| |
| |url=https://www.slnova.org/biograph/projects/785938/
| |
| |width=1200
| |
| |height=600
| |
| }}
| |
| | |
| === NetLogo ===
| |
| | |
| {{#widget:iframe
| |
| |url=https://netlogoweb.org/launch#https://netlogoweb.org/assets/modelslib/Sample%20Models/Biology/Flocking.nlogo
| |
| |width=800
| |
| |height=600
| |
| }}
| |