Полная версия

Главная arrow Информатика arrow ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ СИСТЕМ

  • Увеличить шрифт
  • Уменьшить шрифт


<<   СОДЕРЖАНИЕ ПОСМОТРЕТЬ ОРИГИНАЛ   >>

Способы продвижения модельного времени

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

  • 1) реальное время системы, функционирование которой имитируется;
  • 2) модельное время, по которому организуется синхронизация событий в модели;
  • 3) машинное время имитации, отражающее затраты ресурса времени компьютера.

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

Следовательно, время в модели, т.е. модельное время (МВ), продвигается дискретно, скачками.

Продвижение времени в модели может быть организовано двумя способами:

  • 1) продвижение модельного времени с фиксированным переменным шагом At;
  • 2) продвижение модельного времени до очередного события (по принципу Ах).

Сущность первого способа поясним временными диаграммами, показанными на рис. 3.22.

Временная диаграмма работы модели

Рис. 3.22. Временная диаграмма работы модели

На диаграммах аг показаны моменты смены дискретных состояний элементами 1—4 системы, на диаграмме д — временная последовательность смены состояний системы, на диаграмме е — точки модельного времени, т.е. время смены состояний системы, показанных на диаграмме д.

Так как моменты модельного времени на диаграмме е не связаны с моментами появления событий а — г, то имитационная модель с фиксированным шагом продвижения времени искажает действительные процессы в системе: разновременные события представляются одновременными, моменты свершения событий фиксируются, как правило, с опозданием. Уменьшая величину At, можно уменьшить искажение действительного процесса. Однако это приводит к увеличению затрат машинного времени, особенно если интервалы между сменами состояний в среднем больше, чем At.

На диаграмме ж рис. 3.22 демонстрируется сущность второго способа. Она заключается в том, что модельное время сдвигается вперед не на фиксированную величину At, а точно до времени наступления самого раннего из очередных событий — на Ах.

Очевидно, что недостатки, присущие первому способу, здесь исключены: события рассматриваются и моделируются в моменты их свершения и одновременно (события а1; г:), если у них одинаковое время появления. Промежутки времени, когда в модели «ничего не происходит», пропускаются без особых затрат машинного времени. Эти пропуски все равно учитываются в модельном времени.

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

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

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

Пример 3.12

На узел связи поступают заявки на передачу сообщений. Интервалы времени поступления заявок подчинены показательному закону с математическим ожиданием Ту На узле связи имеются два канала передачи данных. При поступлении очередной заявки в интервале времени [0; Г2] вероятности того, что каналы Ли В будут свободны, соответственно равны Р и Р.

При поступлении заявок после времени Т2 вероятности того, что каналы А и В будут свободны, соответственно равны Р и Р. Сообщение передается по любому свободному каналу. Если оба канала заняты, заявка теряется.

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

Решение

В ранее рассмотренных постановках задач отсутствовала динамика или фактор времени. Например, просто указывалось, что поступает такое-то количество заявок, а за какое время и с какими интервалами — неизвестно.

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

В модели должно быть установлено модельное время. Оно предназначено для синхронизации работы элементов имитационной модели. Модельное время масштабируется по отношению к реальному времени работы моделируемой системы или процесса. Например, в данном случае время моделирования работы узла — Г3, пусть равное 2 ч, а одна единица модельного времени пусть равна 1 с. Тогда время моделирования равно 7200 ед. модельного времени. Также масштабируются и остальные временные характеристики модели.

Согласно постановке задачи имеются два канала и известны вероятности, когда они свободны. Канал свободен — это единичное событие. Для его моделирования нужно обратиться к ДРРСЧ и полученное случайное число сравнить с вероятностью. Если оно меньше или равно заданной вероятности, то канал свободен, если нет, то канал занят.

Поскольку каналов два, то нужно обращаться к ДРРСЧ в случае, если первый канал оказался занятым, и нужно определить, свободен или занят второй канал, так как это разные независимые события.

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

Один из вариантов построения алгоритма модели может быть таким. Имитируется поступление заявок на передачу сообщений через интервалы времени, подчиненные экспоненциальному закону. При очередном поступлении заявки текущее модельное время увеличивается на величину интервала. Это текущее модельное время сравнивается со временем Т2. Если оно меньше, то разыгрывается передача сообщений по каналам, свободным с вероятностями РиР. Если же текущее модельное время больше Т2>но меньше Т3, то разыгрывается вероятность передачи сообщений по тем же каналам, но свободным с вероятностями Р и Р.

Для работы алгоритма необходимо ввести:

  • N0 — количество прогонов модели;
  • • 71 — средний интервал поступления запросов;
  • Т2 — время изменения вероятности незанятости каналов;
  • • Рм, piB, Р2А> Р — вероятности нахождения каналов в свободных состояниях;
  • • 73 — время моделирования.

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

  • N — счетчик текущего числа прогонов модели;
  • М — счетчик числа обслуженных заявок (переданных сообщений) за N0 прогонов модели;
  • S — счетчик числа поступивших заявок (сообщений) во всех прогонах модели;
  • • t — текущее модельное время одного прогона модели;
  • х — число — результат обращения к ДРРСЧ при определении состояния канала;
  • • At — число — результат обращения к датчику экспоненциально распределенных случайных чисел при определении интервала поступления очередной заявки;
  • А — абсолютное число обслуженных заявок;
  • Р — относительное число обслуженных заявок (вероятность обслуживания заявок).

Алгоритм имитационной модели приведен на рис. 3.23.

Схема алгоритма имитационной модели передачи сообщений

Рис. 3.23. Схема алгоритма имитационной модели передачи сообщений

В связи с введением фактора времени следует обратить внимание на то, что алгоритм модели содержит два цикла: первый (внутренний) определяется временем моделирования ТЗ (блок 14), а второй (внешний) — количеством реализаций модели N (блок 16).

Блок 3 предназначен для определения (розыгрыша) интервала времени поступления очередной заявки и счета количества поступивших заявок за все прогоны модели.

В блоке 4 проверяется текущее модельное время: если условие выполняется, то обслуживание имитируется блоками 5—8, в противном случае — блоками 9—12.

В блоке 13 фиксируется выполнение очередной заявки, если это имело место.

В блоке 14 проверяется, не завершилось ли время моделирования. Если нет, т.е. условие t > ГЗ не выполняется, имитация поступления очередной заявки начиная с блока 3 повторяется.

При выполнении условия t > 73 в блоке 16 проверяется условие N = N0. Если оно не выполняется, то начиная с блока 3 выполняется очередной прогон модели.

Если условие N = N0 выполняется, значит, выполнилось заданное число прогонов модели. В блоке 18 определяется абсолютное число обслуженных заявок, в блоке 19 рассчитывается искомая вероятность, и в блоке 20 результаты моделирования выводятся на носитель.

В примере 3.11 мы построили алгоритм ИМ ремонта СС без учета фактора времени. Построим этот же алгоритм в динамике.

Пример 3.13

В ремонтное подразделение поступают вышедшие из строя средства связи (СС) с интервалами времени Ть распределенными по экспоненциальному закону. В каждом СС могут быть неисправными в любом сочетании блоки А, В, С. Вероятности выхода из строя блоков — ?л> Вв, Рс соответственно. Ремонт производится путем замены неисправных блоков исправными. В момент поступления неисправного СС вероятности наличия исправных блоков — РиА, РнВ, РнС соответственно. При отсутствии хотя бы одного из исправных блоков А, В, С ремонт неисправного СС не производится. При наличии всех исправных блоков А, В, С средство связи ремонтируется. Время ремонта подчиняется экспоненциальному закону со средним значением Г3. СС также не ремонтируется, если имеются исправные блоки А, В, С, но ремонтное подразделение занято ремонтом предыдущего СС.

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

Решение

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

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

Для работы алгоритма модели нужно ввести следующие исходные данные:

  • • 71 — средний интервал времени поступления неисправных СС;
  • Т2 — время моделирования;
  • • 73 — среднее время ремонта неисправного СС;
  • N0 — количество прогонов модели;
  • • данные числовой шкалы массивом I;
  • • данные числовой шкалы 1ИГ массивом LH.

Потребуются также следующие переменные:

  • N — для счета текущего числа прогонов модели;
  • • f — для текущего модельного времени;
  • А — для записи и вывода абсолютного количества отремонтированных СС — одного из результатов моделирования;
  • D — для записи и вывода относительного количества отремонтированных СС — второго результата моделирования;
  • • i — для счета текущего числа событий;
  • j — для счета текущего числа поступивших в ремонт неисправных СС за все прогоны модели;
  • • М — для счета текущего числа отремонтированных СС за все прогоны модели;
  • х — для числа — результата обращения к датчику равномерно распределенных случайных чисел;
  • At — для интервала поступления очередного неисправного СС;
  • Atr — для времени ремонта одного неисправного СС;
  • tr — для текущего модельного времени ремонта неисправного СС.

Внесем в алгоритм (см. рис. 3.20) изменения, необходимые для учета

времени ремонта неисправных СС. Рассмотрим вначале процесс ремонта по воеменной лиагоамме Cdhc. 3.247.

Временная диаграмма работы ремонтного подразделения

Рис. 3.24. Временная диаграмма работы ремонтного подразделения

На диаграмме показаны две оси модельного времени (МВ): ось поступления неисправных СС и ось работы ремонтного подразделения (РП).

На рис. 3.241|, t2, t3 — моменты MB поступления неисправных СС через интервалы t„, распределенные по экспоненциальному закону.

В момент времени с1 поступления СС1 ремонтное подразделение свободно и приступает к ремонту СС1. Время ремонта Atr также распределено по экспоненциальному закону.

Время окончания ремонта СС1 tpl = t, + Atr. В период от tpl до поступления неисправного СС2 ремонтное подразделение свободно, т.е. tpl < t2, и сразу начинается ремонт СС2, время окончания — tp2 = t2 + Atr.

Это время больше, чем время поступления неисправного ССЗ, т.е. t3 < tp2, поэтому ремонта ССЗ не будет.

Посмотрим, как это реализовано в алгоритме. Алгоритм имитационной модели приведен на рис. 3.25.

Схема алгоритма имитационной модели ремонта СС

Рис. 3.25. Схема алгоритма имитационной модели ремонта СС

В блоке 14 проверяется, свободно ли ремонтное подразделение. Если свободно, то в блоке 15 фиксируется, что ремонт будет (М :=М+1). Разыгрывается время ремонта неисправного СС обращением к датчику случайных чисел, распределенных по экспоненциальному закону, Atr = Ехр(ТЗ), и оно добавляется к текущему модельному времени — получаем время окончания ремонта одного неисправного СС. Далее алгоритм работает так же, как и предыдущий алгоритм.

Если ремонтное подразделение не свободно (блок 14), т.е. текущее модельное время работы ремонтного подразделения больше текущего модельного времени — времени поступления очередного неисправного СС, ремонт не фиксируется и осуществляется переход к блоку 16. Далее алгоритм работает так, как и предыдущий алгоритм.

В алгоритм также добавлено обнуление tr (текущего модельного времени работы ремонтного подразделения) в блоках 2 и 19.

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

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

 
<<   СОДЕРЖАНИЕ ПОСМОТРЕТЬ ОРИГИНАЛ   >>