Футбольное поле с множеством мячиков
Описание модели | Модель сбора данных с поля, на котором множество игроков взаимодействуют со множеством мячиков. Модель используется для
|
---|---|
Область знаний | NetSci, Информатика, Социология |
Веб-страница - ссылка на модель | https://www.slnova.org/patarakin/projects/694467/ |
Видео запись | |
Разработчики | Патаракин |
Среды и средства, в которых реализована модель | StarLogo Nova |
Диаграмма модели | |
Описание полей данных, которые модель порождает | |
Модель создана студентами? | Нет |
ODD protocol
Пользователь может управлять числом игроков на поле и расстоянием, на котором игроки видят мяч – виджет Vision. На экране мы видим зелёное поле, где взаимодействуют игроки, и таблицу, в которой записываются действия – ID игрока и ID мяча, по которому он ударяет.
В данном примере мы рассмотрим историю, когда объект мячик медленно катится по полю и реагирует на присутствие игроков, которые находятся поблизости. Внешне это будет выглядеть так, как будто игроки бегут по мячу и наносят по нему удар. А в ответ на этот удар мячик отлетает в сторону направления удара. А еще (и это для нас самое интересное), мяч будет собирать данные о том, какой игрок, из какой команды, в каком месте и в каком направлении нанёс удар. В StarLogo Nova мы создаем и управляем не отдельными экземплярами агентов, а породами (breed). Поэтому, на странице породы записываются правила, которым будут следовать все агенты этой породы. Например, все игроки на поле будут следовать правил, которые описаны на странице Person.
Пока мы обратим внимание на первое правило на странице: «Пока кнопка forever включена, вызывай процедуру FB_2». А дальше мы посмотрим на команды, которые мы можем использовать.
У каждой породы есть обязательные свойства, которые должны быть у каждого агента – это форма, цвет и размер. Кроме того, мы можем добавлять породе любые свойства, которые покажутся нам нужными для работы модели. Например, мы можем добавить породе Person свойство Team – и теперь игрока на местности нашего Мира могут относиться к разным командам.
Команды управления свойствами агента собраны на голубой вкладке Traits. Здесь мы можем устанавливать как обязательные, так и дополнительные свойства каждой породы агентов.
Самый простой случай
– Set my Size to (5) – установить размер данного агента.
Первая порода для футболистов. Агенты этой породы в своем поведении руководствуются следующим правилом: если рядом с тобой находится мяч (если ты его видишь), то повернись в направлении этого мяча и сделай шаг вперед.
Вторая порода создана для футбольных мячей. Эти агенты следуют следующим правилам: если расстояние до футболиста меньше двух шагов, то запиши в лог-файл ID-номер агента и свой собственный ID и переместись на десять шагов от агента. Процедура, управляющая поведением мяча представлена на рисунке 12. Согласно этой процедуре, если рядом с мячом находится агент(ы) из породы игроков, то мяч записывает в журнал ID ближайшего игрока и свой собственный ID. После этого мяч отлетает от игрока. Мы можем считывать из системы не только ID игрока, но и другие его свойства и увязывать поведение мяча не только с тем направлением, куда смотрит игрок, но и с другими свойствами агента игрока
Если мы хотим установить цвет, то
Set my Color to [color (выбор цвета)]
При выборе формы для агента можно использовать встроенную библиотеку со множеством форм, а также загружать в систему самостоятельно созданные формы. Команды перемещения агенты почти не отличаются от обычных команд к Черепашке или котенку Scratch – вперед, назад, налево, направо. Поскольку среда трехмерная, то есть еще команды вверх и вниз и команда телепортации в трехмерную точку x:y:z Взаимодействие агентов может быть основано на том, что у них есть данные о положении других агентов около себя. Например, в следующей процедуре, если наш агент чувствует, что на расстоянии 2-х шагов от него число игроков больше 0, то он вызывает процедуру записи в журнал и передает ей в качестве параметра информацию о ближайшем игроке на расстоянии 2-х шагов. Процедура создается из множества блоков команд. Чтобы использовать процедуру, её необходимо вызвать через команду call (имя процедуры).
Первая порода для футболистов. Агенты этой породы в своем поведении руководствуются следующим правилом:
если рядом с тобой находится мяч (если ты его видишь), то повернись в направлении этого мяча и сделай шаг вперед.
Вторая порода создана для футбольных мячей. Эти агенты следуют следующим правилам:
если расстояние до футболиста меньше двух шагов, то запиши в лог-файл ID-номер агента и свой собственный ID и переместись на десять шагов от агента.
Если рядом с мячом находится агент(ы) из породы игроков, то мяч записывает в журнал ID ближайшего игрока и свой собственный ID. После этого мяч отлетает от игрока. Мы можем считывать из системы не только ID игрока, но и другие его свойства и увязывать поведение мяча не только с тем направлением, куда смотрит игрок, но и с другими свойствами агента игрока
Линейный граф всегда может быть преобразован в таблицы или сохранен в виде csv файла. Перед тем как запустить модель, имитирующую поведение множества агентов, пользователь может выбрать число игроков и число мячей, которые будут участвовать в игре.
По завершении эксперимента данные можно собрать с поля и перенести в среды для анализа и визуализации данных. Например, RAWGraphs или CODAP.