Необходимость наблюдения за поведением компонентов системы в динамике. Специалистам недостаточно иметь усредненные оценки характеристик функционирования системы. Представляет также интерес временная последовательность возникновения узких мест, эффективность мероприятий по их ликвидации, внесение различных управлений в работу системы и т.д.
Экономическая нецелесообразность постановки натурных экспериментов. Любое исследование сложной системы является дорогостоящим мероприятием. При внесении неудачных изменений в работу реального объекта могут пострадать люди, что вызывает социальную напряженность. Проектирование же новых систем связано с большими материальными затратами. Поэтому в большинстве случаев решения принимаются на основе опыта специалистов предметной области без сотрудничества с научными коллективами. Имитация должна служить для предварительной проверки новых стратегий перед принятием решения в реальной системе.
Необходимость точного отображения функционирования компонентов системы. Аналитическая модель, как правило, не соответствует структуре сложной системе. Следовательно, изучение некоторого периода ее работы потребует разработки отдельной аналитической модели. При имитационном моделировании подобная задача тривиально решается путем сохранения и восстановления промежуточного состояния системы во внешней памяти ЭВМ.
Использование ИМ в качестве тренажера. При подготовке специалистов и освоении правил принятия решений на ИМ может обеспечиваться возможность приобретения новых навыков в управлении системой.
Однако при имитационном моделировании сложных систем несмотря на перечисленные достоинства может возникнуть ряд существенных проблем. Разработка хорошей ИМ часто обходится дороже создания аналитической модели и требует наличия квалифицированных специалистов и больших затрат времени. Иногда может показаться, что ИМ точно отражает реальное положение дел в моделируемой системе, а в действительности это не так. Причем к неверному решению могут привести свойственные именно имитации особенности. При использовании ИМ требуется применять нестандартные методы статистического анализа данных, что усложняет исследование. Преодоление перечисленных выше проблем лежит на пути создания программно-технологического инструментария, позволяющего автоматизировать этапы построения ИМ и тем самым ускорить сроки их исследования.
1. Составление содержательного описания объекта моделирования
Представляет собой выполнение следующих действий. Вначале определяется объект имитации, достаточный для изучения тех сторон его функционирования, которые представляют интерес для исследователя. Устанавливаются границы изучения функционирования объекта. Составляется возможный список ограничений модели, которые допустимы при организации имитации или при наличии которых ещё имеет смысл имитация функционирования СС. Перед разработчиками ИМ ставятся вполне конкретные цели моделирования и формулируются основные критерии эффективности, по которым предполагается проводить сравнение на модели вариантов организации СС. Результатом работ на данном этапе является содержательное описание объекта моделирования с указанием целей имитации и аспектов функционирования объекта моделирования, которые необходимо изучить на ИМ. Обычно оно представляет собой техническое описание объекта моделирования, описание внешней среды, с которой он взаимодействует, и временную диаграмму этого взаимодействия.
2. Построение концептуальной модели
На основании содержательного описания детализируется задача моделирования, определяется процедура и график её решения. Уточняется методика всего ИЭ в зависимости от наличных ресурсов, выделенных для имитации. Необходимо провести декомпозицию СС на составные компоненты, описать процессы их функционирования и взаимосвязи между ними. Общая задача моделирования разбивается на ряд частных задач. Устанавливаются приоритеты решения этих задач. Обосновываются требования в ресурсах ЭВМ. Выполняются такие работы, как выбор параметров и переменных СС, представляющих интерес для моделирования; уточнение критериев эффективности вариантов СС; выбор типов аппроксимации отдельных компонентов модели. Проводятся также предварительный анализ требований к модели СС; определение необходимых математических уравнений, описывающих реальные процессы; поиск возможных методов проверки правильности функционирования модели. Одновременно с этим исследователь должен выбрать способ будущей формализации процессов в объекте моделирования. Результатом выполнения работ являются концептуальная модель, выбранный способ формализации и организации имитации. В состав концептуальной модели входят: уточнённое содержательное описание, свободное от всего того, что не представляет интереса для имитации поведения СС, список параметров и переменных моделирования; критерии эффективности функционирования вариантов системы; список используемых методов обработки результатов имитации и перечисление способов представления результатов моделирования. При создании небольших ИМ данный этап работ совмещается с этапом составления содержательного описания моделируемой системы. Только с усложнением объекта моделирования и задач имитации появляется необходимость определения способа формализации, который подходит для решения конкретной задачи исследования СС.
3. Формализация объекта моделирования
В зависимости от сложности СС могут использоваться три вида формализации: аппроксимация явлений функциональными зависимостями, алгоритмическое описание процессов в СС, смешанное представление в виде последовательности формул и алгоритмических записей. В зависимости от принятого способа имитации используются свои способы формализации (активностями, событиями, процессами, транзактами, агрегатами, элементами системной динамики и др.). При составлении формального описания СС исследователю рекомендуется такая последовательность действий: уточнение декомпозиции системы, алгоритмизация компонентов модели, уточнение взаимодействия с управляющей программой моделирования, документация этапа.
4. Программирование и отладка модели
На данном этапе выполняются следующие действия. Во-первых, составляется план создания и использования программной модели. В плане указывается тип ЭВМ, средство автоматизации моделирования, примерные затраты памяти и времени на создание ИМ. Во-вторых, приступают к программированию алгоритмов ИМ. Не существует существенных отличий создания программы ИМ от других видов программного обеспечения на языках программирования. Однако опыт, накопленный в области моделирования, потребность в моделировании все более сложных систем и возможности современных ЭВМ обусловили появление новых взглядов на архитектуру и функции программного обеспечения системного моделирования.
Появление имитационных систем — закономерное следствие общей тенденции развития программного обеспечения вычислительных машин, которая заключается во все более полной автоматизации действий по программированию и подготовке задач к решению на ЭВМ.
В свое время стремление пользователей переложить на ЭВМ как можно большую часть рутинных операций привело к появлению универсальных и различных проблемно-ориентированных языков программирования, среди которых были многочисленные языки моделирования. Следует заметить, что некоторые языки моделирования, например СИМУЛА-67, СИМСКРИПТ-2 и др., нисколько не уступают по своим алгоритмическим возможностям универсальным языкам и называются проблемно-ориентированными лишь постольку, поскольку содержат ряд специальных средств, ориентированных на программирование моделей.
Построение на базе языков моделирования систем программирования позволило во многом облегчить разработку и реализацию моделей. Кроме того, многие языки моделирования содержат стандартные средства для подготовки и выполнения машинных прогонов, накопления, обработки и представления результатов имитации. Однако набор этих стандартных средств обычно довольно ограничен (генераторы псевдослучайных чисел, автоматический расчет средних и дисперсий, печать таблиц и графиков).
Модель сложной системы не всегда удается концептуально выдержать в рамках одного языка моделирования. Отдельные элементы и подсистемы могут быть описаны, например, обыкновенными дифференциальными уравнениями, другие — конечными автоматами, третьи — в терминах теории массового обслуживания и т. д. В этом случае использование какого-либо одного языка моделирования может привести к потере точности описания реальных систем или к усложнению программ.
Программирование моделей сложных систем осложняется тем, что их разработка и эксплуатация обычно выполняются разными лицами. Поэтому к модели как к конечному программному продукту предъявляются высокие требования. Разработчик должен организовать удобное взаимодействие пользователя с моделью, для чего необходимо программировать специальные модули, обеспечивающие ввод-вывод информации в удобной для пользователя форме. Модель должна быть составлена с учетом возможности ее дальнейшей модификации, поэтому разработчик должен предусмотреть обоснованные стандарты на организацию межмодульного интерфейса в модели.
Требование быстрого и правильного составления модели обусловливает необходимость:
- замены программирования конструированием из готовых элементов;
- разработки проблемно-ориентированных библиотек элементов;
- отдельной трансляции элементов для выявления синтаксических ошибок в их описаниях;
- автономной отладки элементов;