Отметим основные операции (процедуры) математического моделирования.
1. Линеаризация. Пусть дана математическая модель М=М(X, Y, A), где X - множество входов, Y - множество выходов, А - множество состояний системы. Схематически можно это изобразить так: X->A->Y. Если X, Y, A - линейные пространства (множества), а - линейные операторы (т.е. любые линейные комбинации ax+by аргументов и преобразуют в соответствующие линейные комбинации и , то система (модель) называется линейной. Все другие системы (модели) - нелинейные. Они труднее поддаются исследованию, хотя и более актуальны. Нелинейные модели менее изучены, поэтому их часто линеаризуют - сводят к линейным моделям каким-то образом, какой-то корректной линеаризующей процедурой.
Пример. Применим операцию линеаризации к модели (какой физической системы, явления?) у=at2/2, 0<=t<=4, которая является нелинейной (квадратичной). Для этого заменим один из множителей t на его среднее значение для рассматриваемого промежутка, т.е. на t=2. Такая (пусть простят меня знакомые с линеаризацией читатели, - хоть и очень наглядная, но очень грубая!) процедура линеаризации дает уже линейную модель вида y=2at. Более точную линеаризацию можно провести следующим образом: заменим множитель t не на среднее, а на значение в некоторой точке (это точка - неизвестная!); тогда, как следует из теоремы о среднем из курса высшей математики, такая замена будет достаточно точна, но при этом необходимо оценить значение неизвестной точки. На практике используются достаточно точные и тонкие процедуры линеаризации.
2. Идентификация. Пусть М=М(X, Y, A), A={ai}, ai=(ai1, ai2, ..., aik) - вектор состояния объекта (системы). Если вектор ai зависит от некоторых неизвестных параметров, то задача идентификации (модели, параметров модели) состоит в определении по некоторым дополнительным условиям, например, экспериментальным данным, характеризующим состояние, системы в некоторых случаях. Идентификация - задача построения по результатам наблюдений математических моделей некоторого типа, адекватно описывающих поведение системы. Если S={s1, s2, ..., sn} - некоторая последовательность сообщений, получаемых от источника информации о системе, М={m1, m2, ..., mz} - последовательность моделей, описывающих S, среди которых, возможно, содержится оптимальная (в каком-то смысле) модель, то идентификация модели М означает, что последовательность S позволяет различать (по рассматриваемому критерию адекватности) две разные модели в М. Последовательность сообщений (данных) S назовем информативной, если она позволяет различать разные модели в М. Цель идентификации - построение надежной, адекватной, эффективно функционирующей гибкой модели на основе минимального объема информативной последовательности сообщений. Наиболее часто используемые методы идентификации систем (параметров систем): метод наименьших квадратов, метод максимального правдоподобия, метод байесовских оценок, метод марковских цепных оценок, метод эвристик, экспертное оценивание и другие.
Пример. Применим операцию идентификации параметра a в модели предыдущего примера. Для этого необходимо задать дополнительно значение y для некоторого t, например, y=6 при t=3. Тогда из модели получаем: 6=9a/2, a=12/9=4/3. Идентифицированный параметр а определяет следующую модель y=2t2/3. Методы идентификации моделей могут быть несоизмеримо сложнее, чем приведенный прием.
3. Оценка адекватности (точности) модели.
Пример. Оценим адекватность (точность) модели у=at2/2, 0<=t<=4, полученной в результате линеаризации выше. В качестве меры (критерия) адекватности рассмотрим привычную меру - абсолютное значение разности между точным (если оно известно) значением и значением, полученным по модели (почему берется по модулю?). Отклонение точной модели от линеаризованной будет в рамках этого критерия равно |at2/2-2at|, 0<=t<=4. Если a>0, то, как несложно оценить с помощью производной, эта погрешность будет экстремальна при t=2a. Например, если a=1, то эта величина не превосходит 2. Это достаточно большое отклонение, и можно заключить, что наша линеаризованная модель в данном случае не является адекватной (как исходной системе, так и нелинеаризованной модели).
4. Оценка чувствительности модели (чувствительности к изменениям входных параметров).
Пример. Из предыдущего примера следует, что чувствительность модели у=at2/2, 0<=t<=4 такова, что изменение входного параметра t на 1% приводит к изменению выходного параметра y на более, чем 2%, т.е. эта модель является чувствительной.
5. Вычислительный эксперимент по модели. Это эксперимент, осуществляемый с помощью модели на ЭВМ с целью определения, прогноза тех или иных состояний системы, реакции на те или иные входные сигналы. Прибором эксперимента здесь является компьютер (и модель!). Это процедура часто отождествляется с компьютерным моделированием.
Отметим основные причины, несколько тормозящие выход математического моделирования на новые информационные технологии:
- традиционное описание модели системами математических уравнений, соотношений; в то же время, большинство плохо структурированных и плохо формализуемых систем описываются с помощью экспертных данных, эвристических и имитационных процедур, интегрированных пакетов программ, графических образов и т.д.;
- существующие средства описания и представление моделей на ЭВМ не учитывают специфику моделирования, нет единого представления моделей, генерации новых моделей по банку моделей;
- недооценка возможностей компьютера, который может делать больше, чем простая реализация алгоритма, как правило, структурируемого и/или реализуемого хорошо, отсутствие доступа к опыту моделирования на ЭВМ.
В базовой пятерке: "система (исследуемая среда) - модель (описание среды) - алгоритм (программа) - компьютер (компьютерная технология) - пользователь (выработка решения)" при компьютерном моделировании главную роль играют уже алгоритм (программа), компьютер и технология, точнее, инструментальные системы для компьютера, компьютерные технологии.
Пример. При имитационном моделировании (при отсутствии строгого и формально записанного алгоритма) главную роль играют технология и средства моделирования; аналогичная ситуация наблюдается в когнитивной графике.
Модель не эквивалентна программе, а моделирование не сводится к программированию.
Специфические операции математического моделирования, например, идентификация, линеаризация не сводятся в ЭВМ к преобразованию в ней программ. Расширяется и область применения компьютера и компьютерных моделей.
Основные функции компьютера при моделировании систем:
- исполнение роли вспомогательного средства для решения задач, доступных и для обычных вычислительных средств, алгоритмам, технологиям;
- исполнение роли средства постановки и решения новых задач, не решаемых традиционными средствами, алгоритмами, технологиями;
- исполнение роли средства конструирования компьютерных обучающих и моделирующих сред типа: "обучаемый - компьютер - обучающий", "обучающий - компьютер - обучаемый", "обучающий - компьютер - группа обучаемых", "группа обучаемых - компьютер - обучающий", "компьютер - обучаемый - компьютер";
- исполнение роли средства моделирования для получения новых знаний;
- исполнение роли "обучения" новых моделей (самообучение модели).
Компьютерное моделирование - основа представления знаний в ЭВМ (построения различных баз знаний). Компьютерное моделирование для рождения новой информации использует любую информацию, которую можно актуализировать с помощью ЭВМ. Прогресс моделирования связан с разработкой систем компьютерного моделирования, которые поддерживает весь жизненный цикл модели, а прогресс в информационной технологии - с актуализацией опыта моделирования на компьютере, с созданием банков моделей, методов и программных систем, позволяющих собирать новые модели из моделей банка. Автономные подмодели модели обмениваются информацией друг с другом через единую информационную шину - банк моделей, через базу знаний по компьютерному моделированию. Особенность компьютерных систем моделирования - их высокая интеграция и интерактивность. Часто эти компьютерные среды функционируют в режиме реального времени.
Вычислительный эксперимент - разновидность компьютерного моделирования.
Можно говорить сейчас и о специальных пакетах прикладных программ, текстовых, графических и табличных процессоров, визуальных и когнитивных средах (особенно, работающих в режиме реального времени), позволяющих осуществлять компьютерное моделирование.
Компьютерное моделирование и вычислительный эксперимент становятся новым инструментом, методом научного познания, новой технологией из-за возрастающей необходимости перехода от исследования линейных математических моделей систем (для которых достаточно хорошо известны или разработаны методы исследования, теория) к исследованию сложных и нелинейных математических моделей систем (анализ которых гораздо сложнее); грубо, но образно, говоря: "наши знания об окружающем мире - линейны и детерминированы, а процессы в окружающем мире - нелинейны и стохастичны".
Информация (абстракция), реализуясь сообщениями реального мира, овеществляется в разных предметных процессах, а реализация на компьютере вызывает необходимость использования в компьютерах специальных формализованных описаний, представлений этих процессов.
Компьютерное моделирование, от постановки задачи до получения результатов, проходит следующие этапы компьютерного моделирования.
- Постановка задачи.
- Формулировка задачи.
- Определение цели и приоритетов моделирования.
- Сбор информации о системе, объекте моделирования.
- Описание данных (их структуры, диапазона, источника и т.д.).
- Предмодельный анализ.
- Анализ существующих аналогов и подсистем.
- Анализ технических средств моделирования (ЭВМ, периферия).
- Анализ программного обеспечения (языки программирования, пакеты прикладных программ, инструментальные среды).
- Анализ математического обеспечения (модели, методы, алгоритмы).
- Анализ задачи (модели).
- Разработка структур данных.
- Разработка входных и выходных спецификаций, форм представления данных.
- Проектирование структуры и состава модели (подмоделей).
- Исследование модели.
- Выбор методов исследования подмоделей.
- Выбор, адаптация или разработка алгоритмов, их псевдокодов.
- Сборка модели в целом из подмоделей.
- Идентификация модели, если в этом есть необходимость.
- Формулировка используемых критериев адекватности, устойчивости и чувствительности модели.
- Программирование (проектирование программы - лучше модели).
- Выбор метода тестирования и тестов (контрольных примеров).
- Кодирование на языке программирования (написание команд).
- Комментирование программы.
- Тестирование и отладка.
- Синтаксическая отладка.
- Семантическая отладка (отладка логической структуры).
- Тестовые расчеты, анализ результатов тестирования.
- Оптимизация программы.
- Оценка моделирования.
- Оценка средств моделирования.
- Оценка адекватности моделирования.
- Оценка чувствительности модели.
- Оценка устойчивости модели.
- Документирование.
- Описание задачи, целей.
- Описание модели, метода, алгоритма.
- Описание среды реализации.
- Описание возможностей и ограничений.
- Описание входных и выходных форматов, спецификаций.
- Описание тестирования.
- Создание инструкций для пользователя.
- Сопровождение.
- Анализ применения, периодичности использования, количества пользователей, типа использования (диалоговый, автономный и др.), анализ отказов во время использования модели.
- Обслуживание модели, алгоритма, программы и их эксплуатация.
- Расширение возможностей: включение новых функций или изменение режимов моделирования, в том числе и под модифицированную среду.
- Нахождение, исправление скрытых ошибок в программе, если таковые найдутся.
- Использование модели.
Пример. Математическое и компьютерное моделирование подробно, поэтапно, мы рассмотрим на примере следующей простой модели производства. Итак, возьмем укрупненные этапы моделирования производства.