Ответы на вопросы по материалам курса МО
.pdf1. В чем состоит задача оптимизации?
Задача оптимизации состоит в поиске экстремума (минимума или максимума) функции в некоторой области конечномерного векторного пространства параметров.
Оптимизация предполагает процесс движения к некоторой поставленной цели. Методы оптимизации направлены не только и не столько на определение оптимума некоторых частных функций, сколько на выработку стратегии поиска, которая приводит к цели оптимальным способом.
2. Как формально записывается задача оптимизации?
Записывается в виде самой функции и ограничений для данной функции. Ограничение – соотношение, задающее область существования целевой функции. Ограничения могут быть параметрическими и функциональными Параметрическое ограничение – область изменения значений конкретных параметров:
Функциональные ограничения представляют собой равенства или неравенства:
3.Критерии оптимизации. Классификация методов оптимизации и задач оптимизации в технике.
Функция F(X), экстремальное значение которой нужно найти, называют целевой, показателем эффективности или критерием оптимальности. Она представляет собой функцию обобщенного показателя качества. Глобальный экстремум данной функции F*(X*) обычно соответствует оптимальному решению.
Классификация задач оптимизации в технике:
1.Задача синтеза оптимальных структур
2.Задача оптимизации параметров
3.Задача синтеза оптимальных политик управления системами или объектами
4.Задача параметрической идентификации параметров моделей
5.Задача автоматизированной доводки
Классификация методов оптимизации:
1.Метод “Проб и ошибок”
2.Аналитические методы оптимизации
3.Численные методы оптимизации (одномерной и многомерной)
4.Неклассифицируемые методы оптимизации
4.В чем состоит отличие P-задач от NP-задач? Какие задачи относятся к классу P- задач? Какие задачи относятся к классу NP-задач?
Задачи, для которых известны полиномиальные алгоритмы решения, рассматриваются как поддающиеся решению (P-задачи).
Для большинства практических задач неизвестно, существует ли полиномиальный алгоритм их решения, и не доказано, что они поддаются решению (NP-задачи).
Полиномиальные алгоритмы имеют сложность O(nk), где k – положительное целое число, определенное тогда и только тогда, когда существует константа c>0 такая, что .
5.Как составляется функция Лагранжа? Сформулируйте порядок решения задачи выпуклого программирования методом множителей Лагранжа.
1
Выпуклое программирование – это значит, что целевая функция – выпуклая, и ограничения представляют собой выпуклые области.
Формулировка задачи: требуется найти экстремум (максимум) функции f(x), где X=(x1, x2,…,xn) при наличии ограничений в виде равенств gj(x)=bj, j=1,..,m. Функция f(x) и систему из m уравнений gj(x) заданы в пространстве Rn и принадлежат множеству непрерывных функций, частные производные которых также являются непрерывными функциями.
Идея метода неопределенных множителей Лагранжа заключается в переходе от задачи на условный экстремум к задаче отыскания безусловного экстремума некоторой построенной функции Лагранжа: , λj – неизвестные (неопределенные) множители Лагранжа.
Порядок решения очевиден!
6. Одномерный поиск. Постановка задачи. Критерии оптимальности.
Задача одномерного поиска формулируется следующим образом: требуется найти максимум (минимум) функции одной переменной f(x), заданной на единичном отрезке.
x*=arg min (max) f(x), x принадлежит X. X – множество допустимых точек, среди которых ищется x*. X=[a, b] – отрезок неопределенности. А относительно f(x), предполагают, что она унимодальна.
Функция f(x) называется унимодальной на X=[a, b], если существует такая точка x* из множества X, что
f(x1)>f(x2), если x1<x2<x*, x1, x2 принадлежит X, f(x1)<f(x2), если x1>x2>x*, x1, x2 принадлежит X
Если при любых x1, x2, принадлежащих множеству X, неравенство будет строгим, то функция f(x) называется строго выпуклой.
Функция f(x) называется выпуклой на X=[a, b], если f(ax1+(1-a)x2) af(x1)+(1-a)f(x2),
0a 1.
7.Ненаправленный одномерный поиск. Алгоритм пассивного поиска, алгоритм поиска однородными парами.
Различают ненаправленный и направленный случайный поиск.
Ненаправленный случайный поиск. При таком поиске все последующие испытания проводят совершенно независимо от результатов предыдущих. Сходимость такого поиска очень мала, но имеется важное преимущество, связанное с возможностью решения многоэкстремальных задач (поиск глобального экстремума).
Алгоритм пассивного поиска
Отрезок [a, b] - исходный отрезок неопределенности. Пусть N – число точек, в которых необходимо провести вычисления целевой функции f(x), т.е. N экспериментов. Значения в точках вычисляются следующим образом:
Среди вычисленных значений f(x) ищется точка xj, в которой достигается минимум (максимум) функции. Найденная точка принимается за принимается за приближенное
2
решение задачи. Исходный отрезок неопределенности [a, b] после экспериментах в N точках сужается до [xj-1, xj+1] длина которого равна:
Алгоритм поиска однородными парами Из рассмотренного ранее можно сделать вывод, что существенное сокращение
интервала неопределенности может дать лишь пара измерений. И если пара измерений сократила его почти в два раза, то k пар измерений может сократить этот интервал в (k+1) раз.
Алгоритм данного вида поиска: |
|
|
|
1. |
Задается N, находится k=N/2. |
|
|
2. |
Точка очередного измерения находится как |
|
, где i=1, |
|
|||
|
2,…,k. |
|
|
3.Среди полученных точек ищется минимум (максимум)
8.Последовательный одномерный поиск. Поиск экстремума функции методами равномерного блочного поиска, деления интервала пополам, дихотомии, Фибоначчи, золотого сечения, касательных, парабол.
В случаях, когда очередная точка выбирается последовательно, с учетом того, какое значение целевой функции получено на предыдущих шагах, одномерный поиск называется последовательным.
Равномерный блочный поиск Схема алгоритма
1. Задаются исходный отрезок неопределенности [a, b], – точность приближенного решения , число экспериментов в блоке n = 2k – если n четное (n=2k-1 – если n нечетное). Проводится эксперимент в середине отрезка [a, b], т.е. вычисляем yk=f(xk),
где xk=(a+b)/2.
2.Проводим эксперименты в остальных точках блока: yi=f(xi), где xi=a+i*(b-a)/(n+1), где i=1, 2, …, n, i != k. Находим точку xj, в которой достигается минимум среди вычисленных значений: f(xj)=min f(xi), следовательно, точное значение минимума x* содержится на отрезке [xj - 1, xj + 1].
3. Если b-a 2 , то поиск заканчивается, иначе переходим к шагу 2.
Метод деления интервала пополам
Это алгоритм равномерного блочного поиска при n=3 Схема алгоритма:
1.Задаются a, b, . Производится эксперимент в точке x2=(a+b)/2, т.е. вычисляется y2=f(x2).
2.Производятся эксперименты в остальных точках блока:
x1=(a+x2)/2, y1=f(x1) и x3=(x2+b)/2, y3=f(x3). Находим xj такую, что значение в этой точке будет минимальным.
Тогда точное решение будет содержаться на отрезке [xj - 1, xj + 1].
3. Если b-a 2 , то поиск заканчивается, иначе переходим к шагу 2.
Метод дихотомии Алгоритм метода состоит из следующих этапов:
1. Исходный интервал L0 = [a, b] исследования делится пополам.
3
2. Вблизи точек деления (по разные её стороны) дважды вычисляется значение целевой функции y(x1), y(x2), где , а - наименьший интервал
изменения переменной x, при котором возможно обнаружить отличие между y(x1) и y(x2).
3.Используя свойство унимодальности функций, определяют интервал, в котором находится экстремальное значение целевой функции, а затем процесс расчета повторяется по аналогичной схеме до тех пор, пока не будет получен интервал Ln, где
,содержащий точку оптимума x*.
! Для сокращения единичного интервала неопределенности до размера l0 методом
дихотомии потребуется сделать |
|
|
|
экспериментов. |
|
|
Метод Фибоначчи Алгоритм метода следующий:
1.По заданной точности l0 рассчитывается вспомогательное число N = (b – a) / l0
2.Для полученного значения N находится такое число Фибоначчи Fn, чтобы выполнялось неравенство
3.Определятся минимальный шаг поиска по формуле
4.Рассчитывается значение функции f(x) в начале интервала, то есть f(a)
5.Следующая точка, в которой вычисляется значение f(x): x1 = an + mFn-2
6.Если f(x1) >= f(a) (шаг удачный), то следующая точка определяется как x2 = x1 + mFn-3; при f(a)>f(x1) (шаг неудачный) – x2 = x1 – mFn-3
7.Последующие шаги выполняются с уменьшающейся величиной шага, которая для i-го
шага будет |
в соответствии со следующим правилом. Если при |
|
выполнении шага значение функции в точке |
оказывается больше, то |
есть f(xi+1)>f(xi) (шаг удачный), то следующий (i+2)-й шаг выполняется из точки xi+1:
. Если i-й шаг неудачный, то есть f(xi+1)<f(xi), то следующий (i+2)-й шаг выполняется из точки xj, то есть .
Метод золотого сечения
Алгоритм метода: |
|
|
|
|
|
1. Задается λ |
и a, b, l0. Вычисляют |
|
|
|
|
|
|
||||
2. Если |
, то a = x1, интервал неопределенности становится равным [x1, b]. |
||||
Иначе, если условие |
не выполняется, то b = x2, интервал неопределенности становится |
равным [a, x2]
3. Если a – b > l0, то переходят к шагу 2.
В противном случае если y2 y1, то x* = x2, y* = y2, иначе x* = x1, y*=y1.
Метод касательных Алгоритм метода:
1. Задаются a, b, . Вычисляются y1=f(a), y2=f(b), z1=f’(a), z2=f’(b).
4
2. Если b-a 2 , то полагается, что x*=(a+b)/2, y*=f(x*) и поиск окончен, иначе необходимо вычислить
Если z=0, то полагается, что x*=c, y*=y и поиск окончен, иначе если z<0, то a=c, y1=y, z1=z, или если z>0, то b=c, y2=y, z2=z, и данный пункт алгоритма повторяется.
Метод парабол
9.Многомерный поиск. Методы релаксации, покоординатного спуска, градиентного поиска (равномерного и пропорционального), наискорейшего спуска (подъема).
Воснове градиентных методов поиска экстремума лежит идея последовательного улучшения (ухудшения) некоторого допустимого решения X0 за счет движения по направлению к оптимуму целевой функции f(x).
Метод релаксации
1.Находятся частные производные целевой функции
2.В частные производные подставляются значения в предыдущей точке, смотрим, значение какой из частных производных при этом больше по модулю, её и фиксируем. Подставляем значение незафиксированной переменной в исходную функцию, находим производную этой функции, выражаем новое значение зафиксированной переменной. Получаем новые значения переменных. Подставляем их в исходную функцию,
5
находим её значение. Проверяем условие остановки, если оно выполняется, то прекращаем поиск, иначе повторяем пункт 2.
Метод покоординатного спуска
Пусть k – номер очередной внешней итерации, aj – номер той координаты, по которой производится спуск.
Алгоритм метода:
1.При k = 0 вводятся исходные данные x0,
2.Осуществляется циклический по j покоординатный спуск из точки xkn по формуле
3. Если |
|
, то поиск минимума заканчивается, причем x*=x(k+1)n и |
||||
y*=f(x*). Иначе k=k+1 и переход к шагу 2. |
|
|
|
|||
Градиентный равномерный метод |
|
|
|
|||
Алгоритм метода: |
|
|
|
|
|
|
Шаг 1. Задаются начальное приближение x0, постоянный шаг |
, условие остановки . |
|||||
Вычисляется значение градиента f’(xk) – направление поиска. Присваивается k = 0 |
||||||
Шаг 2. Определяется точка очередного эксперимента: |
|
|
|
|||
Шаг 3. Вычисляется значение градиента в точке |
. |
|
|
|||
Шаг 4. Если |
|
, то поиск заканчивается, при этом x* = xk+1, y=f(x*). |
||||
Градиентный пропорциональный метод |
|
|
|
|||
Алгоритм метода: |
|
|
|
|
|
|
Шаг 1. Задаются x0, |
и начальное значение шага . Вычисляется значение градиента |
|||||
f’(x0) – направление поиска. Присваивается k = 0 |
|
|
|
|||
Шаг 2. |
Определяется точка очередного эксперимента: |
|
|
|
||
|
|
|
||||
Шаг 3. |
Проверяется условие |
. Если оно выполняется, то переходим к |
||||
шагу 4, иначе дробим значение ( |
) и переходим к шагу 4 |
|
|
|
||
Шаг 4. |
Вычисляется значение градиента в точке xk+1: f’(xk+1) |
|
|
|
||
Шаг 5. |
Если |
|
|
|
|
|
то поиск заканчивается, при этом x* = xk+1, y* = f(x*). Иначе полагаем k = k+1 и переходим к шагу 2.
Метод наискорейшего спуска (подъема) Алгоритм метода:
1.Задаются x0, . Вычисляется направление поиска. Присваивается k=0
2.Определяется точка очередного эксперимента
3.Вычисляется значение градиента в точке xk+1
6
4. Если , то поиск минимума заканчивается и полагается, что x*=xk+1 и y*=f(x*), иначе k=k+1 и переход к шагу 2.
10. Методы Ньютона.
Методы Ньютона – это метода второго порядка (использующие вторые частные производные целевой функции f(x)). Все они являются прямым обобщением метода Ньютона отыскания корня уравнения φ(x)=0, где φ(x) – скалярная функция скалярного аргумента x.
Схема алгоритма
1.На первой итерации, при k = 0, вводятся начальное приближение x0 и условие останова
. Вычисляются градиент f'(x0) и матрица f''(x0).
2.Определяется направление спуска pk, как решение системы линейных уравнений f''(xk)·pk = – f'(xk) (например, методом исключений Гаусса).
3.Определяется следующая точка спуска: xk+1 = xk + pk.
4.В точке xk+1 вычисляются градиент f'(xk+1) и матрица f''(xk+1)
5.Если ||f'(xk+1)||<= , то поиск заканчивается и полагается x* = xk+1 и y* = f(x*). Иначе k = k + 1 и переход к шагу 2.
Особенностью метода Ньютона является то, что для квадратичной целевой функции он находит минимум за один шаг, независимо от начального приближения x0 и степени овражности.
Недостатками метода Ньютона является то, что он, во-первых, предполагает вычисление вторых производных и, во-вторых, может расходиться, если начальное приближение находится слишком далеко от минимума.
Значительные трудности, возникающие при практической реализации метода Ньютона связаны с необходимостью вычислить матрицу f’’(x). Рассмотрим две модификации метода Ньютона, которые используют приближенные аналоги матрицы вторых производных. В результате уменьшается трудоемкость метода, но ухудшается его сходимость.
Первая модификация
1.При k = 0, вводятся x0, . Вычисляются f'(x0) и f''(x0).
2.Определяется обратная матрица (f''(x0))-1
3.Определяется направление спуска pk: pk = – f'(xk)·(f '(x0))–1
4.Определяется следующая точка xk+1 = xk + a·pk, где a – решение задачи одномерной минимизации функции
5.В точке xk+1 вычисляется градиент f'(xk+1)
6.Если ||f'(xk+1)|| , то поиск заканчивается и полагается, что x*=xk+1 и y*=f(x*), иначе переходим к пункту 3.
Вторая модификация Эта модификация связана с обновлением матрицы вторых производных через
определенное количество шагов. Формула вычисления очередной точки xk+1 будет выглядеть следующим образом:
хjm+i+1 = xjm+i – ajm+i· (f''(xjm)) –1·f'(xjm+i)
11. Методы определения экстремума овражных функций.
Градиентные методы медленно сходятся в тех случаях, когда поверхности уровня целевой функции f(x) сильно вытянуты. Этот факт известен в литературе как “эффект оврагов”. Суть эффекта в том, что небольшие изменения одних переменных приводят к резкому изменению значений функции – эта группа переменных характеризует “склон оврага”, а по остальным переменным, задающим направление “дна оврага”, функция меняется незначительно.
Траектория метода характеризуется довольно быстрым спуском на “дно оврага”, и затем медленным зигзагообразным движением в точку минимума.
7
Пусть хk и хk1 - две произвольные близкие точки. Из хk совершают обычный градиентный спуск с постоянным шагом α и после нескольких итераций с малым шагом α попадают в точку uk. Тоже самое делают для точки хk1, получая точку uk1. Две точки uk и uk1 лежат в окрестности «дна оврага». Соединяя их прямой, делают «большой овражный шаг» λ в направлении убывания функции, перемещаясь «вдоль дна оврага» (шаг λ называют овражным шагом). Точка хк+1 определяется следующим образом. По формуле
Вычисляют точку xk+1. Из неё осуществляют градиентный спуск и получают точку uk+1. Если f(uk+1)<f(uk), то полагают x*=xk+1 и u*=uk+1. В противном случае уменьшают овражный шаг и повторяют определение xk+1.
Общая идея модификации овражного метода Пусть х0 и х1 – две произвольные близкие точки. Как и в предыдущем случае, из
каждой точки осуществим градиентные спуски с постоянным шагом α. Получим точки u0 и u1, лежащие в окрестности «дна оврага». Соединяя их прямой, делаем «большой шаг» λ в полученном направлении. В результате получим точку х2. Из этой точки осуществим градиентный спуск и получим точку u2. А вот направлении и определяем х3. Далее аналогичным образом вычисляются х4, х5 далее, для того чтобы осуществить «овражный шаг», используем точку u1. Соединяя прямой точки u2 и u1, делаем шаг λ в полученном направлении и определяем x3. Далее аналогичным образом вычисляются x4, x5,…
12. Методы штрафных функций.
Если ограничения представляют собой равенства и нестрогие неравенства, используют штрафные функции:
где некоторое число
т.е. если эксперимент вышел за ОДЗ, штрафная функция резко возрастает (убывает) при поиске max (min) и возвращает исследование в ОДЗ.
Если ограничения представляют собой строгие неравенства, то используются барьерные функции, значения которых неограниченно возрастает (убывает) при поиске max (min) при приближении к границе ОДЗ. Барьерная функция должна быть непрерывной внутри ОДЗ, т.к. все исследуемые при этом точки лежат внутри ОДЗ. Данный метод называют методом внутренней точки. В качестве барьерной часто применяют функции вида
Трудности возникают при определении начальной точки исследования, а также если экстремум достигается на границе ОДЗ, т.к. значение обобщенной функции у границ ОДР определяется величиной барьерной функции и экстремум не всегда может быть получен с заданной точностью.
13. Стохастическое программирование.
Детерминированные методы поиска экстремума предполагают, что вся исходная информация строго однозначна, и на каждом шаге однозначно определяют положение точки исследования (одномерный поиск: дихотомия, метод Фибоначчи, золотого сечения, градиентный метод и метод наискорейшего спуска).
8
Модели часто оказываются неадекватными реальным процессам, что объясняется неполнотой или неточностью данных, на основе которых строилась модель.
Водних случаях некоторые (а возможно и все) параметры носят вероятностный характер. В этих случаях говорят о ситуациях, связанных с риском.
Вдругих случаях имеющаяся информация не позволяет составить представление о характере изменения параметров, описывающих изучаемый процесс. Такие ситуации называют неопределенными.
Оптимизационные задачи, при постановке которых нет исчерпывающих данных об их условиях, называются стохастическими.
Стохастическое программирование изучает теорию и методы решения условных экстремальных задач при неполной информации об условиях задачи.
Пассивное стохастическое программирование (ПСП) – это совокупность приемов, позволяющих находить наилучшее решения и экстремальное значение ЦФ в оптимизационных задачах со случайными исходными данными.
Активное стохастическое программирование (АСП ) – это совокупность приемов, позволяющих развивать методы выбора решений в условиях риска и неопределенности
Основным отличием стохастических методов от детерминированных является введение элемента случайности в процесс поиска экстремума.
Стандартный стохастический алгоритм состоит из 2-х шагов: сбор информации; принятие решения о движении
Алгоритмы случайного поиска различаются условиями выбора рабочего шага по направлению и возможностью изменения его размера в процессе поиска, а также возможностями алгоритма изменять вероятностные свойства случайности.
Под накоплением понимают сбор с помощью пробных шагов информации о поведении функции вблизи рассматриваемой точки для дальнейшей какой-либо оптимальной обработки этой информации и выборе эффективного направления рабочего шага.
14. Ненаправленный случайный поиск.
Задача поиска оптимальных решений: требуется найти минимума функции W(X) векторного аргумента X=(x1, x2, …, xn) в некоторой заданной области D допустимых значений X. Область D определяет пространство допустимых решений, каждой точке которого соответствует некоторое значение вектора X и целевой функции W(X), удовлетворяющие заданным ограничениям. Вектор X* принадлежит D и соответствует минимуму оптимизируемой функции W(X), является целью поиска.
Ненаправленный случайный (слепой) поиск экстремума производят следующим образом: строят последовательность
независимых случайных векторов, концами которых являются точки, принадлежащие области D. Затем вычисляют соответствующие значения целевой функции
из которых выбирают наименьшую: W(X*)=min{W1, W2, …,WN}
Если задано Wmin, то поиск осуществляется до тех пор, пока не будет найден X* такой, что
|W(X*)-Wmin|
В основе метода лежит проведение испытаний модели с использованием выборки объема N независимых случайных точек исследования {xi} для выявления области вероятного экстремума.
Основной и весьма ощутимый недостаток метода – большая трудоемкость.
9
Достоинство метода – универсальность, т.е. возможность использования практически для любого вида целевой функции.
Необходимость продолжения вычислений определяется тем, насколько подробно была рассмотрена область D:
1. Область D разбивается на l интервалов, вычисляют эмпирические частоты
попадания отдельных значений целевой функции W в i-ый интервал. Поиск прекращается, если на некотором s-м шаге для любого интервала выполняется условие
2.По результатам большого числа Ni испытаний (Ni>100) строят вариационный ряд (последовательность расположенных в возрастающем порядке значений целевой функции):
W1<W2<…<WN и эмпирическую интегральную функцию распределения. Если после проведения дополнительного числа испытаний интегральная функция несущественно отличается от предыдущей, то говорят о достаточности объема вычислений.
Эффективность ненаправленного случайного поиска
Пусть заданы вероятность р и точность нахождения экстремума функции W(X) в области D. Точность определяет множество оптимальных решений {X*}. Отношение объема области оптимальных решений к объему области D обозначим через z. Тогда необходимое число шагов для однократного попадания в область {X*} с вероятностью p можно определить по формуле
15.Направленный случайный поиск: поиск с возвратом при неудачном шаге, поиск с наказанием случайностью, поиск парными пробами, поиск по наилучшей пробе.
Для направленного случайного поиска характерно ограничение зоны поиска областью, центром которой является найденная в ходе поиска точка с наилучшим значением целевой функции. Если на новом шаге найдена точка с лучшим значением целевой функции, то эта точка становится новым центром зоны поиска. Этим достигается последовательное смещение ограниченной зоны поиска в район цели.
Поиск с возвратом при неудачном шаге В пространстве параметров произвольно выбирается точка Х0. Задается постоянный
шаг h. Из точки Х0 в случайном направлении, определенном случайным единичным вектором ζ = (ζ1,…, ζn), осуществляется шаг на величину h. Вычисляется значение целевой функции в новой точке X1. Если значение W(X1) <W(X0) (в случае поиска минимума), то шаг считается рабочим, и новый шаг осуществляется из точки X1 в случайном направлении. Если W(X1) > W(X0), то шаг считается неудачным, производится возвращение в точку X0, из которой в случайном направлении снова совершается пробный шаг.
Повторное определение W(X) при возвращении в исходный центр поиска следует применять в тех случаях, когда целевая функция по каким-либо причинам изменяется во времени, например при наличии помех.
Поиск с наказанием случайностью Предполагает движение в благоприятном направлении до первого неудачного шага.
После этого проводится случайный поиск нового благоприятного направления.
Движение из центра зоны поиска Xj-1 , найденного в процессе поиска, ведется в случайном направлении Xj=Xj-1+ah до тех пор, пока не обнаружится благоприятное направление такое,
10