Проще всего детализируется блок генерации следующей заявки. Прогенерировать заявку – значит сформировать момент поступления ее в систему, зная момент поступления предыдущей заявки и закон распределения интервалов между заявками в потоке по каждому из источников. Поэтому рассмотрим основные формулы , определяющие интервалы между событиями , происходящими в системе . Эти интервалы являются непрерывными случайными величинами с заданным законом распределения.
1.В случае регулярного потока событий интервалы между событиями постоянны и TAY=const.
2.Если поток событий равномерный , то он характеризуется двумя константами TAY1 и TAY2 , а само случайное значение интервала вычисляется по формуле :
TAY=TAY1+(TAY2-TAY1)*R
, где R-случайное число в интервале от 0 до 1, формируемое генератором случайных чисел (функция Random в Паскале).
3.В случае простейшего потока интервал между событиями потока вычисляется по формуле
TAY=-1/LAMBDA*ln(R)
, где R=Random , а LAMBDA- интенсивность простейшего потока событий , т.е. среднее число событий в единицу времени.
4.В случае потока Эрланга n-го порядка интервалы между событиями вычисляются как сумма n интервалов простейшего потока с интенсивностью порождающего его простейшего потока LAMBDA. Вычисление интервала проводится по формуле
TAY=-1/LAMBDA*(ln(R1*R2*…*Rn))
, где R1-Rn- случайные числа в интервале от 0 до 1 , сформированные генератором Random.
Входной информацией в блоке генерации является известный номер источника, заявку от которого необходимо сформировать (NMIN). Значение NMIN позволяет в зависимости от заданных законов распределения сформировать
TPOST(NMIN) = TPOST(NMIN) + TAY(NMIN)
, что иллюстрируется рисунком 6.
Входными данными блока записи в буфер (рис. 7) являются индикатор буфера INDBUF и ранее сформированные значения моментов поступления заявок TPOST(1) и TPOST(2), причем в буфер записывается TPOST(NMIN).
Выходными данными являются INDBUF и пополненные значения BUFT и BUFN.
Для выборки из буфера заявки на обслуживание необходимо вначале определить номер места в буфере NOMOB, откуда выбирается заявка в соответствии с дисциплиной выборки, заданной условиями задачи.
Входными данными при этом являются NOMBUF = 1, а выходными – измененные значения NOMBUF (см. рис. 8). При этом происходит выборка с первого места (ближе к прибору) буфера (NOMBUF = 1), если на втором, третьем или четвертом месте нет более приоритетной заявки.
Функции выборки из буфера и последующей его модификации реализуются действиями, описанными в алгоритме на рис. 9, причем, вначале предполагается, что заявка будет выбираться с первого места буфера (NOMBUF = 1). Если в буфере была всего одна заявка, то после ее выборки сдвиг буфера не требуется, а номер источника заявки, выбираемой на обслуживание NOMOB, определяется по содержимому BUFN(1).
Входными данными в блоке выборки и модификации буфера являются INDBUF, BUFT и BUFN, а выходными – номер выбранной заявки на обслуживание NOMOB, выбранное время ее поступления TOB и номер места NOMBUF в буфере, откуда выбирается заявка.
На рис. 10 представлен алгоритм сдвига заявок в буфере левее выбранной, т.е. начиная с заявки с номером NOMBUF + 1 и кончая заявкой с номером INDBUF.
Блок обслуживания формирует время ожидания по тому источнику, заявка которого взята на обслуживание (NOMOB), а также новое время освобождения. Кроме того, в счетчик обслуженных заявок добавляется единица (рис. 11).
Блок «Формирование TOSV» в БМС32 отличается от блока обслуживания только тем, что в нем не формируется TOG, т.к. в этом случае TOSV < TPOST(NMIN) и блок «Формирование TOSV» будет иметь вид, приведенный на рис. 12.
Детализация блока обработки результатов одной реализации (рис. 4) сводится к формированию вероятностей отказов BOTK(I) и оценки математического ожидания времени ожидания MTOG заявок каждого источника (рис. 13).
Перед началом моделирования необходимо в алгоритме задать начальные значения данным общим для всего алгоритма , а именно , задать значения интенсивностей входных потоков LAM(1) и LAM(2), значение интервала обслуживания TAY1, а также TAY2 и DTAY. Кроме того , требуется задать значение KMIN, исходя из заданных характеристик точности.
Ищете квартиру поближе к работе, тогда посмотрите http://sibestate.ru/ тут.
Данным же KOL,KOTK,KOBR,TOSV,TOG,INDBUF в начале каждой новой реализации присвоить нулевые начальные значения. Кроме того , к моменту первого обращения к блоку БООС в каждой реализации необходимо сформировать по одной заявке от каждого источника.
Опубликовал Kest
July 26 2014 11:24:43 ·
0 Комментариев ·
4949 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.