AnyLogic
Развернуть
Размер шрифта

PedGroupAssemble

Формирует группы из последовательно поступающих во входной порт пешеходов.

Поддерживается три режима создания групп:

  • по достижению заданного размера группы
  • по истечению заданного времени создания группы
  • по истечению максимально допустимого времени между приходом пешеходов

Может использоваться и для воссоединения группы после того, как та была разбита на отдельных пешеходов блоком PedGroupDisassemble. Такие пешеходы будут ждать прихода всех членов их группы в заданной вами области ожидания. По приходу всех членов группы они проследуют дальше уже вновь в виде цельной группы пешеходов. Группы воссоединяются независимо друг от друга, в это же время блок может производить также и формирование новой группы пешеходов.

Демо-модель: Pedestrian Groups Открыть страницу модели в AnyLogic Cloud. Там можно запустить модель или скачать ее по ссылке Исходные файлы модели.

Параметры

Область
Прямоугольный узел или многоугольный узел, в котором пешеходы будут ждать, пока группа не будет сформирована.
Тип значения: AreaNode
Локальная переменная: ped — пешеход
Этот блок
Выберите, этот блок: создает группы или собирает группы путем поиска соответствия.
Имя: assemblingMode
Возможные значения:
pedGroupAssemble.ASSEMBLING_MODE_BY_CONDITIONS — создает группы pedGroupAssemble.ASSEMBLING_MODE_BY_MATCHING — собирает группы путем поиска соответствия
Группа создается
[Виден, если Этот блок: создает группы]
Определяет, что будет являться критерием завершения создания группы: будет ли создаваться группа с заданным числом человек, или в течение заданного времени, или создание группы будет завершаться, если время между приходами пешеходов превзойдет заданное максимальное значение (пока соблюдается интенсивность).
Имя: groupingMode
Возможные значения:
pedGroupAssemble.GROUPING_MODE_SIZE_REACHED — с заданным числом человек
pedGroupAssemble.GROUPING_MODE_TIMEOUT — в течение заданного времени
pedGroupAssemble.GROUPING_MODE_TIME_GAP — пока соблюдается интенсивность
Число человек в группе
[Виден, если Группа создается: с заданным числом человек]
Число человек в группе. Если, например, вы оставите значение по умолчанию, то будут создаваться группы из двух и из трех человек (с равными вероятностями).
Тип значения: int
Значение по умолчанию: uniform_discr(2, 3)
Локальная переменная: leader — лидер группы
Время формирования группы
[Виден, если Группа создается: в течение заданного времени]
Время, в течение которого будет собираться группа. Когда этот таймаут истечет, формирование группы будет закончено, и начнется формирование новой группы.
Тип значения: double
Значение по умолчанию: exponential(300/hour())
Макс. время между прибытиями для одной группы
[Виден, если Группа создается: пока соблюдается интенсивность]
Максимальное время между прибытиями пешеходов в одной группе. Если время между прибытиями превзойдет заданное здесь значение, то формирование одной группы будет завершено и начнется формирование новой.
Тип значения: double
Значение по умолчанию: 2 секунды
В той же группе
[Виден, если Этот блок: собирает группы путем поиска соответствия]
Указанное здесь условие будет проверяться для всех групп, собранных в этом блоке. Если условие выполняется ( true ) для какой-либо группы, пешеход присоединится к этой группе. Указанное условие может, например, анализировать и сравнивать ID группы и пешехода. Если условие не выполняется (false) ни для одной группы, начинает формироваться новая группа пешеходов.
Тип значения: boolean
Локальные переменные:
ped — пешеход
PedGroup group — группа, для которой проверяется условие
T leader — лидер этой группы
Создаются группы
[Виден, если Этот блок: собирает группы путем поиска соответствия]
Если указанное здесь условие выполняется (true), то сборка группы завершена (текущий пешеход будет последним членом группы).
Тип значения: boolean
Локальные переменные:
PedGroup group — группа этого пешехода
T leader — лидер группы этого пешехода
int size — размер группы этого пешехода
Форма
Форма группы пешеходов: толпа, шеренга или цепочка.
Имя: groupFormation
Изменить значение: set_groupFormation(новое значение)
Допустимые значения:
pedGroupAsseble.GROUP_FORMATION_SWARM — толпа
pedGroupAsseble.GROUP_FORMATION_CHAIN — цепочка
pedGroupAsseble.GROUP_FORMATION_FRONT — шеренга
Поведение группы в сервисах
Здесь вы можете задать, как создаваемые этим блоком группы пешеходов будут вести себя при прохождении сервисов (если в задающем сервис блоке PedService не будет выбрано другое поведение). Возможны три варианта:
Все члены группы обслуживаются индивидуально — Каждый член группы должен самостоятельно пройти через сервис. Пример такого сервиса — турникеты.
Обслуживается один член группы, остальные ждут в очереди — Вся группа стоит в очереди, но при достижении сервиса обслуживаться будет только один член этой группы, остальные просто его сопровождают. Пример — семья, стоящая в кассу кинотеатра. Места в кинозале выбирают все члены семьи, билеты же покупает только глава семьи. Соответственно, тратится время на обслуживание только одного пешехода, но стоящие вместе с ним сопровождающие лица могут создавать скопления.
Обслуживается один член группы, остальные ждут в области ожидания — В сервисе обслуживается (и соответственно, стоит в очереди к нему) только один член группы. Остальные члены группы ждут в стороне, в заданной для них области ожидания (имя этой области нужно указать в свойстве Область ожидания соответствующего блока PedService). Пример — экскурсионная группа, приобретающая билеты в музей. В очереди в кассу стоит только гид группы, экскурсанты организованно ждут его в стороне.
Имя: serviceGroupBehavior
Изменить значение: set_serviceGroupBehavior(новое значение)
Возможные значения:
pedGroupAssemble.SGB_INDIVIDUAL_SERVING — Все члены группы обслуживаются индивидуально
pedGroupAssemble.SGB_ONE_MEMBER_IS_SERVED_OTHERS_WAIT_IN_QUEUE — Обслуживается один член группы, остальные ждут в очереди
pedGroupAssemble.SGB_ONE_MEMBER_IS_SERVED_OTHERS_WAIT_IN_AREA — Обслуживается один член группы, остальные ждут в области ожидания

Действия

При входе
Код, который выполняется, когда пешеход поступает в блок.
Локальная переменная: ped — пешеход
При начале создания группы
Код, который выполняется в момент начала формирования группы (прихода первого члена этой группы — лидера).
Локальные переменные:
PedGroup group — создаваемая в текущий момент группа
T leader — лидер группы
При окончании формирования группы
Код, который выполняется, когда этот блок покидает последний член группы пешеходов. Код выполняется после Действия при выходе этого пешехода.
Локальные переменные:
PedGroup group — только что созданная группа
T leader — лидер группы
При выходе
Код, который выполняется, когда пешеход покидает блок через порт out.
Локальная переменная: ped — пешеход
При отмене
Код, который выполняется, когда пешеход покидает блок через выходной порт ccl.
Локальная переменная: ped — пешеход
При извлечении
Код, выполняемый, когда пешеход умышленно извлекается из блока посредством вызова функции блока remove().
Локальная переменная: ped — пешеход

Функции

Функция Описание
long countPeds() Возвращает количество пешеходов, покинувших блок.
long countGroups() Возвращает количество сформированных этим блоком групп (включая и собираемую в текущий момент времени группу).
int size() Возвращает количество пешеходов, ожидающих формирования (или воссоединения) групп.
void cancel(Agent ped) Заставляет заданного пешехода немедленно покинуть блок через порт ccl. Этот пешеход не будет добавлен в группу. Для пешехода выполняется код параметра Действие при отмене.
void cancelAll() Заставляет всех пешеходов немедленно покинуть блок через порт ccl. Эти пешеходы не будут добавлены в группу. Для каждого пешехода выполняется код параметра Действие при отмене.
Agent remove(Agent agent) Извлекает указанного агента из блока.

Порты

in
Входной порт.
out
Выходной порт.
ccl
Выходной порт, через который пешеходы покидают блок в случае события "отмены" (возникшего в результате вызова функции cancel() или функции cancelAll()).
Как мы можем улучшить эту статью?