Главная
АИ #16 (43)
Статьи журнала АИ #16 (43)
Расчеты для замкнутых систем массового обслуживания функцией VBA Excel

Расчеты для замкнутых систем массового обслуживания функцией 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 с.

Поделиться

2053

Сдвижков О. А. Расчеты для замкнутых систем массового обслуживания функцией VBA Excel // Актуальные исследования. 2021. №16 (43). С. 10-14. URL: https://apni.ru/article/2245-rascheti-dlya-zamknutikh-sistem-massovogo-obs

Обнаружили грубую ошибку (плагиат, фальсифицированные данные или иные нарушения научно-издательской этики)? Напишите письмо в редакцию журнала: info@apni.ru

Похожие статьи

Актуальные исследования

#49 (231)

Прием материалов

30 ноября - 6 декабря

осталось 2 дня

Размещение PDF-версии журнала

11 декабря

Размещение электронной версии статьи

сразу после оплаты

Рассылка печатных экземпляров

24 декабря