C.8. Тема 8. Математическое и компьютерное моделирование

Математическая модель описывается (представляется) математическими структурами, математическим аппаратом (числа, буквы, геометрические образы, отношения, алгебраические структуры и т.д.).

У математических моделей есть и дидактические аспекты - развитие модельного и математического стиля мышления, позволяющего вникать в структуру и внутреннюю логику моделируемой системы.

Отметим основные операции (процедуры) математического моделирования.

1. Линеаризация. Пусть дана математическая модель М=М(X, Y, A), где X - множество входов, Y - множество выходов, А - множество состояний системы. Схематически можно это изобразить так: XAY. Если X, Y, A - линейные пространства (множества), а : XA, : AY - линейные операторы (т.е. любые линейные комбинации ax+by аргументов и преобразуют в соответствующие линейные комбинации a(x)+bi;(y) и a(x)+b(y)), то система (модель) называется линейной. Все другие системы (модели) - нелинейные. Они труднее поддаются исследованию, хотя и более актуальны. Нелинейные модели менее изучены, поэтому их часто линеаризуют - сводят к линейным моделям каким-то образом, какой-то корректной линеаризующей процедурой.

2. Идентификация. Пусть М=М(X, Y, A), A={ai}, ai=(ai1, ai2, ..., aik) - вектор состояния объекта (системы). Если вектор ai зависит от некоторых неизвестных параметров, то задача идентификации (модели, параметров модели) состоит в определении по некоторым дополнительным условиям, например, экспериментальным данным, характеризующим состояние, системы в некоторых случаях. Идентификация - задача построения по результатам наблюдений математических моделей некоторого типа, адекватно описывающих поведение системы. Если S={s1, s2, ..., sn} - некоторая последовательность сообщений, получаемых от источника информации о системе, М={m1, m2, ..., mz} - последовательность моделей, описывающих S, среди которых, возможно, содержится оптимальная (в каком-то смысле) модель, то идентификация модели М означает, что последовательность S позволяет различать (по рассматриваемому критерию адекватности) две разные модели в М. Последовательность сообщений (данных) S назовем информативной, если она позволяет различать разные модели в М. Цель идентификации - построение надежной, адекватной, эффективно функционирующей гибкой модели на основе минимального объема информативной последовательности сообщений. Наиболее часто используемые методы идентификации систем (параметров систем): метод наименьших квадратов, метод максимального правдоподобия, метод байесовских оценок, метод марковских цепных оценок, метод эвристик, экспертное оценивание и другие.

3. Оценка адекватности (точности) модели.

4. Оценка чувствительности модели (чувствительности к изменениям входных параметров).

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

Отметим основные причины, несколько тормозящие выход математического моделирования на новые информационные технологии:

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

существующие средства описания и представление моделей на ЭВМ не учитывают специфику моделирования, нет единого представления моделей, генерации новых моделей по банку моделей;

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

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

Модель не эквивалентна программе, а моделирование не сводится к программированию.

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

Основные функции компьютера при моделировании систем:

·        исполнение роли вспомогательного средства для решения задач, доступных и для обычных вычислительных средств, алгоритмам, технологиям;

·        исполнение роли средства постановки и решения новых задач, не решаемых традиционными средствами, алгоритмами, технологиями;

·        исполнение роли средства конструирования компьютерных обучающих и моделирующих сред типа: "обучаемый - компьютер - обучающий", "обучающий - компьютер - обучаемый", "обучающий - компьютер - группа обучаемых", "группа обучаемых - компьютер - обучающий", "компьютер - обучаемый - компьютер";

·        исполнение роли средства моделирования для получения новых знаний;

·        исполнение роли "обучения" новых моделей (самообучение модели).

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

Вычислительный эксперимент - разновидность компьютерного моделирования.

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

Компьютерное моделирование и вычислительный эксперимент становятся новым инструментом, методом научного познания, новой технологией из-за возрастающей необходимости перехода от исследования линейных математических моделей систем (для которых достаточно хорошо известны или разработаны методы исследования, теория) к исследованию сложных и нелинейных математических моделей систем (анализ которых гораздо сложнее); грубо, но образно, говоря: "наши знания об окружающем мире - линейны и детерминированы, а процессы в окружающем мире - нелинейны и стохастичны".

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

Компьютерное моделирование, от постановки задачи до получения результатов, проходит следующие этапы компьютерного моделирования.

1.      Постановка задачи.

·      Формулировка задачи.

·      Определение цели и приортетов моделирования.

·      Сбор информации о системе, объекте моделирования.

·      Описание данных (их структуры, диапазона, источника и т.д.).

2.      Предмодельный анализ.

·      Анализ существующих аналогов и подсистем.

·      Анализ технических средств моделирования (ЭВМ, периферия).

·      Анализ программного обеспечения (языки программирования, пакеты прикладных программ, инструментальные среды).

·      Анализ математического обеспечения (модели, методы, алгоритмы).

3.      Анализ задачи (модели).

·      Разработка структур данных.

·      Разработка входных и выходных спецификаций, форм представления данных.

·      Проектирование структуры и состава модели (подмоделей).

4.      Исследование модели.

·      Выбор методов исследования подмоделей.

·      Выбор, адаптация или разработка алгоритмов, их псевдокодов.

·      Сборка модели в целом из подмоделей.

·      Идентификация модели, если в этом есть необходимость.

·      Формулировка используемых критериев адекватности, устойчивости и чувствительности модели.

5.      Программирование (проектирование программы).

·      Выбор метода тестирования и тестов (контрольных примеров).

·      Кодирование на языке программирования (написание команд).

·      Комментирование программы.

6.      Тестирование и отладка.

·      Синтаксическая отладка.

·      Семантическая отладка (отладка логической структуры).

·      Тестовые расчеты, анализ результатов тестирования.

·      Оптимизация программы.

7.      Оценка моделирования.

·      Оценка средств моделирования.

·      Оценка адекватности моделирования.

·      Оценка чувствительности модели.

·      Оценка устойчивости модели.

8.      Документирование.

·      Описание задачи, целей.

·      Описание модели, метода, алгоритма.

·      Описание среды реализации.

·      Описание возможностей и ограничений.

·      Описание входных и выходных форматов, спецификаций.

·      Описание тестирования.

·      Создание инструкций для пользователя.

9.      Сопровождение.

·      Анализ применения, периодичности использования, количества пользователей, типа использования (диалоговый, автономный и др.), анализ отказов во время использования модели.

·      Обслуживание модели, алгоритма, программы и их эксплуатация.

·      Расширение возможностей: включение новых функций или изменение режимов моделирования, в том числе и под модифицированную среду.

·      Нахождение, исправление скрытых ошибок в программе, если таковые найдутся.

10.   Использование модели.