Расчеты для замкнутых систем массового обслуживания функцией VBA Excel

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

Аннотация статьи
интенсивность
среднее
диалоговое окно
вероятность
код
Ключевые слова

1. Пользовательская функция ЗАМКНУТЫЕ

Формулы финальных вероятностей и характеристик эффективности замкнутой СМО приведены в [1], сведения по VBA Excel изложены в [2, 3]. Программный код пользовательской функции ЗАМКНУТЫЕ, выполняющей вычисления по формулам для замкнутых СМО, приведен в листинге 1.

Листинг 1. Код функции ЗАМКНУТЫЕ и ее описания

Function ЗАМКНУТЫЕ(Инт_заяв, Инт_обсл, _

Каналов, Источников, P_F_T As String) As Variant

Dim n As Integer, m As Integer, p() As Single, _

L As Single, k As Single, s As Single, d As Single

w = Инт_заяв / Инт_обсл :m = Источников:n = Каналов

ReDim p(0 To m)

Dim Z(1 To 4) As Single

Dim x(1 To 2) As Single

h = Application.WorksheetFunction.Fact(m)

s = Application.WorksheetFunction.Fact(n)

p(0) = 1:L = 1

For i = 1 To m

If i < n + 1 Then

L = (m - i + 1) * w * L / i:p(0) = p(0) + L

Else

k = m – i:k = Application.WorksheetFunction.Fact(k)

p(0) = p(0) + h * w ^ i / n ^ (i - n) / k / s

End If

Next

p(0) = 1 / p(0)

For i = 1 To n

k = m – i:r = Application.WorksheetFunction.Fact(i)

k = Application.WorksheetFunction.Fact(k)

p(i) = h * w ^ i * p(0) / k / r

Next

For i = n + 1 To m

k = m - i

k = Application.WorksheetFunction.Fact(k)

p(i) = h * w ^ i * p(0) / k / n ^ (i - n) / s

Next

k = 0: s = p(0)

For i = 1 To n

If i < n Then

k = k + i * p(i):s = s + p(i)

Else

k = k + i * (1 - s)

End If

Next

Z(1) = k:Z(2) = k * Инт_обсл:d = 0

For i = 0 To m

d = d + i * p(i)

Next

Z(3) = d:L = 0

For i = n + 1 To m

L = L + i * p(i)

Next

Z(4) = L:x(1) = Z(3) / Z(2):x(2) = Z(4) / Z(2)

Select Case P_F_T

Case "P":ЗАМКНУТЫЕ = p

Case "F":ЗАМКНУТЫЕ = Z

Case "T":ЗАМКНУТЫЕ = x

End Select

End Function

Sub InstallFunc1()

Application.MacroOptions Macro:="ЗАМКНУТЫЕ",_ Description:= "При Р возвращает финальные " & _ "вероятности многоканальной замкнутой СМО, " & _

"при F - среднее число занятых каналов, " & _

"абсолютную пропускную способность, среднее " & _

"число заявок в системе и в очереди, при Т - " & _

"ср. время заявки в системе и очереди"

End Sub

2. Применение функции ЗАМКНУТЫЕ

Пример 1. Бригада из трех рабочих обслуживает 6 станков, каждый из которых отказывает с интенсивностью λ = 1 отказ в час, интенсивность ремонта μ = 2 станка в час. Найти: 1. Финальные вероятности; 2. Среднее число занятых рабочих; 3. Абсолютную пропускную способность; 4. Среднее число заявок на ремонт; 5. Среднее число заявок в очереди; 6. Среднее время пребывания заявки в системе; 7. Среднее время пребывания заявки в очереди.

Выделяется диапазон 1х7, например, А1:G1, вызывается функция ЗАМКНУТЫЕ и вводятся данные (рис. 1).

Рис. 1. 1-е применение функции ЗАМКНУТЫЕ

Команда Ctrl+Shift+Галочка (Ввод) возвращает в выделенном диапазоне значения финальных вероятностей (рис. 2).

Рис. 2. Финальные вероятности

Выполняется проверка (рис. 3).

Рис. 3. Проверка

Выделяется диапазон 1х4, например, А3:D3, вызывается функция ЗАМКНУТЫЕ, вводятся числовые данные и “F” (рис. 4).

Рис. 4. 2-е применение функции ЗАМКНУТЫЕ

Команда Ctrl+Shift+Галочка (Ввод) возвращает в выделенном диапазоне значения, требуемые в пунктах 2 – 5 условия примера 1 (рис. 5).

Рис. 5. Возвращаемые результаты пунктов 2–5

Выделяется новый диапазон 1х2, например, А5:В5, вызывается функция ЗАМКНУТЫЕ, вводятся числовые данные и “T” (рис. 6).

Рис. 6. 3-е применение функции ЗАМКНУТЫЕ

Команда Ctrl+Shift+Галочка (Ввод) возвращает в выделенном диапазоне значения, требуемые в пунктах 6, 7 (рис. 7).

Рис. 7. Возвращаемые результаты в пунктах 6–7

Пример 2. По данным примера 1 найти интенсивность обслуживания, при которой вероятность простоя равна 0,1.

В решении примера 1 (рис. 2) под μ оставляется, например, ячейка А2 и вводится 2. В данных рисунка 1 во второе поле вводится ссылка на ячейку А2. Вызывается инструмент «Подбор параметра» и ставится задача (рис. 8).

Рис. 8. Постановка задачи

Найденное значение показано в ячейке А2 рисунка 9.

Рис. 9. Результаты подбора параметра

Текст статьи
  1. Вентцель Е. С., Овчаров Л. А. Прикладные задачи теории вероятностей. – М.: Радио и связь, 1983. – 416 с.
  2. Гарнаев А. Ю. Самоучитель VBA – 2-е изд., перераб. и доп. / А. Ю. Гарнаев. – СПб.: БХВ-Петербург, 2004. – 560 с.
  3. Сдвижков О. А. Excel-VBA. Словарь-справочник пользователя / О. А. Сдвижков. – М.: Эксмо, 2008. – 224 с.
Список литературы