Смекни!
smekni.com

Модель бензоколонки (стр. 2 из 3)

С2(NK) - издержки обслуживания всех заявок, зависящие от числа каналов.

Разделим обе части равенства (1) на величину С1. Получим следующее выражение для расчета показателя эффективности:

,
(2)

где Ccр.отн - средняя относительная прибыль.

Величину С21 (отношение издержек обслуживания к чистой прибыли, полученной в результате обслуживания одной заявки) будем рассматривать как функцию числа каналов.

Предположим, что возможными вариантами этой функциональной зависимости являются: а - линейная зависимость; б - возрастающая зависимость с положительной 2-й производной и в - возрастающая зависимость с отрицательной 2-й производной (рис. 1).

Рис.1.Зависимости отношения С21, от NК : а - первый вариант; б - второй вариант; в - третий вариант

Выберем второй вариант. Примем в качестве конкретной зависимости издержек обслуживания от числа каналов следующую функцию:

.
(3)

Итак, для расчета показателя эффективности будем использовать зависимости (2) и (3).

В качестве критерия выбора наивыгоднейшей структуры СМО примем оптимальное число каналов, обеспечивающее максимум средней относительной прибыли:

.
(4)

где NK* - наивыгоднейшее число каналов.

2. СХЕМЫ АЛГОРИТМОВ МОДЕЛИ

В качестве языка программирования для разработки компьютерной модели рассматриваемого процесса выбран VisualBasic 5.0.

Общий вид (макет) стартовой формы показан на рис. 2. Видно, что она включает ряд объектов управления, среди которых имеются три командные кнопки: «Расчет», «Очистка» и «Выход». Это обстоятельство определяет структуру алгоритма процедур обработки прерываний, показанную на рис. 3.

После нажатия кнопки «Start» активизируется стартовая форма. С этого момента программа находится в режиме ожидания действий пользователя.

Цифрой 1 (рис.3) обозначено действие, заключающееся в корректировке исходных данных. Необходимые изменения вносятся в соответствующие текстовые поля.

Цифрой 2 обозначено действие, заключающееся в нажатии (с помощью мыши) кнопки «Расчет». В процедуре, связанной с этой кнопкой, оператор 3 осуществляет перевод исходных данных из символьной формы в числовую. Затем оператор 4 обращается к модулю общего назначения «Model2». Схема алгоритма этого модуля приведена на рис. 4.

Рис. 2.Макет стартовой формы:

1 - текстовые поля; 2 - командные кнопки

После окончания работы модуля и выдачи на экран результатов моделирования работа процедуры, связанной с кнопкой «Расчет», заканчивается. Программа вновь переходит в режим ожидания действий пользователя.

Цифрой 5 на схеме (рис.3) обозначено действие пользователя, заключающееся в нажатии кнопки «Очистка». В процедуре, связанной с ней, производится очищение текстового поля для вывода результата моделирования. Затем обычно производятся изменение исходных данных и проведение новых расчетов с использованием кнопки «Расчет».

Рис.3. Схема алгоритма процедур обработки прерываний

Цифрой 7 на схеме обозначено действие пользователя, заключающееся в нажатии кнопки «Выход». В результате работа программы прекращается.

Оператор 1 на рис. 4 обнуляет глобальную переменную SNобс - суммарное число обслуженных заявок. Оператор 2 активизирует окно формы № 2 и делает неактивным окно формы № 1. Оператор 3 начинает циклический перебор случайных реализаций. Оператор 4 выводит на экран (в окно формы № 2) счетчик числа рассчитанных реализаций.

Оператор 5 в начале каждой случайной реализации обнуляет локальные переменные, к которым относятся: число заявок, поступающих в одной реализации Nz,число обслуженных заявок в каждом из трех каналов Nобс1, Nобс2, Nобс3, начальные значения времени освобождения 1-го, 2-го и 3-го каналов Tок1, Tок2 и Tок3.

Рис.4. Схема алгоритма модуля «Model2»

Оператор 6 обращается к автономной процедуре формирования потока заявок. В результате работы этой процедуры формируется массив значений времени

з(1), Тз(2), Тз(3),…, Тз(Nзi)],

где Nзi-общее число поступивших заявок для i-й случайной реализации.

Оператор 7 является началом цикла обслуживания заявок. Операторы 8, 9, 10 и 11 производят выбор номера канала, который характеризуется наименьшим значением времени освобождения от обслуживания заявки.

Оператор 12 обращается к автономной процедуре обслуживания очередной заявки. На выходе этой процедуры определяется число обслуженных заявок в выбранном канале Nобс(Jmin).

Оператор 13 служит для расчета суммарного числа обслуженных заявок по рекурсивной формуле

SNобс = SNобс + Nобс.1 + Nобс.2 + Nобс.3.

После окончания цикла случайных реализаций оператор 14 возвращает свойство активного окна форме № 1. Оператор 15 рассчитывает и выводит на экран значение выходной переменной - средней относительной прибыли по формуле

.

Схема алгоритма процедуры формирования заявок показана на рис. 5.

Оператор 1 устанавливает на нуль модельное время Т. Оператор 2 является началом цикла формирования заявок. Оператор 3 обращается к датчику случайных чисел, который вырабатывает возможное значение случайной величины z, равномерно распределенной в интервале (0,1).

Оператор 4 определяет возможное значение случайной величины времени поступления очередной заявки при условии, что среднее время между соседними заявками равно Тз.cp. Оператор 5 проверяет условие окончания процесса формирования заявок.

Оператор 6 подсчитывает число поступивших заявок, помещает время поступления каждой заявки в специальный массив и изменяет модельное время Т.

Схема алгоритма процедуры обслуживания заявок показана на рис. 6.

Оператор 1 обнуляет время ожидания начала обслуживания заявки Tож и присваивает времени начала обслуживания Tн время поступления очередной заявки T3(J3).

Рис.5. Схема алгоритма формирования заявок

Оператор 2 производит проверку занятости канала. Начальное значение времени освобождения канала Ткоj приравнивается нулю в главном модуле в блоке обнуления локальных переменных.

Если канал занят, то оператор 3 определяет время ожидания Tож как разность времени освобождения канала Ткоjи времени поступления заявки T3(J3). Оператор 4 проверяет условие, что время ожидания Тож превышает допустимое Тож.max. Если это условие выполняется, то управление передается на конец процедуры и заявка остается необслуженной.

Оператор 5 служит для коррекций времени начала обслуживания заявки. Оно теперь должно равняться времени освобождения канала Ткоj. Оператор 6 обращается к датчику случайных чисел с равномерным распределением в интервале (0,1), который вырабатывает возможное значение случайной величины z. Оператор 7 определяет возможное значение времени окончания обслуживания заявки Тк.

Оператор 8 проверяет условия окончания периода обслуживания, а оператор 9 фиксирует тот факт, что данный канал будетзанят до конца рабочего дня. Оператор 10 увеличивает на единицу число обслуженных заявок в j-мканале и фиксирует время освобождения канала.

Рис. 6. Схема алгоритма процедуры обслуживания заявок

3. ПРИМЕР РЕШЕНИЯ ЗАДАЧИ МОДЕЛИРОВАНИЯ

Рассмотрим пример решения задачи исследования системы массового обслуживания с помощью разработанной алгоритмической модели. Выберем следующие входные параметры:

• среднее время между заявками Тз.ср = 1 ч;

• максимальное время ожидания Тож.max. = 0,25 ч;

• число случайных реализаций Np= 5000.

Варьируемые переменные:

• среднее время обслуживания заявок Тобс.ср= 0,5; 1; 2; 4 ч;

• число каналов обслуживания NK= 1; 2; 3.

Результаты расчетов приведены в табл. 1.

Таблица 1

Nвар NK Тобс.ср Cотн.ср
1 1 0,5 6,27
2 2 0,5 7,12
3 3 0,5 5,53
4 1 1 4,24
5 2 1 5,83
6 3 1 4,74
7 1 2 2,33
8 2 2 3,61
9 3 2 2,94
10 1 4 0,95
11 2 4 1,40
12 3 4 0,65

Следовательно, при выбранных исходных данных, в частности при среднем времени между соседними заявками, равном 1 ч, наибольшая прибыль достигается при числе каналов NK=2.

Проведенные исследования показали, что оптимальное число каналов зависит от соотношения между величинами среднего времени между соседними заявками и среднего времени обслуживания (рис. 7).