Реферат: В вычислительной математике



МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

МОСКОВСКИЙ ФИЗИКО-ТЕХНИЧЕСКИЙ ИНСТИТУТ

(государственный университет)


ОБЪЕКТНО-ОРИЕНТИРОВАННЫЙ ПОДХОД
В ВЫЧИСЛИТЕЛЬНОЙ МАТЕМАТИКЕ
И ИМИТАЦИОННОМ МОДЕЛИРОВАНИИ


Магистерская диссертация студента 436 группы ФАКИ

Евдокимова Алексея Витальевича


Научный руководитель: член-корреспондент РАН,
доктор физико-математических наук, профессор
Холодов Александр Сергеевич

Рецензент: доктор физико-математических наук, профессор Петров Игорь Борисович


Москва 2000

Оглавление

1. Введение 3

1.1. Цель работы и её актуальность 3

1.2. Решаемые задачи и научная новизна работы 4

2. Объектно-ориентированная структура моделей 6

2.1. Постановка задачи и предпосылки для её решения 6

2.2. Объектно-ориентированная методология моделирования 12

2.3. Пример использования: моделирование организма человека 14

2.4. Резюме 20

3. Объектно-ориентированные численные методы 21

3.1. Постановка задачи и обзор существующих работ 21

3.2. Объектная интерпретация понятий вычислительной математики 23

3.3. Объектное представление конкретных численных методов 33

3.4. Пример использования: объектно-ориентированная библиотека численных методов для задач гидромеханики и массопереноса (теплопереноса) 42

3.5. Резюме 46

4. Многокомпонентные базы данных как средство поддержки
методологии вычислительного эксперимента 47

4.1. Постановка задачи и предпосылки для её решения 47

4.2. Содержание многокомпонентного подхода к БД 53

4.3. Пример использования: архитектура базы данных обобщённой модели 60

4.4. Резюме 65

5. Заключение 66



^ 1.Введение 1.1.Цель работы и её актуальность
При численном моделировании сложных систем возникает ряд проблем, которые требуют сочетания подходов, сложившихся в совершенно разных областях науки. Прежде всего, это касается огромного потенциала вычислительной математики, который для своей реализации сейчас всё сильнее требует привлечения компьютерных наук. В настоящее время появилась неприятная тенденция превращения вычислительной математики из прикладной дисциплины в чисто теоретическую, – точно так же, как это произошло с аналитической математикой, когда сложность решаемых задач превысила возможности расчётов на бумаге. Чем более эффективными и сложными становятся численные методы, тем больше вероятность, каждый из них будет применён ровно один раз – при подготовке соответствующей диссертации.

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

Совместимость методов вычислительной математики и компьютерных наук имеет три основных аспекта. Во-первых, сложные численные методы оправданно использовать на практике, если они существуют не только в виде текстов научных статей и даже не только в виде кода программ (который по степени формализации не слишком отличается статей). Как показывает опыт создания вычислительных библиотек [5,5], методы должны быть представлены в виде строго формализованного кода, который можно напрямую использовать в прикладной программе. Во-вторых, применение достижений компьютерных наук имеет самостоятельное значение в вычислительной математике, где имеется очевидная тенденция к созданию гибридных методов на основе некоторого набора «элементарных» методов, а также к совместному решению задач всех известных (изученных по отдельности) типов. Имеются ввиду хорошо исследованные в компьютерных науках способы многократного использования одних и тех же методов при решении близких задач и при создании новых методов. Кроме того, так как численные методы обычно тесно связаны с реализующими их алгоритмами, совершенствование алгоритмов (являющееся предметом компьютерных наук) с неизбежностью способствует развитию вычислительной математики. Наконец, третий аспект совместимости вычислительной науки с информатикой касается развития самих компьютерных технологий для обеспечения потребностей численного моделирования. В частности, для хранения данных вычислительных моделей имеет смысл использовать более развитые подходы, чем приняты в современных системах управления базами данных, работающих с данными более простых предметных областей.

Таким образом, данная работа направлена преодоление разрыва, образовавшегося между традиционной вычислительной математикой и феноменально быстро развивающимися компьютерными науками. С одной стороны, этот разрыв препятствует применению достижений вычислительной математики к решению современных задач, которое немыслимо без компьютерных технологий. С другой стороны, использование некоторых идей компьютерных наук в области численных методов может стимулировать развитие вычислительной математики как таковой (а потребности численного моделирования могут стимулировать развитие компьютерных наук).
^ 1.2.Решаемые задачи и научная новизна работы
Конечно, данная работа не претендует не описание всех областей взаимодействия вычислительной математики с компьютерными науками и, тем более, на окончательное решение всех возникающих при этом взаимодействии проблем. Со стороны компьютерных наук акцент сделан на объектно-ориентированный анализ, хотя в главе 4 затрагиваются также проблемы теории баз данных. С точки зрения вычислительной математики в главе 3 анализируются, прежде всего, общие характеристики численных методов, а конкретные алгоритмы, в их объектно-ориентированной формулировке, приводятся лишь в качестве иллюстрации эффективности общего подхода. Кроме этих двух дисциплин, в работе рассматривается область знания, которая обычно идентифицируется термином «имитационное моделирование в узком смысле» (в широком смысле имитационным моделированием можно называть любое моделирование на компьютере, включающее, в том числе, и численные методы). При этом конкретная имитационная модель (модель организма человека) в главе 2 также рассматривается только в качестве примера, а основное внимание уделено анализу возможностей сочетания имитационного моделирования и вычислительной математики на основе объектно-ориентированного подхода.

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

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

анализируются свойства численных методов для объектных моделей;

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

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

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

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

На защиту магистерской диссертации автором выносятся следующие положения:

Объектно-ориентированный подход (ООП) может служить основой для сочетания достоинств математического и имитационного моделирования.

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

ООП даёт возможность визуального редактирования моделей и библиотек.

Основанные на объектах численные методы инвариантны относительно типа задачи; эффективно рассчитывают неоднородные и распределённые системы.

Объектные алгоритмы могут быть более быстрыми, чем процедурные.

Для хранения данных моделей целесообразно использовать многокомпонентные СУБД, основанные на идеях ООП и соответствующие методологии моделирования.
^ 2.Объектно-ориентированная структура моделей 2.1.Постановка задачи и предпосылки для её решения 2.1.1.Объектно-ориентированный подход как основа для сочетания математического и имитационного моделирования
При создании моделей сложных систем часто возникает необходимость в применении мощного математического аппарата одновременно с использованием преимуществ имитационного моделирования. Под математическим аппаратом здесь понимается современные методы численного решения дифференциальных уравнений (как обыкновенных, так и в частных производных). Слово «имитационное моделирование» используется в узком смысле, прежде всего как способ формализации знаний экспертов определённой предметной области с последующим решением полученной системы дискретных или простейших дифференциальных уравнений.

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

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

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

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

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

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

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

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

Процедурно-ориентированные библиотеки вычислительных алгоритмов на низкоуровневых языках типа FORTRAN и C [5] не подходят в качестве такой основы хотя бы потому, что задачу для них нельзя представить наглядно и следует формулировать на языке уравнений. Кроме того, какими бы универсальными ни были процедуры библиотек, часто требуется расширять их возможности (или, наоборот, сужать эти возможности для упрощения использования, для уменьшения затрат машинного времени и т.п.). Однако если библиотека реализована на процедурном (структурном) языке программирования, для незначительного изменения в ней какого-либо численного метода необходимо существенно корректировать его код. При этом неизвестно, будут ли после такой корректировки правильно работать программы, использовавшие данный численный метод в его первоначальном варианте. Ещё большие трудности возникают, когда появляются новые версии библиотеки – после этого нужно либо провести заново все необходимые изменения в коде, либо пользоваться старыми, но зато хорошо адаптированными к решаемым задачам, версиями численных методов.

В противоположность процедурным библиотекам вычислительной математики, наглядность и возможность развития свойственна средствам имитационного моделирования, подобным встроенному в математический пакет MatLab средству Simulink [5] и ведущим начало от высокоуровневых языков моделирования типа Dynamo и Stella. Однако эти средства пригодны лишь для не слишком сложных в математическом смысле задач (по причинам, описанным в разделе 2.1.3), и принятый в них подход не может служить основой для сочетания имитации с современной вычислительной математикой. В частности, он не подходит к решению уравнений в частных производных.

Данная глава (глава 2) имеет целью показать, что в качестве основы для совместной реализации математического и имитационного способов моделирования очень хорошо подходит объектно-ориентированный подход (ООП). А именно, что построенные на объектно-ориентированной основе модели

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

как математические модели, могут эффективно решать сложные, в том числе пространственно-распределённые задачи.

После того, как будут обоснованы эти утверждения и будет построена объектно-ориентированная структура обобщённой модели, получает смысл проведённая в главе 3 адаптация численных методов для работы с такими структурами и исследование их свойств.

^ Комплексные модели




^ Математические модели

Имитационные модели







Моделирование сложных, в том числе распределённых, систем

Наглядность структуры

Возможность быстрого развития




Привязка процедур к данным,
которые они обрабатывают

Агрегация

Наследование







Объектно-ориентированный подход




Рис. 2.1. ООП как основа для сочетания математического и имитационного моделирования
^ 2.1.2.Понятия ООП в применении к моделированию
Любая объектная модель базируется на понятии объекта как совокупности данных, к которым привязаны некоторые процедуры их обработки (методы). При этом каждое данное из этой совокупности также, в свою очередь, может являться объектом (понятие агрегации) (см. рис. 2.2). Если в процедурной модели процедуры манипулируют пассивно хранящимися данными, то в объектной сами данные – объекты – взаимодействуют между собой. Множество похожих объектов с одним и тем же набором свойств и методов образует класс, который, собственно, и является минимальным блоком программы, аналогом процедуры.

Согласно общепринятой терминологии, объектно-ориентированная модель отличается от просто объектной возможностью наследования классов объектов. При наследовании существующего класса (суперкласса) получается новый класс, называемый подклассом (см. рис. 2.2). Объекты подкласса имеют те же свойства, и могут участвовать в тех же взаимодействиях, что и объекты суперкласса. При этом подкласс может иметь новые свойства и новые методы, а также изменять методы своего суперкласса. Наследование облегчает изменение и расширение объектно-ориентированных систем.


Агрегация объектов

Наследование классов




Рис. 2.2. Понятия объектно-ориентированного подхода

В таблице 2.1 перечисленные выше понятия рассматриваются подробнее, причём акцент делается на их применение в моделировании.

Таблица 2.1

Использование объектно-ориентированного подхода в задачах моделирования.

Суть ООП состоит в следующем:

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

Смысл объекта (поведение) отделён от его реализации (структуры) за счёт того, что методы могут не содержать кода, а данные имеют определённую область видимости.

Данные объектов (поля) также могут быть объектами.

Каждый объект относится к определённому типу (классу), т.е. является его экземпляром.

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

Примечание к пункту 1.2: в одном и том же поле могут храниться объекты определённого типа и всех его подтипов.

Суть объектно-ориентированной

модели состоит в следующем:

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

Смысл элемента (набор параметров и основные методы их обработки) отделён от его реализации (от вспомогательных данных и методов).

Данные элементов (параметры, ссылки на соседние элементы и т.д.) также могут быть объектами.

Каждый элемент относится к определённому типу (классу), и вычислительные алгоритмы обычно разделены на несколько методов разных классов.

Тип (класс) может наследовать часть данных и методов от других типов (классов), причём данные и аргументы методов могут быть не только определённого типа, но и всех его подтипов

ООП имеет следующие преимущества

перед другими подходами:

компактность программ, уменьшающая их стоимость и время их разработки;

возможность повторного использования классов, программ и проектов;

эффективное разделение работы между дизайнерами и программистами;

быстрая адаптация программ к изменяющимся задачам и требованиям;

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

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

Объектно-ориентированные модели

имеют следующие преимущества

перед процедурно-ориентированными:

компактность модели;

возможность повторного использования частей модели;

эффективное разделение работы над численными методами, содержанием и наглядным представлением модели;

быстрая адаптация модели к изменению структуры и численных методов;

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

ориентация на предметную область модели, позволяющая моделировать без глубокого знания численных методов и, возможно, без умения программировать
^ 2.1.3.Существующие объектные средства моделирования
Таким образом, любая более-менее сложная математическая или имитационная модель является удобным предметом для применения объектно-ориентированного подхода. Конечно, этот факт был давно замечен и использован в большом количестве программных средств для моделирования [5,5]. Однако в большинстве таких средств объектно-ориентированным является только внешнее представление элементов модели, которое перед началом расчётов компилируется в код процедурно-ориентированного языка программирования или просто преобразуется в параметры готового кода. Например, блоки многих имитационных моделей преобразуются в переменные системы обыкновенных дифференциальных уравнений, а связи между ними – в функции её правых частей.

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

Существенно меньше распространены средства моделирования, в которых не только сама структура модели является объектно-ориентированной, но и работающие с ней численные методы. В этом направлении существуют два основных подхода. Первый обычно реализуется в задачах CFD (вычислительной газо- и гидродинамики) и других разделов механики и электродинамики сплошных сред [5]. Считается, что объектная методология имеет два основных преимущества по отношению к таким задачам – приспособленность к параллельным вычислениям и к решению задач со сложной геометрией. При описании параллельных вычислений в качестве объектов рассматриваются процессоры, обменивающиеся между собой данными в ходе расчётов, а при описании геометрии – однородные области интегрирования (часто примитивной формы), взаимодействующие между собой на границах. Для реализации этих преимуществ достаточно простейшей объектной модели, даже без наследования. Как следствие, проблему изменения и расширения численных методов данная трактовка понятия объекта не решает.

С точки зрения имитационного моделирования важным преимуществом использования объектов является возможность наглядного представления структуры модели и её визуального редактирования (то есть изменения без программирования). Обычно такая возможность реализуется путём построения модели из отдельных параметров, которые можно связывать между собой с помощью разных функций. Функции и параметры являются объектами многочисленных типов (классов). В частности, функции могут быть заданы таблично или с помощью формулы, могут зависеть не только от значений параметров, но и от их производных, а также зависеть от них с запаздыванием. В наиболее развитых системах имитационного моделирования [5,5,5] среди этих функций имеются достаточно сложные дифференциальные и дискретные операторы, что формально позволяет графически описать любую систему уравнений. К сожалению, такой системой не могут пользоваться эксперты предметной области, далёкие от математики. Например, для решения с её помощью дифференциального уравнения нужно понимать смысл преобразования Лапласа, а представление этого уравнения довольно громоздко (см. рис. 2.3).


Уравнение Ван дер Поля


Рис. 2.3. Пример объектного представления параметров и функций модели (Simulink).
^ 2.2.Объектно-ориентированная методология моделирования 2.2.1.Построение моделей из элементов
С точки зрения объектно-ориентированного анализа, упомянутые выше области интегрирования слишком велики и сложны, чтобы их рассматривать как элементарные объекты модели, и методы этих объектов всё равно придётся организовывать в процедурно-ориентированном стиле. В частности, класс области интегрирования должен содержать, по крайней мере, несколько массивов для сеточных функций, соответствующие значения которых (элементы массивов с одинаковым индексом) связаны между собой гораздо сильнее, чем элементы одного массива. С другой стороны, отдельные параметры и функции, наоборот, слишком малы как объекты, так как для создания из них хоть сколько-нибудь сложной модели требуются тысячи и миллионы таких объектов. Напрашивается вывод, что в качестве элемента модели следует рассматривать объект промежуточного размера между областью и параметром, и этот объект ниже называется просто элементом.

Элемент должен представлять собой набор семантически связанных параметров, к которым привязаны определённые алгоритмы вычислительной математики, а точнее – те части алгоритмов, которые рассчитывают именно эти параметры. При формировании объектно-ориентированной библиотеки численных методов математику достаточно запрограммировать некоторое количество классов элементов, которые соответствуют либо типичным математическим объектам (к примеру, системе обыкновенных дифференциальных уравнений), либо типичным объектам рассматриваемой предметной области. Например, в гидромеханике или физиологии человека такими типичными объектами являются трубки (сосуды), резервуары, обменники и т.д. После того, как созданы классы элементов, из них, как из конструктора, эксперт по данной предметной области может строить разнообразные модели безо всякого программирования (см. раздел 2.3.2).

Элементы рассчитывают значения своих параметров на основе связей с другими элементами. При этом связи являются чисто декларативными, а не процедурными, благодаря чему эксперт создаёт их, не задумываясь о том, с помощью каких математических методов эти связи выражаются. Конечно, для отдельных нетипичных соотношений между параметрами элементов можно также использовать обычные функциональные связи, поскольку в силу нетипичности для них нецелесообразно программировать специальные классы элементов.
^ 2.2.2.Создание типов элементов на основе наследования
На первый взгляд может показаться, что система моделирования, основанная на заранее запрограммированных классах элементов, не является такой гибкой, как существующие средства имитационного моделирования. Однако объектно-ориентированный подход позволяет обойти эту проблему за счёт наследования классов элементов. Если один класс элемента наследуется от другого, то он использует имеющиеся у того параметры и методы их расчёта, при этом добавляя какие-либо свои параметры и методы.

Например, пусть исходно был запрограммирован класс проводника, то есть элемента, который характеризуется сопротивлением и (по)током через него и предназначен для расчёта электрической цепи или, что то же самое, гидродинамической системы жёстких трубок. Если требуется учесть растяжимость трубок, достаточно унаследовать свойства и методы класса проводника, добавив к ним свойство объёма и процедуру расчёта сопротивления трубки через этот объём. (см. рис. 2.4) Далее класс растяжимой трубки (то есть сосуда, если пользоваться терминологией предметной области – физиологии) можно использовать в качестве родительского класса для эластичных, пластичных и других сосудов, различающихся моделью растяжения.

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



Рис. 2.4. Пример иерархии наследования классов модели (в объектной нотации Г. Буча).

Таким образом, наследование даёт возможность быстрого развития не только моделей, но и заложенных в них численных методов. При этом упростить и формализовать изменение кода программной реализации методов можно настолько, чтобы осуществлять его с помощью визуального редактора. Данная возможность отсутствует как в случае трактовки области интегрирования в качестве основного объекта модели (визуальное редактирование её методов не слишком отличается от обычного и не может быть формализовано), так и в случае трактовки в этом качестве параметра или функции (к ним не могут быть привязаны «интеллектуальные» методы, поэтому в них нечего редактировать).
^ 2.3.Пример использования: моделирование организма человека
Как было отмечено выше, ООП особенно необходим при совместном использовании разнородных методологий (например, математического и имитационного моделирования) и при описании неоднородных (например, дискретно-непрерывных) систем. Примером такой неоднородной системы, требующей привлечения как современных методов вычислительной математики, так и неточных эмпирических зависимостей, является комплексная модель организма человека.

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

Ниже данное утверждение иллюстрируется при описании некоторых блоков квазистационарной модели организма, название которой отражает тот факт, что она не рассматривает быстротекущие и колебательные процессы, сосредотачиваясь на расчёте равновесных или осреднённых по времени значениях параметров.
^ 2.3.1.Описание некоторых блоков модели и проблем их расчёта
Основой комплексной модели организма человека является модель кровеносной системы: во-первых, она служит посредником между всеми другими системами, осуществляя транспорт веществ в организме, во-вторых, параметры кровообращения являются основными показателями состояния человека. Поскольку кровеносное русло включает сосуды существенно различных размеров, их совместное моделирование требует комбинации различных математических подходов. Достаточно изотропную сеть мелких сосудов корректнее описывать моделью сплошной среды, то есть с помощью дифференциальных уравнений в частных производных. Это позволяет не вводить для таких сосудов лишних анатомических характеристик типа их размеров, сводя их свойства к одному параметру непрерывной задачи – проницаемости ткани по отношению к крови. С другой стороны, модель макроскопических сосудов сводится к системе с сосредоточенными параметрами, гидродинамическая часть которой рассчитывается по алгебраическим уравнениям (Кирхгоффа), а транспортная часть – по обыкновенным дифференциальным уравнениям. Проблема в том, что при попытке учесть в рамках такой дискретной модели большое число сосудистых поколений размерность сосредоточенной системы превысит размерность системы сеточных уравнений, аппроксимирующей непрерывную задачу в мелких сосудах.

Следовательно, даже для моделирования кровеносной системы как таковой (т. е. без её связей с другими системами организма) возникает задача совместного расчёта разнородных (дискретных и непрерывных) моделей. Как показано в [5], чисто математические способы решения проблемы связывания дискретной модели кровообращения с непрерывной моделью приводят к громоздким выкладкам, какими бы хитроумными они ни были (а их процедурно-ориентированная реализация требует не менее громоздких алгоритмов). Поэтому значительно более эффективной представляется объектная формулировка обеих частей модели, унифицирующая представление дискретных элементов и узлов пространственной сетки.

Такой же вывод можно сделать при рассмотрении задачи совместного расчёта параметров сердца и сосудистой системы. Конечно, работа сердца описывается гораздо более сложными уравнениями (см. [5], а также табл. 3 приложения), чем закон пропорциональности между потоком и градиентом давления, характерный для сосудов, поэтому, казалось бы, нельзя рассчитывать их единообразно. Однако если решать задачу отдельно для обоих желудочков сердца при фиксированных свойствах сосудов (интегральном сопротивлении кругов кровообращения) и отдельно – для сосудов при фиксированных параметрах желудочков (артериальном давлении и потоке), то возникает, по крайней мере, два вложенных итерационных процесса (один из них – например, процесс решения задачи в сосудах – должен сходиться на каждой итерации другого процесса – например, процесса расчёта сердечных параметров). Очевидно, эффективность таких расчётов очень низка, и её можно повысить, если объединить итерации схем сердечных и сосудистых уравнений в один процесс. Это возможно только за счёт объектно-ориентированной трактовки элементов сосудистой системы и сердца и их наследования от общего суперкласса (см. раздел 3.4.2). Одновременно такой подход увеличивает гибкость модели: в процедурно-ориентированный алгоритм из двух вложенных процессов весьма затруднительно вставить расчёт дополнительных активных элементов кровеносной системы (например, желудочков сердца, мышечного, дыхательного или других «насосов»).

Ещё более очевидные проблемы, пригодные к решению с помощью объектно-ориентированного подхода, возникают при моделировании транспорта веществ в организме. Вещества могут попадать в организм через дыхательную или пищеварительную систему (в первом случае – за счет конвекции и диффузии, во втором – с участием мышц органов желудочно-кишечного тракта), проникать в кровь (диффузионным путём или за счёт всасывания), транспортироваться кровеносной системой, испытывая по дороге разнообразные превращения и абсорбируясь выделительной системой; наконец, вещества могут разными способами потребляться в органах и тканях. Уравнения для всех этих процессов довольно похожи, однако разные пространственные размерности соответствующих моделей (для пищеварения и выделения – точечные модели, для кровообращения и дыхания – ветвящиеся одномерные и квазитрёхмерные) не позволяют использовать для их расчёта одни и те же процедуры. Особенно сложно при процедурном подходе формализовать условия на границах раздела систем, число типов которых намного больше, чем число самих систем. Однако если представлять организм человека в виде совокупности связанных между собой элементов, то при разработке их методов не нужно заботиться о том, с как
еще рефераты
Еще работы по разное