Выбор показателя и критерия эффективности
В качестве показателя эффективности работы системы целесообразно выбрать среднюю прибыль, определяемую по формуле
, (1)
где – чистая прибыль, полученная в результате обслуживания одной заявки; C2(NK) - издержки обслуживания всех заявок, зависящие от числа каналов.
Разделим обе части равенства (1) на величину С, Получив следующее выражение для расчета показателя эффективности:
, (2)
где – средняя относительная прибыль.
Величину (отношение издержек обслуживания к чистой прибыли, полученной в результате обслуживания одной заявки) будем рассматривать как функцию числа каналов.
Предположим, что возможными вариантами этой функциональной зависимости являются: а — линейная зависимость: б — возрастающая зависимость с положительной 2-й производной и в — возрастающая зависимость с отрицательной 2-й производной (рис. 1).
Рис. 1. Зависимость отношения от Nk:
а – первый вариант; б – второй вариант; в – третий вариант
Выберем второй вариант. Примем в качестве конкретной зависимости издержек обслуживания от числа каналов следующую функцию:
. (3)
Итак, для расчета показателя эффективности будем использовать зависимости (2) и (3).
В качестве критерия выбора наивыгоднейшей структуры СМО примем оптимальное число каналов, обеспечивающее максимум средней относительной прибыли:
, (4)
где – наивыгоднейшее число каналов.
Схемы алгоритмов модели
В качестве языка программирования для разработки компьютерной модели рассматриваемого процесса выбран Visual Basic 6.0.
Общий вид стартовой формы показан на рис. 2. Видно, что она включает ряд объектов управления, среди которых имеются командные кнопки «Расчет», «Очистка» и «Выход». Это обстоятельство определяет структуру алгоритма процедур обработки прерываний, показанную на рис. 3.
После нажатия кнопки «Start» активизируется стартовая форма. С этого момента программа находится в режиме ожидания действий пользователя.
После нажатия кнопки «Расчет» производится вычисление показателя эффективности при заданных исходных данных.
Рис. 2. Макет стартовой формы
1 – текстовые поля; 2 – командные кнопки
При нажатии кнопки «Очистка» производится очищение текстового поля для вывода результата моделирования. Затем может быть произведено изменение исходных данных и проведение новых расчетов с использованием кнопки «Расчет».
Рис.3. Укрупненная схема алгоритма процедур обработки объектов
При нажатии кнопки «Выход» работа программы прекращается.
С кнопкой «Расчет» связана процедура, которая выполняе1 следующие действия.
Оператор 1 осуществляет перевод исходных данных из символьной формы в числовую. Оператор 2 обнуляет глобальную переменную SNОБС — суммарное число обслуженных заявок. Оператор 3 начинает циклический перебор случайных реализаций. Оператор 4 в начале каждой случайной реализации обнуляет локальные переменные, к которым относятся: число заявок, поступающих в одной реализации NZ число обслуженных заявок в каждом из имеющихся каналов NОБС.j (j = 1,Nk), начальные значения времени освобождена каналов
ТОКj (j = 1,Nk). Оператор 5 обращается к автономной процедуре формирования потока заявок. В результате работы этой процедуры формируется массив значений времен:
где N3i — общее число поступивших заявок для i-й случайной реализации;
Оператор 5 является началом цикла обслуживания заявок. Оператор 7 производит выбор номера канала, который характеризуется наименьшим значением времени освобождения от обслуживания заявки.
Оператор 8 обращается к автономной процедуре обслуживания очередной заявки. На выходе этой процедуры определяется число обслуженных заявок в выбранном канале NОБС(Jmin).
Оператор 9 служит для расчета суммарного числа обслуженных заявок во всех каналах и всех случайных реализациях.
После окончания цикла случайных реализаций оператор 10 выводит на экран значение выходной переменной – средней относительной прибыли по формуле
.
Схема алгоритма процедуры формирования заявок показана на рис. 4.
Рис. 4. Схема алгоритма процедуры формирования заявок
Оператор 1 устанавливает на нуль модельное время Т. Оператор 2 является началом цикла формирования заявок. Оператор 3 обращается к датчику случайных чисел, который вырабатывает возможное значение случайной величины z, равномерно распределенной в интервале (0,1).
Оператор 4 определяет возможное значение случайной величины времени поступления очередной заявки при условии, что среднее время между соседними заявками равно ТЗ.СР. Оператор 5 проверяет условие окончания процесса формирования заявок.
Оператор 6 подсчитывает число поступивших заявок, помещает время поступления каждой заявки в специальный массив и изменяет модельное время Т.
Схема алгоритма процедуры обслуживания заявок показа на рис. 5.
Рис. 5. Схема алгоритма процедуры обслуживания заявок
Оператор 1 обнуляет время ожидания начала обслуживания заявки Тож и присваивает времени начала обслуживания Тн время поступления очередной заявки Г3(j3).
Оператор 2 производит проверку занятости канала. Начальное значение времени освобождения канала TKOj приравнивается нулю в главном модуле в блоке обнуления локальных переменных.
Если канал занят, то оператор 3 определяет время ожидания Тож как разность времени освобождения канала TKOj и времени поступления заявки T3(j3). Оператор 4 проверяет условие, что время ожидания Tож не превышает допустимого Тож mах. Если это условие не выполняется, то управление передается на конец процедуры и заявка остается необслуженной.
Оператор 5 служит для коррекции времени начала обслуживания заявки. Оно теперь должно равняться времени освобождения канала TKOj. Оператор 6 обращается к датчику случайных чисел с равномерным распределением в интервале (0,1), который вырабатывает возможное значение случайной величины z. Оператор 7 определяет возможное значение времени окончания обслуживания заявки Тк.
Оператор 8 проверяет условия окончания периода обслуживания, а оператор 9 фиксирует тот факт, что данный канал будет занят до конца рабочего дня. Оператор 10 увеличивает на единицу число обслуженных заявок в j-м канале и фиксирует время освобождения канала.
Пример решения задачи моделирования
Рассмотрим пример решения задачи исследования системы массового обслуживания с помощью разработанной имитационной модели. Выберем следующие входные параметры:
• среднее время между заявками – Т3 ср = 9 мин;
• диапазон времени обслуживания – DTo6c = 12 мин;
• максимальное время ожидания – Тож.тах = 30 мин;
• период функционирования –Ткон = 5 ч;
• число случайных реализаций – Np= 5000 .
Варьируемые переменные:
• средние времена обслуживания заявок – Гобс ср = 1; 11/2; 2; 3; 5 мин;
• число каналов обслуживания – NK = 1; 2; 3; 4; 5.
Результаты расчетов приведены на рис. 6.
Рис. 6. Зависимость СОТН.СР от числа каналов NК и среднего времени
между заявками ТЗ.СР
При выбранных исходных данных оптимальное число каналов, при котором достигается наибольшая прибыль, увеличивается с уменьшением среднего времени между заявками.
Приложение 2
ПРОГРАММА