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

PedSource

Создает пешеходов. Обычно используется в качестве начальной точки диаграммы процесса, формализующей поток пешеходов. Создает пешеходов через случайные промежутки времени.

Есть несколько способов задания того, когда и сколько пешеходов следует создавать. Пешеходы могут создаваться согласно заданной интенсивности (которая может изменяться динамически с помощью метода set_rate(), времени между прибытиями, изменяющейся во времени интенсивности, заданной с помощью таблицы интенсивностей, расписанию, задающему точные времена и количество прибывающих пешеходов, или "вручную" путем вызова метода блока inject(). Например, Пуассоновский поток появления пешеходов можно реализовать либо выбирая определенную интенсивность генерации пешеходов, либо задавая экспоненциально распределенное время между генерациями пешеходов. Вы также можете задать число генераций и количество пешеходов, создаваемых при каждой генерации.

Если задана интенсивность генераций и она становится равна 0, то следующая генерация произойдет только в том случае, когда интенсивность генераций снова будет задана положительным значением.

Чтобы создавать пешеходов собственного типа, выберите этот тип в параметре Новый пешеход.

Параметры

Место появления
Здесь вы можете задать, будут ли появляться пешеходы в заданной линии, точке или области.
Имя: locationType
Значение по умолчанию: PedSource.LOCATION_LINE
Возможные значения:
PedSource.LOCATION_LINE — Целевая линия
PedSource.LOCATION_POINT — Точка в пространстве с заданными координатами
PedSource.LOCATION_AREA —  Прямоугольный узел или Многоугольный узел
Целевая линия
[Доступен, если Место появления: линия]
Целевая линия, на которой будут появляться создаваемые этим блоком пешеходы.
Тип значения: TargetLine
Локальная переменная: ped — пешеход
Уровень
[Виден, если Место появления: точка (x,y)]
Уровень, на котором задана точка появления пешеходов.
Тип значения: Level
Локальная переменная: ped — пешеход
X, Y
[Виден, если Место появления: точка (x,y)]
X (Y) координата точки, в которой будут появляться пешеходы.
Тип значения: double
Локальная переменная: ped — пешеход
Область
[Виден, если Место появления: область]
Прямоугольный узел или Многоугольный узел, внутри которого будут появляться пешеходы.
Тип значения: AreaNode
Локальная переменная: ped — пешеход
Прибывают согласно
Определяет, будут ли пешеходы (группы пешеходов) прибывать согласно:
Интенсивности — пешеходы (группы) прибывают согласно заданной интенсивности прибытия (эквивалентной экспоненциально распределенному времени между прибытиями со средним значением, равным 1/интенсивность).
Времени между прибытиями — время между двумя последовательными прибытиями определяется заданным выражением (используйте эту опцию для периодической генерации пешеходов или для генерации пешеходов с интервалами времени, не подчиняющимися экспоненциальному закону распределения).
Расписанию интенсивностей — пешеходы (группы) прибывают согласно расписанию интенсивностей — расписанию, определяющему, как интенсивность прибытия пешеходов изменяется с течением времени.
Расписанию прибытий — пешеходы (группы) прибывают согласно расписанию, в котором заданы времена прибытия пешеходов и количество пешеходов, прибывающее в каждый указанный в расписании момент времени.
Вызовам функции inject() — пешеходы (группы) создаются не автоматически, а только при вызове функции inject().
Имя: arrivalType
Изменить значение: set_arrivalType()
Значение по умолчанию: PedSource.RATE
Возможные значения:
PedSource.RATE — Интенсивности
PedSource.INTERARRIVAL_TIME — Времени между прибытиями
PedSource.RATE_SCHEDULE — Расписанию интенсивностей
PedSource.ARRIVAL_SCHEDULE — Расписанию прибытий
PedSource.MANUAL — Вызовам функции inject()
Интенсивность
[Параметр виден, если Прибывают согласно: Интенсивности]
Интенсивность прибытия пешеходов (или групп пешеходов, если выбрана опция Создает группы пешеходов). Задается как количество пешеходов (или групп) в единицу модельного времени.
Синтаксис: double rate
Значение по умолчанию: 1000/hour()
Время между прибытиями
[Параметр виден, если Прибывают согласно: Времени между прибытиями]
Выражение, вычисляющее время до прибытия следующего пешехода (или группы, если выбрана опция Создает группы пешеходов).
Тип значения: double
Таблица интенсивностей
[Параметр виден, если Прибывают согласно: Расписанию интенсивностей]
Имя расписания, определяющего, как интенсивность прибытия пешеходов (или групп пешеходов, если выбрана опция Создает группы пешеходов) изменяется с течением времени. Значения интенсивности задаются как количество пешеходов (или групп), создаваемых в среднем в единицу модельного времени.
Синтаксис: Schedule<?> rateSchedule
Изменить интенсивность
[Параметр виден, если Прибывают согласно: Расписанию интенсивностей]
Если опция выбрана, то вы можете изменить считанную из таблицы интенсивность, домножив ее на какой-то коэффициент, или задав более сложное выражение в расположенном ниже поле Согласно выражению.
Синтаксис: boolean modifyRate
Согласно выражению
[Параметр виден, если выбрана опция Изменить интенсивность]
Здесь вы можете задать выражение, согласно которому будут изменяться считанные из таблицы значения интенсивности. Текущее значение интенсивности из таблицы доступно в выражении как baseRate.
Тип значения: double
Локальная переменная: double baseRate — значение интенсивности из таблицы
Расписание прибытий
[Параметр виден, если Прибывают согласно: Расписанию прибытий]
Имя расписания, в котором заданы времена прибытия пешеходов (или групп пешеходов, если выбрана опция Создает группы пешеходов) и количество пешеходов/групп, прибывающее в каждый указанный в расписании момент времени.
Синтаксис: Schedule<Integer> arrivalSchedule
Количество прибытий ограничено
Если опция выбрана, то количество прибытий (пешеходов или групп), генерируемое этим блоком, будет ограничено заданным ниже Максимальным количеством прибытий.
Синтаксис: boolean limitArrivals
Максимальное количество прибытий
[Виден, если выбран Количество прибытий ограничено]
Максимально допустимое количество генераций пешеходов/групп, которое может быть совершено этим блоком.
Синтаксис: int maxArrivals

Пешеход

Новый пешеход
Тип создаваемого пешехода. По умолчанию это базовый тип агента Agent, но если вы создали свой собственный тип пешехода, и хотите, чтобы данный блок создавал пешеходов именно этого типа, то выберите здесь имя созданного вами типа пешехода.
Тип значения: Agent
Комфортная скорость
Комфортная для пешехода скорость. Это та скорость, с которой будет двигаться пешеход при отсутствии внешних факторов.
Тип значения: double
Локальная переменная: ped — пешеход
Значение по умолчанию: uniform(0.5, 1) м/c
Начальная скорость
Начальная скорость пешехода.
Тип значения: double
Локальная переменная: ped — пешеход
Значение по умолчанию: uniform(0.3, 0.7) м/c
Диаметр
Диаметр пешехода. Задает ширину людей, создаваемых этим блоком. Это значение задает диаметр фигуры анимации пешехода, используемой по умолчанию (если вы не выбрали нестандартный тип пешехода в поле Новый пешеход).
Это значение также используется в вычислениях алгоритма движения пешеходов. Заданное по умолчанию значение (40-50 сантиметров) соответствует средней ширине плеч человека, поэтому мы настойчиво рекомендуем не менять это значение без необходимости. Если вы зададите слишком большое значение диаметра, то пешеходы не смогут пройти через двери, поместиться между барьерами очереди-змейки, и т.д., и модель завершит свое выполнение с ошибкой.
Тип значения: double
Локальная переменная: ped — пешеход
Значение по умолчанию: uniform(0.4, 0.5) м.
Группы пешеходов
Параметры в этой секции видны, если выбрана опция Создает группы пешеходов.
Число человек в группе
Число человек в группе. Если, например, вы оставите значение по умолчанию, то будут создаваться группы из двух и из трех человек (с равными вероятностями).
Тип значения: int
Значение по умолчанию: uniform_discr(2, 3)
Локальная переменная: leader — лидер группы
Время между прибытиями пешеходов в группе
Время между прибытиями пешеходов, входящих в состав одной группы.
Тип значения: double
Форма группы
Форма группы пешеходов: толпа, шеренга или цепочка.
Имя: groupFormation
Изменить значение: set_groupFormation(новое значение)
Возможные значения:
GROUP_FORMATION_SWARM — толпа
GROUP_FORMATION_CHAIN — цепочка
GROUP_FORMATION_FRONT — шеренга
Поведение группы в сервисах
[Параметр виден, если выбрана опция Создает группы пешеходов]
Здесь вы можете задать, как создаваемые этим блоком группы пешеходов будут вести себя при прохождении сервисов (если в задающем сервис блоке PedService не будет выбрано другое поведение). Возможны три варианта:
Все члены группы обслуживаются индивидуально — Каждый член группы должен самостоятельно пройти через сервис. Пример такого сервиса — турникеты.
Обслуживается один член группы, остальные ждут в очереди — Вся группа стоит в очереди, но при достижении сервиса обслуживается только один член этой группы, остальные просто его сопровождают. Пример — семья, стоящая в кассу кинотеатра. Места в кинозале выбирают все члены семьи, билеты же покупает только глава семьи. Тратится время на обслуживание только одного пешехода, но стоящие вместе с ним сопровождающие лица могут создавать скопления.
Обслуживается один член группы, остальные ждут в области ожидания — В сервисе обслуживается (и соответственно, стоит в очереди к нему) только один член группы. Остальные члены группы ждут в стороне, в заданной для них области ожидания (ее а имя нужно указать в свойстве Область ожидания соответствующего блока PedService). Пример — экскурсионная группа, приобретающая билеты в музей. В очереди в кассу стоит только гид группы, экскурсанты организованно ждут его в стороне.
Имя: serviceGroupBehavior
Изменить значение: set_serviceGroupBehavior(новое значение)
Возможные значения:
PedSource.SGB_INDIVIDUAL_SERVING — Все члены группы обслуживаются индивидуально
PedSource.SGB_ONE_MEMBER_IS_SERVED_OTHERS_WAIT_IN_QUEUE — Обслуживается один член группы, остальные ждут в очереди
PedSource.SGB_ONE_MEMBER_IS_SERVED_OTHERS_WAIT_IN_AREA — Обслуживается один член группы, остальные ждут в области ожидания
Отмена для пешехода распространяется на группу
Если опция выбрана, то при отмене какой-либо команды (например, "ждать" или "перейти") для одного пешехода из группы эта команда будет отменена и для всех остальных членов этой группы.
Синтаксис: boolean solidCancelling

Специфические

Добавлять пешеходов в
Здесь вы можете выбрать, хотите ли вы добавлять пешеходов, которых этот блок создает, в популяцию агентов по умолчанию или в другую популяцию (вы можете указать ее имя в параметре ниже). Популяцию по умолчанию, содержащуюся внутри агента верхнего уровня (Java-коллекцию типа AgentList<Agent>), можно выбрать с помощью вызова функции агента getDefaultPopulation().
Синтаксис: boolean addToCustomPopulation
Популяция
[Параметр виден, если Добавлять пешеходов в: другую популяцию]
Имя популяции агентов, в которую будут добавлены пешеходы.
Тип значения: AgentList<?superT>
Локальная переменная: ped — пешеход

Действия

При выходе
Код, выполняемый, когда пешеход покидает блок.
Локальная переменная: ped — пешеход
При начале формирования группы
Код, выполняемый, когда первый пешеход из новой группы входит в блок.
Локальные переменные:
PedGroup group — группа пешеходов
leader — лидер группы
При окончании группировки
Код, выполняемый, когда завершено формирование группы.
Локальные переменные:
PedGroup group — группа пешеходов
leader — лидер группы

Функции

Функция Описание
void inject() Добавляет одного пешехода или группу пешеходов (если выбрана опция Создает группы пешеходов) в моделируемую среду. Применим только в том случае, если Пешеходы прибывают согласно: Вызовам функции inject().
void inject(int count) Метод добавляет заданное количество пешеходов (count) в моделируемую среду. Применим только в том случае, если Пешеходы прибывают согласно: Вызовам функции inject().
long countPeds() Возвращает количество всех созданных блоком пешеходов.
long countGroups() Возвращает количество прибывших в этот блок групп пешеходов.
int size() Возвращает количество пешеходов, находящихся внутри блока.

Порты

out
Выходной порт.
Как мы можем улучшить эту статью?