Лекция
Привет, сегодня поговорим про модель массового обслуживания, обещаю рассказать все что знаю. Для того чтобы лучше понимать что такое модель массового обслуживания, смо , настоятельно рекомендую прочитать все из категории Структуры данных.
Формулировка задачи.
Пусть обслуживающая система состоит из конечного числа обслуживающих аппаратов. Система относится к числу систем с ожиданием. Каждый аппарат может обслуживать одновременно только одно требование. Если в момент поступления очередного требования имеются свободные аппараты, то один из них немедленно приступает к обслуживанию, если свободных аппаратов нет, то требование ждет обслуживания. Естественно, если требований больше, чем обслуживающих аппаратов, то образуется очередь. Время обслуживания одного требования есть случайная величина, подчиненная показательному закону распределения:
F(t)=1-e-t
Поток поступающих требований ограничен, то есть одновременно в системе обслуживания не может находиться больше m требований, где m - конечное число. Это дает право считать, что требования на обслуживание поступают от m обслуживаемых объектов, которые время от времени нуждаются в обслуживании. Пусть вероятность того, что поступит заявка на обслуживания на данном такте равна Р(А) и вероятность того, что требование из очереди поступит на обслуживание равно Р(В) ( на каждом такте может поступить не более одной заявки на обслуживание). Об этом говорит сайт https://intellect.icu . Число обслуживающих аппаратов равно N. Допустим, требование дождалось своей очереди и оно начало обслуживаться. Обслуживание может длиться в течении не более 3-х тактов. Заявки могут быть двух приоритетов:
Заявка первого приоритета:
Это обычная заявка, она не обладает ни какими привилегиями. Она может покинуть систему через определенное число тактов Т. При приходе в обслуживающую систему заявка первого приоритета становится в конец очереди.
Заявка второго приоритета:
Эта заявка отличается только тем, что она при поступлении в обслуживающую систему становится в начало очереди, то есть как только освобождается аппарат, то она поступает на обслуживание с вероятностью Р(В).
Заявка второго приоритета , как и заявка первого приоритета, покидает систему через Т тактов. Естественно, что появление заявок второго приоритета достаточно мало ( хотя эта вероятность задается пользователем и может быть любой ). Теперь об обслуживании: Количество тактов, в течение которых будет обслуживаться та или иная заявка выбирается случайно (эта величина в данной задаче не должна быть больше 3). Если заявка обслужилась положенное ей число тактов, то она покидает систему. Если заявка находится в очереди больше Т тактов, то она с некоторой вероятностью покидает систему.
Наиболее рациональна реализация очередей в виде списковых структур данных. Данная задача при ее реализации на ЭВМ дает большие навыки при работе со списковыми структурами и при написании алгоритма программы следует воспользоваться стандартными процедурами, такими как присоединение элемента в начало и конец списка, удаление произвольного элемента из списка. Эти процедуры имеют следующий вид:
p = getnode Node(p) - элемент, на который указывает
info(p) = d указатель Р
ptr(p) = lst info(ptr(p)) - информационное поле следующего
lst = b элемента списка
p = lst
х = info(p)
lst = ptr(p)
freenode(p) - делает свободный узел с указателем
p = getnode q - вставляемый
info(p) = x
ptr(q) = ptr(p)
ptr(p) = q
q = ptr(p) q - удаляемый
ptr(p) = ptr(q)
x = info(p)
freenode(q)
Общее задание для всех.
Пусть имеется обслуживающая система из n обслуживающих аппаратов. Работа этой системы разбита на такты. В течение одного такта может одна заявка стать в очередь и одна заявка приступить к обслуживанию, (разумеется, если аппарат свободен). Вероятность заявки поступить на обслуживание Р(A), вероятность обслужить заявку P(B), вероятность заявки покинуть очередь после Т тактов Р(С). После каждых L тактов давать информацию о длине очереди и число тактов, в течении которых обслуживающий аппарат простаивал. Четным вариантам реализовать обслуживающую систему c неограниченной очередью, нечетным вариантам с конечной очередью (т.е. если в очереди будет стоять К заявок, то следующая заявка получает отказ в обслуживании).
Варианты:
1) L=50, после окончания работы системы выдать информацию, сколько заявок покинуло систему без обслуживания.
2) L=55, после окончания работы системы выдать информацию, сколько заявок обслуживалось больше 2 тактов.
3) L=100, после окончания работы системы выдать информацию, сколько тактов очередь была пустой.
4) L=75 , после окончания работы системы выдать информацию, сколько заявок обслуживалось один такт.
5) L=25 , после окончания работы системы выдать информацию, сколько заявок первого приоритета приступили к обслуживанию.
6) L=40 , после окончания работы системы выдать информацию о среднем приращении очереди.
7) L=80 , после окончания работы системы выдать информацию, сколько заявок обслуживалось 2 такта.
8) L=100, после окончания работы системы выдать информацию, заявок обслужилось.
9) L=70 , после окончания работы системы выдать информацию, на каком такте была самая длинная очередь.
10) L=50, после окончания работы системы посчитать практическую вероятность простоя аппарата по формуле s/n, где s- число тактов простоя аппарат, n- общее число тактов.
11) L=65, после окончания работы системы выдать информацию, сколько заявок второго приоритета поступили на обслуживания.
12) L=30, после окончания работы системы выдать информацию, сколько заявок обслуживалось 2 или 3 такта.
На этом все! Теперь вы знаете все про модель массового обслуживания, Помните, что это теперь будет проще использовать на практике. Надеюсь, что теперь ты понял что такое модель массового обслуживания, смо и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Структуры данных
Из статьи мы узнали кратко, но содержательно про модель массового обслуживания
Комментарии