Функциональные блоки систем имитационного моделирования и их программная реализация
Исходя из особенностей имитационного моделирования, наиболее рационально строить модель по блочному принципу. Основные группы функциональных блоков были упомянуты ранее.
Каждый блок выполняет определенную законченную функцию, поэтому он достаточно автономен и должен иметь минимальное количество связей с другими блоками. Разумеется, что каждому такому блоку соответствует своя, как правило, типовая математическая модель. Например, это могут быть модели типовых динамических звеньев, модели генерации сигналов, схемы вероятностных и конечных автоматов, схемы массового обслуживания, которые достаточно точно описывают основные особенности реальных процессов.
В результате от функциональных блоков переходят к модулям, программно реализующим соответствующую математическую функцию. Из готовых программных модулей составляется имитационная модель исследуемой системы. По сути, имеем дело со специальным, прикладным программным обеспечением. Оно определяет возможности и эффективность имитационного моделирования и носит проблемно-ориентированный характер, соответствующий рассматриваемой предметной области.
Но прежде чем перейти к организации программного обеспечения систем моделирования, рассмотрим кратко основные типы систем программирования.
Система программирования определяет технологию программирования, технологию разработки программ. Она включает в себя язык программирования, транслятор и вспомогательные средства для отладки программ.
Системы программирования можно разбить на две основные группы:
процедурные системы программирования (ПСП),
непроцедурные системы программирования (НСП).
Процедурно-ориентированные языки и системы программирования содержат средства для описания процедур (или алгоритмов) решения задачи, в связи с чем их называют алгоритмическими. ПСП требует подробно расписать алгоритм решения задачи, т.е. описать строго последовательно каждое действие, каждую процедуру. Другими словами, процедурный уровень общения соответствует классической методике программирования на языках высокого уровня.
Из названия НСП следует другой подход, не требующий детального программирования. Поясним кратко суть непроцедурной системы программирования.
Пусть X — набор, множество исходных данных задачи, Y — набор, множество выходных данных задачи, R(X) — алгоритм преобразования X в Y (т.е. алгоритм или процедура решения задачи).
Системы программирования, в которых пользователь задает X, Y и R(X) и есть системы программирования с процедурным уровнем общения или просто процедурные.
Системы программирования, в которых пользователю достаточно задать, указать лишь X и Y, а система самостоятельно познает задачу, выбирает метод, алгоритм ее решения, строит вычислительную схему (комплексную программу) этого алгоритма и с помощью ее выполнения при заданных исходных данных получает результат — требуемые выходные данные Y, и есть системы непроцедурного программирования. НСП практически исключают для пользователя такие трудоемкие этапы вычислительного процесса, как алгоритмизация и программирование, сокращают объем работ по составлению, изменению модели исследуемой системы и подготовке исходных данных.
Если в процедурных системах львиная доля времени и затрат пользователя приходится на создание программных средств, то в непроцедурных акценты меняются — пользователь получает больше времени на осмысление и решение задач.