Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПрактикумКМ / лаб2 .doc
Скачиваний:
70
Добавлен:
10.02.2015
Размер:
140.8 Кб
Скачать

Практическое занятие №2 Моделирование входящих и выходящих потоков одноканальная смо с очередью как объект моделирования

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

Рисунок 1 – Система массового обслуживания с одним каналом и очередью

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

Разработку выполним при условиях: 1) интервал прибытия и время обслуживания - целочисленные случайные величины с равномерным законом распределения; 2) все заявки необходимо обслужить независимо от длины очереди; 3) в начальный момент очередь пуста, а прибор не занят; 4) моделирование завершается по истечении заданного модельного времени; 5) должны быть получены интересующие нас показатели эффективности СМО. Ниже приводятся процедуры, из которых формируется алгоритм этой СМО.

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

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

Рассмотрим событие «Завершение обслуживания». Если известно начало обслуживания, то процесс «предсказания» времени его завершения аналогичен планированию прихода очередной заявки: разыгрывается случайная величина и ее значение прибавляется к текущему значению таймера модельного времени. Рисунок 2 иллюстрирует примеры планирования прихода первой (а) и очередной (б) заявок, а также завершение обслуживания (в).

Рисунок 2 – Планирование событий в СМО

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

Таблица 1

Основное событие

Вызываемое действие

Приход заявки

1. Планирование очередного прихода

2. Проверка состояния прибора. Прибор свободен?

НЕТ: заявка встает в очередь

ДА: заявка встает на обслуживание (это вызывает переход прибора в состояние «Занят» и планирование окончания обслуживания)

Окончание обслуживания

Проверка состояния очереди. Очередь пуста?

НЕТ: заявка встает на обслуживание (это вызывает продвижение заявок в очереди и планирование окончания обслуживания)

ДА: переход прибора в состояние «Свободен»

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

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

3. Процедура «Найти ближайшее событие». Ближайшее событие можно определить как первое в списке, упорядоченном по возрастанию времени свершения.

4. Процедура «Завершить моделирование». Для остановки процесса моделирования введем в модель псевдособытие «Завершение моделирования». Для нашей СМО это может быть сигнал окончания очередной смены. Тогда поступление этого события необходимо планировать. Например, моделировать работу порта в течение смены, т. е. восьми часов. Кроме этого потребуется проверка того, является ли событие «Завершение моделирования» следующим ближайшим событием.

5. Процедура «Разыграть значение целочисленной равномерно распределенной случайной величины». Процедура преобразует случайные числа, равномерно распределенные на интервале [0, 1], в целочисленные случайные величины с равномерным на интервале [А, В] распределением и может быть организована по одному из известных алгоритмов. В результате получаем необходимые для моделирования значения интервалов между приходами заявки и время их обслуживания.

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

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

Соседние файлы в папке ПрактикумКМ