Найти в Дзене
ЛС-Технологии

Методы оптимизации в инженерной практике: какой лучший?

Оглавление

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

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

Мы, инжиниринговая IT-компания «ЛС-Технологии», нашли оптимизационное решение, как серьезно сократить расходы на проектирование и значительно улучшить технические характеристики создаваемых изделий за кратчайшие сроки путем автоматизированной оптимизации. Используя современные численные методы, мы занимаемся трехмерной многокритериальной оптимизацией сложных криволинейных форм в таких отраслях, как судостроение, авиастроение, ветроэнергетика, ракетостроение и турбомашиностроение. Возможно вы уже знакомы с нашими работами по оптимизации крыла самолета АН-12 (Рис. 1) или мотогондолы бизнес-джета Gulfstream G600 (Рис. 2). Данные результаты оптимизации были получены с помощью наших флагманских программных продуктов: платформы LS-TECH Framework и Flypoint Parametrica.

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

Что такое задача оптимизации?

Давайте ответим на этот вопрос и разберемся в терминологии. Базовая задача оптимизации заключается в нахождении минимума целевой функции (функционала) или набора функций.

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

-2

Задачи оптимизации можно классифицировать по следующим критериям.

1 Тип переменных:

  • Непрерывные задачи оптимизации — переменные могут принимать любые значения из непрерывного множества, например, все действительные числа на интервале.
  • Дискретные задачи оптимизации — переменные принимают значения из конечного или счетного множества, например, целые числа или конкретные категории.
  • Смешанные задачи оптимизации — включают как непрерывные, так и дискретные переменные.

2 Наличие ограничений:

  • Безусловные задачи оптимизации — функции оптимизируются без каких-либо дополнительных ограничений на переменные.
  • Условные задачи оптимизации — функции оптимизируются с учетом ограничений на переменные, например, в виде равенств или неравенств.

3 Число целевых функций:

  • Однокритериальные задачи — оптимизация производится по одной целевой функции.
  • Многокритериальные задачи — требуется найти экстремум нескольких целевых функций одновременно. В таких случаях часто применяются методы поиска компромиссных решений. Они позволяют улучшать одну из функций, не приводя к значительному ухудшению остальных.

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

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

Метод Градиентного Спуска

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

Идея метода: если функция f(x) дифференцируема, то градиент ∇f(x) показывает направление наибольшего роста функции f(x) в точке x. Чтобы уменьшить значение функции, нужно двигаться в противоположном направлении — направлении антиградиента.

Формула для обновления значений:

*Шаг спуска определяет длину шага в направлении антиградиента
*Шаг спуска определяет длину шага в направлении антиградиента

Этапы работы метода Градиентного Спуска:

  1. Выбрать начальное приближение и шаг обучения;
  2. Рассчитать антиградиент в текущей точке;
  3. Обновить текущую точку по формуле выше;
  4. Проверить сходимость решения (обычно отличность функции от нуля);
  5. Если не выполнена сходимость вернуться к шагу 2.

Несколько шагов метода представлены на рисунке 3.

Преимущества:

  1. Простой в реализации;
  2. Существует большое количество модификаций;
  3. Хорошо работает с большими объемами данных.

Недостатки:

  1. Высокая зависимость от шага α;
  2. Может застревать на локальных минимумах;
  3. Зависит от гладкости целевой функции.
Рисунок 3 - Пример работы метода градиентов
Рисунок 3 - Пример работы метода градиентов

Метод Суррогатной Оптимизации

В случае, если нам необходимо найти оптимум для дорогой целевой функции используют метод суррогатной оптимизации. Основная идея заключается в замене исходной целевой функции ее более простым аналогом – аппроксимацией. Оптимизация проводится на суррогатной аппроксимационной модели, результаты проверяются на исходной функции, которая не содержит упрощений. Затем, полученные данные на дорогой функции, дополняют суррогатную модель. Этот метод высоко востребован в задачах, в которых целевая функция не имеет аналитического представления и является по сути «черным ящиком».

Этапы работы метода Суррогатной Оптимизации:

  1. Построение суррогатной модели. На основе некоторой начальной выборки значений целевой функции при различных параметрах строится аппроксимация. Аппроксимацию можно реализовать различными способами, в том числе с помощью Гауссова регресса, Радиальных базисных функций, Полиномиальных моделей или Нейронных сетей.
  2. Оптимизация суррогатной модели. На основе аппроксимации ищется предположительное решение задачи. Эта часть алгоритма обычно выполняется другими методами, например, градиентным спуском (поскольку аппроксимация гладкая).
  3. Обновление модели. В предполагаемой точке оптимума находится значение исходной функции. Оно впоследствии дополняет суррогатную модель, повышая точность следующего предположения.
  4. Проверка сходимости. Если точность не достигнута возвращаемся к шагу 2. В противном случае получаем решение задачи оптимизации.

Преимущества:

  1. Меньшие вычислительные затраты в сравнении с прямыми методами;
  2. Работа с «черным ящиком», функцией без аналитического представления.

Недостатки:

  1. Чувствительность к начальной выборке;
  2. Низкая производительность при большом числе параметров;
  3. Чувствительность к шуму целевой функции. Под шумом понимаются случайные возмущения в функции. Они могут быть вызваны как погрешностью округления так и спецификой исследуемого процесса.

Пример работы метода суррогатной оптимизации вы могли видеть в наших предыдущих материалах. Например в статье, посвященной оптимизации формы мотогондолы бизнес-джета Gulfstream G600. На рисунке 4 представлена поверхность отклика для целевой функции коэффициента потерь эффективной тяги двигателя. Несмотря на очевидный шум целевой функции, нам удалось добиться снижения этой характеристики на 1,6%.

Рисунок 4 - Поверхность отклика для коэффициента потерь эффективной тяги двигателя
Рисунок 4 - Поверхность отклика для коэффициента потерь эффективной тяги двигателя

Генетический Алгоритм Оптимизации

Генетический алгоритм — это метод оптимизации, основанный на принципах естественного отбора и эволюции. Он основывается на принципе естественного отбора и имитирует природную эволюцию. Для контроля за методом задаются такие параметры как размер популяции, частота скрещивания и мутации.

Этапы работы Генетического Алгоритма Оптимизации:

  1. Начальная популяция. Создается начальная популяция потенциальных решений (иногда их называют хромосомы). Каждая хромосома представляет из себя набор генов, в случае инженерных задач это вектор параметров.
  2. Отбор. Проводится оценка решений на приспособленность, близость их к оптимальному решению. Выбираются несколько наиболее близких к оптимуму решений.
  3. Скрещивание. Прошедшие отбор решения скрещиваются между собой, обмениваясь значениями своих генов.
  4. Мутация. В зависимости от значения параметра вероятности мутации некоторые решения могут случайным образом мутировать для поддержания разнообразия.
  5. Формирование новой популяции. Новая популяция формируется из скрещенных и мутировавших решений, иногда к ним добавляют и просто решения, прошедшие отбор.
  6. Проверка сходимости. При достижении требуемой точности решения метод заканчивает работу.

Преимущества:

  1. Работа с «черными ящиками»;
  2. Мала вероятность попадания в локальный экстремум;
  3. Высокая скорость оптимизации за счет генерации точек за счет детерминированных и вероятностных правил.

Недостатки:

  1. На последних шагах оптимизация занимает много времени;
  2. Высокая вычислительная ресурсоемкость.

Принцип работы метода проиллюстрирован на рисунке 5.

Рисунок 5 - Принцип алгоритма генетической оптимизации
Рисунок 5 - Принцип алгоритма генетической оптимизации

Выбираем лучший метод

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

Например, использование, суррогатного алгоритма оптимизации помогло нам обеспечить прирост по КПД для судового движителя на 6,27% всего за 28 часов! Выбранный нами алгоритм помог подобрать такую комбинацию параметров шага и кривизны винта, которая обеспечила наиболее равномерное обтекание лопастей (Рис. 6).

Рисунок 6 – Распределение давления на лопастях РК до и после оптимизации
Рисунок 6 – Распределение давления на лопастях РК до и после оптимизации

Подведем итоги

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

  • Что такое «задача оптимизации»? Задача оптимизации – это поиск максимума или минимума функции. Они бывают разными и для удобства классифицируются несколькими способами: по типу переменных (непрерывные, дискретные, смешанные), наличию ограничений (условные и безусловные), а также по числу целевых функций (однокритериальные и многокритериальные).
  • Какие есть методы оптимизации? В этой статье мы разобрались в принципах работы нескольких методов оптимизации. Градиентный спуск оптимизирует в направлении антиградиента и эффективен при работе с большими объемами данных, но чувствителен к выбору шага и наличию локальных минимумов. Суррогатная оптимизация хорошо подходит для дорогостоящих целевых функций, заменяет их аппроксимациями, и снижает затраты на вычисления. Генетический алгоритм имитирует эволюционные процессы и подходит для задач с большим числом параметров, хотя и требует значительных временных и вычислительных ресурсов.
  • Какой метод оптимизации использовать для реальных инженерных задач? При решении инженерных задач оптимизации суррогатные методы показали высокую эффективность. По этой причине именно данный метод широко применяется в коммерческих оптимизаторах.
  • Какое будущее у оптимизации в инженерных задачах? С развитием технологий мы видим будущее, где инженерные оптимизационные процессы становятся неотъемлемой частью проектирования. Наша платформа LS-TECH Framework и программное обеспечение Flypoint Parametrica уже показывают, как можно эффективно применять автоматизированную оптимизацию к сложным инженерным задачам. Эти инструменты позволяют инженерам сокращать время разработки, улучшать характеристики продукции и минимизировать затраты на лидирующих компаниях России.

Спасибо, что дочитали до конца! Если вам интересно узнать больше о современных методах оптимизации и наших кейсах, то подписывайтесь на наш Дзен-канал, ставьте лайки и делитесь статьей с коллегами. Ваша поддержка вдохновляет нас создавать еще больше качественного контента! Пишите свое мнение в комментариях, задавайте вопросы и рассказывайте, какие задачи оптимизации интересуют вас.