Алгоритм Бузена
В теории массового обслуживания , дисциплине математической теории вероятностей , алгоритм Бьюзена (или алгоритм свертки ) представляет собой алгоритм вычисления константы нормализации G( N ) в теореме Гордона-Ньюэлла . Этот метод был впервые предложен Джеффри П. Бьюзеном в его докторской диссертации 1971 года. [ 1 ] и впоследствии опубликовано в рецензируемом журнале в 1973 году. [ 2 ] Вычисление G( N ) необходимо для вычисления стационарного распределения вероятностей замкнутой сети массового обслуживания. [ 3 ]
Выполнение простого вычисления нормализующей константы требует перечисления всех состояний. Для закрытой сети с N циркулирующими клиентами и M объектами обслуживания G( N ) представляет собой сумму отдельные члены, причем каждый член состоит из M факторов, возведенных в степени, сумма которых равна N . Алгоритм Бьюзена вычисляет G( N ), используя только NM умножения и сложения . Это радикальное улучшение открыло возможность применения теоремы Гордона-Ньюэлла к моделям реальных компьютерных систем, а также гибких производственных систем и других случаев, когда в сетях взаимосвязанных сервисных предприятий могут образовываться узкие места и очереди. [ 4 ] Значения G(1), G(2) ... G( N -1), которые можно использовать для расчета других важных интересующих величин, вычисляются как побочные продукты алгоритма.
Проблема с настройкой
[ редактировать ]Рассмотрим закрытую сеть массового обслуживания с M объектами обслуживания и N циркулирующими клиентами. Предположим, что время обслуживания клиента в пункте обслуживания i задано экспоненциально распределенной случайной величиной с параметром µ i и что после завершения обслуживания в пункте обслуживания i клиент перейдет к пункту обслуживания j с вероятностью p ij . [ 3 ]
Позволять — стационарная вероятность того, что количество клиентов в пункте обслуживания i равно n i для i = 1, 2, ..., M . следует Из теоремы Гордона–Ньюэлла , что
....
Этот результат обычно записывают более компактно как
Значения X i определяются путем решения
G ( N ) — нормализующая константа, выбранная так, чтобы сумма всех значения равен 1. Алгоритм Бьюзена представляет собой первую эффективную процедуру вычисления G( N ). [ 2 ] [ 4 ]
Описание алгоритма
[ редактировать ]Отдельные члены, которые необходимо сложить вместе для вычисления G( N ), имеют следующую форму:
.... . Обратите внимание, что этот набор терминов можно разделить на две группы. В первую группу входят все члены, у которых показатель степени больше или равно 1. Это означает, что возведенное в степень 1, можно вычесть из каждого из этих членов.
После разложения , возникает неожиданный результат: модифицированные термины в первой группе идентичны терминам, используемым для вычисления константы нормализации для той же сети с одним удаленным клиентом. Таким образом, сумму слагаемых первой группы можно записать как « X M раз G( N -1)». Это понимание обеспечивает основу для разработки алгоритма. [ 4 ]
Далее рассмотрим вторую группу. Показатель X M для каждого члена этой группы равен нулю. В результате объект обслуживания M фактически исчезает из всех членов этой группы (поскольку он в каждом случае уменьшается в 1 раз). общее количество клиентов на остальных объектах обслуживания М -1 остается равным N. В результате Во вторую группу входят все возможные расположения этих N клиентов.
Чтобы точно выразить эту концепцию, предположим, что X 1 , X 2 , … X M были получены для данной сети с M сервисными средствами. Для любых n ≤ N и m ≤ M определите g( n,m ) как нормализующую константу для сети с n клиентами, m объектами обслуживания (1,2, … m ) и значениями X 1 , X 2 , … X m , которые соответствуют первым m членам исходной последовательности X 1 , X 2 , … X M .
Учитывая это определение, сумму членов второй группы теперь можно записать как g( N , M -1).
Отсюда сразу же следует, что « X M раз G( N -1)», сумму слагаемых первой группы, можно переписать как « X M раз g( N -1, M )».
Кроме того, нормализующую константу G( N ) в теореме Гордона-Ньюэлла теперь можно переписать как g( N , M ).
Поскольку G( N ) равна сумме членов первой и второй групп,
G( N ) = g( N , M ) = X M g( N -1, M ) + g( N , M -1)
очевидно, существует для любого промежуточного значения n от 1 до N и для любого промежуточного значения m от 1 до M. Это же рекуррентное соотношение ,
Отсюда следует, что g( n,m ) = X m g( n -1, m ) + g( n,m -1). Алгоритм Бьюзена — это просто итеративное применение этого фундаментального рекуррентного соотношения вместе со следующими граничными условиями.
g(0, m ) = 1 для m = 1, 2, … M
г( п ,1) знак равно ( Икс я ) н для n = 0, 1, … N
Предельные распределения, ожидаемое количество клиентов
[ редактировать ]Теорема Гордона-Ньюэлла позволяет аналитикам определить стационарную вероятность, связанную с каждым отдельным состоянием закрытой сети массового обслуживания. Эти отдельные вероятности затем необходимо сложить вместе, чтобы оценить другие важные вероятности. Например, P( n i ≥ k ), вероятность того, что общее количество клиентов в сервисном центре i больше или равно k , должна суммироваться по всем значениям n i ≥ k и для каждого такого значения n i , всеми возможными способами оставшиеся N – n i клиентов могут быть распределены по другим центрам обслуживания M -1 в сети.
Многие из этих предельных вероятностей можно вычислить с минимальными дополнительными усилиями. В этом легко убедиться для случая P( n i ≥ k). Очевидно, что X i необходимо возвести в степень k или выше в каждом штате, где число клиентов в сервисном центре i больше или равно k . Таким образом, X i к можно вычесть из каждой из этих вероятностей, оставив набор модифицированных вероятностей, сумма которых определяется выражением G( N -k)/G( N ). Это наблюдение приводит к следующему простому и весьма эффективному результату:
п ( п я ≥ k ) знак равно ( Икс я ) к Г( Н - к )/Г( Н )
Затем это соотношение можно использовать для расчета предельных распределений и ожидаемого количества клиентов в каждом пункте обслуживания.
Ожидаемое количество клиентов в сервисном центре i определяется выражением
Эти характеристики интересующих величин в терминах G( n ) также принадлежат Бьюзену. [ 2 ]
Выполнение
[ редактировать ]Предполагается, что X m были вычислены путем решения соответствующих уравнений и доступны в качестве входных данных для нашей программы. Хотя g( n,m ) в принципе является двумерной матрицей, ее можно вычислить по столбцам, начиная с верхней части крайнего левого столбца и спускаясь по каждому столбцу до самого низа, прежде чем перейти к следующему столбцу справа. . Процедура использует один вектор-столбец C для представления текущего столбца g .
Первый цикл алгоритма ниже инициализирует вектор-столбец C[n] так, что C[0] = 1 и C(n) = 0 для n≥1. Обратите внимание, что C[0] остается равным 1 на всех последующих итерациях.
Во втором цикле каждое последовательное значение C(n) для n≥1 устанавливается равным соответствующему значению g( n,m) по мере продвижения алгоритма вниз по столбцу m. Это достигается путем установки каждого последующего значения C(n) равным:
g( n,m-1 ) плюс X m раз g( n-1,m ).
Обратите внимание, что g( n,m-1 ) — это предыдущее значение C(n), а g( n-1,m ) — текущее значение C(n-1).
C[0] := 1
for n := 1 step 1 until N do
C[n] := 0;
for m := 1 step 1 until M do
for n := 1 step 1 until N do
C[n] := C[n] + X[m]*C[n-1];
По завершении окончательные значения C[n] соответствуют столбцу M в матрице g( n,m ). Таким образом, они представляют собой искомые значения G (0), G (1),..., G (N) . [ 2 ]
Ссылки
[ редактировать ]- ^ Бюзен, JP (1 августа 1971 г.). DTIC AD0731575: Модели сетей массового обслуживания при мультипрограммировании .
- ^ Перейти обратно: а б с д Бюзен, JP (1973). «Вычислительные алгоритмы для закрытых сетей массового обслуживания с экспоненциальными серверами» (PDF) . Коммуникации АКМ . 16 (9): 527–531. дои : 10.1145/362342.362345 . S2CID 10702 . Архивировано из оригинала (PDF) 13 мая 2016 г. Проверено 15 апреля 2006 г.
- ^ Перейти обратно: а б Гордон, WJ; Ньюэлл, Г. Ф. (1967). «Закрытые системы массового обслуживания с экспоненциальными серверами». Исследование операций . 15 (2): 254. doi : 10.1287/opre.15.2.254 . JSTOR 168557 .
- ^ Перейти обратно: а б с Деннинг, Питер Дж. (24 августа 2016 г.). «Переосмысление случайности: интервью с Джеффом Бьюзеном, часть I» . Вездесущность . 2016 (август): 1:1–1:17. дои : 10.1145/2986329 .