3. Одноканальная СМО с неограниченной очередью, простейшим потоком заявок и произвольным распределением времени обслуживания
На одноканальную СМО поступает простейший поток заявок с интенсивностью l. Время обслуживания имеет произвольное распределение с математическим ожиданием и коэффициентом вариации nm. nm — отношение среднего квадратического отклонения времени обслуживания к его математическому ожиданию.
Формулы Полячека — Хинчина:
Lоч ; Lсист
Далее, согласно формуле Литтла:
Wоч ; Wсист
4. Одноканальная СМО с произвольным потоком заявок и произвольным распределением времени обслуживания
Рассматривается одноканальная СМО с неограниченной очередью, на которую поступает произвольный поток заявок с интенсивностью l и коэффициентом вариации nl, 0 < nl < 1. Время обслуживания также имеет произвольное распределение со средним значением и коэффициентом вариации nm, 0 < nm < 1. Для этого случая точных аналитических формул получить не удается; можно только приближенно оценить среднюю длину очереди, ограничить ее сверху и снизу.
Lоч
Если входящий поток — простейший, то обе оценки — верхняя и нижняя — совпадают, и получается формула Полячека — Хинчина. Для грубо приближенной оценки средней длины очереди М. А. Файнбергом получена формула:
Lоч Lсист = Lоч + r
Средние времена пребывания заявки в очереди и в системе вычисляются через Lоч и Lсист по формуле Литтла делением на l
2.4 Математическое описание разрабатываемой модели.
На вход системы из N станций поступает поток заявок с заданными (экспоненциальным или нормальным) законом распределения времени прихода, интенсивностью входного потока l и, при нормальном распределении, коэффициентом вариации nl. Каждая станция рассматривается, как одноканальная СМО с неограниченной очередью. На каждой станции задано среднее время обслуживания и, при нормальном распределении, коэффициент вариации nm. На выходе станций поток заявок может ветвиться, также может происходить отбраковка заявок. Это изменяет интенсивность входного потока на последующих станциях.
При имитационном моделировании поэтапно имитируется (с использованием генератора случайных чисел) весь описанный процесс: моделируются входной поток и потоки обслуживаний, имитируются процессы ветвления и объединения потоков, а также процесс отбраковки заявок.
Расчетно-формульная модель такой системы может рассматриваться только в случае, когда существуют финальные вероятности. Для таких СМО финальные вероятности существуют только тогда, когда станции не перегружены, т. е для всех станций выполняется условие ()
Глава 3
Создание программы
3.1 Структура программы
Выделим основные составные части проекта: Form1 («Задание связей между рабочими станциями») — форма для создания связей между станциями, FormTabl («Создание матрицы связей») — форма для задания коэффициентов связей, FormMultiMass («Модель многофазной многопоточной системы обслуживания») — форма для ввода входных параметров, FormRes («Результаты моделирования многофазной системы обслуживания») — форма для вывода результатов моделирования, ModStation1 — основной вычислительный модуль.
На Form1 помещены следующие компоненты: Frame — для разделения формы на несколько областей, Line и Shape — для графического отображения связей между станциями, CommandButton — для обозначения станций, реализации процедуры задания связей между станциями и перехода к другим формам.
На FormTabl помещены компоненты: Label — для обозначения названий строк и столбцов матрицы связей, TextBox — для обозначения матрицы связей и ввода коэффициентов, CommandButton — для запуска проверки правильности задания коэффициентов связей и перехода к другим формам.
На FormMultiMass помещены компоненты: Frame — для разделения формы на несколько областей, TextBox — для ввода параметров, Label — для обозначения названия вводимого параметра, OptionButton — для организации выбора типа распределения, ProgressBar — для обозначения прохождения процесса моделирования, CommandButton — для начала ввода параметров, запуска процесса моделирования, перехода к другим формам и выхода из программы.
На FormRes помещены компоненты: SSTab — для разделения формы на две страницы (графиков и числовых результатов), Frame — для разделения страницы числовых результатов на несколько областей, Label — обозначения названия выводимого показателя, PictureBox — для вывода графических результатов моделирования, TextBox — для вывода числовых результатов моделирования, CommandButton — для возвращения к формам, используемым для ввода входных параметров.
3.2 Алгоритм работы программы
Рассмотрим обобщенный алгоритм работы программы, представленный укрупненными блоками, затем более детально рассмотрим реализацию каждого из блоков и приведем описание используемых переменных и функций.
Обобщенный алгоритм работы программы показан на рис. 2:
Начало
Ввод исходных данных
Н Ввод Д
корректен?
Создание массива переходов Н Расчет по
формулам?
Переход к первой станции Д
Создание входного массива на текущей станции
Расчет по имита- Расчет по
ционной модели формулам
Нужна Д
сортировка?
Сортировка Вывод рассчитанных
Н показателей
Создание выходного массива на текущей станции
Н Продолжать
работу?
Н Последняя Конец
станция?
Переход к Д
следующей Д
станции рис. 2
Программу можно поделить на две части: имитационная модель системы и расчетно-формульная модель. Для начала функционирования любой модели необходимо задать ряд входных параметров. Пользователь должен выбрать тип распределения времени прихода заявок на первую станцию (экспоненциальное — DistIndex = 0 или нормальное — DistIndex = 1) и тип распределения времени обслуживания заявок по станциям (экспоненциальное — DistIndex1 = 0 или нормальное — DistIndex1 = 1). Выбор осуществляется с помощью связанных пар компонентов OptionButton. Также пользователь задает количество рабочих станций — m (m = 1 — 10), число заявок на входе — n, среднее время между заявками во входном потоке — Ta и, при нормальном распределении на входе, стандартное отклонение (в % от среднего) — DTa (перечисленные параметры вводятся с помощью компонентов TextBox). Затем, при помощи компонентов CommandButton на форме «Задание связей между рабочими станциями», задаются связи между станциями, каждая из которых обозначаются линией, соединяющей две станции с кружком на том конце, куда связь приходит, далее, с помощью матрицы связей на форме «Создание матрицы связей», задаются весовые коэффициенты связей — pi(i). Матрица составлена из компонентов TextBox. Далее, для каждой станции, также при помощи компонентов TextBox, задается среднее время обслуживания — Ts(k), вероятность снятия заявки на выходе i-ой станции — Pr(k) и, при нормальном распределении времени обслуживания, стандартное отклонение (в % от среднего) — DTs(k).
После ввода весовых коэффициентов связей предусмотрена процедура проверки на корректность ввода. В случае некорректного задания коэффициентов, пользователю выдается сообщение об этом — MsgBox, и строка матрицы связей, в которой были заданы некорректные значения, очистится. Корректность проверяется через суммарные коэффициенты перехода: суммарный коэффициент перехода в конце каждой строки должен равняться единице. Так как коэффициенты определены типом Single, то для избежания ошибок, которые могут возникнуть в результате погрешности вычислений, производимых с переменными этого типа, проверка на равенство 1 заменяется проверкой на принадлежность интервалу (0.9999; 1.0001).
Далее, рассмотрим отдельно структуру каждой части.
0 комментариев