====== Практическая работа №2: Моделирование центра массового обслуживания ====== ===== Цель работы ===== Изучение модели обслуживания заявок с неограниченной очередью. ===== Основные теоретические положения ===== Дана следующая модель системы обслуживания, представленная на рис. 1. {{ :courses:system_analysis_modeling_and_optimization:task2.png?nolink |Рисунок 1 – Модель системы обслуживания}} Назовём потоком заявок (обслуживания) такой процесс, который генерирует (обслуживает) заявки в случайный момент времени. Соответственно, интенсивностью потока назовём среднее количество событий потока, происходящих в единицу времени. Пусть поток заявок имеет интенсивность, равную $\lambda$, а поток обслуживания -- $\mu$, причём, $\mu > \lambda$. Приведённой интенсивностью $\rho$ назовём отношение интенсивностей потоков и заявок обслуживания: $$ \rho = \frac{\lambda}{\mu}. $$ Время нахождения заявки в системе складывается из времени ожидания в очереди и среднего времени обслуживания. Среднее время обслуживания одной заявки очевидно выражается через интенсивность потока обслуживания, а также через математическое ожидание случайной величины -- времени, когда заявка в системе будет обработана: $$ \bar t_{об} = \frac1{\mu} = \int\limits_{\mathbb R}t \cdot f(t)\,dt, $$ где $f(t)$ -- плотность закона распределения случайной величины в потоке обслуживания. Отношение корня дисперсии времени обслуживания к его среднему называется коэффициентом вариации времени обслуживания: $$ \vartheta = \frac{\sigma_{t_{об}}}{\bar t_{об}} = \frac1{\bar t_{об}}\sqrt{\int_{\mathbb R}t^2 f(t)\,dt - \bar t_{об}^2}. $$ С помощью этого коэффициента вариации можно теоретически рассчитать среднее число заявок в очереди и среднее время ожидания в очереди: $$ \bar r = \frac{\rho^2(1 + \vartheta^2)}{2(1 - \rho)}, $$ $$ \bar t_{ож} = \frac{\rho^2(1 + \vartheta^2)}{2\lambda(1 - \rho)} $$ Очевидно, что среднее время ожидания в очереди может быть вычислено с помощью деления среднего числа заявок в очереди на среднюю скорость обработки (интенсивность потока заявок $\lambda$). ===== Постановка задачи ===== Необходимо смоделировать систему обслуживания заявок с неограниченной очередью с пуассоновским потоком заявок (время отправки сообщения -- случайная величина, распределенная по экспоненциальному закону) и тремя различными потоками обслуживания (время обслуживания – случайная величина, распределенная по равномерному, показательному или треугольному закону). Провести эксперимент и выяснить практические характеристики модели. Провести теоретический расчет этих параметров. Оценить результаты. ===== Порядок выполнения работы ===== - Используя пакет GPSS составить программу и провести моделирование центра массового обслуживания (ЦМО). - Провести исследования для экспоненциального закона следования заявок на входе и трех законов распределения интервалов обслуживания (равномерного, экспоненциального и треугольного). Для каждой пары законов распределения (заявок и обслуживания) провести исследование для двух значений приведенной интенсивности $\rho_1$, $\rho_2$, ($0 < \rho_i < 1$), а также для двух значений количества заявок $N$, проходящих через систему. - Получить в результате моделирования основные характеристики ЦМО и оформить их в виде таблиц: * максимальную длину очереди, QM; * среднюю длину очереди, QA; * число заявок, поступивших на обслуживание без очереди, QZ; * среднее время пребывания заявки в очереди, включая нулевые входы, QT; * среднее время пребывания заявки в очереди (без нулевых входов), QX. - Получить в результате моделирования характеристики по устройству: * коэффициент загрузки, FR; * среднее время обслуживания заявки, FT. - Получить таблицу значений количества заявок в зависимости от времени пребывания в очереди. - Рассчитать теоретические значения основных характеристик ЦМО (среднее время пребывания заявки в очереди, среднее время обслуживания заявки). - Оценить время переходного процесса по полученным теоретическим и практическим значениям среднего времени пребывания заявки в очереди (для этого провести больше опытов при разных $N$). - Провести 10 экспериментов (на одном наборе данных) для экспоненциальных законов следования заявок на входе и обслуживания, рассчитать среднее время ожидания заявки в очереди и СКО. - Сравнить теоретические и практические результаты (объяснить и обосновать), рассчитав доверительные интервалы для исследуемых характеристик СМО. ===== Варианты заданий ===== ^ № варианта ^ Значение $\rho_i$ ^^ Значение $N_i$ ^^ | 1 | 0.50 | 0.70 | 1000 | 50000 | | 2 | 0.55 | 0.90 | 1500 | 40000 | | 3 | 0.45 | 0.80 | 2000 | 55000 | | 4 | 0.40 | 0.75 | 1500 | 45000 | | 5 | 0.45 | 0.85 | 1750 | 47500 | | 6 | 0.40 | 0.70 | 1000 | 55000 | | 7 | 0.50 | 0.65 | 2000 | 50000 | | 8 | 0.60 | 0.80 | 1000 | 55000 | | 9 | 0.60 | 0.85 | 1500 | 47500 | | 10 | 0.55 | 0.75 | 1000 | 47500 | ===== Содержание отчёта ===== * Цель работы. * Краткое изложение основных теоретических понятий. * Постановка задачи с кратким описанием порядка выполнения работы. * Результаты моделирования с использованием программы. * Необходимые рисунки и таблицы с краткими выводами. * Общий вывод по проделанной работе. * Код программы. ===== Пример выполнения задания ===== 10 SIMULATE 15 RMULT 10 20 VAR1 FVARIABLE -10#LOG((RN1+1)/1000) 25 VAR2 FVARIABLE -8#LOG((RN1+1)/1000) 30 GENERATE V$VAR1 42 STR1 STORAGE 3 45 GATE SNF STR1,L1 50 ENTER STR1,1 60 SEIZE 1 75 ADVANCE V$VAR2 80 LEAVE STR1,1 90 RELEASE 1 95 TRANSFER ,L2 100 L1 SAVEVALUE 1+,1 120 L2 TERMINATE 1 125 START 10 140 SHOW X1 143 SHOW FT1 147 SHOW FR1 150 SHOW SM$STR1 160 SHOW SA$STR1 165 SHOW SC$STR1 170 SHOW ST$STR1 175 SHOW SR$STR1