Фосс С.Г. "Стохастические системы и сети обслуживания"
Содержание
Системы и сети очередей
В этом параграфе мы обсудим несколько примеров систем и сетей очередей.
Начнем с рассмотрения так называемой одноканальной системы обслуживания.
В системе находится один прибор (сервер).
Вызовы поступают в систему группами случайного объема через единичные интервалы
времени
(пусть Xn і 0 означает количество вызовов, поступающих
в момент времени n = 1,2, ј; все возможные значения Xn являются целыми
числами).
Все вызовы нумеруются и обслуживаются в порядке поступления (внутри каждой
группы вызовы нумеруются в произвольном порядке). Как только сервер
заканчивает обслуживание некоторого вызова, он немедленно начинает
обслуживать следующий (если вызовы в системе есть), а обслуженный вызов
покидает систему. Сервер может простаивать только тогда, когда в системе нет
вызовов.
Предположим, простоты ради, что все вызовы имеют одно и то же
неслучайное время обслуживания
b > 0. Будем считать, что случайные
величины Xn независимы и одинаково распределены. Следовательно,
они имеют одно и то же математическое ожидание (среднее), которое обозначим
через a = M(Xn) > 0. В начальный момент времени n = 0 вызовы в
системе отсутствуют.
Обозначим через Wn количество "работы", скопившейся в системе к
моменту времени n (то есть суммарное время, нужное для обслуживания имеющихся
в наличии вызовов). Ясно, что W1 = bX1 и при всех n = 2,3, ј справедливы
рекуррентные соотношения
Wn = bXn +
max (0, Wn-1 - 1),
где max(x,y) означает наибольшее из чисел x,y.
Величины Wn являются, вообще говоря, случайными, то есть могут принимать различные значения с
положительными вероятностями.
Естественно считать, что система работает "стабильно", если с ростом времени n распределения
случайных величин Wn остаются ограниченными -
в некотором смысле, но в каком? Можно,
к примеру, назвать систему стабильной, если
найдется некоторое число K, при котором неравенство Wn Ј K выполняется всегда
(т.е. при каждом n с вероятностью единица). Но
для выполнения этого условия необходимо,
чтобы с вероятностью единица имело место неравенство
bX1 Ј 1.
(3.2)
Действительно, если это не так и P(bX1 > 1) > 0, то
найдется целое число l > 0 такое, что b l > 1 и P(X1 = l ) > 0. Обозначим эту вероятность через p, а
разность b l -1 через d.
Тогда при каждом n вероятность одновременного наступления событий
{X1 = l }, {X2 = l }, ј, {Xn = l }
равняется произведению вероятностей
(в силу независимости случайных величин), т.е. просто pn.
Но при этом выполняется равенство Wn = n d. Для любого
числа K можно выбрать номер n так, чтобы n d > K. И при таком n вероятность того, что значение Wn
превосходит K, является положительной - значит, система не может быть стабильной в предложенном выше
смысле.
Отметим, что предположение (3.2) является
сильно ограничительным и малореалистичным, так как на практике возможны резкие (хотя и редкие)
колебания входного потока во времени (так называемые "пиковые нагрузки"),
т.е. величины Xn могут принимать большие значения - но с маленькими
вероятностями. Поэтому представляется разумным следующее (более "широкое") определение
стабильности.
Система обслуживания является стабильной, если для любого (как угодно
малого) числа e найдется такое число K, что при всех n
P(Wn Ј K) і 1-e,
и нестабильной - в противном случае. Это определение остается таким же и для любой другой системы
обслуживания, если под Wn понимать (более общо) количество работы, скопившейся к моменту n на всех серверах
системы.
Оказывается, что для того, чтобы определить, является одноканальная система стабильной или нет, не требуется
знания распределения случайных величин Xn - достаточно лишь знать значение их среднего a.
Более точно, имеет место следующая теорема
Теорема 3.1.Одноканальная система обслуживания является стабильной приab < 1 и нестабильной приab > 1. В случаеab = 1 система является стабильной тогда и только тогда, когда величиныXnявляются вырожденными, т.е.P (Xn = a) = 1.
Поясним, как доказывается эта теорема. Начнем со случая ab = 1.
Если все Xn вырождены (и совпадают
с a), то Wn є 1 при всех n. Поэтому система стабильна.
В случае невырожденных случайных величин
заметим, что при каждом n
Wn+1 і Wn-1 і bXn - 1 + Wn-1 -1.
С использованием индукции, получаем неравенство
Wn+1 і (bXn-1) + (bXn-1-1) + ј+ (bX1-1).
Так как b = 1 / a, то правая часть этого неравенства совпадает с
(Sn - na) / a,
где Sn = X1+ ј+ Xn.
Поэтому для любого числа c > 0
P (Wn+1 > c Цn ) і P
ж з
и
Sn - naa
> c Цn
ц ч
ш
=
= P
ж з
и
Sn - na sЦn
>
ca s
ц ч
ш
» 1 - F
ж з
и
ca s
ц ч
ш
.
Так как число q є 1 - F(ca / s) положительно, то и
P(Wn+1 > c Цn ) » q > 0
при всех достаточно больших n. А число cЦn можно сделать
как угодно большим. Значит,
система не может быть стабильной.
Рассмотрим случай ab > 1. Если случайные величины Xn вырождены, то величины Wn = ab + (n-1) (ab-1)
неограниченно растут с ростом n. Если же Xn невырождены, то, повторяя ранее изложенные рассуждения,
мы получаем неравенство:
Wn+1 >
Sn - naa
,
из которого следует нестабильность системы.
В случае ab < 1 утверждение Теоремы 3.1 доказывается значительно сложнее, и мы его приводить не будем.
Опишем лишь один полезный прием, используемый при доказательстве и называемый часто
"правилом насыщения" (saturation rule). Предположим, что к некоторому
моменту времени n в системе
скопилось очень много вызовов (система "насыщена" вызовами).
Тогда, начиная с момента n, в течение длительного времени сервер обслуживает
только имеющиеся вызовы - независимо от того, что еще в систему поступает. Допустим, что так сервер работает в
течение времени T. За это время обслуживается приблизительно
T/b вызовов (то есть сервер обслуживает
приблизительно 1/b
вызовов за единицу времени, эту дробь естественно назвать интенсивностью, или
скоростью
обслуживания), а поступает
Xn+1 + Xn+2 + ј + Xn+T вызовов. По закону больших чисел,
Xn+1 + Xn+2 + ј + Xn+TT
» a,
то есть "интенсивность" поступления вызовов равна a. И так как
a < 1/b
(в насыщенной системе скорость поступления вызовов
меньше скорости обслуживания), то кажется интуитивно очевидным,
что величины Wn не могут неограниченно расти, и система стабильна.
И действительно, как показывает более точный и строгий анализ, для одноканальной системы
использование правила насыщения оказывается корректным.
Приведем еще два примера систем, где условия
стабильности находятся аналогичным образом.
Пример 3.1.Одноканальная система с двумя типами вызовов.
В систему с одним сервером поступают вызовы двух типов:
в каждый момент времени n приходят Xn(1) вызовов первого типа и Xn(2) - второго типа.
Для каждого i = 1,2, случайные величины
X1(i), X2(i), ј независимы и
одинаково распределены со средним
ai = M(X1(i)).
Время обслуживания каждого вызова первого типа равно b1, второго типа - b2.
Вызовы обслуживаются на сервере в порядке, задаваемом с помощью некоторого правила (дисциплины) обслуживания.
Наиболее известные варианты дисциплин:
Дисциплина первый пришел - первый обслуживается (first come first served, FCFS). При этой дисциплине сначала (в произвольном
порядке) обслуживаются вызовы, пришедшие в момент времени n = 1, затем вызовы, пришедшие в момент n = 2, и т.д.
Приоритетная дисциплина. Вызовы первого типа имеют приоритет перед вызовами второго типа. Это означает, что вызовы
разных типов образуют две разные очереди, и в каждый момент, когда сервер заканчивает обслуживание какого-то вызова, на обслуживание
направляется вызов первого типа (первый вызов из первой очереди), и только если первая очередь пуста, то разрешается обслуживание вызову
второго типа.
Справедлива следующая
Теорема 3.2.Обозначим
r = a1b1+a2b2.
Каков бы ни был порядок (дисциплина) обслуживания вызовов,
одноканальная система с двумя типами вызовов является стабильной при r < 1 и нестабильной при
r > 1. В случае r = 1 система является стабильной тогда и только тогда, когда величиныXn(1)иXn(2)являются вырожденными, т.е.
P(Xn(1) = a1) = 1
и
P(Xn(2) = a2) = 1.
Доказательства теорем 3.1 и 3.2 используют одни и те же
рассуждения.
Пример 3.3.Открытая сеть Джексона с двумя серверами и одним типов вызовов. Пусть в сети находятся два сервера,
время обслуживания любого вызова на первом неслучайно и равно b1, а на втором - b2. В каждый момент времени n = 1,2, ј
в сеть извне поступает Xn вызовов, причем случайные величины X1, X2, ј независимы и одинаково распределены со средним a.
Каждый вызов (независимо от других) с вероятностью s1 встает в очередь к первому серверу и с вероятностью s2 = 1-s1 - ко второму.
Любой вызов, обслуженный на первом сервере, либо покидает сеть (с вероятностью r1,0), либо встает в очередь
ко второму (с вероятностью r1,2). Здесь r1,0+r1,2 = 1. Аналогично,
после обслуживания на втором сервере вызов с вероятностью r2,0 покидает сеть и с вероятностью r2,1 переходит в очередь к первому
серверу (где r2,0+r2,1 = 1). Для того, чтобы вызовы имели возможность покинуть сеть,
требуется, чтобы сумма r1,0+r2,0 была положительной.
Посчитаем, какое число раз в среднем любой вызов посетит первый сервер (нам
нужно найти M(n1), где n1 - случайное число посещений).
В случае, когда вызов сразу поступил в очередь к первому серверу, вероятность q того, что он снова вернется на этот сервер хотя бы раз
(другими словами, посетит этот сервер хотя бы два раза), равна
вероятности того, что он переходит с первого сервера на второй и затем - со второго на первый. Так как эти события независимы, то
q = r1,2 · r2,1 < 1.
Аналогично, вероятность того, что
вызов вернется на первый сервер хотя бы m раз, если он начал обслуживание
с этого сервера, равна qm.
Поэтому среднее число посещений равняется
1 + q + q2 + ј = 1/(1-q).
Если предположить, что сначала вызов поступает на второй сервер, то вероятность того, что он посетит первый сервер хотя бы раз, равна
r2,1, хотя бы два раза - r2,1q, хотя бы три - r2,1q2 и т.д. Следовательно, в этом случае среднее число посещений первого
сервера равно
r2,1 + r2,1q + r2,1q2 + ј = [1/(1-q)] r2,1.
И так как первый случай осуществляется с вероятностью s1, а второй - с вероятностью s2, то
M(n1) = s1
1 1-q
+ s2
1 1-q
r2,1 =
1 1-q
(s1+ s2r2,1).
Симметрично, среднее число M(n2)
посещений одним вызовом второго сервера равно
[1/(1-q)] (s2+s1r1,2).
Для того, чтобы понять, при каких условиях сеть работает стабильно, воспользуемся снова правилом насыщения.
Но теперь нам удобнее рассуждать в терминах не числа вызовов, а количества "работы".
Каждый вызов посетит в среднем первый сервер M(n1) раз. Значит, он в среднем "приносит" на этот сервер количество
работы, равное b1M(n1). За единицу времени в систему поступает в среднем a вызовов. Значит, все они вместе приносят
на первый сервер количество работы ab1M(n1). Обозначим это число через r1. Если первый сервер "насыщен",
то он постоянно занят (работает с интенсивностью
единица). Поэтому для стабильности нужно, чтобы выполнялось условие
r1 Ј 1.
Аналогично, требуется и второе условие:
r2 є ab2M(n2) Ј 1.
Поэтому неудивительно, что имеет место следующая теорема.
Теорема 3.3.Открытая сеть Джексона с двумя серверами может быть стабильной только в следующих случаях:
max (r1, r2 ) < 1;
случайная величинаX1вырождена,
max ( r1, r2 ) = 1 и
выполнено одно из условий:
либоr1,0 = r2,0 = 1,
либоr1,0 = 1, r2,0 = 0,
либоr1,0 = 0, r2,0 = 1.
Теорема 3.2 обобщается естественным образом на случай любого
числа вызовов, а теорема 3.3 - любого числа серверов.
До конца 80-х годов у многих ученых,
работающих в области теории систем обслуживания, была надежда на то, что
"правило насыщения" является универсальным, т.е. с его помощью всегда
можно
найти верные условия стабильности систем обслуживания.
Однако в 1990 году Р.П.Кумар привел относительно
простой пример детерминированной (неслучайной) системы,
в которой условия стабильности
существенно отличаются от получаемых с помощью этого правила.
Затем А.Л.Столяр и А.Н.Рыбко (1992) построили пример системы
со случайными характеристиками, имеющей те же свойства.
Эти и другие примеры привели к развитию так называемой "теории
жидкостной аппроксимации", позволяющей
анализировать условия стабильности случайных систем
обслуживания с помощью
вспомогательных динамических "жидкостных" моделей,
удовлетворяющих ряду интегро-дифференциальных уравнений.