В настоящее время под компьютерной моделью чаще всего понимают:
• условный образ объекта или некоторой системы объектов (или процессов), описанный с помощью взаимосвязанных компьютерных таблиц, блок-схем, диаграмм, графиков, рисунков, анимационных фрагментов, гипертекста и т. д. и отображающий структуру элементов объекта и взаимосвязи между ними. Компьютерные модели такого вида будем называть структурно-функциональными;
• программу или программный комплекс, позволяющий с помощью последовательности вычислений и графического отображения их результатов воспроизводить (имитировать) процессы функционирования объекта, системы объектов при условии воздействия на объект различных, как правило, случайных, факторов. Такие модели будем далее называть имитационными.
Компьютерное моделирование — метод решения задачи анализа или синтеза сложной системы на основе использования ее компьютерной модели. Суть компьютерного моделирования заключена в получении количественных и качественных результатов по имеющейся модели. Качественные выводы, получаемые по результатам анализа, позволяют обнаружить неизвестные ранее свойства сложной системы: ее структуру, динамику развития, устойчивость, целостность и др. Количественные выводы в основном носят характер прогноза некоторых будущих или объяснения прошлых значений переменных, характеризирующих систему.
Предметом компьютерного моделирования могут быть: экономическая деятельность фирмы или банка, промышленное предприятие, информационно-вычислительная сеть, технологический процесс, любой реальный объект или процесс, например процесс инфляции, и вообще – любая сложная система.
Цели компьютерного моделирования могут быть различными, однако наиболее часто моделирование является, как уже отмечалось ранее, центральной процедурой системного анализа, причем под системным анализом далее понимается совокупность методологических средств, используемых для подготовки и принятия решений экономического, организационного, социального или технического характера.
Компьютерная модель сложной системы должна, по возможности, отображать все основные факторы и взаимосвязи, характеризующие реальные ситуации, критерии и ограничения. Модель должна быть достаточно универсальной, чтобы описывать близкие по назначению объекты, и в то же время достаточно простой, чтобы позволить выполнить необходимые исследования с разумными затратами.
Все это говорит о том, что моделирование систем, рассматриваемое в целом, представляет собой скорее искусство, чем сформировавшуюся науку с самостоятельным набором средств отображения явлений и процессов реального мира. Поэтому исключительно сложными, являются попытки классификации задач компьютерного моделирования или создания достаточно универсальных инструментальных средств компьютерного моделирования произвольных объектов. Однако если преднамеренно сузить класс рассматриваемых объектов, то возможно отобрать ряд достаточно универсальных подходов и программных средств.
Выделяют следующие классы инструментальных пакетов компьютерной математики:
1) Системы численных расчетов.
2) Табличные процессоры.
3) Матричные системы (MatLab).
4) Системы для статистических расчетов (SPSS Statistica).
5) Системы для специальных расчетов.
6) Системы для аналитических расчетов (компьютерной алгебры Derive).
7) Универсальные системы (MathCad, Mathematica).
Представим структуру математических инструментальных пакетов.
1. Ядро – заранее откомпилированные функции и процедуры, обеспечивающие набор встроенных функций и операций системы. Доступ пользователей к ядру исключен.
2. Интерфейс – позволяет пользователям обращаться к ядру с запросами и получать результат решения на экране, позволяет редактировать библиотечные модули и пакеты расширения системы.
3. Библиотеки – более редкие процедуры и функции, которые отсутствуют в ядре. Некоторые системы позволяют модернизировать библиотеки.
4. Пакеты расширения системы пишутся на собственном языке программирования систем и могут быть подготовлены пользователем.
5. Справочная система предназначена для получения оперативных справок по вопросам работы с системой и примерами.
Сравнение универсальных математических инструментальных пакетов представлено в табл. 1.
Таблица 1
Сравнение математических инструментальных пакетов
Название системы |
Назначение и достоинства |
Ограничения и недостатки |
1 |
2 |
3 |
Derive |
-Начальное образование - Первые курсы вузов нематематических профилей - Функциональное программирование - Аналитические вычисления |
- Слабая графика - Отсутствие средств операторного программирования - Слабая поддержка специальных функций в символьных расчетах |
MathCad |
- Научное и высшее образование - Хороший интерфейс пользователя - Хорошая графика - Ввод данных с помощью палитры математических знаков |
- Ограниченные средства символьной математики - Примитивные средства программирования - Повышенные требования к аппаратным ресурсам |
Maple |
- Высшее образование - Научные расчеты - Мощное ядро символьных вычислений (до 3000 функций) - Мощная графика - Удобная система помощи |
- Повышенные требования к аппаратным ресурсам - Чрезмерная академичность |
Продолжение табл. 1
1 |
2 |
3 |
Mathematica |
- Высшее образование - Научные расчеты - Совместимость с различными компьютерными платформами - Хорошая графика - Поддержка синтеза звука |
- Высокие требования к аппаратным ресурсам - Неудобная защита от несанкционированного копирования |
MatLab |
- Сфера университетского образования - Научные расчеты - Численное моделирование - Обилие численных методов - Описательная графика - Высокая скорость вычислений - Существует множество пакетов расширений системы |
- Высокие требования к аппаратным ресурсам - Скромные возможности символьной графики |
К специализированным языкам имитационного моделирования относятся такие языки, как GPSS, SIMAN, SLAM, SIMSCRIPT, SIMULA, GASP.
Они представляют собой программное обеспечение, ориентированное на имитацию процессов и относятся к языкам высокого уровня, в которых стандартные операции имитационного моделирования, такие как “создать объект”, “двигать”, “передать по условию”, “ожидать в течение”, "генерировать случайные числа" и т.д., представляют собой блоки в виде последовательностей команд на одном из универсальных языков. Поведение системы отображается последовательностью событий. Событием является начало или окончание какой либо операции. Процесс отображается не системой уравнений, а взаимодействием элементов модели Е1,...,Еn во времени и пространстве (рис. 2). Специализированные языки написаны на универсальных языках.
Рис. 2. Взаимодействие элементов модели
Специализированные языки имитационного моделирования различаются способами учета времени, сложностью изменения структуры модели, способами проведения экспериментов.
Они компактны и имеют широкий круг приложений, однако требуют специальной подготовки пользователя, который должен написать программу в терминах языка для конкретного объекта моделирования. Поэтому созданы языки компьютерной анимации, позволяющие отображать процесс имитационного моделирования на мониторе. Например, программное обеспечение Proof Animation отображает на экране компьютера взаимодействие объектов системы по результатам моделирования. Оно может соединяться с различными специализированными языками имитации GPSS, SIMAN, SIMSCRIPT, SLAM.
К имитационным средам относятся такие, как Arena, AutoMod, AlphaSim, Anylogic, Deneb, Extend, GPSS World, MicroSaint, MAST и др.
Имитационные среды не требуют программирования в виде последовательности команд. Вместо составления программы пользователь составляет модель, выбирая из библиотеки графические модули, и/или заполняет специальные бланки.
Модель составляют из библиотечных графических модулей или заполняют специальные формы.
Рис. 3. Составление модели пользователем
В современных системах имитационного моделирования автоматизированы процессы статистической обработки данных, управления проведением экспериментов, оптимизации поведения системы, сравнения различных альтернатив. Так же существует возможность создания своих собственных блоков на встроенных универсальных языках.
Как правило, имитационная среда обеспечивает возможность визуализации процесса имитации и связи с инструментами компьютерного проектирования систем.
В отличие от специализированных языков имитационное моделирование ведется быстрее, но область приложения большинства систем имитации ограничена.
Итак, программные средства имитации в своем развитии изменялись на протяжении нескольких поколений, но основное назначение всех этих средств - уменьшение трудоемкости создания программных реализаций имитационных моделей и экспериментирования с моделями.
Компьютерное моделирование, от постановки задачи до получения результатов, проходит следующие этапы.
Постановка задачи.
Формулировка задачи.
Определение цели и приоритетов моделирования.
Сбор информации о системе, объекте моделирования.
Описание данных (их структуры, диапазона, источника и т.д.).
Развитие имитационного моделирования началось в 50-х годах на языках типа FORTRAN. В 60-х годах появились и стали развиваться специализированные языки имитационного моделирования GPSS, SIMSCRIPT, GASP, SIMULA SLAM. Их применение позволило упростить процесс имитации систем. В 80-х годах стали разрабатывать имитационные системы (среды), содержащие интерфейс непрограммирующего пользователя, входные и выходные анализаторы, возможность анимации процесса имитационного моделирования. В наше время на рынке ПО для имитации предлагается более 50 мощных продуктов имитационного моделирования, таких как Arena, AutoMod, Ехtеnd, GPSSWorld и др.
Сейчас разработка методов имитационного моделирования находится в середине своего развития. Ведутся работы по совместному функционированию распределенных имитационных моделей, связи имитационных моделей через Интернет, универсализации моделей, расширению библиотек элементов моделей.
В литературе по моделированию встречаются такие названия, как пакеты, софт, имитационные системы, имитационные среды, языки имитационного моделирования, проблемно-ориентированные имитаторы, процедурно и объектно-ориентированные языки моделирования, проблемно-ориентированные информационно-вычислительные системы, системы автоматизированного моделирования, генераторы программ, модельно-ориентированные имитационные пакеты, пакеты имитационного моделирования для ПВЭМ и т.д.
Можно разделить все программное обеспечение для моделирования на три группы: универсальные языки, специализированные языки, имитационные среды.
К универсальным языкам программирования относятся такие, как С, Delphi и т.п.
Динамику системы описывают в виде последовательности уравнений с детерминированными -X и случайными ~X коэффициентами. Уравнения кодируют в терминах используемого языка и вводят программу в компьютер. Время моделирования разбивают на одинаковые шаги Dt. На каждом шаге Dt изменяют значения случайных коэффициентов, для которых по уравнениям рассчитывают изменения выходной величины ~Y(Dt). Каждый эксперимент представляет собой расчет уравнений с шагом Dt. В результате устанавливают связь выходных величин с входными величинами (рис. 1).
Рис. 1. Связь входных и выходных величин
Динамику системы описывают уравнениями, которые кодируют в программу, затем проводят расчет уравнений и устанавливают связь выходных величин с входными.
Такой подход требует аналитического описания процессов с последующим переводом полученной системы уравнений в программу для ЭВМ. Поэтому разработка таких программ занимает нескольких человеко-месяцев труда специалистов по технологии, программированию и математике. Модель, содержит сотни (тысячи) команд, трудно поддается доработке (как правило, исправить или дополнить моделирующую программу может только тот, кто ее разрабатывал). Часто время разработки модели отстает от развития моделируемой системы производства и модель становиться ненужной.
Для имитационного моделирования универсальные языки применяют редко.