Анализ и оптимизация / Блоки |
![]() |
![]() |
| Векторизован | |
в палитре | на схеме |
Блок оптимизации параметров модели предназначен для подбора таких параметров оптимизации, которые бы удовлетворяли необходимым значениям критериев оптимизации.
Таким образом, задачу оптимизации можно сформулировать, как нахождение вектора параметров оптимизации, при которых критерии качества удовлетворяют своим ограничениям.
Задача оптимизации плохо поддается формализации, поэтому для получения сколь-нибудь эффективных ее результатов, множество критериев и параметров оптимизации, имеющих разную физическую природу и диапазоны изменения, должны быть масштабированы и переведены к нормированным величинам.
При наличии множества критериев, для формализации условия задачи оптимизации, обычно переходят от нескольких частных критериев q1, …, qm к одному общему критерию, который формируется в виде функции частных критериев. Такую процедуру называют свертыванием критериев. В результате получаем общий критерий (целевую функцию)
в виде функции от оптимизируемых параметров. Решение задачи многокритериальной оптимизации сводится к минимизации этого критерия. Один из наиболее часто используемых способов свертывания частных критериев — средний степенной критерий оптимальности. Именно он используется для свертывания критериев оптимизации в SimInTech:
При p = 1 получим аддитивный критерий
При p = 2 получим квадратичный критерий
При p, стремящемся к бесконечности, общий критерий сводится к наибольшему из нормированных частных критериев (минимаксный критерий)
При p = 0, логарифмируя выражение общего критерия и переходя к пределу по p, стремящемуся к нулю, после применения правила Лопиталя получаем средний геометрический (мультипликативный) критерий оптимальности.
Получив обобщенный критерий, можно приступать к решению задачи оптимизации. В SimInTech реализованы 3 наиболее подходящих для программной реализации алгоритма оптимизации, в которых решение о переходе в новую точку поиска принимается на основании сравнения значений критерия в двух точках.
Алгоритм Поиск-2
Реализуется алгоритм деления шага пополам при одном оптимизируемом параметре (n = 1) и алгоритм преобразований матрицы направлений при n >1. Далее рассматривается алгоритм многомерного поиска.
Направления поиска на k-том этапе задаются матрицей Sk. На очередном этапе производится серия спусков в направлениях векторов s1,...,sn, представляющих собой столбцы матрицы Sk . Векторы перемещений на каждом из спусков равны соответственно g1s1, ..., gnsn. После выполнения спусков матрица направлений преобразуется по формуле
Было испытано несколько различных способов выбора ортогональных матриц Pk, в том числе и случайный выбор. Лучшим оказался способ, при котором все матрицы Pk равны между собой и определяются в виде
Рассмотрим этапы алгоритма в многомерном случае.
Если этот шаг удачный ( f(y) < f(x) ), перейти к пункту c.
Если оба пробных шага оказались неудачными, принять λ = 0.5 и перейти к пункту d.
Поиск прекращается при выполнении одного из следующих условий:
Алгоритм Поиск-4
Реализуется алгоритм квадратичной интерполяции при одном оптимизируемом параметре (n = 1) и алгоритм преобразований вращения и растяжения-сжатия (n > 1).
Рассмотрим алгоритм при n > 1. Он основан на выполнении преобразований растяжения - сжатия и преобразований вращения для такого преобразования системы координат, при котором матрица вторых производных (матрица Гессе) приближается к единичной, а направления поиска становятся сопряженными. Этот алгоритм использует квадратичную интерполяцию.
Пусть H - симметричная положительно-определенная матрица. Будем строить последовательность матриц
Рассмотрим задачу поиска минимума функции нескольких переменных. На k-м этапе поиска поочередно минимизируется функция в направлениях векторов s1 ,...,sn, представляющих собой столбцы матрицы Sk. Для нахождения точки минимума в направлении si используется квадратичная интерполяция по трем равноотстоящим точкам z = x - asi, x , y = x + asi.
Одновременно для каждого направления вычисляется
После выполнения серии спусков матрица S преобразуется по формуле
Этапы работы алгоритма Поиск-4 аналогичны рассмотренным выше этапам алгоритма Поиск-2.
Алгоритм Симплекс
Используется метод «деформируемого многогранника» Недлера и Мида.
В методе Нелдера-Мида минимизируется функция n независимых переменных с использованием n+1 вершин деформируемого многогранника. Каждая вершина может быть идентифицирована вектором x . Вершина (точка), в которой значение f(x) максимально, проектируется через центр тяжести (центроид) оставшихся вершин. Улучшенные (меньшие) значения целевой функции находятся последовательной заменой точки с максимальным значением f(x) на более “хорошие” точки, пока не будет найден минимум f(x).
Далее кратко излагается суть алгоритма.
Пусть xi(k) = [xi1(k),..., xij(k),..., xin(k)]T, i = 1,..., n+1, является i-й вершиной (точкой) на k-том этапе поиска, k = 0, 1,..., и пусть значение целевой функции в xi(k) равно f(xi(k)). Также отметим векторы многогранника, которые дают максимальное и минимальное значения.
Определим f(xh(k)) = max{f(x1(k)),...,f(xn+1(k))},
где xh(k) = xi(k) , и
f(xl(k)) = min{f(x1(k)),...,f(xn+1(k)),
где xl(k) = xi(k).
Поскольку многогранник в En состоит из (n+1) вершин x1,...,xn+1, пусть xn+2 будет центром тяжести всех вершин, исключая xh.
Тогда координаты этого центра определяются формулой
Начальный симплекс обычно (не всегда) выбирается в виде регулярного симплекса, причем начало координат можно поместить в центр тяжести. Процедура отыскания вершины в En , в которой f(x) имеет лучшее значение, состоит из следующих операций.
Отражение - проектирование xh(k) через центр тяжести в соответствии с выражением
Растяжение. Эта операция состоит в следующем: если f(xn+3(k)) <= f(xl(k)), то вектор(xn+3(k)-xn+2(k)) растягивается в соответствии с соотношением
Сжатие. Если f(xn+3(k)) > f(xi(k)) для всех i < > h , то вектор (xh(k)-xn+2(k)) сжимается в соответствии с формулой
Редукция. Если f(xn+5(k)) > f(xh(k)), все векторы (xi(k)-xl(k)), i = 1, ..., n +1, уменьшаются в 2 раза с отсчетом от xl(k) в соответствии с формулой
Критерий окончания поиска- проверка условия
На процесс оптимизации оказывают влияние коэффициенты отражения a, растяжения g и сжатия b. Коэффициент отражения a используется для проектирования вершины с наибольшим значением f(x) через центр тяжести деформируемого многогранника. Коэффициент g вводится для растяжения вектора поиска в случае, если отражение дает вершину со значением f(x) меньшим, чем наименьшее значение f(x), полученное до отражения. Коэффициент сжатия b используется для уменьшения вектора поиска, если операция отражения не привела к вершине со значением f(x), меньшим, чем второе по величине (после наибольшего) значение f(x), полученное до отражения. Таким образом, с помощью операций растяжения или сжатия размеры и форма деформируемого многогранника масштабируются так, чтобы они удовлетворяли топологии решаемой задачи.
После того, как деформируемый многогранник подходящим образом масштабируется, его размеры должны поддерживаться неизменными, пока изменения в топологии задачи не потребуют применения многогранника другой формы. Анализ, проведенный Нелдером и Мидом, показал, что компромиссное значение a = 1. Ими также рекомендованы значения b = 0.5, g = 2. Более поздние исследования показали, что рекомендуются диапазоны 0.4≤b≤ 0.6, 2.8 ≤g≤3.0, причем при 0< b < 0.4 существует вероятность того, что из-за уплощения многогранника будет иметь место преждевременное окончание процесса, а при b>0.6 может потребоваться большее число шагов для достижения окончательного решения.
На вход блока подается вектор критериев оптимизации. На основании их значений, используя численные методы оптимизации, происходит подбор значения вектора параметров оптимизации так, чтобы значения критериев лежали в необходимом диапазоне.
Рассмотрим примеры использования блока оптимизации параметров модели. В пакет поставки SimInTech входит набор демонстрационных проектов, в том числе показывающих работу блока оптимизации. Проекты находятся по адресу \Demo\Оптимизация
Откроем проект \в динамике\в динамике.prt
Синусоидальный сигнал подается на две системы — эталонную и настраиваемую. Далее вычитатель определяет сигнал рассогласования между системами и подает его на вход блока оптимизации, который, осуществляя сравнения сигнала рассогласования с его целевым значением, а также применяя методы численной оптимизации, генерирует на выходе некий корректирующий множитель, на который домножается сигнал настраиваемой системы с целью минимизации отклонения от эталонной. В данном случае параметром оптимизации является некий корректирующий коэффициент, а критерием оптимизации — величина рассогласования между выходами эталонной и настраиваиваемой системами. В ходе динамического расчета в течение одного цикла моделирования системы, блок оптимизации подбирает такой корректирующий коэффициент для настраиваемой системы, что сигнал рассогласования между эталонной и настраиваемой системами стремится к нулю.
Второй пример \c повторениями расчётов\С повторениями расчётов.prt показывает работу блока в режиме повторения расчетов.
В данном примере источник равномерного шума аналогично подается на две системы — некую эталонную и настраиваемую. Затем вычитатель формирует сигнал рассогласования, подаваемый на блок RMS, считающий среднеквадратичное отклонение сигнала рассогласования за один полный цикл расчета системы. Блок оптимизации рассчитывает корректирующий коэффициент, пытаясь минимизировать среднеквадратичное отклонение. В итоге, за несколько последовательных расчетов модели, сигнал рассогласования стал стремиться к нулю, и форма сигналов практически совпала.
Таким образом системе понадобилось 5 последовательных расчетов, чтобы скорректировать сигнал настраиваемой системы так , чтобы он совпадал с эталонной.