1 Постановка задачи
Вид материала | Документы |
Содержание3Язык описания вычислительных моделей 3.1Теоретическая модель |
- Задачи оптимизации с ограничениями в виде неравенств. Постановка задачи. Геометрические, 42.48kb.
- Курсовой проект по дисциплине «Теория информационных процессов и систем» тема: Задачи, 258.87kb.
- И. Д. Салмин московский инженерно-физический институт (государственный университет), 27.33kb.
- Сопротивление композиционных материалов, 28.35kb.
- Удк 532 0727. 12 Физическое моделирование гидравлических явлений, 105.2kb.
- Задачи нелинейной и дискретной оптимизации. Методы решения. Постановка и экономико-математическая, 24.28kb.
- Дисциплина: Инженерия знаний Доклад Генетические алгоритмы, 371.21kb.
- Титул Напротив фамилии оставить автограф автора. Задание, 11.99kb.
- План урока Вступительное слово учителя. «Золотое сечение» в математике постановка задачи,, 118.33kb.
- Исследование операций, 82.88kb.
2Обзор
В программных комплексах для моделирования уже применяются различные XML-ориентированные языки, которые ориентированы на ту или иную предметную область Эти языки описывают структуру соответствующих моделей, их параметры и зависимости между ними. Начиная с 90-х годов, это направление интенсивно развивается
Особенно много подобных языков существует в областях химии, биологии и физиологиии: ссылка скрыта , ссылка скрыта, BIOpolymer Markup Language (ссылка скрыта), Chemical Markup Language (ссылка скрыта), PhysioML, TissueML. Есть аналогичные разработки в области экономики: Business Process Modeling Language (ссылка скрыта). Много языков моделирования существует в очень узких областях, например Face Modeling Language (ссылка скрыта) применяется в компьютерной анимации лица.
Все эти языки более или менее предметно зависимы, то есть ориентированы на конкретную предметную область. Пока не решена задача извлечения из этих языков некой независящей от предметной области части. Эта часть достаточно велика: модели в очень многих областях сводятся к системам алгебраических и обыкновенных дифференциальных уравнений (средства для описания которых в существующих языках перемешаны со средствами для описания объектов предметной области). Поэтому одна из задач данной работы - создание предметно-независимого языка описания математических моделей указанного класса – обладает относительной новизной.
Ещё большая новизна заключена в формализованном описании на основе XML численных методов для решения систем алгебраических и обыкновенных дифференциальных уравнений. В отличие от языков описания структуры моделей, при поиске литературы не было выявлено XML-ориентированных языков описания численных методов.
3Язык описания вычислительных моделей
Язык SimulML состоит из нескольких связанных между собой частей, описывающих структуру модели, параметры модели и численные методы, используемые для решения уравнений в этой модели. Все математические формулы описаны с помощью MathML, но, однако, возможности этого языка не полностью удовлетворяют нашим задачам, поэтому блок тегов SimulML предназначен для расширения MathML.
Таким образом, SimulML имеет блочную структуру и каждый логически выделенный нами блок тегов имеет собственный Document Type Definition (DTD). Такое разделение придаёт языку определённую гибкость и позволяет менять отдельные блоки без изменения структуры самого языка
3.1Теоретическая модель
Теоретическая модель может описываться только формулами и значениями параметров, но она не обязана быть реализована с помощью какого-либо численного метода. Как правило, такие модели создаются не математиками, а экспертами соответствующей предметной области, которые обычно не оперируют с векторами, матрицами и другими сложными математическими объектами, но для них важно наличие у параметров модели определенных характеристик типа размерности, а также семантическая взаимосвязь между разными частями модели. На SimulML структура данных выглядит следующим образом:
ELEMENT SystemofModels (SystemName, Model+, EquationSet+, Connection+)>
ELEMENT SystemName (#PCDATA)>
ELEMENT Model (ModelName,Description, ModelVariables, Model*)>
id CDATA #REQUIRED
type (in|out|calculated|regulated|constant) #REQUIRED
description CDATA #IMPLIED
dimension CDATA #IMPLIED
units CDATA #IMPLIED>
VariableName (ci)>
Connection (Variable1,Variable2)>
model1 CDATA #REQUIRED
model2 CDATA #REQUIRED>
Variable1 (#PCDATA)>
Variable2 (#PCDATA)>
Корневым элементом SimulML является SystemofModels. Этот элемент может содержать несколько элементов Model, описывающих конкретную вычислительную модель, элемент EquationSet, содержащий уравнения, связывающие параметры моделей системы, и элемент Connection, описывающий связи между параметрами в различных моделях.
Элемент Model может иметь иерархическую структуру и содержать другие элементы Model. Помимо этого, Model включает в себя элементы с символьным содержанием ModelName (задаёт имя модели) и Description (описание модели); и элемент ModelVariables.
В ModelVariables содержатся переменные, которые характеризуют модель на теоретическом(предметном) уровне. Это своего рода внешние переменные модели и именно о них шла речь в начале этого пункта, когда говорилось, что теоретическая модель может описываться только формулами и значениями параметров.
Элемент ModelVariables содержит несколько элементов ModelVariable. У ModelVariable есть пять атрибутов атрибута. Атрибут id определяет смысловое значение переменной, (например, давление жидкости на стенки сосуда).Атрибут type определяет тип параметра: входной, выходной, расчетный, регулируемый или константа . Описание переменной может содержаться в атрибуте description; в атрибуте dimension содержится размерность переменной (например, сила, концентрация и пр.); единицы измерения описаны в атрибуте units.
Каждый элемент ModelVariable включает в себя элемент VariableName и необязательный элемент VariableValue. VariableName содержит математическое имя переменной, которое может быть задано тегами MathML. VariableValue определяет числовое значение переменной.
Параметры различных моделей, объединенных в одну систему, могут быть связаны между собой и эти связи описываются в элементе Connection. Этот элемент содержит два атрибута model1 и model2 , принимающих значения имён связанных моделей (имя модели содержится в элементе ModelName). Внутри элемента указаны имена связанных переменных в первой (Variable1) и второй (Variable2) моделях.
Похожий способ связывания существует и в других XML-ориентированных языках, например, в CellML. Но там в теге