КМ_РГР_ПРО-328_ЯмалтдиноваАА. Компьютерное моделирование
![]()
|
Министерство науки и высшего образования РФ Федеральное государственное бюджетное образовательное учреждение высшего образования «Уфимский университет науки и технологий» Факультет информатики и робототехники Кафедра вычислительной математики и кибернетики Расчетно-графическая работа «Имитация СМО с одним устройством» по дисциплине «Компьютерное моделирование» Выполнил: студент группы ПРО-328 Ямалтдинова А. А. Проверила: Валеева А. Ф. Уфа 2023 ОглавлениеПостановка задачи 2 Пояснения к модели 2 Оценки модели 3 Описание модели 4 Анализ модели 9 Верификация имитационной модели 10 Вывод 10 1. Написать имитационный алгоритм и программу. 2. Выполнить верификацию имитационной программы. 3. Провести анализ очереди из клиентов в течение интервала времени [0, T]. Во всех моделях СМО предполагается, что клиенты прибывают согласно неоднородному Пуассоновскому процессу с ограниченной функцией интенсивности ![]() Постановка задачиИмеется парикмахерская с одним устройством, куда пребывают клиенты. График с 8 до 20, в среднем в час поступает 3 клиента. Допущения: Клиенты пребывают в систему, имеющую одно устройство и одну очередь. Когда клиенты поступают в систему, если устройство занято, то они образуют очередь, иначе поступают на устройство. Когда обслуживание клиента заканчивается, он покидает систему и клиент, который дольше всех находится в очереди, начинает обслуживаться. Пояснения к моделиУстройство обслуживания – робот-парикмахер Требование – клиенты Единица времени – час Интенсивность – 3 человека в час Функция интенсивности – ![]() Время работы T – 12 часов (с 8 до 20) Обеденный перерыв отсутствует, есть вероятность переработки (последний клиент уйдет после закрытия магазина). Оценки моделиОценка ожидаемой средней задержки клиентов в очереди: ![]() ![]() ![]() ![]() Оценку ожидаемого среднего числа клиентов в очереди: ![]() ![]() ![]() Оценка занятости устройства – ожидаемый коэффициент ![]() ![]() ![]() Среднее время, в течение которого клиент проводит в системе, вычисляется как: ![]() где ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Описание моделиВспомогательные функции Функция интенсивности Входные данные: t – время в системе. Выходные данные: Значение функции интенсивности в момент времени t. Функция интенсивности: ![]() Функция генерации неоднородного пуассоновского процесса Входные данные: s – время в системе L – интенсивность появления событий Выходные данные: t – время следующего события в системе Алгоритм (poisson(t, lambd)): Присвоить t = s Генерируем случайную переменную U1 = Uniform[0, 1] Присвоить t = ![]() Генерируем случайную переменную U2 = Uniform[0, 1], независимую от U1. Если ![]() Ts = t Конец алгоритма Иначе повторить с шага 2. Функция генерации случайной величины Входные данные: L – интенсивность появления событий Выходные данные: Y – значение показателей случайной величины Алгоритм (exponentional(lambd)): Генерируем случайное число U = Uniform[0, 1] Возвращаем величину Y = ![]() Реализация алгоритма. Процедуры работы СМО. Переменная времени: ![]() Количественные переменные: ![]() ![]() ![]() ![]() Переменная состояния: ![]() ![]() События: пребывания и уходы клиентов. Список событий: ![]() ![]() ![]() ![]() ( ![]() Случайные переменные: ![]() ![]() ![]() ![]() ![]() (без учета времени задержки клиента в очереди); ![]() ![]() обслуживания; ![]() Выходные переменные: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Amount – количество клиентов за смену Tp – время задержки закрытия ![]() ![]() 1-Work/T – коэффициент занятости устройства ![]() События: прибытие клиента уход клиента клиент ушел – но очередь не пуста клиент ушел – и время работы закончилось Общая схема алгоритма имитации СМО с одним устройством: Пусть ![]() ![]() Инициализация переменных Присвоить ![]() Присвоить ![]() Генерировать ![]() ![]() ![]() Изменения системы будут происходить в зависимости от того, какое событие будет следующим – прибытие или уход клиента, при этом рассматриваются различные случаи. Случай 1 – прибытие клиента(tA ![]() ![]() Алгоритм: Присвоить t = tA (движение вдоль оси времени ко времени tA) Присвоить NA = NA+1 (подсчитано более одного прибытия к моменту времени tA) Присвоить n = n+1 (в настоящее время имеется более одного клиента) Запустить функцию генерации неоднородного пуассоновского процесса (poisson(t, lambd)) и присвоить полученное значение tA (время следующего прибытия клиента) Если n = 1, генерировать случайную переменную Y(exponentional(lambd)) имеющую показательное распределение и присвоить tD= t+ Y(exponentional(lambd)) Запомнить выходные данные A(NA) = t (время прибытия клиента NA) Случай 2 – уход клиента (tD ![]() ![]() Алгоритм: Присвоить t = tD (движение вдоль оси времени до времени tD) Присвоить ND = ND+1 (подсчитано более одного ухода клиента) Присвоить n = n-1 (имеется меньше одного клиента) Если n= 0, присвоить tD = ![]() Запомнить выходные данные D(ND) = t(время ухода клиента ND) Случай 3 – время работы закончилось, а клиенты еще есть в системе (min(tA , tD,)> T, n>0) Алгоритм: Присвоить t = tD (движение вдоль оси времени до времени tD) Присвоить ND = ND+1 (подсчитано более одного ухода клиента) Присвоить n = n-1 (имеется меньше одного клиента) Если n>0, генерировать случайную величину Y(exponentional(lambd)) имеющую показательное распределениеи присвоить tD= t+ Y(exponentional(lambd)) Запомнить выходные данные D(ND) = t(клиент NDушел) Случай 4 – время работы закончилось, клиентов в сети нет (min(tA, tD)>T, n=0) Алгоритм: Запомнить выходные данные ![]() После того, как время работы закончилось и клиентов в сети нет, выводим: Amount – количество клиентов за смену Tp – время задержки закрытия ![]() ![]() 1-Work/T – коэффициент занятости устройства ![]() Анализ моделиПосле тестового запуска программы получены следующие результаты: ![]() ![]() Верификация имитационной моделиДля проверки правильности программы необходимо проверить выходные данные имитации с результатами, полученными вручную. В качестве примера возьмем среднее время, проведенное клиентами в системе. Используя значения из таблицы, а именно последний столбец, посчитаем среднее время, проведенное клиентами в системе: ST=(0,02+0,22+0,189+0,06+0,582+0,685+0,012+0,049+0,256+0,673+0,87+0,746)/12=0,3635 Программа показала результат: 0,3635318350220285 ∆=|0,3635318350220285-0,3635|=0,0000318350220285 часов. Расхождения значений возникли из-за погрешности округления. Используя значения таблицы, посчитаем среднюю задержку клиентов в очереди: ![]() Программа показала результат: 0,033259528932400396 ∆=|0,03325-0,033259528932400396|=0,000009528932400396 часов. Расхождения значений возникли из-за погрешности округления. ВыводВ ходе расчетно-графической работы была спроектирована модель работы центра выдачи заказов с одним устройством обслуживания. На основе выходных данных посчитаны оценки: среднего времени, в течение которого клиент проводит в системе среднего времени после, когда уходит последний клиент ожидаемой средней задержки клиентов в очереди занятости устройства. Также были проведены верификация модели и оценка неизвестного параметра. |