Формирует группы из последовательно поступающих во входной порт пешеходов.
Поддерживается три режима создания групп:
- по достижению заданного размера группы
- по истечению заданного времени создания группы
- по истечению максимально допустимого времени между приходом пешеходов
Может использоваться и для воссоединения группы после того, как та была разбита на отдельных пешеходов блоком 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()).
-
Как мы можем улучшить эту статью?
-