автореферат диссертации по информатике, вычислительной технике и управлению, 05.13.18, диссертация на тему:Методы и технология построения программных моделей для систем автоматизации моделирования
Оглавление автор диссертации — кандидата технических наук Костельцев, Андрей Вячеславович
Введение
Глава 1. Структура проблемы
1.1. Моделирование как инструмент системного анализа
1.1.1. Классификация моделей. 14 По целям разработки 14 Физические и математические модели 16 Аналоговые и цифровые модели 16 Математические, алгоритмические и программные модели 17 Виды и формы представления математической модели 19 Некоторые вопросы квалиметрии моделей
1.1.2. Преобразования моделей
1.1.3. Модельное "время" и алгоритмизация
1.1.4. Обсуждение существующих языков программирования и языков моделирования
1.1.5. Процесс создания программной модели
1.1.6. Обеспечение задач системного моделирования 38 Математическая поддержка 40 Технологическая поддержка 44 Программная поддержка 44 Искусственный интеллект 45 Графическое программирование
1.2. Выводы
Глава 2. Структура среды моделирования
2.1. Мультисинтаксический компилятор языка моделирования
2.1.1. Студия разработки вычислительных экспериментов
2.2. Система создания, отладки и квалиметрии моделей
2.3. Среда моделирования
2.4. Выводы
Глава 3. Элементы технологии построения и структура ПМ
3.1. Задачи
3.2. Язык описания методов Рунге-Кутты
3.2.1. Функции языка описания библиотек методов Рунге-Кутты
3.2.2. Использование языка описания методов Рунге-Кутты
3.2.3. Способ хранения методов численного интегрирования функций
3.3. Интерпретатор дифференциальных моделей
3.4. Применение ИДМ
3.5. Выводы
Глава 4. Синтаксический и семантический анализ некоторых видов математических моделей в их естественной форме представления
4.1. Системы обыкновенных дифференциальных уравнений
Таблица символов
Внутреннее представление программ
4.1.1. Семантический анализ
Оператор "задержка"
Процедура "разворота" производных 113 Процедура семантического анализа ОДУ с одновременным приведением к нормальной форме Коши
4.2. Системы разностных уравнений
4.3. Алгоритмические сетевые модели 118 4.3.1. Алгоритм идентифицирующего планирования вычислений
4.4. Уравнения,неразрешенные относительно старшей производной
4.5. Схемы для аналоговых вычислительных машин
4.6. Структурные схемы систем автоматического управления
4.7. Оптимизация кода
4.8. Выводы
Введение 2001 год, диссертация по информатике, вычислительной технике и управлению, Костельцев, Андрей Вячеславович
Современные задачи управления, проектирования и исследования технических, экономических, социальных и других систем подразумевают наличие групп специалистов разных профилей и, в связи с этим, предъявляют новые требования к технологиям проведения исследований. Наиболее важным вопросом здесь является обеспечение эффективного сотрудничества специалистов разных отраслей науки.
Моделирование, в общем, является методом исследования систем путем их замены более удобными для экспериментов приближенными моделями, отражающими с достаточной степенью точности основные свойства оригинала. И, естественно, общие проблемы исследования систем накладывают свой отпечаток на создаваемые методы и технологии моделирования [12].
Традиционно, в виду сложности современных систем, технологии моделирования осуществляются несколькими коллективами специалистов различных отраслей науки, работающих на отдельных этапах создания и эксплуатации моделей. Кроме того, подходы к проблемам моделирования в разных предметных областях сильно отличаются друг от друга, что в свою очередь приводит к невозможности применения того или иного аппарата моделирования специалистами других областей науки. Это обстоятельство требует более детального анализа самого процесса моделирования [12,22] с целью выработки общих методов организации работ, как по созданию, так и по эксплуатации моделей.
Наиболее важными вопросами здесь являются:
• целесообразное составление общего плана работ;
• определение технологических действий, для которых возможно: обобщение ранее накопленного опыта в стандартные методики или вообще формализация действий для последующей автоматизации данного этапа работ;
• обеспечение эффективного взаимодействия специалистов разных профилей;
• четкое распределение задач между коллективами и отдельными сотрудниками, участвующими в исследованиях;
• адекватное распределение ответственности между исполнителями, данное замечание касается и полностью автоматизированных этапов работ;
• и так далее.
Решение поставленных задач невозможно без создания единой методологии моделирования, причем наиболее важным вопросом здесь является не только объединение ученых, традиционно занимающихся вопросами математического моделирования, но и привлечение к данной работе специалистов, работающих на передовых рубежах развития современных программных технологий.
Выделив (конечно, условно) эти два направления усилий ученых, рассмотрим сначала фундаментальные направления развития систем автоматизации моделирования, а также требования выдвигаемые наукой. Затем, перейдем к рассмотрению вопросов, находящихся на стыке с теорией и практикой создания передовых программных технологий, традиционно связанной с системным программным обеспечением ЭВМ.
В настоящее время фундаментальные вопросы математического моделирования разрабатываются в двух равноправных и взаимодополняющих направлениях.
Первое направление основывается на технологии вычислительного эксперимента в трактовке A.A. Самарского. Его подход предполагает высокую математическую подготовку специалистов, участвующих в процессе моделирования, жесткое разделение труда между ними и специалистами предметной области, в задачи которых входит подготовка исходных данных, определение граничных и начальных условий, задание сценариев проводимых экспериментов и анализ результатов моделирования.
Второе направление названо Г.С.Поспеловым новой информационной технологией моделирования и ориентировано на конечного пользователя, как на непосредственно разработчика модели. Основной упор здесь делается на создание удобных и достаточно простых языков представления моделей, доступных для непрограммирующего пользователя и инструментальных средств с элементами искусственного интеллекта, обеспечивающих поддержку в разработке моделей, выборе численного метода решения, автоматизации синтеза расчетной программы, организации интерфейса. Это направление рассчитано на внедрение методов моделирования в среду непрограммирующих конечных пользователей и позволяет исключить программиста, а в некоторых случаях системного аналитика при реализации вычислительного эксперимента.
В подходе А.А.Самарского просматривается глубокий анализ опыта специалистов предметных областей, более полное использование методов математики как при построении математических моделей, так и при организации вычислительного эксперимента. Кроме того, подкупает основательный подход к прикладному программному обеспечению (ПО) процесса моделирования [22] именно на низком уровне, когда тестирование ПО ведется не только с точки зрения системного программиста ЭВМ, но и с позиций математики.
В связи с этим направление Г.С.Поспелова выглядит, на первый взгляд, более легковесным с точки зрения фундаментальной математики и может вызывать подчас необоснованные нападки со стороны приверженцев подхода А.А.Самарского.
Мы не будем защищать ни тех, ни других. Так или иначе стремления ученых в области автоматизации моделирования тяготеют к идеям второго направления (разумеется, не желая терять фундаментальные математические знания на этом пути) и это обстоятельство накладывает огромную ответственность на разработчиков систем автоматизации моделирования с точки зрения математического, технологического и программного обеспечения таких систем, которые обеспечат внедрение опыта обоих направлений в среду непрограммирующих математиков (исследователей) и позволят в конечном счете выйти на уровень ПО пятого поколения ЭВМ, характеризовать которое проще всего цитатой из школьного учебника [59]: "Архтектура компьютеров будущего поколения будет содержать два основных блока. Один из них - это традиционный компьютер, но теперь он лишен связи с пользователем. Эту связь осуществляет блок, так называемый интеллектуальный интерфейс. Его задача - понять текст, написанный на естественном языке и содержащий условие задачи, и перевести его в работающую программу для компьютера.
Будет также решаться проблема децентрализации вычислений с помощью компьютерных сетей, как больших, находящихся на значительном расстоянии друг от друга, так и миниатюрных компьютеров, размещенных на одном кристалле полупроводн ика,\
На первый взгляд может показаться, что для достижения успеха в вопросах систематизации знаний в области машинного моделирования достаточно простого объединения усилий ученых, работающих в двух (рассмотренных нами ранее) направлениях. Однако это далеко не так.
Рассмотрим несколько существующих систем цифрового машинного моделирования, являющихся наиболее яркими представителями двух направлений: А.А.Самарского и Г.С.Поспелова.
Система OLIMPUS, разработанная научной группой, входящей в состав Каллэмской лаборатории Комитета по атомной энергии Великобритании, и описанная в достаточной для нас степени в [22], представляет собой систему создания программных комплексов на языке FORTRAN для решения эволюционных задач. В ее основу положен глобальный модульный анализ организации вычислительных процессов при решении конкретных прикладных задач, проведенный на основе общей стратегии программирования класса нестационарных задач вычислительной физики. Это позволило разработчикам системы OLIMPUS зафиксировать общую структуру создаваемых программ в виде шаблона программы. Шаблон состоит из набора процедур-"пустышек", заполнение которых возложено на пользователя. Следующая схема позволяет представить набор подпрограмм и общую структуру готовой модели (рис.В.1).
При создании программы в системе OLIMPUS изменяются лишь отдельные части, а структура программы, средства диагностики и т.д. используются как стандартные. Тем самым большая часть программы становится стандартной для многих пользователей системы OLIMPUS.
Рис.В.1. Общая структура программ, создаваемых в системе OLIMPUS.
Кроме того, разработчиками системы OLIMPUS предприняты шаги по стандартизации имен идентификаторов в программах. Например, глобальные вещественные переменные принято обозначать идентификаторами, начинающимися с букв А-Н, О, Q-Y, целые - L, М, N, логические - LL, ML, NL.
Такой подход к созданию программ позволил системе OLIMPUS получить широкое международное научное признание. На наш взгляд такое признание оправдано тем, что ученые были освобождены от множества действий, связанных с процессом программирования, им оставалось изучить язык FORTRAN лишь в части, достаточной для описания своих математических моделей (формул). Однако при этом для них вполне прозрачной оставалась структура программы и, следовательно, они могли делать выводы о правильности вычислений и взаимодействии отдельных компонентов готовой моделирующей программы.
Система OLIMPUS не лишена недостатков. Пользователю приходится компоновать отдельные модули готовой программы, что называется, вручную и, следовательно, требует от него более серьезных знаний в области программирования, а порой, и системного программирования (например, в части касающейся взаимодействия прикладных программ и операционной системы). Кроме того, можно считать недостатком системы и необходимость описывать модели на языке FORTRAN, так как для этих целей он все же является языком низкого уровня.
Однако, несмотря на все недостатки, можно признать, что системы, подобные OLIMPUS, сделали значительный вклад в начало структурного анализа моделирующих программ, а также в обеспечение отчуждаемости готовых программных моделей, то есть возможности передачи моделей другим пользователям без необходимости утомительного сопровождения со стороны разработчиков.
Другой спектр программ, которые пока нельзя отнести к разряду средств моделирования (данное утверждение станет понятным при рассмотрении современных технологий обеспечения многомодельных вычислительных экспериментов), базируется на одной библиотеке функций, позволяющих интерпретировать модели, записанные на языке более близком математикам, делает шаг в сторону более естественного описания математических моделей. К числу таких программ относятся пакеты Maple V (именно его библиотека используется другими подобными системами), Mathematica, MATLAB.
Так, например, для задачи Коши
У[=УгУз> у 2 =-У1Уз;
У3 =-0.51у1у2;
В.1)
0)=0; 72(0) = 1; 7з(0) = 1; язык MATLAB предлагает следующее описание самой модели function dy = rigid(t, y) dy = zeros(3,1); dy(l) = у (2) * У (3) ; (В.2) dy(2) = -у(1) * у(3); dy(3) = -0.51 * у(1) * у (2); и способа ее численного решения на интервале [0, 12] options = odeset(1RelTol1, le-4,
AbsTol', [le-4 [T,Y] = ode45(@rigid, [0 12], [0 le-4 le-5] ) ; (B.3)
1 1], options);
Из описаний (B.2), (В.З) видно, что пользователю так или иначе придется изучать язык, мало отличающийся от таких языков, как FORTRAN или ALGOL, единственно полезным свойством пакета MATLAB является наличие набора стандартных методов вычислительной математики и методов анализа и коррекции погрешностей вычислений. Однако, здесь пользователю приходится полагаться только на авторитет фирмы, создавшей MATLAB. Значительным недостатком систем подобных MATLAB является невозможность эксплуатации моделей вне самой системы (на которой модель создана), разве что, только в виде текста на языке С, который можно "попросить" у пакета MATLAB.
Конечно, можно долго спорить о лексике языков и полноте математического обеспечения систем, подобных только что рассмотренным. Однако эти вопросы по большей части зависят от вкусов, привычек и компьютерной грамотности пользователей. Мы сосредоточим внимание на вопросах связанных с обеспечением современных требований технологии моделирования, которая сейчас немыслима без возможности проведения многомодельных вычислительных экспериментов (и желательно в неоднородных по аппаратному обеспечению вычислительных сетях). Разумеется, все дальнейшие рассуждения будут связаны с организацией многопроцессных вычислений и внутренней архитектурой моделирующих программ. Поскольку системы, рассмотренные нами ранее (в виду либо их закрытости, либо несовершенства), не дают представления о структуре моделирующих программ, получаемых с их помощью, мы вынуждены рассмотреть новейшие материалы, которые пока слабо подкреплены практическими достижениями. Например, еще не существует готовых к широкому использованию систем моделирования, применяющих архитектуру программных моделей описанную в [!]•
Традиционно, разработчики и пользователи моделирующих программ стремились к повышению вычислительной производительности. В недавние годы для этих целей широко использовалась технология так называемого Парраллельно дискретного событийного моделирования - PDES (Parallel Discrete Event Simulation). Однако сейчас данная техника считается не убедительной [6]: как вывел David Nicol [5], производительность ограничена аппаратными возможностями и, в связи с этим, не является объективной функцией. Кроме того, Richard Fujimoto [3] акцентировал внимание на том, что техника PDES тяжела, так как требует значительного времени на планирование процессов и выполнение программ. К его заключению мы добавим тот факт, что и программирование моделирующих алгоритмов с помощью средств, придерживающихся методологии PDES, представляет собой непростую задачу для непрограммирующего математика особенно в части, касающейся организации многомодельных вычислительных экспериментов.
Сейчас методология построения и эксплуатации моделирующих программ тяготеет к декомпозиции больших моделей на хорошо обусловленные и прозрачные (с точки зрения структуры моделирующего алгоритма) малые модели, обеспеченные каналами обмена данными и работающие в рамках модельного времени под управлением отдельной системы, которая берет на себя функции параметризации отдельных моделей, предоставления каналов связи (конфигурирования в единую моделирующую сеть) и, разумеется, организации вычислительного эксперимента с последующим анализом результатов. Данное направление сулит большие приемугцества, так как позволяет решить множество задач, связанных не только с повышением производительности, но и с обеспечением новейших сетевых решений, а так же облегчением работы непрограммирующих пользователей (легче создать средства построения простых моделей, обладающие большей наглядностью и естественностью представления моделирующих алгоритмов). Последнее представляется весьма значительным для выработки единых технологий, в рамках которых можно осуществить целесообразное взаимодействие специалистов различных отраслей знаний, традиционно участвующих в сложном процессе моделирования.
Шаги, которые делались и делаются на пути к таким достижениям требуют отдельного рассмотрения, так как являются тем базовым материалом, на основе которого формируются современные взгляды и именно эти "кирпичики" ложатся в основу новейших систем моделирования.
Современные системы моделирования по принципам организации вычислительных процессов можно условно разделить на три класса [1]. Эти классы, соответственно, используют следующие принципы организации работы и взаимодействия моделирующих программ [1]:
•S событийное планирование {event scheduling)', f развертка активных процессов (activity scanning)',
S взаимодействие процессов {process interaction)
Работы ученых, занимающихся вопросами машинного моделирования, обсуждающие данные принципы зачастую напоминают взгляд "очнувшегося (внезапно и случайно)" непрограммирующего математика на программные технологии, которые давно вошли в практику построения операционных систем UNIX (планирование процессов и нитей), графических серверов (например, X Window System [www.X.org] (событийное программирование)) и простых приложений.
В стремлении более полно использовать достижения программных технологий был выдвинут термин "Logical Process Paradigm" (LPP) [2], основу которого составил механизм сообщений (как, например, стандартный механизм X Window, основанный на использовании ресурсов стороны сервера) для обмена векторами состояний моделей и упрощение динамических процессов путем их декомпозиции на множество так называемых логических процессов, фактически являющиеся простыми подпрограммами с определенными в них статическими массивами для хранения векторов состояния, что позволило освободить пользователя от ручного программирования межпроцессного обмена и возложить эту задачу на систему моделирования.
Хотя логические процессы в понимании LPP еще не обладали способностью "наблюдать общее модельное время" они имели рациональное звено и стали примитивными прообразами моделей-компонентов Component-ORiented Simulation Architecure (CORSA).
Не правда ли, похоже на слово CORBA (Common Object Request Broker Architecture)? Мы тоже сначала подумали, что авторы статьи [1] пытаются объяснить нам свой взгляд на новую программную сетевую технологию, которая своими корнями восходит к СОМ (Component Object Model) технологии [53], которая в свою очередь была раздута из таблиц виртуальных функций классов языка С++, позволивших упростить программирование интерфейсов между компонентами обычных программ для ЭВМ.
Когда мы создавали систему моделирования, описанную в данной работе, публикаций о взглядах современных ученых на программные технологии, подобных [1], еще не было. Мы вели разработку на основе глубокого анализа моделирующих алгоритмов и методов современной вычислительной математики, направляя усилия на создание такой структуры моделирующих программ, которая позволила бы рассматривать их как некие самостоятельно существующие, управляемые и наблюдаемые объекты. На современные программные технологии мы смотрели как на средства, применение которых позволяет наиболее простым способом обеспечить истинные потребности пользователей систем моделирования. Естественно, в процессе работы мы обращали внимание на то, что тормозящим фактором развития средств моделирования является слабое взаимодействие ученых и программистов, а порой даже нежелание понимать друг друга.
Тем более приятен тот факт, что специалисты в области моделирования наконец [1] начинают обращать свой взгляд на современные программные технологии. Пусть пока они идут по пути подстраивания структуры моделирующих программ под современные методы программирования, что оставляет их несколько позади, а не по пути разработки структур моделирующих алгоритмов, исходя из задач математического моделирования, которые затем можно использовать в различных программных технологиях (по мере их появления).
Последнее утверждение требует доказательства. Поэтому сначала опишем современный взгляд на компонентно-ориентированное моделирование [1], а затем представим наше понимание, которое хоть и было выведено из совершенно других вещей (не программирование, а математика), но является дальнейшим (и хорошо, что пока опережающим) развитием мировых взглядов на моделирование.
Компонентно-ориентированные системы моделирования оперируют с набором компонентов, которые обмениваются между собой посредством сообщений (exchanging messages) и представляют некие, специальным образом структурированные, моделирующие программы, имеющие в своем составе наряду с основным кодом так называемые порты ввода/вывода и наборы параметров. Компоненты являются экземплярами трех классов, их мы рассмотрим чуть позже.
Если компонент намерен передать какие-либо данные, то для этого он просто помещает их в порт именуемый outport. Прием данных осуществляется простой выемкой данных из входного порта (inport). Компонент может иметь в своем составе несколько входных (inports) и несколько выходных (outports) портов.
В рамках общего вычислительного эксперимента компонентами управляет некая программная оболочка. Работа этой оболочки (по отношению к модели-компоненту) делится на две фазы:
• параметризация (parametrization phase) и
• конфигурирование (configuration phase).
Параметризация является начальной фазой "существования" модели-компонента, на которой осуществляется присваивание параметрам компонента конкретных значений. Тем самым происходит формирование экземпляра компонента определенного класса в некий объект, обладающий собственными, только ему присущими свойствами.
Конфигурирование по сути представляет собой настройку общего моделирующего алгоритма и конструирование его из отдельных блоков (моделей-компонентов). Основным действием системы здесь является выделение и подключение (к портам экземпляров моделей-компонентов) каналов обмена информацией.
Идея конфигурирования компонентов не нова. Еще в 1991 году Szymanski использовал фазу конфигурирования в языке EPL (Equational Programming Language) [8].
Идеология CORSA поддерживает три класса (типа) компонентов:
S time-unaware - "часов не наблюдающие"; time-dependent - зависящие от показаний таймера общего модельного времени;
•f time-independent - ведущие отсчет собственного модельного времени (имеющие собственные "часы").
Первый тип (time-unaware) характеризуется тем, что его работа никоим образом не согласуется с текущим значением модельного времени: как только экземпляр этого класса получает входное сообщение, он сразу отправляет ответную реакцию в виде выходного сообщения. Все сообщения в своей (программной) структуре имеют поле, содержащее значение модельного времени в момент генерации этого сообщения.
Второй тип (itime-dependent) компонентов не может влиять на текущее модельное время и все исходящие от него сообщения (помимо его воли) маркируются текущим значением счетчика общего модельного времени.
Третий тип (time-independent) компонентов обладает собственным счетчиком модельного времени и представляет собой более самостоятельный объект, существующий в общей моделирующей среде. Компоненты данного типа могут получать сообщения, гарантированно свободные от возможных ошибок соблюдения масштаба модельного времени. Так, например, для обеспечения синхронизации состояний объектов, компоненты третьего типа лишены возможности принимать сообщения с просроченным сроком действия (т.е. компонент может принимать только те сообщения, которые содержат показания времени большие или равные текущему значению внутреннего счетчика модельного времени).
Далее рассуждения [1] уходят в сторону проблем компоновки моделей-компонентов друг с другом при объединении их в общую моделирующую сеть. Мы понимаем, что даже наличие трех различных классов объектов может превратить процесс компоновки в довольно замысловатый и длительный процесс, нам это не интересно. Поговорим о другом.
Модель CORSA подразумевает наличие во внутренней структуре компонента (помимо основного моделирующего алгоритма) трех структур: параметры экземпляра, порт ввода и порт вывода для динамического обмена данными с управляющей оболочкой и другими компонентами (вычислительного эксперимента). Сам моделирующий алгоритм остается за кадром всех рассуждений. На наш взгляд, это опять означает, что разработка структуры моделирующего алгоритма, его программная реализация и, естественно, средства его создания (компиляции) остаются вне поля исследований ученых. То есть, грубо говоря, как захочет программист, так и будет. Между тем, существует богатый опыт, выработанный многолетними исследованиями в области вычислительной математики, построения систем автоматического управления и т.д., анализ которого говорит, что можно вывести некоторые общие черты и общие принципы работы моделирующих алгоритмов; далее на этой основе можно построить такие структуры моделирующих программ, в которые можно "укладывать" различные виды (пусть не все, но многие) математических моделей; затем создать средства компиляции естественного представления математических моделей; и тем самым, наконец, ввести в поле зрения фундаментальных наук вопросы, связанные с созданием языков моделирования (а не программирования).
В данной работе мы будем говорить о программной модели не просто как об участнике коллективного процесса, а как о самостоятельно существующем объекте, для которого взаимодействие со средой и другими моделями - лишь часть его функционального наполнения. Дадим общую структуру программной модели такую, которая в отличие от CORSA может быть представлена одним типом (классом) объектов и, следовательно, позволит упростить компоновку моделей между собой; и, что самое главное, введенная нами структура позволит обеспечить единое представление моделирующих программ, полученных по различным исходным видам математических моделей. Кроме того, покажем как подобного рода структуризация позволяет создавать средства автоматизации процесса получения программных моделей на осное различных видов исходных текстов или графических представлений. Словом, речь пойдет об устранении того хаоса, который сейчас творится среди программистов, занимающихся пострением программных моделей.
На рис.В.2 показано наше относительное положение в области машинного моделирования и вычислительной математики по сравнению с другими типами систем моделирования. Здесь представлены основные сегменты данных и кода программной модели, причем сегменты: ввода/вывода, инициализации, структуры модельного времени и следа модели доступны управляющей среде; остальные сегменты компонуются автоматически (на этапе построения модели) по исходной математической и алгоритмической моделям.
Следует отметить, что в данной работе предлагается не просто структура программной модели, описывающая все стороны существования моделируемого объекта, но и решаются задачи, связанные с автоматическим построением таких моделей по естественному представлению исходных текстов или графических структур (математических моделей).
Рис. В.2. Упрощенная структура машинной модели нового типа и ее относительное положение в современных технологиях построения и эксплуатации программных моделей.
Основными задачами настоящей работы являются следующие.
Разработка общей структуры программных моделей, позволяющей: a) на основе единого внутреннего представления создавать ПМ по различным видам математических моделей (ММ), таких как:
S системы обыкновенных дифференциальных уравнений, S системы разностных уравнений, S системы алгебраических уравнений, S алгоритмические сетевые модели, ■S схемы для аналоговых вычислительных машин (АВМ), S структурные схемы систем автоматического управления; b) рассматривать ПМ уже не просто как программу, имитирующую поведение реального объекта, а как самостоятельный объект реально существующий в операционной среде моделирования. Причем, все свойства программного объекта должны определяться его алгоритмической моделью (AM) и задаваться пользователем на практически естественном языке.
Разработка общей структуры программного обеспечения моделирующих сред (комплексов), позволяющей обеспечить взаимодействие ПМ во время проведения многомодельных вычислительных экспериментов и наиболее полно использовать новые эксплуатационные свойства моделей.
Более детально постановка задач будет осуществлена в выводах первой главы.
Заметим здесь, что для практически любого термина, применяемого в области моделирования, специалисты всегда имеют несколько различных определений, основой которых служат различные технологии, мы не будем являться исключением, например, термину объектно-ориентированное моделирование (например, [11]) в данной работе поставляется наверное уже третье или четвертое смысловое значение, однако, мы просим у читателя снисхождения, так как нашей задачей была работа, а придумывание названий для существующих вещей скорее является бесполезным и утомительным делом.
Заключение диссертация на тему "Методы и технология построения программных моделей для систем автоматизации моделирования"
Основные результаты диссертационной работы состоят в следующем.
1. Разработана общая структура программных моделей, позволяющая: a) на основе единого внутреннего представления создавать ПМ по различным видам математических моделей (ММ); b) рассматривать ПМ уже не просто как программу, имитирующую поведение реального объекта, а как самостоятельный объект, реально существующий в операционной среде моделирования. Причем, все свойства программного объекта определяются его алгоритмической моделью (АМ) и задаются пользователем на практически естественном языке.
2. На основе общей структуры ПМ выработан новый объектный подход, который можно назвать объектно-ориентированным моделированием (ООМ). Однако, следует подчеркнуть, что, введенное нами, понятие ООМ никак не связано с такими терминами как: "предметно-ориентированное моделирование", "объектно-ориентированные системы моделирования", под которыми понимается ориентация системы моделирования на конкретную предметную область или конкретный исследуемый реальный объект (тип объектов), а вытекает из отношения к ПМ, описанного в предыдущем пункте (Ь). Следует также заметить, что ООМ коренным образом отличается от понятия объектно-ориентированное программирование, где объекты остаются статическими и управление ими осуществляется самим программистом так, как ему позволяет квалификация, т.е. без использования какой-либо системной методики.
3. Разработаны синтаксические и семантические анализаторы для естественного представления ММ в виде: a) систем обыкновенных дифференциальных уравнений, b) систем разностных уравнений, c) систем алгебраических уравнений, й) алгоритмических сетевых моделей, е) схем для аналоговых вычислительных машин,
1) структурных схем систем автоматического управления.
4. Разработан алгоритм Идентифицирующего планирования вычислений для систем моделирования, представляющих ММ в виде графа, и позволяющий идентифицировать правые части дифференциальной модели.
5. Разработан алгоритм приведения дифференциальных моделей к нормальной форме по их текстовому или графическому представлению.
6. Разработан подход к оптимизации кода ПМ динамических моделей.
7. Разработан интерпретатор дифференциальных моделей (ИДМ), описанных на практически естественном языке и создающий программные модели, соответствующие требованиям пунктов 1 и 2.
8. Разработана общая структура программного обеспечения моделирующих сред (комплексов), позволяющая обеспечить взаимодействие ПМ во время проведения многомодельных вычислительных экспериментов и наиболее полно использовать новые эксплуатационные свойства моделей.
В результате проведенных автором исследований осуществлено решение научной задачи, находящейся на стыке теории построения обычных компиляторов
Заключение
Библиография Костельцев, Андрей Вячеславович, диссертация по теме Математическое моделирование, численные методы и комплексы программ
1. Chen, G., B.K.Szymanski. 2001. Component-Based Simulation. 1. 15th European Simulation Multiconference 2001, PRAGUE, CZECH REPUBLIC, June 6-9, 2001.
2. Fujimoto, R.M. 1990. Parallel discrete event simulation. Communication of the ACM: 30-53.
3. Fujimoto, R.M. 1993. Parallel discrete event simulation: Will the field survive? ORSA Journal on Computing-. 213-230.
4. Goran I.Agren, Pekka Kauppi. NITROGEN DYNAMICS IN EUROPEAN FOREST ECOSYSTEMS: CONSIDERATION REGARDING ANTROPOGENIC NITROGEN DEPOSITIONS/International Institute for Applied Systems Analysis A-2361 Laxenburg, Austria.
5. Nicol, D.M. 1997. Parallel discrete event simulation: So who cares? In Proceedings of the 11"' Workshop on Parallel and Distributed Simulation.
6. Page, E.H. 1999. Beyond speedup: PADS, the LHA and web-based simulation. In Proceedings of the 13th Workshop on Parallel and Distributed Simulation, 2-9.
7. Raeder G. A survey ofcurrent graphical programming techniques // Grafton R.B., Ichikawa T. (Eds.). Special Issue on Visual Programming // Computer. 1985. Vol/18, N 8. Aug. P. 11-25.
8. Szymanski, B.K. 1991. Parallel functional language and compilers, Chapter EPL-Parallel Programming with Recurrent Equations. ACM Press.
9. Thomas J. Pennello, Frank DeRemer, Efficient Computation of LALR(l) Look-Ahead Sets. 615-649. TOPLAS Vol 4, Number 4, October 1982.
10. Yusupov R.M. The problem of models adequacy in CAD/CAM. International Conference on CAD/CAM, Robotics and Factories the Future. Proceedings. 1993.1.. Zeibler, B.P. 1990. Object-oriented simulation with hierarchical, vodular models. Academic Press.
11. Аврамчук Е.Ф., Вавилов A.A., Емельянов С.В. Технология системного моделирования. /Под общ. Ред. С.В. Емельянова и др. М.: Машиностроение; Берлин: Техник, 1988. - 520с.: ил.
12. Абгарян К.А. Матричные и асимптотические методы в теории линейных систем. М.: Наука, 1973.
13. Ахо А.В., Джонсон С.К., Ульман Д.Д. Determenistic parsing of ambiguous grammars./CACM, August, 1975.
14. Ахо A.B., Ульман Д.Д. Principles of Compiler Design./Addison Wesley, 1977.
15. Бахвалов H.C. Численные методы. M.: Наука, 1973.-631 с.
16. Белов Ю.А., Диденко В.П. и др./Математическое обеспечение сложного эксперимента. Т.1. Обработка измерений при исследовании сложных систем. Киев: Наукова думка, 1982. - 304с.
17. Бронштейн И.Н., Семендяев К.А. Справочник по математике. М.: Наука, 1964. - 608 с.
18. Бронштейн И.Н., Семендяев К.А. Справочник по математике для инженеров и учащихся втузов. 13-е изд. исправленное. -М.: Наука, 1986.
19. Брукс Ф. Мифический человеко-месяц или как создаются программные системы./Пер. с англ. — СПб.: Символ-Плюс, 1999. 304 е.: ил.
20. Бэкус (Backus J.W.). The syntax and semantics of the proposed international algebraic language of the Zurich ACM-GAMM Conference. Proc. International Conf. On Information Processing, UNESCO (1959), 125-132.
21. Вабищевич П.Н. Численное моделирование. M.: Изд-во Моск. ун-та, 1993. - 205с.
22. Видаль П. Нелинейные импульсные системы/Пер. с франц. М.: Энергия, 1974. - 336 с.
23. Гехер К. Теория чувствительности и допусков электронных цепей. М.: Сов. радио, 1973.
24. Городецкий В.И., Дмитриев А.К., Марков В.М. и др. Элементы теории испытаний и контроля технических систем/Под ред. Р.М.Юсупова. Л.: Энергия, 1978. - 192с.
25. Грис Д. Конструирование компиляторов для цифровых вычислительных машин./Пер. с англ. Е.Б.Докшицкой и др. Под ред Ю.М.Баяковского, Вс.С.Штаркмана. М.: Мир, 1975. - 544с.
26. Деккер К., Вервер Я. Устойчивость методов Рунге-Кутты для жестких нелинейных дифференциальных уравнений: Пер. с англ.-М.: Мир, 1988.
27. Захаров И.Г, Постонен С.И, Романьков В.И. Теория проектирования надводных кораблей/Под ред. И.Г.Захарова. Издание ВОЕННО-МОРСКОЙ АКАДЕМИИ им. Н.Г.Кузнецова поев. 300-летию Российского Флота СПб.: 1997. - 678с.
28. Иванищев В.В. Алгоритмическое моделирование: инструментальные средства и модели/Отв. Ред. Иванищев В.В. СПИИРАН Сборник научных трудов. -.СПб.: 1992.
29. Иванищев В.В., Костельцев В.И. Интеллектуальное моделирование и точность вычислений/Высшее военно-морское училище. Сборник научных трудов. Под ред. Р.А. Нелепина. СПб.: 1998.
30. Камке Э. Справочник по обыкновенным дифференциальным уравнениям. — М.: Наука, 1971.-576с.
31. Каргу Л.И. Системы угловой стабилизации космических аппаратов. М.: Машиностроение, 1973. -176 с.
32. Керниган Б., Ритчи Д. Язык программирования Си/ Пер. с англ. Вик. С. Штаркмана/Под ред. Вс.С. Штаркмана. М.: Финансы и статистика, 1992. - 272 е.: ил.
33. Костельцев В.И. Методы исследования чувствительности характеристик гибких производственных систем//Проблемы интегральной автоматизации производства. Л.: наука, 1988. с. 19-22.
34. Костельцев В.И. Динамические свойства численных методов интегрирования систем обыкновенных дифференциальных уравнений. Препринт №23. Л.: ЛИИАН, 1989. 63 с.
35. Костельцев A.B. Идентифицирующий планировщик вычислений/ V Санкт-Петербургская Международная Конференция "Региональная информатика 96" ("РИ - 96", Санкт-Петербург, 13 - 16 мая 1996 г.): Тезисы докладов. Часть 2. - СПб., 1996 - 167 с.
36. Костельцев A.B. Построение интерпретаторов и компиляторов. Использование программ bison, byacc, zubr. СПб.: Наука и техника, 2001. - 224 с.
37. Левин Л. Методы решения технических задач с использованием аналоговых вычислительных машин/Пер. с англ. Ч.Б. Гуревича, Г.О. Розенталя. Под ред. А.Б.Саввина. М.: Мир, 1966. - 415с.
38. Лескин A.A. Алгебраические модели гибких производственных систем. Л.: Наука, 1986. - 150с.
39. Ли Т.Г., Адаме Г.Э., Гейнз У.М. Управление процессами с помощью вычислительных машин: Моделирование и оптимизация./Пер. с англ. М.: Советское радио, 1972. - 312с.
40. Луговский В.В. Нелинейные задачи мореходности корабля. Ленинград.: Судостроение, 1966. - 236 с.
41. Мальцев А.И. Основы линейной алгебры. М.: Наука, 1970. - 400 с.
42. Мартин Ф. Моделирование на вычислительных машинах./Пер. с англ. М.: Советское радио, 1972. -288с.
43. Методы теории чувствительности в автоматическом управлении/Под ред. Е.Н.Розенвассера и P.M. Юсупова. Л.: Энергия, 1971.
44. Микишев Г.М., Рабинович Б.И. Динамика тонкостенных конструкций с отсеками, содержащими жидкость. М.: Машиностроение, 1971. - 564с.
45. Наур (Naur P. (Ed.)). Revised report on the algorithmic language ALGOL 60, CACM, 6 (Jan. 1963), 1-17. (Русский перевод: Алгоритмический язык АЛГОЛ-бО, М., «Мир», 1965.).
46. Нейлор Т. Машинные имитационные эксперименты с моделями экономических систем./Пер. с англ. Под ред. А.А.Петрова, с предисл. Н.Н.Моисеева. М.: Мир, 1975. - 502с.
47. Пешель М. Моделирование сигналов и систем. Пер. с англ./Под ред. Я.П.Хургина. М.: Мир, 1981. -302с.
48. Рихтер Дж. Windows для профессионалов: Программирование для Windows 95 и Windows NT 4 на базе Win32 API/Пер. с англ. М.: Издательский отдел "Русская Редакция" ТОО "Channel Trading Ltd.", 1997.-712 с.: ил.
49. Роджерсон Д. Основы СОМ/Пер. с англ. М.: Издательский отдел «Русская Редакция» ТОО «Chanel Trading Ltd.», 1997.-376 е.: ил.
50. Розенвассер E.H., Юсупов P.M. Чувствительность систем управления. -М.: Наука, 1981.
51. Самарский A.A. Теория разностных схем./Учебное пособие. Главная редакция физико-математической литературы. М.: Наука, 1977. - 656с.
52. Ту Ю. Современная теория управления./Пер. с англ. Я.Н.Гибадулина. Под ред. В.В.Солодовникова. -М.: Машиностроение, 1971. -472с.
53. Холл Дж., Уатт Дж. Современные численные методы решения обыкновенных дифференциальных уравнений/Ред. Дж.Холл и Дж.Уатт:Пер. с англ.-М.: Мир, 1979.
54. Хорн Р., Джонсон Ч. Матричный анализ/Пер. с англ. М.: Мир, 1989. - 655 с.
55. Шауцукова Л.З. Информатика./Учебник для 10-11 классов. М.: Просвещение, 2000.
56. Эйкхоф П. Основы идентификации систем управления. Оценивание параметров и состояний/ Пер. с англ. В.А.Лотоцкого, А.С.Манделя/Под ред. Н.С.Райбмана. М.: Мир, 1975. - 685с.
-
Похожие работы
- Разработка и внедрение комплекса методов автоматизации бизнес-процессов и защиты корпоративного программного и информационного обеспечения производственно-заготовительного предприятия по переработке текстильного вторсырья
- Автоматизация инженерно-графических работ на базе типовых табулированных программных инструментов и параметрически-управляемого геометрического моделирования
- Методы автоматизации построения поведенческой модели программного продукта на основе UCM-спецификаций
- Автоматизация разработки алгоритмических моделей на основе алгоритмических сетей
- Методы повышения качества функционирования средств автоматизации управления воздушным движением на протяжении жизненного цикла
-
- Системный анализ, управление и обработка информации (по отраслям)
- Теория систем, теория автоматического регулирования и управления, системный анализ
- Элементы и устройства вычислительной техники и систем управления
- Автоматизация и управление технологическими процессами и производствами (по отраслям)
- Автоматизация технологических процессов и производств (в том числе по отраслям)
- Управление в биологических и медицинских системах (включая применения вычислительной техники)
- Управление в социальных и экономических системах
- Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей
- Системы автоматизации проектирования (по отраслям)
- Телекоммуникационные системы и компьютерные сети
- Системы обработки информации и управления
- Вычислительные машины и системы
- Применение вычислительной техники, математического моделирования и математических методов в научных исследованиях (по отраслям наук)
- Теоретические основы информатики
- Математическое моделирование, численные методы и комплексы программ
- Методы и системы защиты информации, информационная безопасность