PedSource

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

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

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

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

Параметры

Место появления
Здесь вы можете задать, будут ли появляться пешеходы в заданной линии, точке или области.
Имя: locationType
Значение по умолчанию: PedSource.LOCATION_LINE
Возможные значения:
Целевая линия [динамический]
[Доступен, если Место появления: линия] Целевая линия, на которой будут появляться создаваемые этим блоком пешеходы.
Тип значения: TargetLine
Локальная переменная: ped - пешеход
Уровень [динамический]
[Виден, если Место появления: точка (x,y)] Уровень, на котором задана точка появления пешеходов.
Тип значения: Level
Локальная переменная: ped - пешеход
X, Y [динамический]
[Виден, если Место появления: точка (x,y)] X (Y) координата точки, в которой будут появляться пешеходы.
Тип значения: double
Локальная переменная: ped - пешеход
Область [динамический]
[Виден, если Место появления: область] Прямоугольный узел или Многоугольный узел, внутри которого будут появляться пешеходы.
Тип значения: AreaNode
Локальная переменная: ped - пешеход
Прибывают согласно
Определяет, будут ли пешеходы (группы пешеходов) прибывать согласно:
Имя: arrivalType
Изменить значение: set_arrivalType()
Значение по умолчанию: PedSource.RATE
Возможные значения:
Интенсивность, пешеходов (групп) в ед. вр.
[Параметр виден, если Прибывают согласно: Интенсивности] Интенсивность прибытия пешеходов (или групп пешеходов, если выбрана опция Создает группы пешеходов). Задается как количество пешеходов (или групп) в единицу модельного времени.
Синтаксис: 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
Диаметр [динамический]
Диаметр пешехода.
Тип значения: double
Локальная переменная: ped - пешеход
Значение по умолчанию: uniform(0.4, 0.5) м.
Группы пешеходов
Параметры в этой секции видны, если выбрана опция Создает группы пешеходов.
Число человек в группе [динамический]
Число человек в группе. Если, например, вы оставите значение по умолчанию, то будут создаваться группы из двух и из трех человек (с равными вероятностями).
Тип значения: int
Значение по умолчанию: uniform_discr( 2, 3 )
Локальная переменная: leader - лидер группы
Время между прибытиями пешеходов в группе [динамический]
Время между прибытиями пешеходов, входящих в состав одной группы.
Тип значения: double
Форма группы
Форма группы пешеходов: толпа, шеренга или цепочка.
Имя: groupFormation
Изменить значение: set_groupFormation(новое значение)
Возможные значения:
Поведение группы в сервисах
[Параметр виден, если выбрана опция Создает группы пешеходов] Здесь вы можете задать, как создаваемые этим блоком группы пешеходов будут вести себя при прохождении сервисов (если в задающем сервис блоке PedService не будет выбрано другое поведение). Возможны три варианта: Имя: serviceGroupBehavior
Изменить значение: set_serviceGroupBehavior(новое значение)
Возможные значения:
Отмена для пешехода распространяется на группу
Если опция выбрана, то при отмене какой-либо команды (например, "ждать" или "перейти") для одного пешехода из группы эта команда будет отменена и для всех остальных членов этой группы.
Синтаксис: boolean solidCancelling
Специфические
Добавлять пешеходов в
Здесь вы можете выбрать, хотите ли вы добавлять пешеходов, которых этот блок создает, в популяцию агентов по умолчанию или в другую популяцию (вы можете указать ее имя в параметре ниже). Популяцию по умолчанию, содержащуюся внутри агента верхнего уровня (Java-коллекцию типа AgentList<Agent>), можно выбрать с помощью вызова функции агента getDefaultPopulation().
Синтаксис: boolean addToCustomPopulation
Популяция [динамический]
[Параметр виден, если Добавлять пешеходов в: другую популяцию] Имя популяции агентов, в которую будут добавлены пешеходы.
Тип значения: AgentList<?superT>
Локальная переменная: ped - пешеход.
Действия
При выходе [код]
Код, выполняемый, когда пешеход покидает блок.
Локальная переменная: ped - пешеход.
При начале формирования группы [код]
Код, выполняемый, когда первый пешеход из новой группы входит в блок.
Локальные переменные:
При окончании группировки [код]
Код, выполняемый, когда завершено формирование группы.
Локальные переменные:

Порты

out
Выходной порт.

Функции

void inject() - Добавляет одного пешехода или группу пешеходов (если выбрана опция Создает группы пешеходов) в моделируемую среду. Применим только в том случае, если Пешеходы прибывают согласно: Вызовам функции inject().

void inject(int count) - Метод добавляет заданное количество пешеходов (count) в моделируемую среду. Применим только в том случае, если Пешеходы прибывают согласно: Вызовам функции inject().

long countPeds() - Возвращает количество всех созданных блоком пешеходов.

long countGroups() - Возвращает количество прибывших в этот блок групп пешеходов.

int size() - Возвращает количество пешеходов, находящихся внутри блока.