Математическая модель описывается (представляется) математическими структурами, математическим аппаратом (числа, буквы, геометрические образы, отношения, алгебраические структуры и т.д.).
Отметим основные операции (процедуры) математического моделирования.
1. Линеаризация. Пусть дана математическая модель М=М(X, Y, A), где X - множество входов, Y - множество выходов, А - множество состояний системы. Схематически можно это изобразить так: X->A->Y. Если X, Y, A - линейные пространства (множества), а - линейные операторы (т.е. любые линейные комбинации ax+by аргументов и преобразуют в соответствующие линейные комбинации и , то система (модель) называется линейной. Все другие системы (модели) - нелинейные. Они труднее поддаются исследованию, хотя и более актуальны. Нелинейные модели менее изучены, поэтому их часто линеаризуют - сводят к линейным моделям каким-то образом, какой-то корректной линеаризующей процедурой.
2. Идентификация. Задача идентификации (модели, параметров модели) состоит в определении по некоторым дополнительным условиям, например, экспериментальным данным, характеризующим состояние, системы в некоторых случаях. Идентификация - задача построения по результатам наблюдений математических моделей некоторого типа, адекватно описывающих поведение системы. Цель идентификации - построение надежной, адекватной, эффективно функционирующей гибкой модели на основе минимального объема информативной последовательности сообщений.
3. Оценка адекватности (точности) модели.
4. Оценка чувствительности модели (чувствительности к изменениям входных параметров).
5. Вычислительный эксперимент по модели. Это эксперимент, осуществляемый с помощью модели на ЭВМ с целью определения, прогноза тех или иных состояний системы, реакции на те или иные входные сигналы. Прибором эксперимента здесь является компьютер (и модель!). Это процедура часто отождествляется с компьютерным моделированием.
Отметим основные причины, несколько тормозящие выход математического моделирования на новые информационные технологии:
· традиционное описание модели системами математических уравнений, соотношений; в то же время, большинство плохо структурированных и плохо формализуемых систем описываются с помощью экспертных данных, эвристических и имитационных процедур, интегрированных пакетов программ, графических образов и т.д.;
· существующие средства описания и представление моделей на ЭВМ не учитывают специфику моделирования, нет единого представления моделей, генерации новых моделей по банку моделей;
· недооценка возможностей компьютера, который может делать больше, чем простая реализация алгоритма, как правило, структурируемого и/или реализуемого хорошо, отсутствие доступа к опыту моделирования на ЭВМ.
Модель не эквивалентна программе, а моделирование не сводится к программированию.
Специфические операции математического моделирования, например, идентификация, линеаризация не сводятся в ЭВМ к преобразованию в ней программ. Расширяется и область применения компьютера и компьютерных моделей.
Основные функции компьютера при моделировании систем:
· исполнение роли вспомогательного средства для решения задач, доступных и для обычных вычислительных средств, алгоритмам, технологиям;
· исполнение роли средства постановки и решения новых задач, не решаемых традиционными средствами, алгоритмами, технологиями;
· исполнение роли средства конструирования компьютерных обучающих и моделирующих сред типа: "обучаемый - компьютер - обучающий", "обучающий - компьютер - обучаемый", "обучающий - компьютер - группа обучаемых", "группа обучаемых - компьютер - обучающий", "компьютер - обучаемый - компьютер";
· исполнение роли средства моделирования для получения новых знаний;
· исполнение роли "обучения" новых моделей (самообучение модели).
Компьютерное моделирование - основа представления знаний в ЭВМ (построения различных баз знаний). Компьютерное моделирование для рождения новой информации использует любую информацию, которую можно актуализировать с помощью ЭВМ. Прогресс моделирования связан с разработкой систем компьютерного моделирования, которые поддерживает весь жизненный цикл модели, а прогресс в информационной технологии - с актуализацией опыта моделирования на компьютере, с созданием банков моделей, методов и программных систем, позволяющих собирать новые модели из моделей банка. Автономные подмодели модели обмениваются информацией друг с другом через единую информационную шину - банк моделей, через базу знаний по компьютерному моделированию. Особенность компьютерных систем моделирования - их высокая интеграция и интерактивность. Часто эти компьютерные среды функционируют в режиме реального времени.
Вычислительный эксперимент - разновидность компьютерного моделирования.
Можно говорить сейчас и о специальных пакетах прикладных программ, текстовых, графических и табличных процессоров, визуальных и когнитивных средах (особенно, работающих в режиме реального времени), позволяющих осуществлять компьютерное моделирование.
Компьютерное моделирование и вычислительный эксперимент становятся новым инструментом, методом научного познания, новой технологией из-за возрастающей необходимости перехода от исследования линейных математических моделей систем (для которых достаточно хорошо известны или разработаны методы исследования, теория) к исследованию сложных и нелинейных математических моделей систем (анализ которых гораздо сложнее); грубо, но образно, говоря: "наши знания об окружающем мире - линейны и детерминированы, а процессы в окружающем мире - нелинейны и стохастичны".
Информация (абстракция), реализуясь сообщениями реального мира, овеществляется в разных предметных процессах, а реализация на компьютере вызывает необходимость использования в компьютерах специальных формализованных описаний, представлений этих процессов.
Компьютерное моделирование, от постановки задачи до получения результатов, проходит следующие этапы компьютерного моделирования.
1. Постановка задачи.
1. Формулировка задачи.
2. Определение цели и приоритетов моделирования.
3. Сбор информации о системе, объекте моделирования.
4. Описание данных (их структуры, диапазона, источника и т.д.).
2. Предмодельный анализ.
1. Анализ существующих аналогов и подсистем.
2. Анализ технических средств моделирования (ЭВМ, периферия).
3. Анализ программного обеспечения (языки программирования, пакеты прикладных программ, инструментальные среды).
4. Анализ математического обеспечения (модели, методы, алгоритмы).
3. Анализ задачи (модели).
1. Разработка структур данных.
2. Разработка входных и выходных спецификаций, форм представления данных.
3. Проектирование структуры и состава модели (подмоделей).
4. Исследование модели.
1. Выбор методов исследования подмоделей.
2. Выбор, адаптация или разработка алгоритмов, их псевдокодов.
3. Сборка модели в целом из подмоделей.
4. Идентификация модели, если в этом есть необходимость.
5. Формулировка используемых критериев адекватности, устойчивости и чувствительности модели.
5. Программирование (проектирование программы).
1. Выбор метода тестирования и тестов (контрольных примеров).
2. Кодирование на языке программирования (написание команд).
3. Комментирование программы.
6. Тестирование и отладка.
1. Синтаксическая отладка.
2. Семантическая отладка (отладка логической структуры).
3. Тестовые расчеты, анализ результатов тестирования.
4. Оптимизация программы.
7. Оценка моделирования.
1. Оценка средств моделирования.
2. Оценка адекватности моделирования.
3. Оценка чувствительности модели.
4. Оценка устойчивости модели.
8. Документирование.
1. Описание задачи, целей.
2. Описание модели, метода, алгоритма.
3. Описание среды реализации.
4. Описание возможностей и ограничений.
5. Описание входных и выходных форматов, спецификаций.
6. Описание тестирования.
7. Создание инструкций для пользователя.
9. Сопровождение.
1. Анализ применения, периодичности использования, количества пользователей, типа использования (диалоговый, автономный и др.), анализ отказов во время использования модели.
2. Обслуживание модели, алгоритма, программы и их эксплуатация.
3. Расширение возможностей: включение новых функций или изменение режимов моделирования, в том числе и под модифицированную среду.
4. Нахождение, исправление скрытых ошибок в программе, если таковые найдутся.
10. Использование модели.
Пример. Математическое и компьютерное моделирование подробно, поэтапно, мы рассмотрим на примере следующей простой модели производства. Итак, возьмем укрупненные этапы моделирования производства.
Наша учеба, работа, личные дела - это каждодневное, ежечасное решение различных задач. Каждая задача требует для своего решения выполнения определенных действий. Многократно решая задачи, можно замететь, что необходимые действия должны выполняться в строго определенном порядке. В таких случаях принято говорить об алгоритме решения задач. Понятие алгоритма считается одним из древнейших. Оно возникло задолго до появления ЭВМ, но с развитием вычислительной техники его роль значительно возросла.
Происхождение понятия алгоритма связано с именем великого среднеазиатского ученого Аль Хорезми, жившего в 9 веке н.э. Им были сформулированы впервые правила выполнения четырех арифметических действий.
Алгоритм - это точная инструкция, а инструкции встречаются во всех областях человеческой деятельности. Однако не всякую инструкцию можно назвать алгоритмом. Решая задачу, человек часто не задумывается над тем, как он это делает, и порой, затрудняется записать последовательность выполняемых действий. Но для того, чтобы поручить решение задачи автоматическому устройству необходимо составить алгоритм с четким указанием последовательности действий. Чтобы автоматическое устройство могло решить задачу в соответствии с алгоритмом, оно должно понимать каждое указание алгоритма. Алгоритм применяется к искомому набору исходных величин, называемых аргументами. Цель исполнения алгоритма получение определенного результата, если в результате исполнения алгоритма не достигнута определенная цель, значит алгоритм либо неверен, либо не завершен.