Main menu

Алгоритмы минимизации с ограничениями: метод штрафных функций и барьерные методы

Реальный мир диктует жесткие условия

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

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

Метод штрафных функций (Exterior Penalty Method)

Самым интуитивно понятным подходом является метод штрафных функций (внешних штрафов). Идея невероятно проста: мы создаем новую, искусственную (вспомогательную) целевую функцию. Эта функция равна нашей исходной функции плюс специальный штрафной член. Штраф равен нулю, если точка находится внутри разрешенной зоны (удовлетворяет ограничениям). Но как только алгоритм нарушает ограничение и выходит в запретную зону, штрафной член стремительно возрастает (обычно пропорционально квадрату нарушения).

Численный решатель начинает минимизировать эту вспомогательную функцию обычным безусловным методом. Сначала штрафной коэффициент берется небольшим, и алгоритм может слегка «заступить» за границы. На следующем шаге штрафной коэффициент резко увеличивают. Штрафная функция становится похожей на крутой овраг, дно которого совпадает с границей разрешенной области. Повторяя этот процесс с возрастающим штрафом, алгоритм математически принудительно выталкивается из запретной зоны, а последовательность найденных точек сходится к истинному оптимальному решению, лежащему на границе ограничений.

Барьерные методы (Interior Point Methods)

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

Эту проблему решают барьерные методы (методы внутренних точек). Они действуют зеркально: алгоритм всегда строго удерживается внутри разрешенной зоны. К целевой функции прибавляется барьерная функция (часто это логарифм от расстояния до границы). В центре разрешенной области барьер не мешает поиску. Но как только алгоритм пытается приблизиться к опасной границе, барьерная функция устремляется в бесконечность (строит математическую бетонную стену), не позволяя нарушить физические законы. Постепенно ослабляя вес барьера (уменьшая барьерный параметр), алгоритм позволяет решению медленно и безопасно «доползти» до оптимальной точки на границе. Современные алгоритмы прямо-двойственных внутренних точек (Primal-Dual Interior Point Methods), развившие эту концепцию, произвели фурор в 1990-х годах, став абсолютным стандартом решения гигантских задач линейного и нелинейного программирования в логистике, энергетике и финансах.

Подробнее

Псевдоспектральные методы решения нелинейных эволюционных уравнений

Нелинейные волны: от солитонов до оптоволокна

В современной физике существуют удивительные явления, поведение которых невозможно предсказать с помощью линейных теорий. Самым известным примером являются солитоны — уединенные волны, которые распространяются в нелинейной среде, не меняя своей формы, и проходят друг сквозь друга без разрушения (как частицы). Солитоны описываются нелинейным уравнением Кортевега-де Фриза (КдФ) на мелкой воде, а распространение лазерных импульсов в трансатлантических оптоволоконных кабелях (основа современного интернета) подчиняется нелинейному уравнению Шредингера (НУШ).

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

Псевдоспектральный подход: лучшее из двух миров

Для достижения необходимой экспоненциальной точности в расчете пространственных производных (чтобы свести численную дисперсию к машинному нулю) математики применяют спектральные методы Фурье. Однако чистый спектральный метод Галеркина сталкивается с непреодолимой алгоритмической стеной при обработке нелинейных членов (например, когда функция умножается сама на себя). Вычисление произведения двух функций в спектральном пространстве требует операции свертки, которая имеет вычислительную сложность O(N^2), что делает метод катастрофически медленным.

Гениальным выходом из ситуации стали псевдоспектральные методы (Pseudospectral methods, или методы Фурье-коллокации). Их философия проста: «Выполняй каждую математическую операцию в том пространстве, где она алгоритмически дешевле всего». В этом методе вычисление пространственных производных происходит в частотном пространстве (где это тривиальное и точное умножение на волновое число). Но как только дело доходит до нелинейного члена, алгоритм вызывает Быстрое преобразование Фурье (БПФ) и мгновенно переносит данные в физическое пространство!

Расщепление по физическим процессам (Split-Step)

В физическом (координатном) пространстве нелинейная операция — это простейшее поточечное умножение чисел, которое выполняется за O(N) операций. Затем алгоритм снова применяет обратное БПФ, возвращаясь в спектральный мир для продолжения интегрирования. Этот феноменально быстрый перескок между двумя пространствами благодаря БПФ снижает общую сложность решения до O(N log N).

Особую популярность приобрел Псевдоспектральный метод с расщеплением по физическим процессам (Split-Step Fourier Method). Уравнение искусственно разбивается на две независимые части: чисто линейную (отвечающую за дисперсию) и чисто нелинейную. Алгоритм на каждом временном шаге делает микро-шаг интегрирования только с учетом линейной части в спектральном пространстве, затем перепрыгивает в физическое пространство и делает микро-шаг с учетом только нелинейности, после чего складывает результаты (схема Ли-Троттера или симметричная схема Стрэнга). Этот подход стал абсолютным мировым стандартом в нелинейной волоконной оптике, фотонике и физике плазмы, позволяя рассчитывать динамику сотен взаимодействующих солитонов с точностью до 15 знаков.

Подробнее

Численные методы в задачах фильтрации: закон Дарси и уравнение Маскета

Движение флюидов в пористых средах

Добыча нефти и газа, защита подземных артезианских вод от токсичных загрязнений, расчет осадки фундаментов гидроэлектростанций — все эти важнейшие индустриальные и экологические задачи опираются на математическую теорию фильтрации. Фильтрация изучает движение жидкостей и газов (флюидов) сквозь пористые среды (пески, известняки, трещиноватые породы). В отличие от гидродинамики открытых русел, описанной сложнейшими нелинейными уравнениями Навье-Стокса, макроскопическое движение флюида в породе описывается более простым, эмпирическим законом Дарси, открытым еще в середине 19 века при исследовании работы песчаных фильтров для водоснабжения Парижа.

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

Многофазная фильтрация и модель Бакли-Леверетта

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

Математическая модель такого процесса (уравнения Маскета-Меренкова) состоит из системы связанных дифференциальных уравнений: эллиптического (по давлению) и гиперболического (по насыщенности). Аналитическое решение существует только для простейшего одномерного случая вытеснения нефти водой без учета капиллярных сил (модель Бакли-Леверетта). Это решение описывает формирование резкого фронта насыщенности (ударной волны), движущегося от нагнетательной скважины к добывающей. Для расчета реальных трехмерных неоднородных нефтяных месторождений требуются колоссальные вычислительные мощности и специализированные алгоритмы.

Метод IMPES: разделяй и властвуй в гидродинамике пласта

Золотым стандартом в коммерческих симуляторах резервуаров (таких как Eclipse или tNavigator) является численный алгоритм IMPES (Implicit Pressure Explicit Saturation — неявное давление, явная насыщенность). Идея алгоритма основана на физическом факте: давление в горных породах (звуковая волна) распространяется в тысячи раз быстрее, чем физически перемещаются фронты жидкостей (насыщенность).

Алгоритм IMPES искусственно разделяет (расщепляет) сложную систему на две независимые части. На первом микрошаге алгоритм считает насыщенности всех фаз «замороженными» (константами). Он составляет и неявно решает гигантскую СЛАУ для нахождения нового поля давлений. Так как схема неявная, она абсолютно устойчива и позволяет брать большие шаги по времени. Получив точное распределение давления (а значит, и скоростей потоков), на втором этапе алгоритм по явной формуле вычисляет перенос масс жидкостей (новые насыщенности) вдоль этих потоков. Для устойчивого расчета насыщенности критически важно использовать методы направленных разностей (Upwind schemes) с ограничителями потоков, чтобы избежать нефизичных осцилляций на фронтах вытеснения. Численное моделирование пластов (Reservoir Simulation) — это одна из тех областей, где вычислительная математика напрямую генерирует миллиардные прибыли для корпораций.

Подробнее

Соц. сети