全文:
1. ВВЕДЕНИЕ
Для численного решения задач оптимизации сложных систем в частных производных представляется целесообразным использовать прямой экстремальный подход [1–3]. Суть похода заключается в прямой минимизации (максимизации) экстремальными алгоритмами целевого функционала
(1.1)
где функция управления , , τ пространственно-временная переменная, U допустимое множество управлений, замкнутая область функционирования системы с состоянием пространство (допустимое множество) состояний системы. Здесь оператор D, действующий на v, включает в себя не только конкретный вид дифференциальных уравнений на Ω, но и краевые условия где-либо на границе ∂Ω. Функция цели определена на множестве ω, а ее значение зависит от параметра v и возможно u.
В прямом подходе не используются какие-либо промежуточные, например, необходимые условия оптимальности, а непосредственно решается задача:
(1.2)
где оптимальное управление, оптимум, оптималь, оптимальный параметр, доставляющий глобальный минимум функционалу J(u). Задача (1.2) является бесконечномерной задачей оптимизации, поскольку управление u – функция. Для ее решения, обычно, используют методы градиентного спуска или методы сопряженных градиентов, обобщенные на бесконечномерные пространства. Сходимость этих методов за конечное число итераций обоснована только для конечномерных пространств управлений, когда u вектор, а J(u) при этом функция. Доказательства сходимости в таких задачах основываются, если не на квадратичности функции J(u), то на ее выпуклости. Для минимизации невыпуклых, многоэкстремальных функций существует большое количество алгоритмов (с той или иной степенью обоснования сходимости), но они не обобщаются на бесконечномерные задачи.
Традиционные градиентные методы, применяемые в бесконечномерных пространствах, имеют вид:
(1.3)
где k номер итерации, шаговый множитель, регулирующий глубину спуска к минимуму вдоль антиградиента . Градиент вычисляется с использованием уравнений . Все разнообразие методов (1.3) заключается в выборе шагового множителя [4–6] для ускорения сходимости к минимуму J(u).
Общепринятая стратегия выбора bk это выбор заранее, возможно постоянного, шагового множителя на всех итерациях:
(1.4)
где некоторая положительная, заранее известная функция. Данная стратегия нередко используется при минимизации выпуклых J(u) [5]. Для таких задач оптимизации стратегия является релаксационной, т.е. она ослабляет, уменьшает шаги так, что по мере приближения к u*. Если бы была известна аналитическая зависимость J(u), то можно было бы найти оптимальное b [6]. При этом используются знания о выпуклости J(u), такие как константа липшицевости градиентов, собственные числа матрицы Гессе. Понятно, что при бесконечномерной оптимизации получить что-либо подобное о поведении J(u) вряд ли возможно.
К достоинствам указанной стратегии следует отнести минимальность усилий в ее реализации и отсутствие дополнительных вычислений J или на каждой итерации k. Поэтому стратегия может оказаться эффективной в некоторых частных случаях при некоторых исходных данных.
Остается открытым вопрос, как исследовать, решать экстремальные задачи с невыпуклыми, многоэкстремальными целевыми функционалами? В настоящей работе предлагаются градиентные алгоритмы, основанные на специфическом выборе шагового множителя bk, для исследования и off-line решения задач оптимизации (не непрерывного on-line управления) сложных систем в частных производных.
2. АЛГОРИТМЫ
Рассмотрим следующую (вторую) стратегию выбора bk, которая использует адаптивную релаксацию шага:
где β2(k) положительная, заранее неизвестная функция, значение которой на каждой итерации определяется (адаптируется) на основании полученной ранее информации о поведении J(u). Например, для минимизации выпуклых J(u), это может быть градиентный метод вида [1]:
(2.1)
Здесь . Начальное значение b0 задается из условия J1 < J0.
Алгоритм (2.1) посредством параметра b1 может увеличивать шаги и тем самым усиливать сходимость к минимуму, а параметром b2 контролировать и не допускать расходимость метода из-за чрезмерно больших шагов. Условие завершения «стоп» в цикле повторений предыдущего шага контролирует зацикливание и излишнее количество чрезмерно малых шагов при уменьшении bk–1. Если bk–1 ≈ 0, то следует считать, что процесс минимизации J(u) достиг своего предела. Итерации k прекращаются. Очевидно, алгоритм (2.1), в общем случае, для минимизации функционалов, эффективнее алгоритмов описанной ранее в первой стратегии, хотя он требует дополнительного хранения в памяти массивов .
Если не выпуклый, но имеет единственный экстремум минимум, то в алгоритме минимизации (2.1) следует предусмотреть и возможность ослабления сходимости, если обнаруживается рост нормы градиента (здесь и далее норма вычисляется в ). Это можно сделать следующим градиентным методом:
(2.2)
Здесь b3≥1. Если J(u) убывает, а норма градиента не убывает (возрастает), то это означает, что текущий шаг либо пришелся на вогнутую часть J(u), либо перескочил через локальный минимум и попал в область повышенной выпуклости J(u). В любом случае следующий шаг не должен быть больше предыдущего. Величина такого шага регулируется параметром b3. Надо быть внимательным при выборе b3>1, поскольку можно существенно замедлить сходимость алгоритма.
Если J(u) не выпуклый и при этом имеет несколько локальных экстремумов, то алгоритм (2.2) следует модифицировать, посредством адаптации параметра b1. Для того, чтобы сходимость не завершилась в каком-либо физически неудовлетворительном локальном экстремуме (или хочется проверить существуют ли другие экстремумы), следует приближаться к нему с большим значением b1 для перешагивания через экстремум. И наоборот, чтобы не перешагнуть через желаемый экстремум, следует приближаться к нему осторожно, с уменьшенным b1.
Алгоритм адаптации b1 существенным образом зависит от конкретной задачи оптимизации. Данная процедура требует кропотливого участия исследователя и вряд ли может быть формализована. Тем не менее, она позволяет исследовать многоэкстремальные задачи бесконечномерной оптимизации.
Обсуждаемый алгоритм выбора шагового множителя имеет вид:
(2.3)
Существуют и другие стратегии поиска bk для минимизации функционалов. Например, стратегии линейного поиска на каждой итерации, которая осуществляется в два этапа. Сначала ищется (задается) отрезок, в направлении , потом на этом отрезке ищется удовлетворительное bk. Здесь самым известным представителем является градиентный метод наискорейшего спуска – это стратегия полной релаксации, когда на каждом шаге вдоль направления , на отрезке заданной длины, выбирается оптимальное значение множителя:
Это замечательная стратегия. Однако, если управление ограничено допустимым множеством или другими специфическими особенностями задачи, то выбор отрезка, содержащего минимум функции Jk(b), может стать невозможным. Любой «конец» отрезка, начавшегося в точке uk, может выйти за ограничения и сделать абсурдным решение уравнений .
Для пояснения и иллюстрации актуальности и работоспособности предложенных алгоритмов второй стратегии рассмотрим следующий пример.
3. ПРИМЕР
3.1. Постановка задачи
Сформулируем задачу оптимального дизайна сопла гидропушки, схема которой представлена на фиг. 1. Поршень 2 под действием газа в ресивере 1 разгоняется, толкая перед собой воду 3 из цилиндрического ствола в сужающееся сопло 5.
Фиг. 1.Схема поршневой гидропушки
Движение воды в цилиндрическом сопле можно описать следующей квазиодномерной, квазилинейной гиперболической системой уравнений [7]:
(3.1)
Состояние системы характеризуется вектор-функцией , где плотность потока, w скорость. Состояние определено на пространственновременной области втекания воды в сопло и истечения из него. B и n постоянные в уравнении состояния Тэта. Управление
(3.2)
где площадь поперечного сечения сопла, , площадь ствола гидропушки.
Система (3.1) это значение оператора , которое дополняется краевыми условиями. Слева – это уравнение движения поршня массой : . На правой границе, взаимодействующей с атмосферой, плотность воды . Начальные условия – это . Радиус ствола , длина сопла , начальная длина столба вода 0.28 м.
Определим целевой функционал. Будем максимизировать среднюю силу действия импульса струи на преграду:
где начало истечения струи из сопла, конечное время формирования струи. В частности, , а время истечения .
Подобная задача рассматривалась и ранее [8, 9] в рамках подхода классического вариационного исчисления. Были предложены различные необходимые условия оптимальности, но оптимальная форма сопла так и не была получена. Только применение экстремального подхода с анализом управляемости и развитие адаптивных градиентных алгоритмов позволило решить эту сложную задачу оптимизации.
Далее будем обращаться к функционалу в форме:
(3.3)
где подынтегральная функция цели
Уточним область определения управления это множество , при этом форма сопла определена на . Областью значений управления будем считать полупространство допустимых значений:
. (3.4)
Такому соответствует , что является физически разумным. Необходимо иметь в виду и еще одно ограничение. При сверхзвуковом истечении, когда , струя разрушается. Это ограничение не входит в постановку задачи оптимизации, а является индикатором возможной неудачной оптимизации.
Для прямой максимизации целевого функционала (10) необходимо найти его градиент . Техника аналитического определения градиента неявно заданного функционала это самостоятельная сложная задача. Здесь можно использовать подход [1], что было нами сделано в работе [10]. Мы получим следующее выражение градиента:
где f1 это компонента сопряженного, по отношению к v, состояния системы, весовой коэффициент выравнивания вычислительных помех решения на исходной нелинейной задачи и линейной сопряженной задачи на :
На левой границе f1 = 0. На правой, при истечении с t1 и до t2 имеем . Начальное (терминальное) условие при t2 это f1 = 0, f2 = 0. Задача решается в обратном по времени направлении, начиная с нулевого терминального состояния.
3.2. Оценка выпуклости целевого функционала
Для получения представления о выпуклости функционала (3.3), рассмотрим управление в классе функций-конусов. При этом , т.е. J будет функцией радиуса среза сопла Rb, а . Полученная функция J представлена на фиг. 2.
Фиг. 2.Зависимость функционала-функцииJ(Rb)
Правая точка на графике соответствует соплу в виде трубы, Rb = Ra. Левая точка соответствует минимально возможному радиусу среза сопла, при котором еще не наступает сверхзвуковое истечение. Рядом с этой точкой имеется maxJ, с большой вогнутостью и очень малой окрестностью дозвукового течения. Функционал, в процессе изменения радиуса сопла от трубы до минимально допустимого сужения, меняет совою начальную выпуклость на вогнутость. Причем, вогнутость на много сильнее начальной выпуклости.
Если максимизировать функцию J(Rb), начиная с Rb = Ra, классическим конечномерным градиентным методом с первой стратегией выбора b = b0, то небольшие начальные шаги при движении влево сменятся на большие шаги (из-за возрастания градиента). Поскольку вогнутость имеет место в относительно малой окрестности максимума, то большие шаги могут приводить к перепрыгиванию через экстремум вплоть до появления сверхзвукового истечения. Это недопустимо. Попасть в maxJ, возможно, удастся только с очень малым b и, естественно, при чрезмерно большом количестве итераций. Применение градиентного метода наискорейшего спуска, метода сопряженных градиентов и других методов, использующих линейный поиск наилучшего bk, здесь невозможно, поскольку такой поиск, в общем случае, будет начинаться со сверхзвукового истечения.
В этой ситуации, для достижения maxJ, целесообразно использовать метод (6) с адаптивной стратегией выбора bk. Давайте с него и начнем реальную оптимизацию произвольной формы сопла. Решение задачи программировалось автором в среде Delphi 7, вычисления проводились на компьютере с индексом производительности 3.5 Windows на пространственновременной сетке 40 × 500 в течение времени менее минуты.
3.3. Первый локальный максимум
Пусть начальное приближение
что соответствует трубе . Начальное значение шагового множителя
что соответствует первому шагу . Сначала рассмотрим задачу оптимизации без условия (3.4) контроля расширения сопла.
Применим градиентный метод (2.2) для максимизации J(u):
(3.5)
Были подобраны значения параметров метода: b1 = 1.05, b2 = 0.3, b3 = 1.05. Подбор осуществлялся из соображений: b1 должен быть небольшим для «осторожного» подхода к ближайшему сильно вогнутому экстремуму; b2 во всех расчетах удовлетворительно выполняло свою задачу при 0.3; b3 чуть больше единице, иначе, при больших значениях сходимость сильно замедлялась, а при b3 = 1 происходил слишком большой переход (из-за резкой смены выпуклости) через первый экстремум. Остановка итераций осуществлялась при .
Результаты оптимизации представлены на фиг. 3 в виде радиуса сопла для разных площадей σ. Оптимальной формой сопла оказался практически конус со значением целевого функционала J = 1.26·105.
Фиг. 3.Оптимальное сопло в первом экстремуме
Традиционным бесконечномерным градиентным методом (1.3), с постоянным шаговым множителем, не удалось попасть в рассматриваемый локальный maxJ. При перешагивание экстремума сопровождалось сверхзвуковым истечением. При уменьшении b до 10–2b0 сходимость не заканчивалась даже поле нескольких тысячах итераций, наблюдалось неконтролируемое расширение сопла после перехода локального maxJ.
3.4. Второй локальный максимум
Выясним, является ли первый максимум целевого функционала глобальным. Для этого необходимо посредством метода (3.5) грубо перейти и через максимум, и через близлежащий за ним минимум, чтобы опять выполнилось условие роста функционала Jk > Jk–1. Увеличим в окрестности максимума шаги посредством параметра b1 от 1.05 до b1 = 1.16. При этом был реализован переход через локальные максимум и минимум в область роста , но, если не применять ограничение (3.4), то далее происходило неестественное расширение сопла за пределы ствола гидропушки, что приводит к аварийным завершениям расчета состояния потока. Ниже на фиг. 4 точечными линиями показано промежуточное расширение сопла для итерации k = 41.
Ограничение (3.4) легко реализуется проецированием управления на допустимое множество U. После шага любым алгоритмом адаптивной релаксации полученное управление uk+1 дополнительно корректируется:
Дальнейшие расчеты оптимизации ограниченного сопла методом (3.5) и традиционным методом (1.3), при любых b0, приводили к сверхзвуковому истечению. Для (3.5) этот «неудачный результат» означает, что параметр увеличения шагов b1 был недопустимо большим, и возможный второй локальный maxJ был грубо пройден. Здесь вместо метода (3.5) необходимо применять метод типа (2.3) и в окрестности ожидаемого maxJ уменьшать b1.
Окрестность предполагаемого максимума можно определить по скорости истечения , . Она должна быть близкой к скорости звука c0. В частности, такой скоростью была принята . При ее превышении усиление шагов было отменено, т.е. b1 = 1.
Метод (2.3), для максимизации целевого функционала J, имеет вид:
(3.6)
Параметры метода были теми же: начальное .
На фиг. 4 сплошными линиями показан радиус сопла полученной оптимальной площади σ68 на последней итерации k=68. Блок «Иначе повторять» в (3.6) срабатывал только в конце итераций при k≥66, что потребовало дополнительно 12 вычислений J. Значение целевого функционала составило J = 3.75 · 105, т.е. в 3 раза больше (лучше), чем в первом локальном максимуме.
Фиг. 4.Оптимальное сопло во втором экстремуме
Таким образом, второй максимум следует считать глобальным, а соответствующую форуму сопла оптимальной.
4. ВЫВОДЫ
Предложенные градиентные методы минимизации (максимизации) целевых функционалов, с шаговыми множителями адаптивной релаксации шагов при приближении к экстремуму, позволили решить сложную многоэкстремальную задачу оптимизации формы сопла гидропушки. Были выявлены два локальных максима у целевого функционала, характеризующего среднюю силу действия импульса струи на преграду. Второй максимум имел значение целевого функционала в 3 раза больше (лучше), чем первый. Полученное сопло, соответствующее глобальному максимуму, следует считать оптимальным. Применение традиционного градиентного метода не позволило найти ни одного локального экстремума целевого функционала. То есть, решить поставленную задачу градиентным методом с постоянным шаговым множителем не удалось, и по всей вероятности невозможно.