exponenta event banner

Моделирование пересечений трафика как сети очередей

В этом примере показано, как создать модель SimEvents ® для представления сети трафика транспортных средств и исследовать среднее время ожидания транспортных средств, когда сеть находится в устойчивом состоянии.

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

Скорость входа транспортного средства в сеть представлена процессами Пуассона со скоростями 0.5 для ввода 1 и 0.15 для ввода 2. Тарифы на обслуживание представляют собой время, затрачиваемое транспортными средствами на каждом перекрестке, которое берется из экспоненциального распределения со средним значением 1. Значения стрелок - это вероятности выбора трассы для транспортных средств на перекрестке.

Модельная сеть трафика

Для представления сети трафика транспортного средства в этой модели используются блоки Генератор сущностей, Сервер сущностей, Очередь сущностей, Коммутатор ввода сущностей, Коммутатор вывода сущностей и Терминатор сущностей.

model = 'QueueServerTransportationNetwork';
open_system(model);

Прибытие модели транспортного средства

Два блока генератора объектов представляют точки входа в сеть. Для создания процесса прихода Пуассона устанавливается время между поколениями их сущностей.

Это код в поле действия «Время между поколениями» записи 1 блок.

% Random number generation
coder.extrinsic('rand');
ValEntry1 = 1;
ValEntry1 = rand();
% Pattern: Exponential distribution
mu = 0.5;
dt = -1/mu * log(1 - ValEntry1);

В коде, mu - коэффициент поступления Пуассона. coder.extrinsic('rand') используется, поскольку для рандомизации не назначено уникальное начальное число. Дополнительные сведения о создании случайных чисел в действиях события см. в разделах Языки действий события и Создание случайных чисел. Дополнительные сведения о внешних функциях см. в разделе Работа с mxArrays.

Выбор маршрута модельного транспортного средства

Объекты имеют Route атрибут, принимающий значение 1 или 2. Значение атрибута определяет выходной порт, из которого объекты отходят от блока коммутатора вывода объектов.

Этот код в действии Entry сервера сущностей 1 представляет случайный выбор маршрута транспортных средств на перекрестке, представленном узлом 1.

Coin1 = 1;
coder.extrinsic('rand');
Coin1 = rand;
if Coin1 <= 0.2
    entity.Route = 1;
else
    entity.Route = 2;
end

Это пример случайного Route назначения атрибутов при входе объектов в блок Entity Server 1. Значение Route назначается на основе значения случайной величины rand который принимает значения между 0 и 1. Route становится 1 если rand меньше или равно 0.2, или 2 если rand больше, чем 0.2.

Модель пересечений трасс

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

Сервер сущностей 1 содержит этот код.

% Pattern: Exponential distribution
coder.extrinsic('rand');
Val1 = 1;
Val1 = rand();
mu = 1;
dt = -mu * log(1 - Val1);

Расчет среднего времени ожидания транспортных средств в сети

Сеть построена как открытая сеть Джексона, которая удовлетворяет этим условиям.

  • Все прибывшие транспортные средства могут выйти из сети.

  • Прибытие транспортного средства представлено процессом Пуассона.

  • Транспортные средства отправляются на перекресток в качестве первых. Время ожидания в пересечении экспоненциально распределяется со средним значением 1.

  • Транспортное средство, выезжающее на перекресток, либо занимает доступный маршрут, либо покидает сеть.

  • Коэффициент использования каждой очереди на пересечение трафика меньше 1.

В установившемся состоянии каждая очередь в открытой сети Джексона ведет себя независимо как очередь M/M/1. Поведение сети - произведение отдельных очередей в равновесных распределениях. Для получения дополнительной информации о M/M/1 очередях, см., что M/M/1 Стоит в очереди Система.

Скорость прибытия транспортного средства для каждого узла$i$ рассчитывается по этой формуле.

$\lambda_i = r_i + \sum_{j=1}^N \theta_{ji} \lambda_j,$

В формуле:

  • $r_i$ - частота внешних поступлений для узла.$i$

  • $j=1,\ldots,N$ общее число входящих стрелок на узел.$i$

  • $\theta_{ji}$ - вероятность выбора узла$i$ из узла.$j$

  • $\lambda_j$ - общая скорость прибытия транспортного средства в узел.$j$

Для всех узлов в сети уравнение принимает эту матричную форму.

$\lambda = R(I-\theta)^{-1}$

Здесь,$\theta$ является матрицей маршрутизации, и каждый элемент представляет вероятность перехода от узла$j$ к узлу.$i$

Для исследуемой здесь сети это матрица маршрутизации.

$\theta = \left[\begin{array}{cccc} 0 &#38; 0.2 &#38; 0.8 &#38; 0\\ 0 &#38; 0 &#38; 0.7 &#38; 0.3\\ 0 &#38; 0 &#38; 0 &#38; 0.4\\ 0 &#38; 0 &#38; 0 &#38; 0 \end{array}\right]$

$R$ - вектор внешних поступлений в каждый узел.

$R = \left[\begin{array}{cccc} 0.5 &#38; 0 &#38; 0 &#38; 0.15 \end{array}\right]$

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

$\lambda = \left[ \begin{array}{cccc} 0.5 &#38; 0.1 &#38; 0.47 &#38; 0.368 \end{array}\right]$

Каждый узел ведет себя как независимая очередь M/M/1, и среднее время ожидания для каждого узла$i$ рассчитывается по этой формуле. См. раздел Система очередей M/M/1.

$\rho_i=\frac{\lambda_i}{1-\lambda_i}$

Среднее время ожидания для каждого узла вычисляется путем включения каждого элемента.$\lambda$

$\rho = \left[\begin{array}{cccc} 1 &#38; 0.11 &#38; 0.88 &#38; 0.58 \end{array}\right]$

Просмотр результатов моделирования

Смоделировать модель и убедиться, что среднее время ожидания в каждой очереди в сети соответствует вычисленным теоретическим результатам.

  • Время ожидания очереди в узле 1 сходится к 1.

  • Время ожидания очереди в узле 2 сходится к 0.11.

  • Время ожидания очереди в узле 3 сходится к 0.88.

  • Время ожидания очереди в узле 4 сходится к 0.58.

Ссылки

[1] Джексон, Джеймс Р. Операционное исследование Том 5, № 4 (август, 1957), стр. 518-521.