Организация тестирования алгоритма решения задачи оптимизационного анализа
Бондарев А.Е., Галактионов В.А., Михайлова Т.Н., Рыжова И.Г.
Институт прикладной математики им. М.В. Келдыша РАН bond@keldysh. ru, vlgal @gin.keldysh. ru
Аннотация. В данной работе описана выработка подхода к организации тестирования алгоритма решения задачи оптимизационного анализа. В работе приводится общее описание задачи оптимизационного анализа и алгоритмов ее решения. Рассматриваются общие традиционные подходы к тестированию алгоритмов оптимизации. Показано, что данные подходы не могут быть применены в чистом виде к современным задачам оптимизационного анализа. Для тестирования алгоритмов решения задач оптимизационного анализа предлагается использовать комплексный подход раздельного модульного тестирования. В работе рассматриваются вопросы тестирования алгоритма в целом, тестирования прямой задачи, тестирования обратной связи (построение блока-анализатора), тестирования алгоритма решения обратной задачи.
Ключевые слова: задачи оптимизационного анализа, тестирование алгоритмов оптимизации, модульное тестирование
1 Введение
Решение задач оптимизации является одним из ключевых разделов прикладной математики. Математические методы оптимизации постоянно модифицируются и находятся в постоянном развитии. Подробное описание самих методов и различных вариантов построения вычислительных алгоритмов на их основе можно найти в работах [Моисеев и др., 1978; Штойер, 1992].
В настоящее время большинство современных постановок проблем численного моделирования относится к классу прямых задач, в которых решение вычисляется при полностью заданных граничных и начальных условиях. Для решения конкретных практических научно-технических проблем наиболее важно решать обратные задачи, включающие формальные параметры, которые надо оптимизировать по условию минимизации некоторого целевого функционала при известных дополнительных линейных и/или нелинейных ограничениях на входные данные. Решение обратной задачи методами оптимизации производится с помощью направленного перебора прямых задач, количество которых может измеряться сотнями и тысячами. Ситуация усложняется при наличии большого количества локальных экстремумов и необходимости поиска глобального экстремума.
Формально с математической точки зрения обратная задача представляет собой стандартную задачу оптимизации, т.е. нахождения минимума целевого функционала. Если данный функционал зависит от многих определяющих параметров задачи, мы имеем дело с многопараметрической оптимизацией. А если задача предполагает нахождение минимумов нескольких таких целевых функционалов одновременно, то мы сталкиваемся с многокритериальной многопараметрической оптимизационной задачей.
Обратная задача - это всего лишь одна конкретная задача с фиксированными определяющими параметрами, предполагающая в процессе работы оптимизационного алгоритма многократное решение прямых задач. Несмотря на то, что обратные задачи считаются затратными и трудоемкими, существует следующий, еще более трудный, этап, предполагающий, в свою очередь многократное решение обратных задач. Этот этап предполагает проведение полноценного параметрического исследования для конкретной обратной задачи и получение в результате причин и условий возникновения моделируемого явления не для отдельной задачи, а для класса задач. Подобное параметрическое исследование принято называть задачей оптимизационного анализа.
Класс задач задается набором определяющих параметров задачи, в которые входят: геометрические параметры, характерные параметры (характеризующие физическую модель), вычислительные параметры (определяемые применяемым численным методом), а также группы параметров, относящихся к организации расчета. При решении прямой задачи эти параметры, как правило, фиксированы. Также они фиксированы при решении обратной задачи. Задачи оптимизационного анализа по своей сути предполагают массовое решение однотипных задач с разными входными параметрами, а, следовательно, лучше других поддаются распараллеливанию. В связи с этим постоянно ведутся исследования в области разработки подходов, методов, алгоритмов, средств интерпретации результатов, предназначенных для решения таких задач [8оЬо1, 1992; Соболь и др., 1994; Бондарев, 2011; Бондарев&Галактионов, 2012; Вопс1агеу, 2013; Вопёагеу&Оа1акйопоу, 2013].
Задачи параметрического исследования, к которым относятся и задачи оптимизационного анализа традиционно считаются трудноразрешимыми, настолько, что даже применение параллельных вычислений не всегда может помочь. Подтверждение этому можно найти в работе [Шалаев и др., 2012], посвященной применению параллельных вычислений для решения сложных задач аэрогазодинамики. Авторы отмечают, что при расчетах уравнений Навье-Стокса или Рейнольдса время расчета прямой задачи моделирования течения на подробной сетке может превышать две недели даже при использовании большого кластера ВЦ ФАНГ МФТИ. В этих условиях исследователь не может предполагать заранее точку в
пространстве определяющих параметров, где расчет будет наиболее эффективен, и для моделирования прямой задачи должен задавать набор определяющих параметров, руководствуясь собственным опытом. Однако подобные трудности можно обойти с помощью предварительного решения на грубой сетке задачи оптимизационного анализа, которое позволило бы определить наиболее значимые точки в пространстве определяющих параметров. Таким образом, реализуемое на грубых сетках решение задачи оптимизационного анализа, может применяться в качестве эффективного «разведочного» инструмента для определения важных точек и трендов взаимозависимостей в изучаемом пространстве определяющих параметров.
В силу этих обстоятельств и специфики самой задачи оптимизационного анализа для решения конкретных задач наиболее разумным является применение наиболее простых в реализации и в то же время эффективных алгоритмов оптимизации, таких как методы дихотомии и сеточные методы.
В предыдущих работах данного цикла работ [Бондарев, 2011; Бондарев&Галактионов, 2012; Bondarev, 2013; Bondarev&Galaktionov, 2013] было рассмотрено построение алгоритмов решения задач оптимизационного анализа. На основе этих разработок были построены прототипы программного обеспечения для решения задач оптимизационного анализа, как в последовательном, так и в параллельном варианте вычислений с применением технологии MPI.
Тестирование оптимизационных алгоритмов занимает традиционно важное место в современной вычислительной математике. Существует два основных подхода к организации тестирования. Первый из этих подходов сводится к классификации задачи и проверке алгоритма на различных тестовых функциях. Второй - сводится к подбору алгоритма из ряда возможных относительно результатов, показываемых ими на некотором универсальном тестовом наборе. Это классические традиционные подходы, разработанные в эпоху до появления параллельных вычислений и, соответственно, решения задач оптимизационного анализа. В силу этого данные подходы не могут быть применены в чистом виде к современным задачам оптимизационного анализа. Данная работа предлагает общий подход к организации тестирования, основанный на раздельном модульном тестировании. Рассматриваются вопросы тестирования алгоритма в целом, тестирования прямой задачи, тестирования обратной связи (построение блока-анализатора), тестирования алгоритма решения обратной задачи. Показано, что комплексный подход раздельного модульного тестирования позволяет в практическом применении сделать вывод о работоспособности алгоритмов, заложенных в разработанных прототипных программных комплексах.
2 Общая постановка задачи оптимизационного анализа и алгоритмы решения
Согласно [Вопёагеу&Са1 акЬопоV, 2013] формальную общую постановку задачи оптимизационного анализа можно изложить следующим образом:
Предположим, что имеется математическая модель нестационарного процесса и надежный численный метод для решения этой модели. В этом случае мы можем решать прямую задачу численного моделирования нестационарного процесса. Допустим, что в моделируемом процессе происходит некое событие (явление, эффект). Численное решение F = F( х, выбранной задачи формируется в процессе
математического моделирования и определяется управляющим параметром д: и конечным набором определяющих параметров задачи (х],...,хп), где каждый определяющий параметр х{ имеет свой диапазон
изменения х1 е [х*,х**] .
Обозначим X = (х,х1,...,хп) и введем функционал события Ф(Р(Х)), который на решении задачи принимает, подобно логической переменной, два значения: 1 - если событие, интересующее исследователя, наступило (независимо от рода события) и 0 - если событие не наступило. Ф(F(Z)) = 0 - событие не наступило (1)
Ф(Р(Х)) = 1 - событие наступило.
Пусть х - значение управляющего параметра, при котором наступает изучаемое явление.
Тогда общую постановку задачи можно сформулировать следующим образом:
- найти 1шп/(Ах) для всех значений определяющих параметров внутри Ах
диапазонов их изменения, т.е. \/х{ е [х*,х**], где 1(Ах) - функционал следующего вида
/(Дх) = 1-Ф^(Х)), Ах = х-х (2)
Таким образом, наша задача формально состоит в минимизации функционала /(Ах) при помощи вариации управляющего параметра. А в реальности, варьируя Ах, мы должны с приемлемой точностью отыскать значение х , то есть то значение управляющего параметра, при котором событие наступает.
Решая одну обратную задачу, мы получаем одно значение х для управляющего параметра при фиксированных определяющих параметрах. Это решение одной конкретной задачи. Однако нашей целью является получение решения для целого класса задач. Класс задач определяется диапазонами изменения определяющих (характерных) параметров задачи.
Итоговая цель исследования состоит в том, чтобы построить зависимость х\хх,...,хп) для всех возможных значений определяющих
параметров. Таким образом, если мы имеем в диапазоне разбиения каждого определяющего параметра М точек, то для того чтобы найти значения х управляющего параметра во всей многомерной области определяющих параметров, необходимо решить М" однотипных обратных задач. В результате решения этого набора задач находятся все точки в исследуемом пространстве определяющих параметров, где происходит событие.
При выборе конкретных алгоритмов оптимизации из множества возможных следует учесть вычислительную сложность решаемой задачи оптимизационного анализа и то обстоятельство, что сама задача оптимизации решается многократно. Исходя из этого, наиболее логичным представляется выбор самых простых и эффективных в реализации и контроле алгоритмов. Самыми простыми по смыслу, легкими в программной реализации и неоспоримо эффективными являются саамы популярные методы - методы дихотомии и сеточный метод. Метод дихотомии является одним из простейших однопараметрических методов безусловной оптимизации. Этот метод относится к методам прямого поиска, где при поиске экстремума целевой функции используются только вычисленные значения целевой функции. Для многопараметрических задач оптимизации наиболее простым и эффективным является сеточный метод, являющийся простейшим приближенным методом поиска наименьшего значения функции многих переменных. Рассматриваемая область покрывается сеткой и определяются значения функции в узлах сетки. Наименьшее из этих значений приближенно принимается за минимум функции на всей области.
Данный метод используется для решения одномерных, двумерных и трехмерных задач. Ранее традиционно считалось, что для задач большей размерности он практически непригоден из-за большого времени, необходимого для расчетов. Однако развитие параллельных вычислений делает самые неприхотливые и простые методы реально применимыми к практическим задачам. Более того, их простота и надежность создают им в этом случае значительные преимущества. Метод сеток относится именно к этой группе. Более того, современные средства вычислительной техники и применение параллельных вычислений позволяют на сегодняшний день применять сеточный метод оптимизации к многомерным задачам, когда число измерений превышает 3. Это достигается с помощью построения сетки в области многомерного пространства и параллельного вычисления значений целевой функции в точках сетки. Далее формируется многомерный массив из этих значений и с помощью процедур поиска экстремума в массиве находится глобальный минимум (или максимум) целевой функции в многомерной области. Данный подход был успешно
применен в расчетах, приведенных в работах [Бондарев, 2011; Бондарев&Галактионов, 2012; Вопёагеу, 2013; Вопёагеу&Оаккйопоу, 2013]. Следует заметить, что сочетание сеточного метода и современных программных средств визуализации данных, будучи реализованным на современной вычислительной технике с применением параллельных вычислений, способно успешно заменить целые группы гораздо более сложных алгоритмов оптимизации.
При решении задачи оптимизационного анализа важнейшим и ключевым моментом является организация обратной связи: каким образом алгоритм узнает, наступило ли исследуемое событие в процессе или нет? Именно от ответа на этот вопрос зависит определение направления вариации управляющего параметра. Направление вариации управляющего параметра (УП) определяется из анализа решения прямой задачи с помощью формирования из этого решения некоторого контрольного признака (КП). Формирование контрольного признака позволяет определить направление вариации управляющего параметра, задать его новое значение и перейти с этим новым значением управляющего параметра снова к решению прямой задачи. Именно таков механизм обратной связи при решении оптимизационных задач в целом (Рис.1).
Формирование контрольного признака достаточно просто в тех случаях, когда он является величиной или параметром, явно выраженным в полученном решении прямой задачи. Например, достижение некоторой величиной или коэффициентом решения определенного значения.
Рис.1. Схема построения обратной связи при решении обратных задач
В случае когда контрольный признак формируется из величин и параметров, явно представленных в полученном численном решении прямой задачи, необходимо в алгоритме создавать нужную комбинацию из величин и коэффициентов решения и контролировать ее в процессе вычислений.
Гораздо более часто распространенным является наиболее сложный случай, когда контрольный признак не присутствует в полученном
численном решении явно. То есть численное решение есть, а формального контрольного признака в нем не содержится явным образом. Пример: событие в исследуемом нестационарном процессе представляется появлением в расчетной области разрыва, вихря или любой другой пространственно-временной структуры (ПВС) и само это событие является контрольным признаком. Как правило, появление ПВС в решении не связано явно с величинами численного решения. Расположение датчиков в расчетной области полезно, но вряд ли может существенно улучшить ситуацию, так как место появления ПВС заранее неизвестно, а ставить датчик в каждую точку расчетной области нецелесообразно с точки зрения вычислительных затрат. В таких случаях необходим тщательный анализ решения для локализации и детекции изучаемого объекта. Для достижения этой цели необходимо построение специального программного модуля -анализатора. Здесь важным инструментом анализа могут послужить современные средства и методы научной визуализации.
Следует заметить, что для каждой конкретной задачи построение блока-анализатора решения полностью определяется характером данной задачи. Общая суть заключается в том, что, используя блок-анализатор решения, мы при каждой итерации решения задачи оптимизации получаем ответ на вопрос - происходит ли в данной точке изучаемое событие.
3 Тестирование алгоритма решения задачи оптимизационного анализа.
Тестированию методов и алгоритмов уже несколько десятилетий уделяется пристальное внимание. Как правило, при разработке оптимизационного алгоритма в первую очередь проверяется его работоспособность в принципе, то есть, способен ли алгоритм находить оптимальное решение поставленной оптимизационной задачи. Для алгоритмов претендующих на универсальность проверяется способность отыскивать решения для разных типов оптимизационных задач: однокритериальных и многокритериальных, условных и безусловных, однопараметрических и многопараметрических. Также проверяется способность алгоритма отыскивать глобальный оптимум в условиях сложного ландшафта целевой функции, когда задача оптимизации в целом имеет много локальных экстремумов. Кроме общей работоспособности алгоритма, как правило, также оценивается скорость сходимости, необходимое для достижения результата количество итераций, потребляемое количество вычислительных ресурсов (оперативной памяти). Для этих целей разработано достаточно большое количество стандартных тестовых задач, зачастую объединяемых в стандартные наборы. Анализируя многочисленные работы, посвященные различным аспектам тестирования оптимизационных алгоритмов, можно выделить два основных подхода.
Первый подход заключается в подборе наиболее подходящих категории и типе оптимизационных задач для фиксированного алгоритма.
Второй подход представляет собой выбор наиболее подходящего с точки зрения точности и результативности алгоритма для фиксированной оптимизационной задачи или набора задач.
Можно утверждать, что ни один из этих подходов в чистом виде непригоден для проведения тестирования алгоритма решения задачи оптимизационного анализа.
Рассмотрим подробнее причины этого явления. В качестве основных причин можно выделить следующие:
1. В задаче оптимизационного анализа сам алгоритм оптимизации является лишь частной задачей, которая многократно решается для всех точек сеточного разбиения пространства определяющих параметров.
2. Из самой постановки задачи оптимизационного анализа, изложенной в разделе 1 данной работы следует, что целевая функция, задаваемая соотношениями (1) и (2), является кусочно-гладкой функцией, имеющей разрыв, находящийся в неизвестной точке на интервале области задания. Данный интервал задается диапазоном изменения управляющего параметра. Задача состоит в определении местоположения на интервале точки разрыва с заданной точностью. Если рассматривается случай с одним управляющим параметром, задача с точки зрения классификации оптимизационных задач является однокритериальной однопараметрической безусловной задачей оптимизации. Если постановку задачи, описываемую соотношениями (1) и (2), обобщить на случай нескольких управляющих параметров, то такая обобщенная задача будет являться однокритериальной многопараметрической безусловной задачей оптимизации и вместо интервала будет необходимо рассмотреть часть плоскости, объема или многомерной области в общем случае.
После сведения к самым простым типам оптимизационных задач разумно и логично применять самые простые (но от этого не менее эффективные) алгоритмы, ориентируясь, в первую очередь, на последующее применение параллельных вычислений. Для этого в случае одного управляющего параметра используется метод дихотомии или его модификации. Для случая нескольких управляющих параметров применяется сеточный метод с целью отыскания глобального оптимума. Вид ландшафта целевой функции при подобной постановке нас интересует в меньшей степени.
В итоге, мы имеем фиксированную оптимизационную задачу самой простой категории и фиксированный алгоритм решения, также относящийся к самым простым. В этом случае применение общепринятых подходов к организации тестирования нецелесообразно.
В данной работе для задач оптимизационного анализа предлагается иной подход, основанный на раздельном модульном тестировании (Рис.2).
Согласно постановке задачи, приведенной ранее, работоспособность алгоритма решения задачи оптимизационного анализ в целом заключается в получении надежного решения оптимизационной (обратной) задачи для каждой точки заданного сеточного разбиения в пространстве определяющих параметров. Таким образом, проверка работоспособности алгоритма для задачи в целом сводится к решению оптимизационной задачи поиска разрыва кусочно-гладкой функции на интервале для каждой точки в пространстве определяющих параметров.
Рис.2. Схема организации тестирования алгоритма решения задачи оптимизационного анализа
В каждой точке при фиксированных значениях определяющих параметров проводится следующая процедура решения оптимизационной задачи. Проводится решение прямой задачи. В качестве результата получается поле решения. Полученное решение передается в блок-анализатор. Данный блок определяет значение целевой функции, соответствующее данному фиксированному значению управляющего параметра. Таким образом осуществляется механизм обратной связи для решения оптимизационной задачи. Полученное значение целевой функции передается в блок управления решением оптимизационной задачи, который на основании данного значения выбирает направление и величину вариации управляющего параметра, формируя его новое значение. 4. Новое значение передается в блок решения прямой задачи для расчета следующей итерации. Процедура повторяется до нахождения искомого положения разрыва целевой функции с точностью е, задаваемой пользователем.
Для организации тестирования необходимо применить принцип раздельного модульного тестирования, когда работоспособность модулей алгоритма проверяется раздельно для алгоритма решения прямой задачи, для работы блока-анализатора решения и для блока решения оптимизационной задачи.
Рассматриваемое отдельно тестирование прямой задачи предполагает наличие в рассматриваемом классе задач задачи, имеющей известное точное решение, или подтвержденные известные экспериментальные результаты. Процедура тестирования выглядит как реализация алгоритма для данной задачи, получение расчетных результатов и сравнение их с известным точным или экспериментальным решением. Данная процедура является стандартной для всех прямых задач, рассматриваемых в математическом моделировании.
Тестирование механизма обратной связи предполагает проверку работоспособности блока-анализатора. Данный блок должен каждый раз, анализируя решение прямой задачи, выдавать соответствующее значение целевой функции - согласно постановке задачи (1), (2) ноль или единицу в зависимости наступления события. Работа данного блока проверяется следующим образом:
1. Фиксируются значения определяющих параметров, задавая таким образом точку в сеточном разбиении определяющих параметров. Выбирается пара значений управляющего параметра вблизи от концов интервала задания управляющего параметра.
2. Проводятся расчеты прямой задачи при фиксированных значениях определяющих параметров для выбранной пары значений управляющего параметра, формируя соответственно два поля решения.
3. Оба поля решения передаются в блок-анализатор, который определяет значения целевой функции для этих полей.
Алгоритм анализа поля решения признается пригодным, если в описанной ситуации он выдает разные значения целевой функции, т.е. ноль и единицу.
После проведения раздельного тестирования модулей решения прямой задачи и блока анализатора, проводится проверка модуля решения оптимизационной (обратной) задачи. Процедура данной проверки проводится следующим образом:
1. Выбирается кусочно-гладкая целевая функция с заранее известным местоположением разрыва. Подобная функция может быть заранее имитирована с помощью решения при фиксированных значениях определяющих параметров специально подобранной прямой задачи с вариацией управляющего параметра.
2. Проводится задание начального значения управляющего параметра внутри интервала его изменения.
3. Проводится решение оптимизационной (обратной) задачи. В результате решения определяется расчетное местоположение разрыва внутри интервала.
4. Расчетное местоположение разрыва сравнивается с заранее заданным. В том случае, если невязка между расчетным и заданным значениями местоположения разрыва не превышает заданной
пользователем точности вычисления е, алгоритм признается работоспособным и пригодным к практическому использованию.
4 Практическое применение
Описанный в предыдущем разделе подход раздельного модульного тестирования задачи оптимизационного анализа был применен к конкретной практической задаче. Для проведения расчетов использовался разработанный прототипный программный комплекса Орйш. Рассматривалась задача оптимизационного анализа, основанная на массовом решении обратных задач при задании различных наборов определяющих параметров. В свою очередь, решение каждой обратной задачи основано на многократном решении прямой задачи математического моделирования о течении вязких теплопроводных сред в каналах.
Процесс организации тестовых расчетов проводился в соответствии с комплексным подходом раздельного модульного тестирования. В соответствии с данным подходом на первом этапе проводилось тестирование работоспособности модуля решения прямой задачи. Для проверки работоспособности модуля решения прямой задачи в прототипном программном комплексе был проведен ряд стандартных тестовых расчетов прямой задачи. В качестве тестов рассматривались варианты течений в широком диапазоне чисел и Яе^. Расчеты проводились при фиксированных значениях числа Прандтля Ргм = 0.72 и числа Струхаля 5/^=1. Проверялись функциональная работоспособность всех реализованных в программном комплексе типов задания граничных и начальных условий в счетной области. Проверялось соответствие полученных в расчетах результатов физической и математической моделям и их количественное и качественное соответствие известным решениям. Необходимо заметить, что выбор в качестве прямой задачи ламинарного вязкого теплопроводного течения в канале сам по себе является хорошим тестом. Данная задача имеет для установившихся течений хорошо известные аналитические зависимости на выходе из канала, многократно подтвержденные натурными и численными экспериментами. Характер полученных в расчетах распределений величин находится в соответствии с известными аналитическими и эмпирическими зависимостями.
В качестве обратной задачи рассматривалась задача нахождения оптимального значения весового коэффициента применяемой гибридной разностной схемы. При расчете прямой задачи моделирования течения в канале используется гибридная конечно-разностная WW-cxeмa. Эта неявная безусловно устойчивая схема второго порядка по времени и пространству обладает искусственной вязкостью, позволяющей устранять нефизические осцилляции вблизи разрывов путем выбора весового
коэффициента Бк. Основной целью решения обратной задачи является оптимизация свойств искусственной вязкости, заложенных в гибридной разностной схеме. С целью анализа численного решения вводится понятие «решения без осцилляций». Выбирается решение, где не возникает нефизических осцилляций, и анализируется количество локальных экстремумов в счетной области, обозначив это количество как Ре. Пусть F(S£;) - функционал, характеризующий количество локальных экстремумов в счетной области в зависимости от выбора веса Бк.. Тогда задача формулируется так: определить при каких значениях Бк выполняется
F(SA;) = ^ (3)
Схема расчета выглядит следующим образом. Решается прямая задача моделирования течения с помощью схемы при некотором
заданном начальном значении Бк. В счетной области определяется значение Р(Бк) - количество локальных экстремумов. Далее решается классическая обратная задача путем вариации Бк до выполнения условия (3). При выборе веса Бк < Б в численном решении возникают нефизические осцилляции.
Для организации механизма обратной связи при решении обратной задачи был построен блок-анализатор решения. Данный блок проводит анализ первых и вторых производных расчетных переменных вдоль выбранного в расчетной области горизонтального луча с целью контроля условия, чтобы количество локальных экстремумов пэ не превышало
некоторого заданного значения п*. Для проверки блока-анализатора было выбрано заведомо гладкое решение, не содержащее осцилляций. Количество локальных экстремумов, рассчитанное в блоке, равнялось 6. Было принято п* = 6. Для пэ < п* было принято значение целевой функции (2) равным нулю, то есть событие (появление нежелательных осцилляций) не наступает. При пэ < п* возникают нежелательные осцилляции, значение целевой функции принимается за единицу. Тестирование программного модуля блока-анализатора проводилось в соответствии с процедурой, описанной ранее. Была выбрана пара значений управляющего параметра Бк вблизи от концов интервала задания. Для двух выбранных значений были проведены соответствующие расчеты прямой задачи и сформированы два поля течения. В результате работы блока-анализатора при обработке этих полей были получены значения целевой функции ноль и единица, то есть, при одном значении Бк количество локальных экстремумов было меньше либо равно контрольного значения п* = 6, а при другом значении - больше, что означает начало возникновения нефизических осцилляций в поле течения. Таким образом, проведенная проверка показала работоспособность блока-анализатора.
После проведения раздельного тестирования модулей решения прямой задачи и блока анализатора была проведена проверка модуля решения оптимизационной (обратной) задачи.
В управляющем блоке решения обратной задачи проводилось решение вариационной задачи с целью минимизации Бк вплоть до
нарушения условия пэ <п*. Была подобрана заранее кусочно-гладкая целевая функция с известным местоположением разрыва путем многократного решения прямой задачи с разными значениями Бк. Результаты тестирования показали работоспособность алгоритма решения обратной задачи с заданной точностью.
На основании проведенного раздельного модульного тестирования было осуществлено решение задачи оптимизационного анализа в целом. В качестве теста были проведены расчеты задачи оптимизационного анализа в варианте с двумя выбранными определяющими параметрами характерным числом Маха прямой задачи Ми и характерным числом Прандтля Рг. В качестве диапазонов изменения были выбраны 2.0 <Мх <3.0 и 0.72 <Рг< 1.0. В качестве сеточного разбиения для числа Маха были взяты 5 точек, а для числа Рейнольдса - 4 точки. В результате проведения тестовых расчетов был получен итоговый численный массив, представляющий зависимость управляющего параметра от определяющих параметров рассматриваемой задачи Б к(Мх, Рг)в дискретной форме.
Заключение
В данной работе описана выработка подхода к организации тестирования алгоритма решения задачи оптимизационного анализа. Приводится общее описание задачи оптимизационного анализа и алгоритмов ее решения. Показано, что общие традиционные подходы к тестированию алгоритмов оптимизации не могут быть применены в чистом виде к современным задачам оптимизационного анализа. Для тестирования алгоритмов решения задач оптимизационного анализа предлагается использовать комплексный подход раздельного модульного тестирования. Рассматриваются вопросы тестирования алгоритма в целом, тестирования прямой задачи, тестирования обратной связи (построение блока-анализатора), тестирования алгоритма решения обратной задачи.
По результатам тестовых расчетов можно сделать вывод о практической применимости комплексного подхода раздельного модульного тестирования.
Благодарности
Данная работа выполнена при частичной поддержке РФФИ (проекты 13-01-00367а и 14-0100769а).
Список литературы
[Бондарев, 2011] Бондарев А.Е. Оптимизационный анализ нестационарных пространственно-временных структур с применением методов визуализации / Научная визуализация, М., 2011, Т.З, № 2, с.1-11.
[Бондарев&Галактионов, 2012] Бондарев А.Е., Галактионов В.А. Анализ многомерных данных в задачах многопараметрической оптимизации с применением методов визуализации / Научная визуализация. Т.4, № 2, с.1-13, 2012, ISSN 2079-3537. [Моисеев и др., 1978] Моисеев Н.Н., Иванилов Ю.П., Столяров Е.М. Методы оптимизации, "Наука", М., 1978.
[Соболь и др., 1994] Соболь И.М., Картышов С.В., Кульчицкая И.А., Левитан Ю.Л. О многокритериальной оптимизации математических моделей // "Математическое моделирование", Т.6, №6,1994, с. 85-93.
[Шалаев и др., 2012] Шалаев В.И. Ваганов А.В., Воронич И.В., Ивчик Л.Ф., Конынин В.Н., Рыжов С.А., Стародубцев М.А., Ткаченко В.В., Юмашев В.Л. Применение параллельных вычислительных технологий для решения сложных задач аэрогазодинамики ВЦ ФАЛТ МФТИ / Суперкомпьютеры, 2012, N 2(10), с.59-64. [Штойер, 1992] Штойер Р. Многокритериальная оптимизация. Теория, вычисления и приложения:- М.: Радио и связь, 1992.— 504 с.
[Bondarev, 2013] Bondarev А.Е. Analysis of Space-Time Flow Structures by Optimization and Visualization Methods // Transactions on Computational Science XIX, LNCS 7870, pp. 158-168. Springer, Heidelberg (2013).
[Bondarev&Galaktionov, 2013] Bondarev A.E, Galaktionov V.A. Parametric Optimizing Analysis of Unsteady Structures and Visualization of Multidimensional Data // International Journal of Modeling, Simulation and Scientific Computing, 2013, V.04, N suppOl, 13 p., DOI 10.1142/S1793962313410043
[Sobol, 1992] Sobol I.M.. An efficient approach to multicriteria optimum design problems // Surv. Math. Industry, 1992, V. 1, N. 4, P. 259-281.