Безусловная минимизация функций одной переменной

Будем решать задачу

Безусловная минимизация функций одной переменной - student2.ru (3.1)

Можно выделить три основных подхода к ее решению.

Первый подход основан на численном решении уравнения

Безусловная минимизация функций одной переменной - student2.ru

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

Второй подход предполагает выделение на оси Ox интервала [a,b], в котором заключен минимум целевой функции и последовательное уменьшение в процессе вычислений длины этого интервала до требуемой точности Безусловная минимизация функций одной переменной - student2.ru . Представителем данного класса методов является метод «золотого сечения».

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

3.1 Метод Ньютона. Для решения нелинейного уравнения (3.2) воспользуемся методом Ньютона. Выбрав начальное приближение Безусловная минимизация функций одной переменной - student2.ru , каждое последующее приближение будем искать по формуле:

Безусловная минимизация функций одной переменной - student2.ru

Таким образом, метод Ньютона является градиентным методом второго порядка. Итерационный процесс, описываемый (3.3), завершают, когда два последовательно найденных приближения отличаются друг от друга менее чем на заранее заданную величину Безусловная минимизация функций одной переменной - student2.ru :

Безусловная минимизация функций одной переменной - student2.ru

или когда значение первой производной станет достаточно малым (напомним, что в точке минимума оно становится равным нулю):

Безусловная минимизация функций одной переменной - student2.ru

На практике же «для надежности» лучше требовать одновременного выполнения обоих условий (3.4) и (3.5).

Алгоритм 3.1 метода Ньютона

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

2. Безусловная минимизация функций одной переменной - student2.ru .

3. Выполнять цикл…

3.1. Вычислить в точке Безусловная минимизация функций одной переменной - student2.ru Безусловная минимизация функций одной переменной - student2.ru ; Безусловная минимизация функций одной переменной - student2.ru

3.2. Безусловная минимизация функций одной переменной - student2.ru Безусловная минимизация функций одной переменной - student2.ru ; Безусловная минимизация функций одной переменной - student2.ru

3.3. Безусловная минимизация функций одной переменной - student2.ru .

…до тех пор, пока Безусловная минимизация функций одной переменной - student2.ru или Безусловная минимизация функций одной переменной - student2.ru .

4. Вывести результат – Безусловная минимизация функций одной переменной - student2.ru .

5. Завершить работу.

Сходимость метода Ньютона зависит от выбора начального приближения. Можно доказать, что если F(x) дважды непрерывно дифференцируема, Безусловная минимизация функций одной переменной - student2.ru - точка минимума этой функции, в которой Безусловная минимизация функций одной переменной - student2.ru , то всегда найдется окрестность точки Безусловная минимизация функций одной переменной - student2.ru такая, что приближения, начатые из произвольной точки Безусловная минимизация функций одной переменной - student2.ru , лежащей в этой окрестности, сверхлинейно сходятся к Безусловная минимизация функций одной переменной - student2.ru , то есть для любого Безусловная минимизация функций одной переменной - student2.ru и некоторого (зависящего от q) C выполняется неравенство Безусловная минимизация функций одной переменной - student2.ru . Более того, при выполнении определенных дополнительных условий, в некоторой окрестности минимума может иметь место квадратичная сходимость метода Ньютона: Безусловная минимизация функций одной переменной - student2.ru .

Таким образом, главным достоинством метода Ньютона является его быстрая сходимость.

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

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

3.2 Метод «золотого сечения». Метод «золотого сечения» является методом нулевого порядка. Он может быть разбит на два последовательных этапа:

1. Локализация минимума целевой функции.

2. Последовательное сужение интервала локализации.

Для локализации интервала, на котором располагается минимум целевой функции воспользуемся следующим критерием:

Если для унимодальной функции одной переменной F(x) удалось найти такие три точки

Безусловная минимизация функций одной переменной - student2.ru , (3.6)

что

Безусловная минимизация функций одной переменной - student2.ru и Безусловная минимизация функций одной переменной - student2.ru , (3.7)

то точка Безусловная минимизация функций одной переменной - student2.ru , в которой достигается минимум функции F(x) лежит в интервале ( Безусловная минимизация функций одной переменной - student2.ru

Из сказанного не следует обратное. Нельзя утверждать, что если точка Безусловная минимизация функций одной переменной - student2.ru , в которой достигается минимум функции F(x) лежит в интервале ( Безусловная минимизация функций одной переменной - student2.ru , то для любой точки Безусловная минимизация функций одной переменной - student2.ru будут выполняться неравенства (3.7). Чтобы убедиться, что минимум целевой функции находится в интервале Безусловная минимизация функций одной переменной - student2.ru надо не просто взять произвольную точку Безусловная минимизация функций одной переменной - student2.ru и проверить выполнение (3.7), а необходимо найти (построить) такую точку Безусловная минимизация функций одной переменной - student2.ru , в которой будут выполняться эти неравенства.

Рассмотрим алгоритм локализации минимума унимодальной функции одной переменной, основанный на использовании приведенного выше критерия.

Алгоритм 3.2 локализации минимума

1. Задать начальную точку Безусловная минимизация функций одной переменной - student2.ru , шаг поиска Безусловная минимизация функций одной переменной - student2.ru , коэффициент Безусловная минимизация функций одной переменной - student2.ru (для метода «золотого сечения Безусловная минимизация функций одной переменной - student2.ru ), точность вычисления минимума Безусловная минимизация функций одной переменной - student2.ru , предельное число шагов поиска N.

2. Пока Безусловная минимизация функций одной переменной - student2.ru выполнять // ищем точку Безусловная минимизация функций одной переменной - student2.ru

2.1. Безусловная минимизация функций одной переменной - student2.ru .

2.2. Если Безусловная минимизация функций одной переменной - student2.ru , то выйти из цикла

2.3. h:= – h.

2.4. Безусловная минимизация функций одной переменной - student2.ru .

2.5. Если Безусловная минимизация функций одной переменной - student2.ru , то выйти из цикла

2.6. Безусловная минимизация функций одной переменной - student2.ru .

3. Если Безусловная минимизация функций одной переменной - student2.ru , то вывести результат поиска минимума Безусловная минимизация функций одной переменной - student2.ru и завершить работу.

4. Для r от 1 до N с шагом +1 выполнять цикл // поиск Безусловная минимизация функций одной переменной - student2.ru

4.1. Безусловная минимизация функций одной переменной - student2.ru

4.2. Безусловная минимизация функций одной переменной - student2.ru .

4.3. Если Безусловная минимизация функций одной переменной - student2.ru , то выйти из цикла

4.4. Безусловная минимизация функций одной переменной - student2.ru

5. Если r=N, сообщить о невозможности локализации минимума и завершить аварийно работу.

6. Безусловная минимизация функций одной переменной - student2.ru .

7. Если Безусловная минимизация функций одной переменной - student2.ru , то положить Безусловная минимизация функций одной переменной - student2.ru

иначе положить Безусловная минимизация функций одной переменной - student2.ru

8. Завершить работу

Алгоритм 3.1 обеспечивает локализацию минимума унимодальной целевой функции на интервале Безусловная минимизация функций одной переменной - student2.ru . Кроме того, всегда будет выполняться следующее соотношение:

Безусловная минимизация функций одной переменной - student2.ru

Если в качестве Безусловная минимизация функций одной переменной - student2.ru взять корень уравнения Безусловная минимизация функций одной переменной - student2.ru , равный приблизительно 1,618, то отрезок Безусловная минимизация функций одной переменной - student2.ru будет разделен на две неравные части в пропорции так называемого «золотого сечения». При этом весь отрезок так относится к его большей части, как сама большая часть относится к меньшей. Разделив таким образом интервал локализации минимума, в дальнейшем получают наиболее быстрое сужение этого интервала в случае, когда число итераций соответствующего алгоритма стремится к бесконечному. Сам же алгоритм последовательного сужения интервала локализации при Безусловная минимизация функций одной переменной - student2.ru называется алгоритмом «золотого сечения».

Идея алгоритма метода «золотого сечения» заключается в следующем. В качестве исходных имеются 3 точки Безусловная минимизация функций одной переменной - student2.ru , удовлетворяющие условиям (3.6) и (3.7), причем Безусловная минимизация функций одной переменной - student2.ru . Выберем точку Безусловная минимизация функций одной переменной - student2.ru , лежащую симметрично точке Безусловная минимизация функций одной переменной - student2.ru относительно середины отрезка Безусловная минимизация функций одной переменной - student2.ru : Безусловная минимизация функций одной переменной - student2.ru . После этого следует рассмотреть два варианта взаимного расположения точек Безусловная минимизация функций одной переменной - student2.ru и Безусловная минимизация функций одной переменной - student2.ru : Безусловная минимизация функций одной переменной - student2.ru и Безусловная минимизация функций одной переменной - student2.ru вместе с двумя вариантами соотношения значений целевой функции в этих точках: Безусловная минимизация функций одной переменной - student2.ru и Безусловная минимизация функций одной переменной - student2.ru . Таким образом, всего необходимо проанализировать 4 варианта, которые показаны на рис. 3.1 – 3.4. В каждом из 4 вариантов можно определить новые точки Безусловная минимизация функций одной переменной - student2.ru и Безусловная минимизация функций одной переменной - student2.ru , а также точку Безусловная минимизация функций одной переменной - student2.ru , которые будут определять более узкий интервал локализации, удовлетворяя условиям (3.6) и (3.7).

Алгоритм 3.2а метода «золотого сечения»

1. Взять точки Безусловная минимизация функций одной переменной - student2.ru такие, что Безусловная минимизация функций одной переменной - student2.ru , Безусловная минимизация функций одной переменной - student2.ru и
Безусловная минимизация функций одной переменной - student2.ru . Задать точность нахождения минимума Безусловная минимизация функций одной переменной - student2.ru и предельное число итераций N.

2. Вычислить Безусловная минимизация функций одной переменной - student2.ru Безусловная минимизация функций одной переменной - student2.ru

3. Найти положение точки Безусловная минимизация функций одной переменной - student2.ru симметрично Безусловная минимизация функций одной переменной - student2.ru относительно середины интервала Безусловная минимизация функций одной переменной - student2.ru : Безусловная минимизация функций одной переменной - student2.ru .

4. Для r от 1 до N с шагом +1 выполнять цикл

4.1. Вычислить Безусловная минимизация функций одной переменной - student2.ru Безусловная минимизация функций одной переменной - student2.ru

4.2. Если Безусловная минимизация функций одной переменной - student2.ru , то

4.2.1. Если Безусловная минимизация функций одной переменной - student2.ru то

Безусловная минимизация функций одной переменной - student2.ru

иначе

Безусловная минимизация функций одной переменной - student2.ru

иначе

4.2.2. Если Безусловная минимизация функций одной переменной - student2.ru то

Безусловная минимизация функций одной переменной - student2.ru

иначе

Безусловная минимизация функций одной переменной - student2.ru

4.3. Положить Безусловная минимизация функций одной переменной - student2.ru

4.4. Если Безусловная минимизация функций одной переменной - student2.ru , выйти из цикла.

5. Если r=N, сообщить о невозможности нахождения минимума и завершить аварийно работу.

6. Положить Безусловная минимизация функций одной переменной - student2.ru

7. Завершить работу.

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

Достоинства метода «золотого сечения» - отсутствие необходимости вычисления производных, гарантированная сходимость в том случае, если на первом шаге удалось локализовать один минимум целевой функции. Основной недостаток – относительно медленная сходимость (по сравнению, например, с методом Ньютона).

3.3 Метод квадратичной аппроксимации. Данный метод также является методом нулевого порядка и не требует вычисления производных целевой функции.

Данный метод основан на локальной аппроксимации целевой функции квадратичной функцией. Для этого на оси Ox выбирают три точки Безусловная минимизация функций одной переменной - student2.ru . Через эти точки на графике целевой функции Безусловная минимизация функций одной переменной - student2.ru проводят квадратичную параболу Безусловная минимизация функций одной переменной - student2.ru . Для этого определяют коэффициенты a,b,c из системы уравнений:

Безусловная минимизация функций одной переменной - student2.ru (3.9)

Получаем:

Безусловная минимизация функций одной переменной - student2.ru

Безусловная минимизация функций одной переменной - student2.ru

Безусловная минимизация функций одной переменной - student2.ru

В качестве очередного приближения минимума функции рассматривают минимум параболы – точку

Безусловная минимизация функций одной переменной - student2.ru

Затем из трех точек Безусловная минимизация функций одной переменной - student2.ru отбрасываем точку с наибольшим значением целевой функции. К оставшимся двум точкам добавляем Безусловная минимизация функций одной переменной - student2.ru и получаем новую последовательность из трех точек на оси Ox. Если решение не достигнуто (разность между наибольшим и наименьшим значениями целевой функции в этих трех точках больше наперед заданного Безусловная минимизация функций одной переменной - student2.ru ), то переходят к построению новой квадратичной параболы, нахождению ее минимума и т.д.

Метод квадратичной аппроксимации гарантированно работает для унимодальных выпуклых целевых функций. На практике начальные точки Безусловная минимизация функций одной переменной - student2.ru выбирают не произвольным образом, а так, чтобы они локализовывали минимум целевой функции. Для этого можно использовать алгоритм 3.2, взяв Безусловная минимизация функций одной переменной - student2.ru . Далее, как описано выше, после нахождения точки Безусловная минимизация функций одной переменной - student2.ru , пытаются отбросить точку с наибольшим значением целевой функции. Однако, если оставшиеся три точки не локализуют минимум (то есть ни в какой комбинации не удовлетворяют условиям (3.6) и (3.7)), то вместо точки с наибольшим значением целевой функции следует отбросить точку со следующим по величине значением этой функции.

Алгоритм 3.3 метода квадратичной аппроксимации

1. Взять точки Безусловная минимизация функций одной переменной - student2.ru такие, что Безусловная минимизация функций одной переменной - student2.ru , Безусловная минимизация функций одной переменной - student2.ru и
Безусловная минимизация функций одной переменной - student2.ru . Задать точность нахождения минимума Безусловная минимизация функций одной переменной - student2.ru и предельное число итераций N.

2. Вычислить Безусловная минимизация функций одной переменной - student2.ru Безусловная минимизация функций одной переменной - student2.ru Безусловная минимизация функций одной переменной - student2.ru

3. Для r от 1 до N с шагом +1 выполнять цикл

3.1. Вычислить a, b, c по формулам (3.10), (3.11), (3.12).

3.2. Положить Безусловная минимизация функций одной переменной - student2.ru . Вычислить Безусловная минимизация функций одной переменной - student2.ru

3.3. Упорядочить точки Безусловная минимизация функций одной переменной - student2.ru и соответствующие им значения Безусловная минимизация функций одной переменной - student2.ru в порядке неубывания значений целевой функции: Безусловная минимизация функций одной переменной - student2.ru .

3.4. Если три первые точки не локализуют минимум ( Безусловная минимизация функций одной переменной - student2.ru или Безусловная минимизация функций одной переменной - student2.ru , то

Поменять местами точки Безусловная минимизация функций одной переменной - student2.ru и Безусловная минимизация функций одной переменной - student2.ru : Безусловная минимизация функций одной переменной - student2.ru

Если три первые точки снова не локализуют минимум ( Безусловная минимизация функций одной переменной - student2.ru или Безусловная минимизация функций одной переменной - student2.ru , то

Поменять местами точки Безусловная минимизация функций одной переменной - student2.ru и Безусловная минимизация функций одной переменной - student2.ru : Безусловная минимизация функций одной переменной - student2.ru и выдать предупреждение о потере локализации минимума

3.5. Если Безусловная минимизация функций одной переменной - student2.ru , выйти из цикла

4. Если r=N, сообщить о невозможности нахождения минимума и завершить аварийно работу.

5. Положить Безусловная минимизация функций одной переменной - student2.ru

6. Завершить работу.

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

4. Безусловная минимизация функций n переменных

Рассмотрим две основные группы методов безусловной минимизации функций n переменных:

Безусловная минимизация функций одной переменной - student2.ru (4.1)

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

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

4.1 Метод покоординатного спуска. Данный метод нулевого порядка является одним из самых простых и интуитивно понятных эмпирических методов безусловной минимизации функций n переменных. В пространстве Безусловная минимизация функций одной переменной - student2.ru выбирается начальная точка Безусловная минимизация функций одной переменной - student2.ru . Далее, на каждой итерации, последовательно выполняется одномерный поиск минимума функции по направлению каждой из координатных осей Безусловная минимизация функций одной переменной - student2.ru :

Безусловная минимизация функций одной переменной - student2.ru

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

Безусловная минимизация функций одной переменной - student2.ru

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

Алгоритм 4.1 метода покоординатного спуска

1. Задать начальную точку Безусловная минимизация функций одной переменной - student2.ru , значение Безусловная минимизация функций одной переменной - student2.ru , предельное число шагов поиска N.

2. Положить Безусловная минимизация функций одной переменной - student2.ru .

3. Для r от 1 до N с шагом +1 выполнять цикл

3.1. Для i от 1 до n с шагом +1 выполнять цикл

3.1.1. Решить задачу Безусловная минимизация функций одной переменной - student2.ru

3.1.2. Положить Безусловная минимизация функций одной переменной - student2.ru

3.2. Если Безусловная минимизация функций одной переменной - student2.ru , то выйти из цикла

3.3. Положить Безусловная минимизация функций одной переменной - student2.ru .

4. Если Безусловная минимизация функций одной переменной - student2.ru , то вывести предупреждение, что минимум не достигнут

5. Положить Безусловная минимизация функций одной переменной - student2.ru .

6. Завершить работу

Для одномерного поиска на шаге 3.1.1 чаще всего используют метод квадратичной аппроксимации или метод «золотого сечения».

При своей простоте метод покоординатного спуска не лишен недостатков. Во-первых, минимизация невыпуклых функций, даже унимодальных, может привести к задачам одномерной минимизации многоэкстремальных функций (рис. 4.2). Во-вторых, в случае, когда линии равного уровня (при Безусловная минимизация функций одной переменной - student2.ru – поверхности равного уровня) целевой функции вытянуты не вдоль координатных осей (образуют овраг), алгоритм не приводит к нахождению минимума (рис. 4.3).

4.2. Метод локальных вариаций. Этот метод по своей идее напоминает метод покоординатного спуска, однако одномерный поиск заменен пробными шагами вдоль координатных осей. Длины шагов уменьшаются при приближении к минимуму целевой функции.

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

Алгоритм 4.2 метода локальных вариаций

1. Задать начальную точку Безусловная минимизация функций одной переменной - student2.ru , минимальное значение шага вдоль первой координатной оси Безусловная минимизация функций одной переменной - student2.ru , длины шагов вдоль каждой координатной оси Безусловная минимизация функций одной переменной - student2.ru , предельное число шагов поиска N.

2. Положить Безусловная минимизация функций одной переменной - student2.ru

3. Для r от 1 до N с шагом +1 выполнять цикл

3.1. Выполнить покоординатный поиск из точки Безусловная минимизация функций одной переменной - student2.ru с шагом Безусловная минимизация функций одной переменной - student2.ru с результатом в точке Безусловная минимизация функций одной переменной - student2.ru .

3.2. Если результат поиска совпадает с исходной точкой (то есть Безусловная минимизация функций одной переменной - student2.ru ), то Безусловная минимизация функций одной переменной - student2.ru Если Безусловная минимизация функций одной переменной - student2.ru , выйти из цикла.

4. Если Безусловная минимизация функций одной переменной - student2.ru , то вывести предупреждение, что минимум не достигнут за заданное число шагов

5. Положить Безусловная минимизация функций одной переменной - student2.ru .

6. Завершить работу.

В процессе покоординатного поиска сначала выполняется пробный шаг вдоль первой координаты в положительном направлении Безусловная минимизация функций одной переменной - student2.ru . Если значение целевой функции улучшилось, полученная точка фиксируется, и мы переходим к следующей координате. Если значение функции уменьшить не удалось, делают шаг в противоположном направлении Безусловная минимизация функций одной переменной - student2.ru . Если после этого шага значение целевой функции улучшилось, то полученная точка фиксируется, и мы переходим к следующей координате. В противном случае, текущая точка остается на месте и осуществляется переход к следующей координате. Эта процедура последовательно выполнятся по всем координатам (алгоритм 4.2а).

Алгоритм 4.2а покоординатного поиска
из точки Безусловная минимизация функций одной переменной - student2.ru с шагом Безусловная минимизация функций одной переменной - student2.ru с результатом в точке Безусловная минимизация функций одной переменной - student2.ru .

1. Положить Безусловная минимизация функций одной переменной - student2.ru ).

2. Для i от 1 до n с шагом +1 выполнять цикл

2.1. Безусловная минимизация функций одной переменной - student2.ru . Вычислить Безусловная минимизация функций одной переменной - student2.ru

2.2. Если шаг удачен ( Безусловная минимизация функций одной переменной - student2.ru то Безусловная минимизация функций одной переменной - student2.ru ; Безусловная минимизация функций одной переменной - student2.ru

Иначе Безусловная минимизация функций одной переменной - student2.ru . Вычислить Безусловная минимизация функций одной переменной - student2.ru

Если шаг удачен ( Безусловная минимизация функций одной переменной - student2.ru то Безусловная минимизация функций одной переменной - student2.ru ; Безусловная минимизация функций одной переменной - student2.ru

3. Завершить работу.

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

4.3. Метод Хука-Дживса. Данный метод является одним из лучших методов прямого поиска. Он, в частности, сохраняет работоспособность для функций, у которых линии (поверхности) равного уровня вытянуты не вдоль координатных осей. Метод Хука-Дживса не требует выпуклости целевых функций. Данный метод может также применяться для минимизации многоэкстремальных функций, приводя, при выборе различных начальных точек, к различным локальным минимумам таких функций.

В основе метода Хука-Дживса лежит идея метода локальных вариаций. Однако, в методе Хука-Дживса направления поиска не зафиксированы вдоль координатных осей. Алгоритм стремится построить направление поиска, приближающееся к направлению наискорейшего убывания целевой функции. Таким образом, встретившись с «оврагом» целевой функции, метод Хука-Дживса стремится вытянуть направление поиска вдоль дна этого «оврага». Кроме этого, размер шага вдоль перспективного направления также может изменяться в зависимости от поведения целевой функции.

Алгоритм 4.3 метода Хука-Дживса

1. Задать начальную точку Безусловная минимизация функций одной переменной - student2.ru , минимальное значение шага вдоль первой координатной оси Безусловная минимизация функций одной переменной - student2.ru , длины шагов вдоль каждой координатной оси Безусловная минимизация функций одной переменной - student2.ru , предельное число итераций N.

2. Положить Безусловная минимизация функций одной переменной - student2.ru Положить Безусловная минимизация функций одной переменной - student2.ru )

3. Выполнять для r от 1 до N с шагом +1

3.1. Выполнять бесконечный цикл

3.1.1. Выполнить покоординатный поиск из точки Безусловная минимизация функций одной переменной - student2.ru с шагом Безусловная минимизация функций одной переменной - student2.ru с результатом в точке Безусловная минимизация функций одной переменной - student2.ru (алгоритм 4.2а).

3.1.2. Если результат поиска не совпадает с исходной точкой (то есть Безусловная минимизация функций одной переменной - student2.ru ), то положить Безусловная минимизация функций одной переменной - student2.ru и выйти из цикла.
Иначе

3.1.2.1. Безусловная минимизация функций одной переменной - student2.ru

3.1.2.2. Если Безусловная минимизация функций одной переменной - student2.ru , пожить в качестве результата Безусловная минимизация функций одной переменной - student2.ru и завершить работу программы.

3.2. Выполнять до тех пор…

3.2.1. Экстраполировать направление к минимуму, положив Безусловная минимизация функций одной переменной - student2.ru Как правило, используют фиксированное значение Безусловная минимизация функций одной переменной - student2.ru .

3.2.2. Выполнить покоординатный поиск из точки Безусловная минимизация функций одной переменной - student2.ru с шагом Безусловная минимизация функций одной переменной - student2.ru с результатом в точке Безусловная минимизация функций одной переменной - student2.ru (алгоритм 4.2а). Положить Безусловная минимизация функций одной переменной - student2.ru

3.2.3. Положить Безусловная минимизация функций одной переменной - student2.ru и Безусловная минимизация функций одной переменной - student2.ru ; положить Безусловная минимизация функций одной переменной - student2.ru .

3.2 …пока новые значения Безусловная минимизация функций одной переменной - student2.ru

4. Вывести предупреждение, что минимум не достигнут за заданное число шагов.

5. Завершить работу.

Шаг 3.1 в литературе называется «исследующим поиском». Он заключается в том, чтобы путем покоординатного поиска вокруг базовой точки Безусловная минимизация функций одной переменной - student2.ru найти новую точку Безусловная минимизация функций одной переменной - student2.ru , в которой значение целевой функции лучше. Если шаг 3.1 неудачен, шаг поиска уменьшают, пока он не станет меньше наперед заданного. В последнем случае поиск завершают.

Шаг 3.2 часто называют «поиск по образцу». В том случае, если шаг 3.1 оказался удачным, новую перспективную точку пытаются построить вдоль прямой, соединяющей две предыдущие точки Безусловная минимизация функций одной переменной - student2.ru и Безусловная минимизация функций одной переменной - student2.ru . Обычно такую экстраполяцию выполняют с постоянным коэффициентом Безусловная минимизация функций одной переменной - student2.ru . (В литературе встречаются указания на возможность подбора других значений этого параметра или вообще на выполнение одномерного поиска вдоль прямой, соединяющей точки и Безусловная минимизация функций одной переменной - student2.ru ). Далее, следует обратить внимание, что значение целевой функции в новой точке Безусловная минимизация функций одной переменной - student2.ru , полученной в результате экстраполяции, не анализируется, а из нее сразу осуществляется покоординатный поиск с результатом в точке Безусловная минимизация функций одной переменной - student2.ru Если покоординатный поиск не привел к нахождению точки, лучшей чем Безусловная минимизация функций одной переменной - student2.ru , то точка Безусловная минимизация функций одной переменной - student2.ru будет с ней совпадать. Теперь, наконец, сравнивают значения целевой функции в прежней наилучшей точке Безусловная минимизация функций одной переменной - student2.ru и новой точке Безусловная минимизация функций одной переменной - student2.ru , полученной в результате «поиска по образцу» (в приведенном выше алгоритме до этого осуществляется переприсваивание Безусловная минимизация функций одной переменной - student2.ru и Безусловная минимизация функций одной переменной - student2.ru , Безусловная минимизация функций одной переменной - student2.ru и поэтому сравнивают уже не Безусловная минимизация функций одной переменной - student2.ru и Безусловная минимизация функций одной переменной - student2.ru , а, соответственно новые значения Безусловная минимизация функций одной переменной - student2.ru и Безусловная минимизация функций одной переменной - student2.ru . В случае, если поиск «по образцу» оказался удачен, его повторяют.

Во избежание зацикливания, общее число итераций алгоритма целесообразно ограничить.

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

Наши рекомендации