ИМИТАЦИОННАЯ МОДЕЛЬ СЕТИ МАССОВОГО ОБСЛУЖИВАНИЯ С ДИНАМИЧЕСКИМ УПРАВЛЕНИЕМ ИНТЕНСИВНОСТЯМИ ОБСЛУЖИВАНИЯ

реклама
ИМИТАЦИОННАЯ МОДЕЛЬ СЕТИ МАССОВОГО
ОБСЛУЖИВАНИЯ С ДИНАМИЧЕСКИМ УПРАВЛЕНИЕМ
ИНТЕНСИВНОСТЯМИ ОБСЛУЖИВАНИЯ
В.И. Долгов
Саратовский государственный университет, Саратов, Россия
1. Введение
Разработка и исследование методов управления интенсивностями
обслуживания в сетях массового обслуживания и методов анализа сетей
обслуживания с управлением интенсивностями обслуживания являются
актуальными направлениями развития теории сетей массового обслуживания. Практическое значение этих направлений определяется широким использованием сетей массового обслуживания в качестве математических
моделей дискретных систем с управлением, сетевой структурой и стохастическим характером функционирования. Результативность и широта
применения сетей обслуживания при решении задач проектирования, разработки и оптимизации таких систем не могли быть достигнуты без использования соответствующих программных средств для анализа сетей
массового обслуживания различных классов.
В данной работе рассматриваются принципы организации, структура
и основные алгоритмы функционирования имитационной модели, разработанной для анализа замкнутых экспоненциальных сетей массового обслуживания с динамическим управлением интенсивностями обслуживания.
2. Метод управления интенсивностями обслуживания
Рассматривается замкнутая сеть массового обслуживания N [1], содержащая Q требований одного класса, одну систему обслуживания S0
типа M / M / Q с интенсивностью  0 обслуживания требований одним
прибором, L систем обслуживания S i , i  1,, L , типа M / M / 1 с интенсивностями обслуживания  i . Вероятности переходов требований между
системами сети задаются неприводимой маршрутной матрицей   ( ij ) ,
i, j  0,1,, L . Состояние с номером n сети определяется вектором
s ( n )  ( si( n ) ) , i  0,1, , L , где si(n ) – число требований, находящихся в системе S i . Обозначим через H базисную подсеть, включающую базисные
системы S i , i  1,, L .
Пусть N c – сеть массового обслуживания, у которой структура, параметры и алгоритмы функционирования такие же, как у сети N , и которая отличается от N только тем, что в ней реализовано динамическое
1
управление интенсивностями обслуживания в базисных системах. Для параметров и характеристик сети N c используются введенные для соответствующих параметров и характеристик сети N обозначения с индексом c .
Например, число требований в подсети H сетей N и N c обозначается соответственно через QH и QHc .
Различаются два режима эволюции сети N c – нормальный и коррективный. Периоды эволюции сети в этих режимах называются соответственно нормальными и коррективными тактами. Обозначим через x (k )
такт с номером k  {1, 2,},  (k ) – момент окончания такта x (k ) ,  – длительность такта, Q H(k ) – число требований в H в момент  (k ) . В момент
 (k ) проверяется выполнение неравенства
(1)
QH(k )  QH .
Если неравенство выполняется, то такт x ( k 1) считается нормальным
и в течение этого такта используется вектор  ( k 1)    (  i ) , i  1, , L ,
в противном случае этот такт – коррективный, формируется зависящий
от Q H(k ) вектор ~ ( k 1) , значения компонент которого направляются базисным системам и используются в течение x ( k 1) . Вектор ~ ( k 1) является
решением задачи оптимизации, рассмотренной в работе [1].
Целью управления интенсивностями обслуживания в N с является
уменьшение математического ожидания (м. о.) длительности реакции 
c
сети N с для системы S0 (м. о. длительности пребывания требований
в подсети H ) и вероятности пребывания этой сети в состояниях, в которых
QHc больше математического ожидания QH числа требований в подсети
H сети N при ограничении на суммарную стоимость использования в базисных системах конкретных значений интенсивностей обслуживания.
3. Принципы организации имитационной модели
Целью имитационного моделирования является исследование эффективности метода динамического управления интенсивностями обслуживания в замкнутых экспоненциальных сетях массового обслуживания.
Каждой системе обслуживания в имитационной модели должно соответствовать описание данной системы на языке программирования,
оформленное в виде процедуры. Такое описание называется программным
процессом [2]. Алгоритм процесса представляет собой некоторую последовательность «сегментов» алгоритма, реализующих определенный набор
2
функций. Выполнение сегмента алгоритма соответствует реализации программным процессом некоторого дискретного события; содержание события определяется содержанием соответствующего сегмента.
Программные процессы, соответствующие системам обслуживания
S i , i  1,, L , типа M / M / 1, считаются эквивалентными. Аналогично,
программные процессы, соответствующие обслуживающим приборам системы S0 , также считаются эквивалентными. Для эквивалентных процессов в имитационной модели целесообразно иметь лишь единственное программное представление процесса, называемое прототипом процессов.
Сами процессы в этом случае называются копиями. Имитационная модель
рассматриваемой замкнутой сети обслуживания, состоящей из L систем
обслуживания типа M / M / 1 и одной системы обслуживания типа
M / M / Q , будет содержать два прототипа и L  Q копий. Для ссылки на
конкретный процесс используется таблица копий, значениями которой являются номера копий прототипов.
Обозначим через Pi1 , i  1,, L , программные процессы (копии соответствующего прототипа программного процесса), отображающие в имитационной модели системы массового обслуживания S i , i  1,, L , типа
M / M / 1 . В состав имитационной модели сети обслуживания с управлением интенсивностями обслуживания входят также программные процессы
Pi 2 , i  L  1,, L  Q , которые отображают обслуживающие приборы в системе S0 типа M / M / Q , и процесс P0 , реализующий изменение интенсивностей обслуживания в системах массового обслуживания. В общем
случае, программный процесс будем обозначать Pi . Активным называется
состояние процесса, когда в нем реализуется некоторая последовательность событий, например, связанных с приемом, обработкой и выдачей
требований. Состояние ожидания процессом выполнения требуемых условий его активизации называется пассивным [2]. Очереди являются самостоятельными объектами имитационной модели и служат для хранения
требований, ожидающих обслуживания. Постановка требований в очереди
и выбор их из очередей производится программными процессами. Управление работой имитационной модели обеспечивается ведущей программой, которая при работе использует информацию о процессах, содержащуюся в таблицах временных отметок, точек возврата и номеров копий.
Пусть z – текущее значение модельного времени; ti – момент модельного времени, когда в процессе Pi должно быть реализовано очередное событие. Момент модельного времени ti называется временной отметкой процесса Pi . Знаком [] обозначается положительное действительное
число, являющееся представлением   в ЭВМ. Для процессов, находя-
3
щихся в активном состоянии, ti  z , в пассивном – ti  z (в частности, может быть ti  [] ). Значениями элементов таблицы временных отметок являются моменты ti для всех процессов имитационной модели, и эти значения заключены в интервале [0, []] . Значения ti для каждого процесса меняются в ходе выполнения программы имитационной модели.
Для обеспечения возврата управления в процесс Pi ведущая программа должна иметь данные о «точке возврата в процесс» или номере
сегмента алгоритма программного процесса, который должен выполняться
в качестве очередного. Точка возврата в процессе определяется параметром wi . Значение этого параметра заносится в таблицу точек возврата, т. е.
элементу таблицы, соответствующему процессу Pi , присваивается значение wi . Например, для программных процессов, отображающих системы
массового обслуживания, параметр wi принимает одно из двух значений –
1 или 2: wi  1 соответствует сегменту алгоритма программного процесса,
в котором реализуется выбор требования из очереди и формирование для
него времени обслуживания, а wi  2 – окончанию обслуживания требования и постановке его в очередь другого процесса.
В процессе работы ведущей программы производится сбор статистических данных, необходимых для последующего вычисления параметров
качества функционирования сети и ее систем обслуживания. В частности,
для каждого процесса Pi1 , i  1,, L , в отдельные текстовые файлы записываются моменты постановки требований в очередь, моменты выбора
из этой очереди требований на обслуживания, моменты завершения обслуживания требований [3].
4. Структура и алгоритмы имитационной модели
Основные алгоритмические действия процесса Pi1 , i  1,, L :
1. Из очереди, принадлежащей программному процессу Pi1 , выбирается требование; если очередь пуста, то процесс ожидает поступления требований.
2. Формируется интервал времени, в течение которого требование
будет обслуживаться, и вычисляется момент времени, когда завершится
обслуживание данного требования.
3. Развитие процесса Pi1 задерживается до вычисленного момента
модельного времени.
4. Определяется номер процесса, в очередь которого поступит обслуженное требование. Если требование должно поступить в систему S0 ,
4
то определяется номер процесса Pi 2 , который отображает обслуживающий
прибор системы S0 , при этом прибор является свободным.
5. Требование ставится в очередь (или на обслуживание) выбранного
процесса.
6. Переход на п. 1.
Алгоритм программного процесса Pi 2 , i  L  1,, L  Q :
1. Для поступившего требования формируется интервал времени,
в течение которого данное требование будет обслуживаться, и вычисляется
момента времени, когда обслуживание завершится.
2. Развитие процесса Pi 2 приостанавливается до вычисленного момента модельного времени.
3. Определяется номер процесса Pi1 , в очередь которого поступит обслуженное требование.
4. Требование ставится в очередь выбранного процесса.
5. Переход на п. 1.
Алгоритм процесса P0 :
1. В момент  (k ) окончания такта x (k ) производится идентификация
значения Q H(k ) и проверяется выполнение неравенства (1).
1.1. В случае выполнения неравенства (1) следующий такт x ( k 1) является нормальным. Следовательно, в течение такта x ( k 1) будет использоваться вектор  (k 1)   . Если такт x (k ) был коррективным, то для тех
требований, которые в момент  (k ) находятся на обслуживании, определяется время дообслуживания с учетом нового вектора интенсивностей обслуживания.
Например, предположим, что в момент tb такта x (k ) в системе S i
начало обслуживаться очередное требование с интенсивностью  i(k ) ;
te – момент окончания обслуживания этого требования с данной интенсивностью обслуживания. Если в момент  (k ) , t b   ( k )  t e , интенсивность
Si
обслуживания прибора в системе
изменится на
i( k 1) ,
то рассматриваемое требование закончит обслуживаться в системе S i
в момент  ( k )  i( k ) (te   ( k ) ) i( k 1) . Обозначим этот момент через t s . Интервал времени [ ( k ) , t s ] и есть время дообслуживания. В случае если
t s   ( k 1) , где  ( k 1) – момент окончания такта x ( k 1) , то принимается
te  t s и производится перерасчет времени дообслуживания с учетом век-
5
тора интенсивностей обслуживания, который будет использоваться в течение следующего такта x ( k  2) .
Если такт x (k ) был нормальным, то производится переход на п. 2.
1.2. Если в момент  (k ) окончания такта x (k ) неравенство (1) не выполняется, то следующий такт является коррективным. Формируется вектор  ( k 1)  ~ ( k 1) [1], значения компонент которого будут использоваться
в течение такта x ( k 1) . Для тех требований, которые в момент  (k ) находятся на обслуживании, определяется время дообслуживания с учетом нового вектора интенсивностей обслуживания.
2. Развитие программного процесса P0 задерживается на  единиц
модельного времени.
3. Переход на п. 1.
Алгоритм ведущей программы:
1. Проверяется наличие требований в очереди каждого процесса Pi1 ,
i  1,, L , при wi  1: если очередь не пуста, то ti  z , в противном случае
ti  [] . Затем проверяется наличие требований в каждом обслуживающем
приборе системы S0 , отображаемым процессом Pi 2 , i  L  1,, L  Q , при
wi  1: если прибор занят, то ti  z , в противном случае t j  [] .
2. Производится поиск процесса с минимальной временной отметкой
t min .
3. Производится корректировка модельного времени: переменной,
отображающей модельное время, присваивается значение t min , т. е.
z  t min .
4. Выбирается номер процесса, которому необходимо передать
управление: если номер процесса с минимальной временной отметкой равен 0, то управление передается процессу P0 , в противном случае управление передается процессу либо процессу Pi1 , i  1,, L , либо процессу Pi 2 ,
i  L  1,, L  Q .
5. Проверяется текущее значение модельного времени: если z  T ,
где T – заданная пользователем длительность моделирования, то производится переход на п. 1, иначе ведущая программа завершает свою работу.
Программу имитационной модели сети обслуживания с управлением
интенсивностями обслуживания можно условно разбить на следующие
функциональные блоки, которые выполняются последовательно [3]:
1. Ввод исходных данных.
6
2. Решение системы линейных уравнений     с условием нормировки
i 0 i  1, где   ( i ) , i  0,, L , – вектор относительных инL
тенсивностей потоков требований в сети.
3. Вычисление стационарных характеристик систем обслуживания
при начальном векторе   (  i ) интенсивностей обслуживания с использованием рекурсивного метода.
4. Формирование пространства состояний сети.
5. Ввод ограничения на математическое ожидание длительности реакции сети массового обслуживания для системы S0 , длительности такта
 и длительности моделирования T .
6. Формирование начального состояния имитационной модели:
а) переменной, отображающей модельное время, присваивается значение
0, т. е. z  0 ;
б) всем элементам таблицы временных отметок присваивается значение
[] ;
в) всем элементам таблицы точек возврата присваивается значение 1;
г) формирование массивов, отображающих очереди систем обслуживания
и начальное состояние сети.
7. Выполнение ведущей программы и сбор статистических данных.
8. Обработка статистических данных и вывод результатов.
Список литературы
1. Митрофанов Ю. И., Долгов В. И. Динамическое управление интенсивностями обслуживания в сетях массового обслуживания // Автоматика и вычислительная техника. 2008. № 6. С. 44–56.
2. Митрофанов Ю. И. Методология имитационного моделирования
Вычислительного центра коллективного пользования СО АН СССР // Автоматика и вычислительная техника. 1981. № 1. C. 3–14.
3. Долгов В. И. Исследование зависимости характеристик сетей массового обслуживания с управлением интенсивностями обслуживания от
топологии сетей. Саратов. 2005. Деп. в ВИНИТИ 25.05.05. № 744-В2005.
23 с.
7
Скачать