Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Организация сбора статистики в модели

Рис. 26

Когда заявка приходит в СМО, выполняется проверка на наличие свободного канала. Если первый канал свободен, заявка занимает его. Если он занят, то проверяется, свободен ли второй канал. Если второй канал свободен, то заявка занимает его. Если оба канала заняты, заявка попадает в очередь. Но если в очереди перед этим уже находятся три заявки, то пришедшая заявка покидает СМО, т.е. теряется.

Время между приходами заявок распределено равномерно в интервале от 0 до 200 с. Время обслуживания заявки каналом (любым) распределено равномерно в интервале от 0 до 500 с.

Введем обозначения переменных:

t - время от прихода одной заявки до прихода следующей - случайная величина (с.в.);

x - время обслуживания заявки каналом - с.в.;

Pотк - вероятность отказа, т.е. того, что пришедшая заявка потеряется;

l - текущая длина очереди;

S(k) - состояние k-го канала, k = 1,2;

t - текущее время.

Выделим в моделируемой СМО два типа событий: PUT - приход заявки, GET(k) - уход заявки с k-го канала.

Календарь событий организуем в виде двух линейных массивов TIME и EVENT, так, как это описано в предыдущем параграфе.

Разработаем теперь алгоритм события типа «приход заявки», т.е. события PUT.

В соответствии с тем, что происходит в моделируемой СМО в момент прихода заявки, алгоритм должен содержать операции проверки состояния первого канала S(1) и состояния второго канала S(2) (см. рис.27).

Рис. 27

Если есть свободный канал, то его номер записывается в переменной k, а состояние переводится из «свободно», т.е. из S(k) = 0 в «занято», т.е. S(k) = 1.

Если оба канала заняты, то проверяется длина очереди, которая после этого либо увеличивается на единицу, либо - при потере заявки - остается неизменной.

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

Пунктирной линией обведен набор действий, выполняемых программой при имитации события занятия k-го канала. Этот набор действий обозначен zan(k). Он включает запись значения 1 в переменную S(k), что означает, что k-й канал переводится в состояние занятости, и планирование следствия из данного события, т.е. планирование освобождения канала. Т.к. канал освободится через случайное время, равномерно распределенное в интервале от 0 до 500 с., то интервал времени x до освобождения определяется как с.в. RANDOM (стандартная с.в., распределенная равномерно от 0 до 1), умноженная на 500. В календарь событий заносится событие освобождения только что занятого канала и время, когда это событие наступит.

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

Алгоритм имитации события GET(k) - ухода заявки с k-го канала - приведен на рис.28.

Рис. 28

Здесь освобождаемый канал переводится в состояние «свободно» и, если очередь в СМО не пустая, то ее длина уменьшается на единицу и выполняется процедура zan занятия освобожденного канала.

Схема управляющей программы приведена на рис.29.

Рис. 29

После инициализации переменных управляющая программа заносит в календарь событий KS первое событие, которое состоит в приходе заявки в СМО, и переходит к основному циклу. Основной цикл включает три операции - извлечение из KS первого события (время t при этом становится равно времени извлеченного события), проверку условия завершения модели, т.е. условия достижения времени моделирования TM, и вызов программы, имитирующей извлеченное событие E.

Организация сбора статистики в модели

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

Рассмотрим этот принцип на примере расчета средней длины очереди l ср и вероятности отказа Pотк, т.е. потери заявки (имеются в виду стационарные значения этих характеристик).

В алгоритм управляющей программы (рис.29), в то его место, которое помечено восьмиконечной звездой, добавим следующие операции инициализации статистических переменных:

N = 0,

N1 = 0,

l _SUM = 0,

t_end = 0,

где N - число заявок, пришедших в систему, N1 - число заявок, потерянных из-за переполнения очереди, l -SUM - интеграл от длины очереди по времени, t_end - момент времени, когда произошло последнее изменение длины очереди.

Для расчета вероятности отказа Pотк добавим в алгоритм события PUT (рис.27) операции для подсчета числа пришедших заявок и числа потерянных заявок.

Число пришедших заявок будет подсчитываться с помощью операции N=N+1, которую нужно вставить вместо первой звездочки (помеченной на рис.24 словом «Приход»). Тогда каждый раз, когда будет вызвано событие PUT - приход заявки в СМО - эта пришедшая заявка посчитается в переменной N.

Аналогично этому число потерянных заявок можно подсчитывать, поместив вместо второй звездочки (на рис.27 она расположена на дуге «Нет») операцию N1=N1+1.

Тогда вероятность отказа Pотк можно определить в конце выполнения модели как долю потерянных заявок относительно числа пришедших:

Pотк = N1/N.

Точнее говоря, мы находим не вероятность отказа, а ее статистическую оценку, точность которой зависит от длительности наблюдения за СМО, т.е. от времени моделирования TM. Учитывая приведенные в данном пособии рекомендации по планированию имитационных экспериментов, можно обеспечить любую точность данной оценки.

Средняя длина очереди l ср определяется как среднее значение функции l (t), т.е.

Длина очереди l (t) изменяется во времени t скачкообразно (рис.30), как, впрочем, и любые другие переменные в модели дискретной системы. Поэтому ее интеграл по времени можно определить просто как сумму площадей прямоугольников, высоты которых равны текущей длине очереди, а ширина определяется как длина промежутка времени, на котором очередь не изменяется.

Рис. 30

Как видно из сделанных замечаний, интеграл от длины очереди по времени можно рассчитать, накапливая в переменной l _SUM площади соответствующих прямоугольников. Для этого достаточно поместить следующую пару операторов в каждой из точек алгоритма имитации, в которых происходит изменение длины очереди:

l _SUM = l _SUM + l *(t - t_end)

t_end = t.

Таких точек в алгоритме две: одна в процедуре GET (помечена звездочкой; здесь очередь уменьшается), другая в процедуре PUT (помечена звездочкой и находится на дуге со словом «Да»; здесь очередь увеличивается). Первый из операторов добавляет к интегралу площадь очередного прямоугольника, второй сохраняет значение текущего времени в переменной t_end, чтобы можно было определить ширину очередного прямоугольника при следующем изменении очереди.

В конце моделирования можно теперь определить оценку средней длины очереди l ср по формуле

l ср = l _SUM / t.

Такой же простой принцип расчета средних, который рассмотрен здесь на примере средней длины очереди, может применяться и для расчета любых других средних (по времени) значений, например, для расчета коэффициентов загрузки каналов, среднего числа занятых каналов и т.п.

 


<== предыдущая | следующая ==>
Защитное снаряжение | Вычисление приведенных длин пролетов

Date: 2015-09-05; view: 225; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.009 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию