ИМИТАЦИОННАЯ МОДЕЛЬ СЕТИ МАССОВОГО ОБСЛУЖИВАНИЯ С ДИНАМИЧЕСКИМ УПРАВЛЕНИЕМ ИНТЕНСИВНОСТЯМИ ОБСЛУЖИВАНИЯ В.И. Долгов Саратовский государственный университет, Саратов, Россия 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