Научная статья на тему 'О некоторых особенностях проектирования и реализации имитационных моделей процессов в сложных технических системах'

О некоторых особенностях проектирования и реализации имитационных моделей процессов в сложных технических системах Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
124
15
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
СИМУЛЯЦИЯ / ИМИТАЦИОННАЯ МОДЕЛЬ / PILGRIM 5 / SIMULATION / IMITATIONAL MODEL

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Артюхин Валерий Викторович

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Designing and implementing simulation models of complex engineering systems

At the end of 2010 the author was working on generalized simulation model of structured system for monitoring and management of engineering systems of buildings and constructions. A number of important conclusions originated during this project which stated in the article. The formulation the simulation model requirements is a crucial point defining abstraction level and major steps of its development.

Текст научной работы на тему «О некоторых особенностях проектирования и реализации имитационных моделей процессов в сложных технических системах»

№ 3(33) 2011

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

О некоторых особенностях проектирования и реализации имитационных моделей процессов в сложных технических системах

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

Введение

Реализация имитационных моделей (симуляционных моделей, симуляций) в среде Pilgrim 5 имеет несколько интересных особенностей. Если расценивать готовую модель как элемент научного программного обеспечения (ПО) или даже биз-нес-ПО, то процесс ее создания в Pilgrim 5 оригинален, если не уникален. Он сочетает достаточно простую для понимания концепцию с практически неограниченной гибкостью моделей, которые можно построить. Помимо этого, имеется возможность работы с системой как пользователей, не являющихся специалистами в области информационных технологий — при построении простых моделей, так и имеющих глубокие знания в области разработки ПО — для реализации более сложных проектов (а также для отладки и создания библиотек визуализации).

Готовая модель Pilgrim 5 поставляется в виде приложения для операционной системы Windows, т.е. исполняемого ЕХЕ-фай-ла формата РЕ1. Исходный же файл со всеми данными, необходимыми для построения приложения, представляет собой не что

1 Portable Executable — переносимый исполняемый (англ.).

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

1) выбор объекта, системы, процессов, которые необходимо смоделировать;

2) формулирование вопросов, на которые должна отвечать модель;

3) построение графа модели;

4) формулирование требований к внутренней логике;

5) кодирование графа модели на языке программирования С;

6) кодирование внутренней логики на С;

7) компиляция и сборка;

8) отладка модели.

Более наглядно и подробно процесс моделирования, включая опциональные этапы, показан на рис. 1.

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

№ 3(33) 2011

I

is

I

I

is !

I

CO CO

0 u

1

0 &

4S

1

i

is

I

0 §

is

1 I

s

I t

s

CO

0

1 §

& g

u

0

1

£ о u

0

is t

Рис. 1. Обобщенная схема процесса построения модели в среде Pilgrim 5

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

Вопросы к модели

Важнейшим этапом проектирования модели является формулирование вопросов о моделируемой системе, объекте или процессе, на которые она должна отвечать, а также определение уровня абстракции построения модели, на котором она строится. Одно из определений термина «модель» выглядит следующим образом: «/4 является моделью В, если /4 отвечает на вопросы относительно б». Например, грубый набросок силуэта карандашом на бумаге, пластиковая кукла, анатомическое пособие в виде скелета, психологический портрет — все это, согласно приведенному оп-

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

Вопросы к модели и уровень абстракции существенно важны не только для понимания основных целей работы — они напрямую влияют на такие характеристики будущей модели, как:

94

№ 3(33) 2011

1) числоузлов;

2) количество связей между узлами;

3) сложность внутренней логики;

4) необходимый уровень квалификации разработчика в области программирования;

5) используемый инструментарий;

6) сложность отладки;

7) сложность использования и сопровождения.

Пункты с 4-го по 7-ой вытекают из пунктов 1-3.

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

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

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

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

Необходимость работы с исходным С-кодом моделей Pilgrim 5 напрямую следует из «Закона дырявых абстракций», действие которого можно показать на следующих примерах.

Что такое библиотека строковых функций? Это способ симулировать умение компьютеров манипулировать строками так же легко, как числами. Что такое файловая система? Это способ представить жесткий диск не рядом вращающихся магнитных дисков, способных хранить биты в определенных адресах, а некой иерархической системой вложенных одна в другую папок, содержащих отдельные файлы. Что такое TCP? Это протокол, гарантирующий доставку сообщения. Однако на самом деле это не так: если поврежден кабель, соединяющий компьютер с Интернетом, и /Р-пакеты не могут больше по нему проходить, то TCP не поможет, и сообщение не будет доставлено. TCP пытается обеспечить полную абстракцию от лежащей под ним ненадежной сети, но иногда сеть «просачивается» сквозь эту абстракцию и пользователь ощущает то, от чего абстракция не смогла полностью его защитить [5].

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

№ 3(33) 2011

на нижележащем уровне абстракции иногда не обойтись.

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

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

2. Само по себе наличие внутренней логики значительно усложняет модель, чревато ошибками и требует дополнительного документирования — схем модели с отметками об операциях, производимых на том или ином этапе и невидимых на «голом графе» (т.е. самого графа в этом случае недостаточно).

3. Работа с матрицами, как и с любыми другими конструкциями языков программирования, требует соответствующей квалификации.

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

Чем сложнее становится модель, тем труднее избежать ошибок при ее отлад-

ке. Уровень абстракции играет здесь очень важную роль. Любая система массового обслуживания может быть представлена в терминологии Pilgrim 5 связкой «Генератор» ^ «Очередь» ^ «Сервер» ^ «Терминатор». В частности, вновь рассматривая в качестве примера модель СМИС, обработку сервером СМИС сообщений от подсистем в простом (хотя и не в простейшем) виде можно представить так, как показано на рис. 2.

Однако в данной модели не учитывается множество особенностей и структура СМИС:

• инциденты не обрабатываются;

• эффективность персонала не анализируется;

• сбои аппаратуры не рассматриваются;

• аварии не фиксируются и т.д.

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

Проблема »черного лебедя»

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

Рис. 2. Простая модель обработки сервером двух типов сообщений

96

№ 3(33) 2011

Q ЭЙ

i—■

км; гдвип Г1МГ ir^wnr.i

S 41

Lncfuj едок.»'»

CR

42

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Capua auiitiufir ¡СИ i

s

43

CR 51

К 49

Q 47

Qjc^jjihl J^ifcjipnAPbJ

о

44

s

45

EJCUIV« I q

/т 1

43

S»!"ГЦ

T

52

KOHfli/nuBSrdf ннц . JH-XinH

К

124

D-и-ч CH

T

* №

Блокировка

ГОПуЧЙЬЬТН LBHjHHH.! О

нйных тидцекг-йх

Ликвидации

имЦнденТЭ

О

125

S

126 V. J ^ >

к

215

t^p г-синг:

т

* 46

ОАраЛожл K'i^I |:ki |ы ишишвнг^в И «пюре iBSfUfl

рййммм рЙЙйПЫ

ДДГЧИВОП ((ЩШПНЕМН

nonwW^

ПнквцдЗци^ ■■арин

Ш» >Kf™

Q

127

CnyMGTn СМНС

К 214

Ручное изменен™ режима опросе (частоты опроса) дагтчикое 135

■J J>J №. « ПЧ" ЦЫМ Ч?

Q S Е -/lA 1 Т 7 "13В 216 1Jd

136 137

Рис. 3. Фрагмент модели СМИС

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

Нассим Тадлеб (Ыазэ^ Та1еЬ), придумавший этот термин, определяет его так: «Черный лебедь — это выброс, событие вне области обычных ожиданий» [6]. Почти все перебои в работе Интернета являются «неожиданными неожиданностями» — крайне маловероятными событиями за гранью ожидаемого. Такие вещи случаются настолько редко, что пользоваться обычными статистическими представлениями наподобие «среднего времени между отказами»

бессмысленно. Какое может быть «среднее время между катастрофическими наводнениями в Новом Орлеане» [4]?

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

97

№ 3(33) 2011

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

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

Важность статических состояний

Известно, что определенные характеристики объектов и процессов можно наблюдать только в динамике, т. е. при изменении таковых во времени. Однако верно и обратное: некоторые важные данные, даже применительно к интенсивному процессу, можно получить, только сделав снимок данных в определенный момент времени. Рассмотрим пример.

Распределительные шкафы

Рис. 4. Ручной запуск «черного лебедя»

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

98

№ 3(33) 2011

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

Заключение

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

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

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

Описок литературы

1. Артюхин В. В. «Фреймворки» и построение графических конструкторов для них. В кн. «Математическое обеспечение и технологии программирования в экономике». М.: Издательский центр МЭСИ, 2003.

2. Артюхин В. В. CASE-технологии создания имитационных моделей в среде Pilgrim 5 // Прикладная информатика. 2007. №4.

3. Емельянов А. А. [и др.] Имитационное моделирование экономических процессов / под. ред. А. А. Емельянова. М.: Финансы и статистика, 2002.

4. Спольски Дж. Джоэл: и снова о программировании. Новые мысли о разнообразных и иногда родственных вопросах, которые должны быть интересны разработчикам программного обеспечения, проектировщикам и менеджерам, а также тем, кому посчастливилось или не повезло в каком-то качестве работать с ними. СПб.: Символ-Плюс, 2009.

5. Спольски Дж. Джоэл о программировании и разнообразных и иногда родственных вопросах, которые должны быть интересны разработчикам программного обеспечения, проектировщикам и менеджерам, а также тем, кому посчастливилось или не повезло в каком-то качестве работать с ними. СПб.: Символ-Плюс, 2008.

6. Nassim Taleb. Learning to expect the unexpected. URL: http://www.edge.org/3rd_culture/taleb04/ta-leb_indexx.html, 2004.

i Надоели баннеры? Вы всегда можете отключить рекламу.