Что такое компьютерная модель?

Top  Previous  Next

[Материал данного раздела заимствован из книги: Ю.Б.Колесов, Ю.Б.Сениченков - "Объектно-ориентированное моделирование в среде Rand Model Designer 7"]

 

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

Компьютерная модель имитирует  поведение моделируемого объекта, то есть воспроизводит в модельном времени такую же последовательность действий, которую мы наблюдали бы у моделируемого объекта

в аналогичных условиях в реальном времени. Если модельное время синхронизировано с реальным временем, то компьютерная модель становится физическим имитатором моделируемого объекта.

Под «компьютером» мы будем далее понимать совокупность аппаратной части и операционной системы. В нашем случае это Intel-совместимый компьютер и MS Windows (XP и выше).

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

Разработка модели включает в себя создание моделирующей программы и проверку адекватности ее поведения поведению моделируемого объекта. В случае если модель используется многократно,

дополнительно требуется обеспечение сопровождения модели.

Fig 1.1

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

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

Опыт показывает, что при использовании языков программирования делать это достаточно сложно, так как уровень абстракции языков программирования, как правило, не соответствует уровню абстракции описания

поведения моделируемого объекта. Следствием этого является большое число ошибок — как модельных, так и программных. Чем сложнее соответствие между моделью и текстом программы, ей соответствующей,

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

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

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

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

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

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

Кажется, что достаточно ввести описание модели и узнать в поведении исполняемой модели черты исследуемого объекта — и модель готова к использованию!

Пренебрежение основными правилами моделирования: применение модели за границами адекватности, неумение или нежелание оценить точность получаемых результатов и их соответствие поведению исследуемого объекта —

может приводить к неприятным последствиям.

Использование языков моделирования имеет и то преимущество, что часть формальных конструкций языка моделирования соответствует известным математическим формализмам, и поэтому по крайней мере

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

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

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

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

компьютерными реализациями математических моделей.