Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

3

.docx
Скачиваний:
49
Добавлен:
16.04.2021
Размер:
97.14 Кб
Скачать

ГУАП

КАФЕДРА № 41

ОТЧЕТ

ЗАЩИЩЕН С ОЦЕНКОЙ

ПРЕПОДАВАТЕЛЬ

ассистент

М.Н. Шелест

должность, уч. степень, звание

подпись, дата

инициалы, фамилия

ОТЧЕТ О ЛАБОРАТОРНОЙ РАБОТЕ №3

Моделирование входного потока запросов

по курсу: ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ

РАБОТУ ВЫПОЛНИЛА

СТУДЕНТКА ГР.

4716

С.А. Янышева

подпись, дата

инициалы, фамилия

Санкт-Петербург

2020

Лабораторная работа №3

Моделирование входного потока запросов

  1. Цель работы

Исследование основных характеристик входных потоков заявок, а также базовых принципов моделирования СМО по событиям.

  1. Вариант № 20

№ варианта

Порядок эрланговского потока

Параметр 

20

4

20

  1. Ход выполнения работы

    1. Расчет теоретических значений

Значение интенсивности :

 = = = 5

Значение вариации vu:

vu = = = 0,5

    1. Описание разработанной программы

Листинг 1

import numpy as np from matplotlib import pyplot as plt #Функия для преобразования равномерного распределения в экспонениальное: f_exp = lambda lmb: -(1/lmb)*np.log(np.random.random()) #Функия для преобразования экспоненциального распределения в гамма: f_gamma = lambda k, lmb: sum([f_exp(lmb) for _ in range(k)]) k, lmb = 4, 20 #Теор. значения интенсивности потока и коэф. вариации: t_lmb = 1/(k/lmb) t_v = 1/k**0.5 print("Теор. значения интенсивности потока и коэф. вариации") print("lmd = ", t_lmb, "v = ", t_v) #Объём выборки n = 2 #Старые и новые значения для интенсивности потока и коэф. вариации lmb_old, v_old = 10*100, 10*100 lmb_new, v_new = [], [] while 1: #Выборка sample = [f_gamma(k, lmb) for _ in range(n)] #Среднее значение по выборке s_mean = np.mean(sample) lmb_new.append(1 / s_mean) v_new.append(np.std(sample) / s_mean) if (abs((lmb_new[-1] - lmb_old) / lmb_old) > 0.01 or\ abs((v_new[-1] - v_old) / v_old) > 0.01): n = n*2 lmb_old = lmb_new[-1] v_old = v_new[-1] else: break plt.plot([2,2**(len(lmb_new))], [t_lmb]*2, label = 'Интенсивность потока') plt.plot([2**(i+1) for i in range(len(lmb_new))], lmb_new, label = 'Оценка интенсивности потока') plt.xscale('log', basex = 2) plt.title('График зависимотси интенсивности потока от объёма выборки') plt.legend() plt.show() plt.plot([2,2**(len(v_new))], [t_v]*2, label = 'Коэф. вариации') plt.plot([2**(i+1) for i in range(len(v_new))], v_new, label = 'Оценка коэф. вариации') plt.xscale('log', basex = 2) plt.title('График зависимотси коэф. вариации от объёма выборки') plt.legend() plt.show()

    1. Результат работы программы

Рисунок 1 – График зависимости оценки интенсивности входного потока от объема выборки

Рисунок 2 – График зависимости оценки коэффициента вариации от объема

  1. Выводы

В ходе выполнения лабораторной работы были изучены базовые принципы моделирования СМО по событиям и было проведено исследование основных характеристик входных потоков заявок. Была написана программа, выполняющая поставленную задачу, а именно – моделирование входного потока заявок с заданными параметрами и оценка по данному потоку основных характеристик. В результате моделирования получилось, что теоретические результаты совпали с оценочными.

Соседние файлы в предмете Имитационное моделирование