2.7. Моделирование сложных систем

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

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

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

Итак, основной спецификой моделирования сложной системы является учет связей между отдельными моделями (говорят также: согласование моделей). Как же это достигается? В самом общем плане можно указать, что строится схема взаимосвязанных моделей типа графовой структуры, в которой выходы одних моделей (модулей) являются входами других. При этом каждый отдельный модуль представляет собой модель в смысле определений (2.1) или (2.3). Для них фиксируется совокупность требований на входы. Работу с совокупностью моделей можно представить как «прохождение» задачи через эту совокупность, результатом которого является определение выходов сложной системы в целом.

Можно указать на две важные части описанной процедуры:

1) построение или выбор моделей для декомпозированных частей системы;

2) согласование моделей.

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

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

Естественно, что и для имитации, и для моделирования сложных систем в целом характерно применение ЭВМ и других средств автоматизации. Однако имитация в ряде случаев может обходиться или, по крайней мере, не быть прямо основанной на использовании вычислительной техники. Таковы, например, деловые игры, где вся информация и фиксация действий могут проходить устно или на бумаге; военные игры на топографических картах; имитационное (двумя игроками) исследование неоконченных партий в шахматах. Имитация без ЭВМ лишний раз доказывает, что этот термин выходит за рамки определенного способа применения вычислительной техники и имеет более широкое значение.

С помощью ЭВМ рассматриваются отдельные модели. Однако вычислительные машины удобны и для организации работы совокупности моделей. Они могут успешно осуществлять различные согласования по времени, проверять соответствие и

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

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

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

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

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