Моделирование одноканальных систем массового обслуживания. · Перед началом работы следует убедиться в отсутствии видимых повреждений аппаратуры и проводов. Компьютеры и периферийные устройства должны находиться на столах в устойчивом положении. · абсолютн

Московский государственный технический университет

имени Н.Э. Баумана (Калужский филиал)

Кафедра высшей математики

Курсовая работа

по курсу «Исследование операций»

Имитационное моделирование системы массового обслуживания

Задание на работу: Составить имитационную модель и рассчитать показатели эффективности системы массового обслуживания (СМО) со следующими характеристиками:

Число каналов обслуживания n; максимальная длина очереди т;

Поток поступающих в систему заявок простейший со средней интенсивностью λ и показательным законом распределения времени между поступлением заявок;

Поток обслуживаемых в системе заявок простейший со средней интенсивностью µ и показательным законом распределения времени обслуживания.

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


Введение

Глава 1. Основные характеристики CМО и показатели их эффективности

1.1 Понятие марковского случайного процесса

1.2 Потоки событий

1.3 Уравнения Колмогорова

1.4 Финальные вероятности и граф состояний СМО

1.5 Показатели эффективности СМО

1.6 Основные понятия имитационного моделирования

1.7 Построение имитационных моделей

Глава 2. Аналитическое моделирование СМО

2.1 Граф состояний системы и уравнения Колмогорова

2.2 Расчет показатели эффективности системы по финальным вероятностям

Глава 3. Имитационное моделирование СМО

3.1 Алгоритм метода имитационного моделирования СМО (пошаговый подход)

3.2 Блок-схема программы

3.3 Расчет показателей эффективности СМО на основе результатов ее имитационного моделирования

3.4 Статистическая обработка результатов и их сравнение с результатами аналитического моделирования

Заключение

Литература

Приложение 1

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

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

Заявки поступают в СМО обычно не регулярно, а случайно, образуя так называемый случайный поток заявок (требований). Обслуживание заявок также продолжается какое-то случайное время. Случайный характер потока заявок и времени обслуживания приводит к тому, что СМО оказывается загруженной неравномерно: в какие-то периоды времени скапливается очень большое количество заявок (они либо становятся в очередь, либо покидают СМО не обслуженными), в другие же периоды СМО работает с недогрузкой или простаивает.

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

В качестве показателей эффективности СМО используются:

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

Относительная пропускная способность (Q), т.е. средняя доля поступивших заявок, обслуживаемых системой;

Вероятность отказа обслуживания заявки (

);

Среднее число занятых каналов (k);

Среднее число заявок в СМО (

);

Среднее время пребывания заявки в системе (

);

Среднее число заявок в очереди (

);

Среднее время пребывания заявки в очереди (

);

Среднее число заявок, обслуживаемых в единицу времени;

Среднее время ожидания обслуживания;

Вероятность того, что число заявок в очереди превысит определенное значение и т.п.

СМО делят на 2 основных типа: СМО с отказами и СМО с ожиданием (очередью). В СМО с отказами заявка, поступившая в момент, когда все каналы заняты, получает отказ, покидает СМО и в дальнейшем процессе обслуживания не участвует (например, заявка на телефонный разговор в момент, когда все каналы заняты, получает отказ и покидает СМО не обслуженной). В СМО с ожиданием заявка, пришедшая в момент, когда все каналы заняты, не уходит, а становится в очередь на обслуживание.

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


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

Процесс называется процессом с дискретными состояниями, если его состояния

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

Процесс работы СМО – это случайный процесс с дискретными состояниями и непрерывным временем.

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

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

1.2 Потоки событий

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

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

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

Поток событий называется стационарным, если его вероятностные характеристики не зависят от времени. В частности, интенсивность стационарного потока есть величина постоянная:

.

Поток событий называется ординарным, если вероятность попадания на малый участок времени

двух и более событий мала по сравнению с вероятностью попадания одного события, т.е., если события появляются в нем поодиночке, а не группами.

Поток событий называется потоком без последействия, если для любых двух непересекающихся участков времени

Во многих областях экономики, финансов, производства и быта важную роль играют системы, реализующие многократное выполнение однотипных задач. Такие системы называются системами массового обслуживания (СМО). Примерами СМО являются: банки различных типов, страховые организации, налоговые инспекции, аудиторские службы, различные системы связи, погрузочно-разгрузочные комплексы, автозаправочные станции, различные предприятия и организации сферы обслуживания.

3.1.1 Общие сведения о системах массового обслуживания

Каждая СМО предназначена для обслуживания (выполнения) некоторого потока заявок (требований), поступающих на вход системы большей частью не регулярно, а в случайные моменты времени. Обслуживание заявок также длится не постоянное, заранее известное время, а случайное, которое зависит от многих случайных, порой неизвестных нам, причин. После обслуживания заявки канал освобождается и готов к приёму следующей заявки. Случайный характер потока заявок и времени их обслуживания приводит к неравномерной загруженности СМО. В некоторые промежутки времени на входе СМО могут скапливаться заявки, что приводит к перегрузке СМО, в некоторые же другие интервалы времени при свободных каналах (устройствах обслуживания) на входе СМО заявок не будет, что приводит к недогрузке СМО, т.е. к простаиванию её каналов. Заявки, скапливающиеся на входе СМО, либо «становятся» в очередь, либо по какой-то причине невозможности дальнейшего пребывания в очереди покидают СМО необслуженными.

На рис 3.1 изображена схема СМО.

Основными элементами (признаками) систем массового обслуживания являются:

Обслуживающий узел (блок),

Поток заявок,

Очередь в ожидании обслуживания (дисциплина очереди).

Обслуживающий блок предназначен для осуществления действий согласно требованиям поступающих в систему заявок.

Рис. 3.1 Схема системы массового обслуживания

Вторая составляющая систем массового обслуживания - входной поток заявок. Заявки поступают в систему случайным образом. Обычно предполагают, что входной поток подчиняется некоторому вероятностному закону для длительности интервалов между двумя последовательно поступающими заявками, причем закон распределения считается не изменяющимся в течение некоторого достаточно продолжительного времени. Источник заявок - неограничен.

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

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

1. Появление заявки (требования) на обслуживание. Причиной случайности данного события часто является массовый характер потребности в обслуживании.

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

Указанные случайные события составляют систему двух потоков в СМО: входного потока заявок на обслуживание и выходного потока обслуженных заявок.

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

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

Специальная область прикладной математики ­ теория массового обслуживания (ТМО) – занимается анализом процессов в системах массового обслуживания. Предметом изучения теории массового обслуживания является СМО.

Цель теории массового обслуживания ­ выработка рекомендаций по рациональному построению СМО, рациональной организации их работы и регулированию потока заявок для обеспечения высокой эффективности функционирования СМО. Для достижения этой цели ставятся задачи теории массового обслуживания, состоящие в установлении зависимостей эффективности функционирования СМО от её организации.

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

В качестве характеристик эффективности функционирования СМО обычно выбираются три следующие основные группы (обычно средних) показателей:

    Показатели эффективности использования СМО:

    Абсолютная пропускная способность СМО - среднее число заявок, которое сможет обслужить СМО в единицу времени.

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

    Средняя продолжительность периода занятости СМО.

    Коэффициент использования СМО - средняя доля времени, в течении которого СМО занята обслуживанием заявок, и т.п.

    Показатели качества обслуживания заявок:

    Среднее время ожидания заявки в очереди.

    Среднее время пребывания заявки в СМО.

    Вероятность отказа заявке в обслуживании без ожидания.

    Вероятность того, что поступившая заявка немедленно будет принята к обслуживанию.

    Закон распределения времени пребывания заявки в очереди.

    Закон распределения времени пребывания заявки в СМО.

    Среднее число заявок, пребывающих в очереди.

    Среднее число заявок, находящихся в СМО, и т.п.

    Показатели эффективности функционирования пары «СМО − потребитель», где под «потребителем» понимают всю совокупность заявок или некий их

ВВЕДЕНИЕ

ГЛАВА I. ПОСТАНОВКА ЗАДАЧ МАССОВОГО ОБСЛУЖИВАНИЯ

1.1 Общие понятие теории массового обслуживания

1.2 Моделирование систем массового обслуживания

1.3 Графы состояний СМО

1.4 Случайные процессы

Глава II. УРАВНЕНИЯ, ОПИСЫВАЮЩИЕ СИСТЕМЫ МАССОВОГО ОБСЛУЖИВАНИЯ

2.1 Уравнения Колмогорова

2.2 Процессы «рождения – гибели»

2.3 Экономико-математическая постановка задач массового обслуживания

Глава III. МОДЕЛИ СИСТЕМ МАССОВОГО ОБСЛУЖИВАНИЯ

3.1 Одноканальная СМО с отказами в обслуживании

3.2 Многоканальная СМО с отказами в обслуживании

3.3 Модель многофазной системы обслуживания туристов

3.4 Одноканальная СМО с ограниченной длиной очереди

3.5 Одноканальная СМО с неограниченной очередью

3.6 Многоканальная СМО с ограниченной длиной очереди

3.7 Многоканальная СМО с неограниченной очередью

3.8 Анализ системы массового обслуживания супермаркета

ЗАКЛЮЧЕНИЕ


Введение

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

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

Теория массового обслуживания - область прикладной математики, занимающаяся анализом процессов в системах производства, обслуживания, управления, в которых однородные события повторяются многократно, например, на предприятиях бытового обслуживания; в системах приема, переработки и передачи информации; автоматических линиях производства и др. Большой вклад в развитие этой теории внесли российские математики А.Я. Хинчин, Б.В. Гнеденко, А.Н. Колмогоров, Е.С. Вентцель и др.

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

В коммерческой деятельности применение теории массового обслуживания пока не нашло желаемого распространения.

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


Глава I . Постановка задач массового обслуживание

1.1 Общие понятие теории массового обслуживания

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

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

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

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

Перечисленные задачи можно успешно решать с помощью методов и моделей специально созданной для этих целей теории массового обслуживания (ТМО). В этой теории поясняется, что обслуживать необходимо кого-либо или что-либо, что определяется понятием «заявка (требование) на обслуживание», а операции обслуживания выполняются кем-либо или чем-либо, называемыми каналами (узлами) обслуживания. Роль заявок в коммерческой деятельности выполняют товары, посетители, деньги, ревизоры, документы, а роль каналов обслуживания - продавцы, администраторы, повара, кондитеры, официанты, кассиры, товароведы, грузчики, торговое оборудование и др. Важно заметить, что в одном варианте, например, повар в процессе приготовления блюд является каналом обслуживания, а в другом - выступает в роли заявки на обслуживание, например к заведующему производством за получением товара.

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

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

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

Действительно, продолжительность пребывания покупателя в супермаркете зависит, с одной стороны, от личностных качеств покупателя, его запросов, от ассортимента товаров, который он собирается приобрести, а с другой - от формы организации обслуживания и обслуживающего персонала, что может значительно повлиять на время пребывания покупателя в супермаркете и интенсивность обслуживания. Например, овладение кассирами-контролерами работы «слепым» методом на кассовом аппарате позволило увеличить пропускную способность узлов расчета в 1,3 раза и сэкономить время, затрачиваемое на расчеты с покупателями по каждой кассе более чем на 1,5 ч в день. Внедрение единого узла расчета в супермаркете дает ощутимые преимущества покупателю. Так, если при традиционной форме расчетов время обслуживания одного покупателя составляло в среднем 1,5 мин, то при введении единого узла расчета - 67 с. Из них 44 с уходят на оформление покупки в секции и 23 с непосредственно на расчеты за покупки. Если покупатель делает несколько покупок в разных секциях, то потери времени сокращаются при приобретении двух покупок в 1,4 раза, трех - в 1,9, пяти - в 2,9 раза.

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

Если каналы обслуживания способны удовлетворить одинаковые заявки, то каналы обслуживания называются однородными. Совокупность однородных каналов обслуживания называется обслуживающей системой.

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

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

В моделях СМО рассматривают следующие объекты:

1) заявки на обслуживание (транзакты);

2) обслуживающие аппараты (ОА), или приборы.

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

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

Заявка может находиться либо в состоянии обслуживания, либо в состоянии ожидания обслуживания.

Обслуживающий прибор может быть либо занят обслуживанием, либо свободен.

Состояние СМО характеризуется совокупностью состояний обслуживающих приборов и заявок. Смена состояний в СМО называется – событие.

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

Важнейшие выходные параметры СМО

Производительность

Пропускная способность

Вероятность отказа в обслуживании

Среднее время обслуживания;

Коэффициент загрузки оборудования (ОА).

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

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



Простейшие модели СМО

В простейшем случае СМО представляет собой некоторое устройство, называемое обслуживающим аппаратом (ОА), с очередями заявок на входах.

М о д е л ьо б с л у ж и в а н и я с о т к а з а м и (рис.5.1)


Рис. 5.1. Модель СМО с отказами:

0 – источник заявок;

1 – обслуживающий прибор;

а – входной поток заявок на обслуживание;

в – выходной поток обслуженных заявок;

с – выходной поток необслуженных заявок.

В этой модели отсутствует накопитель заявок на входе ОА. Если заявка приходит от источника 0 в момент времени, когда ОА занят обслуживанием предыдущей заявки, то вновь пришедшая заявка выходит из системы (так как ей отказано в обслуживании) и теряется (поток с ).

М о д е л ь о б с л у ж и в а н и я с о ж и д а н и е м (рис. 5.2)


Рис. 5.2. Модель СМО с ожиданием

(N– 1) – количество заявок, которое может поместиться в накопителе

В этой модели имеется накопитель заявок на входе ОА. Если заявка приходит от источника 0 в момент времени, когда ОА занят обслуживанием предыдущей заявки, то вновь пришедшая заявка попадает в накопитель, где неограниченно долго ожидает, пока освободится ОА.

М о д е л ь о б с л у ж и в а н и я с о г р а н и ч е н н ы м в р е м е н е м

о ж и д а н и я (рис. 5.3)


Рис. 5.4. Многоканальная модель СМО с отказами:

n – количество одинаковых обслуживающих аппаратов (приборов)

В этой модели имеется не один ОА, а несколько. Заявки, если это специально не оговорено, могут поступать к любому свободному от обслуживания ОА. Накопителя нет, поэтому данная модель включает свойства модели, показанной на рис. 5.1: отказ в обслуживании заявки означает ее безвозвратную потерю (это происходит только в том случае, если в момент прихода этой заявки все ОА заняты).

в р е м е н е м о ж и д а н и я (рис. 5.5)


Рис. 5.6. Многоканальная модельСМО с ожиданием и восстановлением ОА:

e – обслуживающие аппараты, вышедшие из строя;

f – восстановленные обслуживающие аппараты

Данная модель обладает свойствами моделей, представленных на рис. 5.2 и 5.4, а кроме того свойствами, позволяющими учитывать возможные случайные отказы ОА, которые в этом случае поступают в ремонтный блок 2, где пребывают в течение случайных промежутков времени, затрачиваемых на их восстановление, а затем вновь возвращаются в обслуживающий блок 1.

М н о г о к а н а л ь н а я м о д е л ь СМО с о г р а н и ч е н н ы м

в р е м е н е м о ж и д а н и я и в о с с т а н о в л е н и е м ОА (рис. 5.7)


Рис. 5.7. Многоканальная модель СМО с ограниченным временем ожидания и восстановлением ОА

Данная модель является довольно сложной, поскольку одновременно учитывает свойства двух не самых простых моделей (рис. 5.5 и 5.6).

23 октября 2013 в 14:22

Squeak: Моделирование систем массового обслуживания

  • Программирование ,
  • ООП ,
  • Параллельное программирование

На Хабре крайне мало информации о таком языке программирования как Squeak . Я попытаюсь рассказать о нем в контексте моделирования систем массового обслуживания . Покажу как написать простой класс, расскажу его структуру и использую его в программе, которая будет обслуживать заявки посредством нескольких каналов.

Пару слов о Squeak

Squeak это открытая, кросс-платформенная реализация языка программирования Smalltalk-80 c динамической типизацией и сборщиком мусора. Интерфейс довольно специфический, но вполне удобный для отладки и анализа. Squeak полностью отвечает концепции ООП. Все состоит из объектов, даже конструкции if-then-else, for, while реализованы с их помощью. Весь синтаксис сводится к посылке объекту сообщения в виде:
<объект> <сообщение>
Любой метод всегда возвращает объект и ему можно направить новое сообщение.
Squeak часто используется для моделирования процессов, но может использоваться и как средство для создания мультимедийных приложений и разнообразных образовательных платформ.

Системы массового обслуживания

Системы массового обслуживания (СМО) содержат один или несколько каналов которые обрабатывают заявки, поступающие от нескольких источников. Время на обслуживание каждой заявки может быть фиксированным или произвольным, как и интервалы между их поступлением. Это может быть телефонная станция, прачечная, кассиры в магазине, машинописное бюро и пр. Выглядит это примерно так:


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

При моделировании СМО обычно решаются задачи оценки средней и максимальной длины очереди, частоты отказов в обслуживании, средней загрузки каналов, определение их числа. В зависимости от задачи, в модель включаются программные блоки сбора, накопления и обработки необходимых статистических данных о поведении процессов. Наиболее часто используемыми моделями потоков событий при анализе СМО являются регулярные и пуассоновские. Регулярные характеризуются одинаковым временем между наступлениями событий, а пуассоновские - случайным.

Немного математики

Для пуассоновского потока число событий X , попадающих в интервал длины τ (тау), примыкающий к точке t , распределено по закону Пуассона:
где a (t, τ) - среднее число событий, наступающих на интервале времени τ .
Среднее число событий, наступающих в единицу времени, равно λ(t) . Следовательно, среднее число событий на интервале времени τ , примыкающему к моменту времени t , будет равно:


Время T между двумя событиями при λ(t) = const = λ распределено по закону:
Плотность распределения случайной величины T имеет вид:
Для получения псевдослучайных пуассоновских последовательностей интервалов времени t i решают уравнение:
где r i - равномерно распределенное на интервале случайное число.
В нашем случае это дает выражение:


По генерации случайных чисел можно писать целые тома. Здесь же, для генерации равномерно распределенных на интервале целых чисел используем следующий алгоритм:
где R i - очередное случайное целое число;
Р - некоторое большое простое число (например 2311);
Q - целое число - верхняя граница интервала, например, 2 21 = 2097152;
rem - операция получения остатка от деления целых чисел.

Начальное значение R 0 обычно задают произвольно, например, используя показания таймера:
Time totalSeconds
Для получения равномерно распределенных на интервале чисел воспользуемся оператором языка:

Класс Rand

Для получения равномерно распределенных на интервале случайных чисел создаем класс - генератор вещественных чисел:

Float variableWordSubclass: #Rand "имя класса" instanceVariableNames: "" "переменные экземпляра" classVariableNames: "R" "переменные класса" poolDictionaries: "" "общие словари" category: "Sample" "имя категории"
Методы:

"Инициализация" init R:= Time totalSeconds.next "Следующее псевдослучайное число" next R:= (R * 2311 + 1) rem: 2097152. ^(R/2097152) asFloat
Для установки начального состояния датчика посылаем сообщение Rand init .
Для получения очередного случайного числа посылаем Rand next .

Программа обработки заявок

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

Код на Squeak

"Объявление временных переменных" | proc1 proc2 t1 t2 s1 s2 sysPriority queue continue r | "Начальные установки переменных" Rand init. SysTime:= 0. s1:= 0. s2:= 0. t1:= -1. t2:= -1. continue:= true. sysPriority:= Processor activeProcess priority. "Текущий приоритет" queue:= Semaphore new. "Модель очереди заявок" "Создание процесса - модели канала 1" (Process forContext: [ proc1:= Processor activeProcess. whileTrue: "Цикл обслуживания" [ queue wait. "Ждать заявку" t1:= SysTime + 2. "Следующее время активизации" s1:= s1 + 1. proc1 suspend. "Приостановить процесс в ожидании окончания обслуживания" ]. proc1:= nil. "Удалить ссылку на процесс 1" ] priority: (sysPriority + 1)) resume. "Новый приоритет больше фонового" "Создание процесса - модели канала 2" (Process forContext: [ proc2:= Processor activeProcess.. whileTrue: [ queue wait. t2:= SysTime + 7. s2:= s2 + 1. proc2 suspend. ]. proc2:= nil. ] priority: (sysPriority + 1)) resume. "Продолжение описания главного процесса и модели источника" whileTrue: [ r:= (Rand next * 10) rounded. (r = 0) ifTrue: . ((SysTime rem: r) = 0) ifTrue: . "Послать заявку" "Коммутатор процессов обслуживания" (t1 = SysTime) ifTrue: . (t2 = SysTime) ifTrue: . SysTime:= SysTime + 1. "Тикает модельное время" ]. "Показать состояние счетчика заявок" PopUpMenu inform: "proc1: ",(s1 printString),", proc2: ",(s2 printString). continue:= false.


При запуске видим, что процесс 1 успел обработать 31 заявку, а процесс 2 только 11:

Полезные инструменты