Статья посвящена аспектам дискретно-событийного моделирования сетевых компьютерных систем. Отличительной особенностью предлагаемого подхода является принятие во внимание условий высоких нагрузок функционирования сетевых компьютерных систем. В статье выделяются наиболее существенные характеристики сетевых компьютерных систем, которыми являются синхронизация событий и конкуренция за вычислительные ресурсы. Определены отличия предлагаемого подхода от двух известных подходов математического моделирования: методов теории автоматического управления и методов теории сетей и систем массового обслуживания. Рассмотрено идемпотентное (max,+) полукольцо, которое является основной алгебраической структурой, применяемой в рассматриваемом подходе к дискретно-событийному моделированию. Указаны основные алгебраические свойства (max,+) полукольца, именуемого также диоидом. Рассмотрен пример дискретно-событийного моделирования функционирования автоматизированных рабочих мест автоматизированной системы управления контейнерными перевозками на железнодорожном транспорте, функционирующей в условиях высоких нагрузок. Приведены числовые результаты дискретно-событийного моделирования рассматриваемой сетевой компьютерной системы.
дискретно-событийное моделирование
идемпотентное (max
+) полукольцо
1. Бражник А.Н. Имитационное моделирование: возможности GPSS WORLD. – СПб..: Реноме, 2006. – 439 с.
2. Бутакова М.А. Имитационное моделирование процессов возникновения ошибок для оценки надежности программного обеспечения / М.А. Бутакова, С.В. Чубейко // Известия высших учебных заведений. Северо-Кавказский регион. Технические науки. – 2012. – № 5 (168). – C. 29–34.
3. Глухов М.М., Елизаров В.П., Нечаева А.А. Алгебра. Т. 2. – М.: Гелиос АРВ. – 2003. – 416 с.
4. Гуда А.Н. Прогнозирование надежности программного обеспечения на основе модели неоднородного пуассоновского процесса и бутстреп-методов / А.Н. Гуда, С.В. Чубейко // Программные продукты и системы. – 2012. – № 3. – С. 131–135.
5. Котов В.Е. Сети Петри. – М.: Наука, 1984. – 160 с.
6. Маслов В.П. Идемпотентный анализ и его применение в оптимальном управлении / В.П. Маслов, В.Н. Колокольцов. – М.: ФИЗМАТЛИТ. – 1994. – 144 с.
7. Таха Х.А. Введение в исследование операций: пер. с англ. – 7-е изд. – М.: Издательский дом «Вильямс», 2005. – 912 с.
8. Чубейко С.В. Алгоритмы и программное обеспечение для имитационного моделирования сетевых систем на основе (min,+) фильтраций // Современные проблемы науки и образования. – 2013. – № 6; URL: http://www.science-education.ru/113-11545 (дата обращения: 13.01.2014).
9. Baccelli F. Synchronization and linearity: An algebra for discrete event systems / F. Baccelli, Cohen G., G.J. Olsder, J.-P. Quadrat. – Chichester: Wiley, 1992. – 514 p.
10. Cassandras C.G., Lafortune S. Introduction to Discrete Event Systems. Second Edition. – Springer, 2008. – 782 p.
11. Gondran M. Graphs, Dioids and Semirings. New Models and Algorithms / Gondran M., Minoux M. – Springer Science+Business Media, LLC. – 2008. – 384 p.
12. Heidergott B. Max Plus at Work. Modeling and Analysis of Synchronized Systems: A course on Max-Plus Algebra and Its Applications / B. Heidergott, G. Jan Olsder, J. van der Woude. – Princeton University Press, Princeton. – 2006. – 232 p.
13. Wainer G.A. Discrete Event Modeling and Simulation: A Practitioner’s Approach // CRC Press, 2009. – 486 p.
В данной работе рассматриваются аспекты моделирования сетевых систем, причем именно сетевые признаки являются наиболее существенными для адекватного составления математических моделей. Эти признаки существенно отличают предлагаемый далее подход от методов моделирования, общепринятых, например, в теории систем и теории автоматического управления, основными инструментами которых являются интегро-дифференциальные уравнения, методы теории вероятностей, математической статистики и случайных процессов. В теории систем и теории автоматического управления обычным описанием исследуемой системы является описание «вход-выход», а изменение выхода относительно входа, то есть пространство состояний системы задается передаточными функциями в матричном виде. Большинство систем, являющихся объектами моделирования, являются нелинейными, и в данном случае существенные усилия моделирования направлены на линеаризацию систем, выполняемую путем решения систем дифференциальных уравнений в матричном виде. Результатами моделирования являются восстановленное фазовое пространство моделируемых систем и характеристики звеньев управления и регулирования.
Другой подход к моделированию сетевых систем использует методы теории систем и сетей массового обслуживания, в которых рассматриваются различные модели входных, выходных потоков и правил обслуживания, построенных на базе соответствующих законов распределения случайных величин и процессов. В данном случае методами моделирования являются генераторы некоторых типов случайных процессов (имитирующих моменты времени поступления заявок на обслуживание), а результатами моделирования являются (часто усредненные) времена пребывания заявки в очереди, системе, времена обслуживания, вероятности пребывания в очереди, вероятности обслуживания (за некоторый период) и другие вероятностные и статистические характеристики.
Заметим следующее: и в общей теории систем, и в теории систем и сетей массового обслуживания неявно предполагается использование процессного времени. Это означает, что в первом случае принимается, что процессы в системах протекают по возможности мгновенно (хотя в некоторых случаях допустима их инерционность), а во втором случае принимается, что процессы подчинены некоторому вероятностному закону. Однако во втором случае иногда рассматривают потоки general (общего) типа, в которых основным соотношением является рекуррентное уравнение Линдли , что по сути близко к рассматриваемому нами далее подходу с идейной стороны, но не со стороны реализации методов моделирования. В целом процессное время означает, что изменение состояний системы, а также её модели можно отметить на некоторой временной шкале, если шкала является непрерывной, то естественным будет непрерывное моделирование состояний системы, иначе - дискретное моделирование состояний системы, а также соответствующий им математический аппарат.
В основу дискретно-событийного моделирования, развиваемого появления известной системы GPSS и сетей Петри положена другая концепция: состояния системы изменяются под воздействием некоторых событий, в общем случае безотносительно их точной привязки к временной шкале. Существенными являются лишь факты наличия возникновения этих событий и взаимодействие их между собой, то есть синхронизация (некоторое событие предшествует другому, некоторое событие вызывает возникновение другого, либо других событий и так далее). Для сетевых компьютерных систем как многопользовательских многозадачных, многомашинных, многопроцессорных систем характерным является еще один аспект событийности - конкуренция за сетевые распределенные вычислительные ресурсы, с целью увеличения производительности, минимизации простоев и тому подобное. Оба этих аспекта - синхронизация и конкуренция - делают сетевые компьютерные системы существенно нелинейными, что усложняет их аналитическое и имитационное моделирование, а рассматриваемый далее в работе подход можно рассматривать как возможную линеаризацию таких систем.
В итоге введения к статье следует заметить, что научные исследования в области дискретно-событийного моделирования сейчас достаточно широко развиты в различных направлениях , а также служат как существенное дополнение методов имитационного моделирования систем. Существуют также программные реализации дискретно-событийных систем моделирования, например AnyLogic, SimPy, SimEvents и другие. Однако в рамках данной статьи нас интересует вполне самостоятельное направление дискретно-событийного моделирования с применением алгебраических структур (max,+) подхода , который, на наш взгляд, адекватно отражает поставленную в названии статьи проблему - моделирование высоконагруженных сетевых компьютерных систем.
Применение метода (max,+) алгебры в дискретно-событийном моделировании
Основной структурой в рассматриваемом подходе является (max,+) полукольцо , являющееся числовым множеством (с элементами из множества ¡, включая -∞ и не включая +∞), снабженным операциями «максимума», играющего роль «сложения» и «сложения», играющего роль «умножения». Указанные операции (max,+) в специализированной литературе обозначаются соответственно ⊕ и ⊗ (то есть имеют другое значение в отличие от общепринятых - прямой суммы и прямого произведения матриц), то есть x⊕y = max{x, y}, x⊗y = x + y. Данное (mах,+) полукольцо является идемпотентным , то есть сложение a⊕a = a является идемпотентным, нулем считается ε = -∞, единицей, считается e = 0, которая нейтральна по операции ⊗, а для каждого ненулевого элемента по этой операции имеется обратный элемент. Для обеих операций выполняется коммутативность и ассоциативность, а операция ⊗ дистрибутивна относительно ⊕. Такая алгебраическая структура часто называется диоидом . Аналогичный подход с использованием (min,+) алгебраических структур рассмотрен в работе автора .
Данные свойства указанной алгебраической структуры оказываются существенно полезными для дискретно-событийного моделирования сетевых компьютерных систем с точки зрения оценки и достижения их максимальной производительности. Рассмотрим простой пример дискретно-событийного моделирования автоматизированной системы управления контейнерными перевозками (АСУ КП) на железнодорожном транспорте. В моделируемой системе имеются автоматизированные рабочие места (АРМ) работников АСУ КП на двух железнодорожных станциях:
1) узловой станции Ростов-Товарная;
2) припортовой станции Новороссийск.
Посредством единой сети передачи данных ОАО «РЖД» АРМы АСУ КП работают в сетевом режиме и между ними передается информация, сопутствующая технологическому процессу обработки документов. Будем рассматривать 4 события (конечно, в существенно упрощенной форме), соответствующие работе оператора АРМ АСУ КП:
1) подготовка пакета исходной документации с телеграмм-натурным листом поезда;
2) ввод и передача информации в сетевом режиме АРМ АСУ КП на первой станции;
3) прием и распечатка входящей документации с телеграмм-натурным листом поезда;
4) подтверждение и корректировка принятых данных в АРМ АСУ КП на второй станции.
Естественным образом устанавливается порядок синхронизации событий, так, например, подтверждение и корректировка данных могут произойти не ранее, чем данные вообще будут получены, а подготовка документации может происходить не ранее прибытия поезда с контейнерами. Для того, чтобы не ограничиваться одним направлением и подчиняться общим принципам моделирования систем на рисунке показаны технологические процессы с АРМ АСУ КП на станциях и названы в целом «подготовкой данных». Различное время технологических операций на станциях, а также приема и передачи в разных направлениях может быть обусловлено различной производительностью АРМов, различным опытом операторов и другими аналогичными причинами. Приемы моделирования различных событий, связанных с интенсивной нагрузкой информационных систем и программного обеспечения, рассматривались ранее в работах автора .
Для дальнейшей определенности и конкретных расчетов положим, что время подготовки документации на железнодорожные платформы с контейнерами в АРМ АСУ КП занимает у оператора xA = 3 минуты; ввод данных на каждый вагон формируемого поезда из 60 вагонов на станции Ростов-Товарная составляет yBA = 12 минут при отправке телеграмм-натурного листа на станцию Новороссийск. Время, затрачиваемое на формирование принятого на припортовой станции Новороссийск телеграмм-натурного листа контейнерного поезда, составляет xB = 2 минуты, а время, затрачиваемое на согласование корректировок со станцией Ростов-на-Дону и внесение их в АРМ АСУ КП на станции Новороссийск, составляет yBA = 10 минут.
Графическая иллюстрация упрощенного технологического процесса контейнерной перевозки между станциями StA и StB
Поставим цели моделирования, состоящие в нахождении максимальных нагрузок на сетевые компьютерные АРМы АСУ КП при выполнении следующих ограничений:
1) нормативы времени на технологические операции, выполняемые операторами АРМ АСУ КП на станциях, являются максимально допустимыми;
2) операторы АРМов приступают к формированию пакетов поездной документации только после прибытия поезда, однако между технологическими операциями задержек не возникает;
3) интенсивность обработки документаций в АРМах должна учитывать максимальную производительность контейнерных перевозок, а следовательно, и максимально возможное количество поездов, курсирующих на участке между StA и StB.
Смоделируем времена tA отправления пакетов с телеграмм-натурными листами поездной документации со станции StA. Пусть для начального условия tA(0) = 0, а, учитывая заданные ранее значения времени подготовки, ввода, обработки и корректировки данных, следует, что очередной пакет поездных документов отправится не ранее, чем будет сформирован, то есть
а очередной прибывший пакет поездных документов будет обработан не ранее, чем будут переданы предыдущие корректировки на станцию St A со станции St B:
где t B (0) - начальный момент времени отправления корректировок со станции St B , который можно принять t B (0) = 0, Δ - некоторая временная задержка в технологических процессах на транспорте. Выражения (1) и (2) можно записать в более общем виде:
Приняв Δ = 0 и подставив значения из примера из (3) и (4), получим, что максимальная задержка отправления составит
а для станции StB аналогично (1)-(4)
Так же как и в работе , для k = 0, 1, 2, ... по (5) и (6) рассчитаем последовательность t A = {0, 10, 22, 32, ...} и t B = {0, 12, 22, 34, ...}.
Заметим, что выражения (3)-(4) и соответствующие им выражения (5)-(6) с подставленными в них максимальными значениями временных интервалов x A , x B , y AB , y BA можно переписать в общем виде следующим образом.
Пусть имеется n станций t i , t = 1, ..., n, а времена, необходимые на технологические операции по перемещению контейнерной документации между i-й и j-й станциями, обозначим z ij , тогда (5) и (6) имеет вид
Выражение (7) можно сравнить с выражением для линейной рекуррентной последовательности следующим образом:
(8)
В (9) применим метод (max, +)-алгебры, а для того, чтобы подчеркнуть дальнейшую возможность использования методов линейной алгебры в (max, +)-алгебре, выражение (9) запишем как
(10)
Также, по аналогии с линейной алгеброй, выражение (10) можно записать в матричном виде:
где e - (max, +) - операции; Z - матрица, содержащая коэффициенты преобразований.
Рассчитаем в соответствии со значениями в приведенном выше примере по (11) матрица коэффициентов преобразований будет содержать времена технологических операций, поэтому
таким образом,
Заключение
Дискретно-событийное моделирование с использованием (max,+) подхода является достаточно эффективной технологией моделирования систем с синхронизацией событий, Эта технология является пригодной для моделирования сетевых компьютерных систем, в частности АРМов и АСУ, применяемых на железнодорожном транспорте для определения режимов их функционирования в условиях максимальных нагрузок.
Работа выполнена при финансовой поддержке РФФИ, проекты 13-01-00325-а, 13-01-00637-а.
Рецензенты:
Павлов И.В., д.ф.-м.н., профессор, заведующий кафедрой высшей математики Ростовского государственного строительного университета, г. Ростов-на-Дону;
Чернов А.В., д.т.н., профессор, заведующий кафедрой прикладной математики и вычислительной техники Ростовского государственного строительного университета, г. Ростов-на-Дону.
Работа поступила в редакцию 21.05.2014.
Библиографическая ссылка
Чубейко С.В. ДИСКРЕТНО-СОБЫТИЙНОЕ МОДЕЛИРОВАНИЕ СЕТЕВЫХ КОМПЬЮТЕРНЫХ СИСТЕМ В УСЛОВИЯХ ВЫСОКИХ НАГРУЗОК // Фундаментальные исследования. – 2014. – № 8-2. – С. 340-344;URL: http://fundamental-research.ru/ru/article/view?id=34556 (дата обращения: 06.04.2019). Предлагаем вашему вниманию журналы, издающиеся в издательстве «Академия Естествознания»
Дискретно-событийное моделирование
Окружающий нас мир скорее является "непрерывным", чем "дискретным". Большая часть наблюдаемых нами процессов представляют собой непрерывные изменения во времени. Для исследования этих процессов в некоторые моменты есть смысл абстрагироваться на определенную степень от их непрерывной природы и рассматривать их с точки зрения только важных моменты или событий в области моделируемой системы. Подход к осуществлению имитационного моделирования, предлагающий аппроксимацию реальных процессов такими событиями и именуется "дискретно-событийным" моделированием (discrete event modeling).
Далее приведены несколько примеров дискретно-событийного моделирования: покупатель пришел в супермаркет, на складе уже завершили разгрузку фуры, конвейер совершил остановку, в производстве начинается производство нового продукта, уровень запасов достиг некоторого порога и т.д. В дискретно-событийном моделировании перемещение автомобиля из пункта А в пункт Б представляется только двумя событиями: прибытием и отправлением, а движение называется "задержкой" (интервалом времени) между ними. Но это не означает, невозможность проиллюстрировать поезд, передвигающимся в пространстве. AnyLogic позволяет создавать визуально непрерывную анимацию для логически дискретных процессов.
Понятие "дискретно-событийное моделирование", чаще всего используется в узком смысле для характеристики "процессного" моделирования. Далее динамика системы характеризуется как последовательность каких-либо операций (разделение, задержка, прибытие, захват ресурса и т.д.) над агентами. Агенты представляют клиентов, звонки, документы, пакеты данных, транспортные средства и т.п. Агенты не влияют на свою динамику, но могут иметь определенные атрибуты, которые влияют на процесс их обработки, как пример - тип заявки или сложность работы. Агенты могут накапливать статистику, как пример - общее время ожидания или стоимость. Процессное моделирование предоставляет средне-низкий уровень абстракции: когда практически каждый объект моделируется индивидуально, как отдельная система, при этом множество деталей общего физического уровня, такие как геометрия, ускорения или замедления, обычно опускается. Этот подход широко используется в бизнес-процессах, производстве, логистике или здравоохранении.
Для изучения поведения модели при заданных условиях или для улучшения производительности модели, найдя значения параметров, при которых возможно достижения наилучшего результата работы, возможно, использовать инструменты оптимизации. Оптимизация дискретно-событийной модели заключается в последовательном исполнении нескольких прогонов модели с различными значениями заданных параметров и нахождении оптимальных для данной задачи значений параметров.
Оптимизация модели состоит в последовательном выполнении нескольких прогонов модели с различными значениями оптимизационных параметров и нахождении тех значений параметров, оптимизирующих значение заданного целевого функционала. Целевой функционал - математическое выражение, описывающее связь оптимизационных параметров, или результат какой-либо операции (например, прогона модели), входными параметрами которой являются параметры оптимизации. Функционал оптимизации задается целевой функцией и условием оптимизации. Условие оптимизации определяет, является ли целью оптимизации минимизация или максимизация значения целевого функционала.
Пришло время закончить серию постов о парадигмах имитационного моделирования. Сегодня я расскажу о дискретно-событийном моделировании и агентных системах.
Термин “дискретно-событийно моделирование” исторически закрепился за моделированием систем обслуживания потоков объектов некоторой природы: клиентов банка, автомобилей на заправочной станции, телефонных вызовов, пациентов в поликлиниках и т.п. Именно такие системы называются системами массового обслуживания.
Вышеперечисленные простые системы не исчерпывают всего многообразия систем массового обслуживания. К примеру, конвейерные системы для поточного производства и сборки изделий также могут рассматриваться как системы массового обслуживания, но они требуют при анализе учет характеристик самих конвейеров (к примеру, их формы, скорости) и алгоритмов сборки. Кроме того, большой класс систем включает такие процессы обслуживания, которые требуют для отдельных операций выполнения специфических условий, например, наличие ресурсов конкретного типа.
В основе данного вида моделирования лежит концепция заявок (транзактов, entities), ресурсов и потоковых диаграмм (flowcharts), определяющих потоки заявок и использование ресурсов. Этот подход восходит к Джеффри Гордону, который в 1960х придумал и развил GPSS и реализовал её, работая в IBM. Заявки (транзакты в GPSS) – это пассивные объекты, представляющие людей, детали, документы, задачи, сообщения и т.п. Они путешествуют через flowchart, стоя в очередях, обрабатываясь, захватывая и освобождая ресурсы, разделяясь, соединяясь и т.д. Типичная потоковая диаграмма показана на рис. 1 в терминах продукта Arena. Вообще, существует около сотни коммерческих инструментов, так или иначе поддерживающих подобный стиль моделирования; некоторые общего назначения, большинство нацелено на определённые ниши: обслуживание, бизнес-процессы, производство, логистика и т.д. Их пользовательские интерфейсы могут существенно различаться из-за специализации, но за ними непременно стоит более или менее одинаковый дискретно-событийный “движок” (engine), который “гоняет” заявки через блоки.
Дискретно-событийное моделирование имеет огромную сферу приложений – от логистики и систем массового обслуживания до транспортных и производственных систем. Некоторые авторы считают, что данная парадигма моделирования, на самом деле является единственным представителем имитационного моделирования как такового. При этом большое число монографий с названием “Имитационное моделирование” посвящены изложению исключительно этого стиля моделирования.
В настоящее время делается большое количество исследований и разработок в различных областях под лозунгом многоагентные системы, например, в искусственном интеллекте, теории сложных систем, теории игр и т.д. Общепризнанного определения “что такое агент” не существует; люди до сих пор спорят о том, какими же качествами должен обладать объект, чтобы “заслужить” называться агентом: инициативность и реактивность, ориентация в пространстве, способность обучаться, общаться, “интеллект” и т.д. Таким обзором, существует множество определений понятия агента. Общим во всех этих определениях является то, что агент – это некоторая сущность, которая обладает активностью, автономным поведением, может принимать решения в соответствии с некоторым набором правил, может взаимодействовать с окружением и другими агентами, а также может изменяться (эволюционировать). Многоагентные модели используются для исследования децентрализованных систем, динамика функционирования которых определяется не глобальными правилами и законами, а наоборот, эти глобальные правила и законы являются результатом индивидуальной активности членов группы. Цель агентных моделей – получить представление об этих глобальных правилах, общем поведении системы, исходя из предположений об индивидуальном, частном поведении ее отдельных активных объектов и взаимодействии этих объектов в системе. Таким образом, агентное моделирование называют также моделированием снизу вверх. Пример агентной системы изображен на рис. 2.
С помощью агентов можно моделировать рынки (агент представляет потенциального покупателя со своими предпочтениями), конкуренцию компаний на рынке (агент – это компания со своим капиталом, стратегией и бизнес-процессами), динамика населения и многое другое.
Целью дискретного имитационного моделирования является воспроизведение взаимодействий, в которых участвуют компоненты, и изучение поведения и функциональных возможностей исследуемой системы. Для этого выделяются состояния системы и описываются действия, которые переводят ее из одного состояния в другое. Говорят, что система находится в определенном состоянии, когда все ее компоненты находятся в состояниях, совместимых с областью значений, описывающих это состояние характеристик. Таким образом, имитация – это динамический «портрет» состояний системы во времени, т. е. воспроизведение поведения системы во времени.
При дискретной имитации состояние системы может меняться только в моменты свершения событий. Так как состояние системы не изменяется между этими моментами, полный динамический портрет состояний системы может быть получен путем продвижения имитационного времени от одного события к другому.
В большинстве языков дискретной имитации используется механизм продвижения времени, основанный на поиске следующего ближайшего события.
Функционирование дискретной имитационной модели можно задать следующим образом: определяя изменения состояния системы, происходя-щие в момент свершения событий; описывая действия, в которых принимают участие элементы системы, или процесс, через который проходят элементы.
Взаимосвязь между понятиями событие, действие и процесс представлена на рис. 1.7.
Событие происходит в тот момент, когда принимается решение о начале или окончании действия. Процесс - это ориентированная во времени последовательность событий, которая может состоять из нескольких действий. Эти представления лежат в основе трех альтернативных методологических подходов к построению дискретных имитационных моделей, называемых обычно событийным подходом, подходом сканирования активностей и процессно-ориентированным подходом.
Событийный подход
При событийном подходе система моделируется путем идентификации изменений, происходящих в ней в моменты свершения событий. Задача исследователя заключается в описании событий, которые могут изменить состояние системы, и определении логических взаимосвязей между ними. Имитация функционирования системы осуществляется путем выполнения упорядоченной во времени последовательности логически взаимосвязанных событий.
Для иллюстрации событийного подхода вновь рассмотрим пример банка с одним кассиром, приведенный ранее. Клиенты заходят в банк, после возможного ожидания обслуживаются кассиром и затем уходят. Состояние системы в этом примере определяется состоянием кассира и числом ожидающих обслуживания клиентов. Оно остается неизменным, за исключением моментов, когда клиент прибывает в систему или покидает ее. Поэтому событийная модель в данном случае состоит из описания действий, происходящих в момент прибытия и окончания обслуживания очередного клиента. Так как изменения состояния системы могут происходить только в эти моменты времени, использование событий «прибытие» и «конец обслуживания» полностью обеспечивает воспроизведение динамики функционирования системы.
Обсудим сначала логику события «прибытие». Операторная схема этого события имеет следующий вид:
ПЛАНИРОВАНИЕ СЛЕДУЮЩЕГО ПРИБЫТИЯ.
ЕСЛИ КАССИР ЗАНЯТ: ЧИСЛО ОЖИДАЮЩИХ=ЧИСЛО ОЖИДАЮ-
ЩИХ+1; ВОЗВРАТ.
ЕСЛИ КАССИР СВОБОДЕН: ПЕРЕВОД КАССИРА В СОСТОЯНИЕ «ЗАНЯТ»; ПЛАНИРОВАНИЕ СОБЫТИЯ «ОКОНЧАНИЕ» ОБСЛУЖИВАНИЯ В МОМЕНТ ВРЕМЕНИ=ТЕКУЩЕЕ ВРЕМЯ+ВРЕМЯ ОБСЛУЖИВАНИЯ; ВОЗВРАТ.
На первом шаге планируется прибытие следующего клиента, что в ходе имитации при неоднократном обращении к этой процедуре позволяет организовать непрерывный поток прибытий. Поведение прибывшего клиента зависит от состояния системы в текущий момент времени. Если кассир занят, прибывший клиент становится в очередь, и изменение состояния системы осуществляется путем увеличения числа ожидающих клиентов на единицу. Если кассир свободен, прибывший клиент сразу же обслуживается, и изменение состояния системы осуществляется путем перехода кассира в состояние «занят». Кроме того, должно быть запланировано событие «конец обслуживания» для данного клиента в момент времени, равный текущему времени плюс время, затрачиваемое кассиром на обслуживание.
Рассмотрим теперь логику обработки события «конец обслуживания». Операторная схема этого события имеет следующий вид:
ЕСЛИ ЧИСЛО ОЖИДАЮЩИХ БОЛЬШЕ НУЛЯ: ЧИСЛО ОЖИДАЮЩИХ=ЧИСЛО ОЖИДАЮЩИХ-1; ПЛАНИРОВАНИЕ ОКОНЧАНИЯ ОБСЛУЖИВАНИЯ В МОМЕНТ ВРЕМЕНИ, РАВНЫЙ ТЕКУЩЕМУ ВРЕМЕНИ + ВРЕМЯ ОБСЛУЖИВАНИЯ; ВОЗВРАТ.
ЕСЛИ ЧИСЛО ОЖИДАЮЩИХ РАВНО НУЛЮ: ПЕРЕВОД КАССИРА В
СОСТОЯНИЕ «СВОБОДЕН»; ВОЗВРАТ.
Когда кассир заканчивает обслуживание очередного клиента, сначала проверяем, есть ли клиенты, ожидающие обслуживания. Если такие клиенты есть, их число уменьшается на единицу и планируется событие «конец обслуживания» первого из ожидающих клиентов. В противном случае кассир переходит в состояние «свободен».
При имитации функционирования банка с одним кассиром на основе использования событийного подхода мы должны воспроизвести хронологию (календарь) событий и причины, вызывающие их появление в соответствующие моменты имитационного времени. Календарь событий первоначально содержит отметку только о первом событии «прибытие». В ходе имитации возникновение других событий «прибытие» и «конец обслуживания» должно быть запланировано в календаре в соответствии с логикой функционирования системы. События выполняются в упорядоченной по времени последовательности, при этом имитационное время продвигается от одного события к другому.
Подход сканирования активностей
При использовании подхода сканирования активностей разработчик описывает действия, в которых принимают участие элементы системы, и задает условия, определяющие начало и окончание этих действий. События, которые начинают или завершают действие, не планируются разработчиком модели, а инициируются по условиям, определенным для данного действия. Условия начала или окончания действия проверяются после очередного продвижения имитационного времени. Если заданные условия удовлетворяются, происходит соответствующее действие. Для того чтобы было выполнено каждое действие в модели, сканирование условий производится для всего множества действий при каждом продвижении имитационного времени.
Подход сканирования активностей обеспечивает простую схему моделирования для решения целого ряда проблем. Он наиболее эффективен для ситуаций, в которых продолжительность действия определяется в зависимости от того, насколько состояние системы удовлетворяет заданным условиям. Тем не менее, так как необходимо сканировать условия для каждого действия, подход сканирования активностей менее эффективен по сравнению с событийным подходом и поэтому имеет ограниченное применение в дискретной имитации.
Процессно-ориентированный подход
Многие имитационные модели содержат последовательности компонентов, которые возникают в них по определенной схеме, например очередь, в которой клиенты ожидают обслуживания. Логика возникновения компонентов по требуемой схеме может быть обобщена и задана в одном операторе. Имитационный язык затем транслирует такие операторы в соответствующую последовательность событий, происходящих с компонентами модели. Имитационные языки, включающие операторы для моделирования процесса прохождения элементов через систему, обычно называются процессно-ориентированными. Эти операторы определяют последовательность событий, которые автоматически выполняются имитационным языком, по мере того как элементы продвигаются через систему. Например, следующий набор операторов может быть использован для описания процесса в модели банка:
СОЗДАВАТЬ ПРИБЫВАЮЩИХ КЛИЕНТОВ ЧЕРЕЗ КАЖДЫЕ Т ЕДИНИЦ ВРЕМЕНИ;
ОЖИДАТЬ КАССИРА;
ПРОДВИНУТЬ ВРЕМЯ НА ПРОДОЛЖИТЕЛЬНОСТЬ ОБСЛУЖИВАНИЯ;
ОСВОБОДИТЬ КАССИРА;
УДАЛИТЬ КЛИЕНТА;
Первый оператор генерирует прибывающих в систему клиентов через каждые Т единиц имитационного времени. Величина Т может быть константой или принимать случайные значения. Оператор «ожидать» определяет, что клиент ожидает до тех пор, пока кассир освободится. Этот тип оператора аналогичен понятию действия по условию, применяемого в подходе сканирования активностей. Оператор «продвинуть время» моделирует тот период времени, в течение которого клиент обслуживался кассиром. Этот тип оператора аналогичен оператору планирования в событийном подходе. Он помещает в календарь событий метку о том, что обслуживание клиента будет закончено в момент, равный текущему имитационному времени плюс время обслуживания. После завершения обслуживания клиент покидает систему и кассир освобождается. Освобождение кассира позволяет сразу же приступить к обработке какого-либо ожидающего клиента из оператора «ожидать».
Из приведенного примера видно, что процессно-ориентированный подход сочетает в себе черты событийного подхода и подхода сканирования активностей. Он обеспечивает описание прохождения компонентов через процесс, содержащий ресурсы. Простота этого подхода состоит в том, что определяемая операторами логика событий заложена в самом имитационном языке. Однако, так как мы обычно вынуждены ограничивать набор стандартных операторов языка, этот подход является менее гибким, чем событийный. Кроме того, требуется постоянный анализ состояния ресурсов после их использования.