Прикладная практика оптимизации и немного истории

в 15:43, , рубрики: Алгоритмы, идентификация модели, математика, оптимизация, прикладная математика, Программирование

«Тысячу долларов за один удар кувалдой?!» — вскричал удивлённый, но счастливый (и спасённый решением проблемы) инженер паровой машины. «Нет, удар стоит 1$, остальное — за знание куда, когда и как сильно ударить» — ответил старый мастер.
Типа эпиграфа.

В патентовании есть такая категория изобретений, когда патентуется не то, что человек/коллектив придумал (оно уже достаточно давно известно, например, клей), и не новый способ достижения актуальной цели (например, герметизация раны от инфекции). А патентуется, например, применение широко известного вещества в совершенно новом (для данного вещества), но тоже хорошо и давно известном для достижения цели применении. «А давайте попробуем заклеить рану клеем БФ-6? О! А он, оказывается, имеет бактерицидные свойства..., и рана под ним дышит..., и быстрее заживает! Надо застолбить и применять!»

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

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

Комплекс программ (сначала Fortran, потом Pascal/Modula 2, ныне упокоился в хорошо наследуемом, удобном и универсальном VBA/Excel) реализовывал несколько различных методов поиска экстремума, которые удачно дополняли друг друга на очень широком классе задач. Они были легко взаимозаменяемы и, установленные в стек (следующая стартовала с оптимума, найденного предыдущей, с широким охватом возможных начальных значений параметров), достаточно быстро находили минимум и «дожимали» целевую функцию с хорошей гарантией глобальности найденного экстремума.

Например, с применением этого комплекса программ была построена модель автономной системы, состоящей из солнечных батарей, аккумуляторов (тогда только-только появились долговечные никель-водородные), полезной нагрузки и системы управления (положение батарей и преобразование энергии для нагрузки). Всё это прогонялось на заданном периоде времени под воздействием внешних метеоусловий в заданной местности. Для этого также была создана модель погоды (мною самостоятельно, через 7 лет после Брэдли Эфрона, переоткрытым) методом "статистический бутстрэп". При этом, в качестве исходного «кирпичика» для модели солнечной батареи (и батареи аккумуляторов) использовались модели реальных параметров кремниевых пластин (аккумуляторов), из которых собирались батареи с учётом их статистического разброса при производстве и схемы сборки. Модель автономной системы позволяла оценить размеры и конфигурацию солнечной и аккумуляторной батареи, достаточные для решения поставленных задач в заданных условиях функционирования системы (тут прямо физически услышал/вспомнил суконную речь полковника из Первого отдела).

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

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

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

Решаемые задачи всё усложнялись. В начале была идея самые «вычислительно-ёмкие» части методов оптимизации сделать на ассемблере, но по мере роста производительности сначала СМ-ЭВМ (задачи считались за ночь), а потом ПК (ныне самые сложные задачи требуют час-два), необходимость оптимизации программы оптимизации (шедевр тавтологии) отпала. К тому же, «вычислительно-ёмкими» оказываются в большинстве случаев сами целевые функции.

Здесь необходимо вернуться к частично уже затронутой универсальности методов оптимизации и соотнести их с другими методами численного анализа. Основные применения разработанного инструментария:

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

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

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

Приведу поподробнее ещё один пример из относительно недавнего применения разработанного инструментария для решения задач оптимизации из жизни.

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

Ниже приводятся исходные экспериментальные данные (X,Y,Z), 19 измерений:

Прикладная практика оптимизации и немного истории - 1

И пример аппроксимации кривой (U3 — эксперимент, U3R — расчёт по модели) при идентификации самой сложной девяти-параметрической модели (a1...a9 — параметры модели):

Прикладная практика оптимизации и немного истории - 2

Формула этой модели:

Прикладная практика оптимизации и немного истории - 3

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

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

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

Автор: MadMixture

Источник

Поделиться

* - обязательные к заполнению поля