Выбор размерности входного потока заявок имеет принципиальное значение при его моделировании. Например, выбранная для нашей швейной фабрики размерность, характеризующая его интенсивность, имеет значение числа заказов в сутки. Такая размерность не позволяет учитывать изменения интенсивности потока в течение суток, поэтому не является верной. Правильная для нашего случая размерность входного потока заявок на обслуживание всегда должна учитывать тот интервал времени, за который могут произойти какие-либо изменения входного потока и, в частности, его интенсивности. Для нашего случая размерность должна быть число заказов в час.
Существует также еще один способ получения реальных входных потоков — это использование реальных статистических данных о количестве заявок, поступивших в систему за определенный временной период. Вполне естественным является требование, чтобы длина временного периода не была меньше необходимого цикла моделирования.
Вместе с тем при таком способе формирования входного потока событий возникают проблемы, связанные с воздействием объекта моделирования на входной поток. Если взять наш пример с швейной фабрикой, то последняя обладает конечной мощностью и в период перегрузки каналов очередь заявок на обслуживание обрезается искусственно — прекращается прием заказов на данной фабрике. Такие факты нужно как-то учитывать, например путем добавления потерянных заявок в пиковый период, накладывать какие-то ограничения на модель данной СМО, например уменьшение длины очереди.
Для других объектов таких ограничений может и не быть, поэтому, прежде чем использовать фактическую статистику, необходимо ее проанализировать на предмет возможного влияния объекта моделирования на входной поток.
Входные потоки можно получать также и опросным путем, например в форме изучения спроса на товары и услуги.
Исследование статистических данных для оценки возможности их применения при формировании входных потоков сводится к проведению анализа соответствующего динамического ряда на предмет наличия тренда, сезонности и случайной составляющей. Обычно их отфильтровывают, измеряют и лишь затем формируют необходимый входной поток. Таким же образом поступают при формировании входных потоков из простейшего потока. Полученные составляющие ряда применяются при формировании модели входного потока.
Несколько слов о цикле моделирования. Для нашего примера моделируемый цикл не может быть меньше одного года, а имитационные реализации должны учитывать данные за каждый час функционирования фабрики. Только при этих условиях можно получить достоверные качественные показатели. Эти показатели не будут одинаковыми в пределах моделируемого цикла. Они будут соответствовать реальным значениям в каждом однотипном интервале времени. Учитывая среднюю длину очереди, среднее время ожидания обслуживания, а также количество фактически загруженных каналов, можно спроектировать, например, такую швейную фабрику, у которой эти параметры соответствуют желаемым целевым показателем. Для различных экономических объектов выбор цикла моделирования может быть другим, но он должен учитывать все или почти все факторы, изменяющие входной поток.
Естественно, что для других экономических объектов модель формирования потока (t) будет совершенно иной, так как экономические факторы могут быть другими. Однако использование потоков без коррекции, как правило, не дает нужных результатов.
Аналогичное заключение можно сделать для показателей интенсивности обслуживания и количества обслуживающих каналов. Эти показатели также подвергаются воздействию различных экономических факторов, которые следует учитывать. Например, количество каналов обслуживания не может быть постоянной величиной, поскольку в реальной жизни они выходят из строя, подвергаются профилактике, дублированию и другим изменениям. Меняется также их производительность.
5. Моделирующие алгоритмы
Создание моделирующего алгоритма осуществляется на этапе, когда решены все принципиальные вопросы по выбору математического аппарата, описывающего объект, и построению структуры модели в полном объеме. Построение моделирующего алгоритма является способом представления построенной модели, который воспринимает компьютер.
С одной стороны, это чисто техническая задача, не имеющая отношения к построенной модели, а с другой — важная задача, так как моделирующий алгоритм может оказаться неудобным, громоздким или даже влияющим на процесс моделирования.
В настоящее время существуют три способа задания моделирующих алгоритмов: операторный, задаваемый языком программирования и пакетом прикладных программ. Для имитационного моделирования обычно применяются специальные языки моделирования или универсальные имитационные модели. Применение языков моделирования и универсальных имитационных моделей является наиболее удобным, однако для лучшего понимания процедур построения моделирующих алгоритмов целесообразно в учебных целях рассмотреть методику построения операторных схем.
Операторы бывают двух видов: арифметические и логические. Арифметические выполняют вычисления в широком смысле этого слова и обычно передают управление какому-то одному оператору. Например, запись
означает «оператор с арифметическим номером 10 передает управление другому оператору с индексом 26».Логические операторы при передаче им управления проверяют какие-то заданные условия и затем передают управление тому оператору, для которого эти условия выполняются. Например, логический оператор Р20
означает, что логический оператор в случае выполнения заданного условия передает управление оператору 22, а в случае невыполнения условий — оператору 10.В случае если управление передается данному оператору, то номер оператора, от которого передается управление, записывается слева вверху от символа оператора. Например, запись 38.2A8 означает, что управление от операторов 38 и 2 передается оператору А18. Передача управления данному оператору от предыдущего изображается лишь тогда, когда управление передается от нескольких операторов.
Для всех типов операторов, если они следуют друг за другом, обозначение передачи управления опускается.
Окончание вычислений обозначается служебным оператором с индексом Я.
6. Моделирование одноканальной СМО
Рассмотрим процесс моделирования СМО на примере одноканальной системы, т.е. СМО с одним обслуживающим каналом.
Обозначим через г длительность обслуживания заявки в системе. Пусть
имеет закон распределения f( ) и является стационарной случайной величиной. Заявки обслуживаются в порядке поступления по очереди, в которой заявки могут находиться не более времени, ож. Величина ож имеет закон распределения . Предположим, что ож является независимой величиной для различных заявок.Пусть требуется определить в результате моделирования долю обслуженных заявок, долю заявок, получивших отказ, среднее время ожидания в очереди и т.п.
Будем рассматривать процесс функционирования в интервале времени [О, Т], а заявки вне этого интервала в данной СМО не рассматриваются, даже если заявка начала обслуживаться в интервале [0,T], а окончание обслуживания выходит за пределы этого интервала. Такие заявки считаются необслуженными. Заявка получает отказ в обслуживании, если время начала обслуживания tH < Т, а время его окончания tCB > Т.
Введем следующие операторы:
Ф1 — формирование случайных значений моментов ^поступления заявок в систему;
Рг — проверка условия попадания заявки, появившейся в момент времени
в интервале [О, Т]Рз —проверка условия — момент освобождения канала от обслуживания предыдущей заявки;
Ф2 — формирование случайных значений длительности ожидания в очереди в соответствии с законом распределения
;А5 — вычисления верхней границы интервала
ожидания заявки в очереди;Р6 — проверка условия
F7 — формирование момента начала обслуживания (j—1)-й заявки:
F8 — формирование момента начала обслуживания j-й заявки:
Ф9 — формирование времени занятости канала
в соответствии с распределением f( );А10— вычисление момента окончания обслуживания j-й заявки (момент освобождения канала);