Футбольное поле с множеством мячиков

Материал из Поле цифровой дидактики


Описание модели Модель сбора данных с поля, на котором множество игроков взаимодействуют со множеством мячиков. Модель используется для
  • обсуждения и пояснения понятия Социальный Объект
  • сбора данных с цифрового поля
Область знаний NetSci, Информатика, Социология
Веб-страница - ссылка на модель https://www.slnova.org/patarakin/projects/694467/
Видео запись
Разработчики Патаракин
Среды и средства, в которых реализована модель StarLogo Nova
Диаграмма модели
Описание полей данных, которые модель порождает
Модель создана студентами? Нет

ODD protocol

Пользователь может управлять числом игроков на поле и расстоянием, на котором игроки видят мяч – виджет Vision. На экране мы видим зелёное поле, где взаимодействуют игроки, и таблицу, в которой записываются действия – ID игрока и ID мяча, по которому он ударяет.

В данном примере мы рассмотрим историю, когда объект мячик медленно катится по полю и реагирует на присутствие игроков, которые находятся поблизости. Внешне это будет выглядеть так, как будто игроки бегут по мячу и наносят по нему удар. А в ответ на этот удар мячик отлетает в сторону направления удара. А еще (и это для нас самое интересное), мяч будет собирать данные о том, какой игрок, из какой команды, в каком месте и в каком направлении нанёс удар. В StarLogo Nova мы создаем и управляем не отдельными экземплярами агентов, а породами (breed). Поэтому, на странице породы записываются правила, которым будут следовать все агенты этой породы. Например, все игроки на поле будут следовать правил, которые описаны на странице Person.

https://www.slnova.org/patarakin/projects/694467/


Пока мы обратим внимание на первое правило на странице: «Пока кнопка 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.