|
|||||||
|
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Безусловная минимизация функций одной переменнойБудем решать задачу
Можно выделить три основных подхода к ее решению. Первый подход основан на численном решении уравнения
Если целевая функция имеет только один минимум и является выпуклой, то решение уравнения (3.2) даст единственное решение задачи (3.1). В противном случае, корни (3.2) дадут все экстремальные точки и точки перегиба целевой функции. Та точка, в которой значение целевой функции наименьшее, будет решением задачи (3.1). На этом подходе основан метод Ньютона. Второй подход предполагает выделение на оси O x интервала [ a,b ], в котором заключен минимум целевой функции и последовательное уменьшение в процессе вычислений длины этого интервала до требуемой точности Наконец, третий подход основан на локальной аппроксимации целевой функции квадратичными или кубическими многочленами. Это позволяет на каждом шаге алгоритма аппроксимировать минимум целевой функции минимумом многочлена. В процессе вычислений каждая последующая аппроксимация строится с использованием очередной точки приближения минимума целевой функции, что позволяет последовательно продвигаться к этому минимуму. Примером подобных методов является метод квадратичной аппроксимации. 3.1 Метод Ньютона. Для решения нелинейного уравнения (3.2) воспользуемся методом Ньютона. Выбрав начальное приближение
Таким образом, метод Ньютона является градиентным методом второго порядка. Итерационный процесс, описываемый (3.3), завершают, когда два последовательно найденных приближения отличаются друг от друга менее чем на заранее заданную величину
или когда значение первой производной станет достаточно малым (напомним, что в точке минимума оно становится равным нулю):
На практике же «для надежности» лучше требовать одновременного выполнения обоих условий (3.4) и (3.5). Алгоритм 3.1 метода Ньютона 1. Задать начальное приближение 2. 3. Выполнять цикл… 3.1. Вычислить в точке 3.2. 3.3. …до тех пор, пока 4. Вывести результат – 5. Завершить работу.
Сходимость метода Ньютона зависит от выбора начального приближения. Можно доказать, что если F(x) дважды непрерывно дифференцируема, Таким образом, главным достоинством метода Ньютона является его быстрая сходимость. Применимость метода Ньютона ограничена требованием, чтобы целевая функция была дважды дифференцируема в окрестности ее минимума, в которой осуществляется поиск решения. Основной недостаток метода Ньютона заключается в том, что при неудачном выборе начального приближения этот метод может расходиться. Кроме того, на каждом шаге требуются вычисления первой и второй производной целевой функции. Если аналитические выражения для первой и второй производных неизвестны, численный расчет производных может оказаться трудоемким и вносить в процесс вычислений непредсказуемую погрешность. 3.2 Метод «золотого сечения». Метод «золотого сечения» является методом нулевого порядка. Он может быть разбит на два последовательных этапа: 1. Локализация минимума целевой функции. 2. Последовательное сужение интервала локализации. Для локализации интервала, на котором располагается минимум целевой функции воспользуемся следующим критерием: Если для унимодальной функции одной переменной F(x) удалось найти такие три точки
что
то точка Из сказанного не следует обратное. Нельзя утверждать, что если точка Рассмотрим алгоритм локализации минимума унимодальной функции одной переменной, основанный на использовании приведенного выше критерия. Алгоритм 3.2 локализации минимума 1. Задать начальную точку 2. Пока 2.1. 2.2. Если 2.3. h:= – h. 2.4. 2.5. Если 2.6. 3. Если 4. Для r от 1 до N с шагом +1 выполнять цикл // поиск 4.1. 4.2. 4.3. Если 4.4. 5. Если r=N, сообщить о невозможности локализации минимума и завершить аварийно работу. 6. 7. Если иначе положить 8. Завершить работу Алгоритм 3.1 обеспечивает локализацию минимума унимодальной целевой функции на интервале
Если в качестве Идея алгоритма метода «золотого сечения» заключается в следующем. В качестве исходных имеются 3 точки
Алгоритм 3.2а метода «золотого сечения» 1. Взять точки 2. Вычислить 3. Найти положение точки 4. Для r от 1 до N с шагом +1 выполнять цикл 4.1. Вычислить 4.2. Если 4.2.1. Если
иначе
иначе 4.2.2. Если
иначе
4.3. Положить 4.4. Если 5. Если r=N, сообщить о невозможности нахождения минимума и завершить аварийно работу. 6. Положить 7. Завершить работу. Следует предостеречь от вычисления в цикле новых значений Достоинства метода «золотого сечения» - отсутствие необходимости вычисления производных, гарантированная сходимость в том случае, если на первом шаге удалось локализовать один минимум целевой функции. Основной недостаток – относительно медленная сходимость (по сравнению, например, с методом Ньютона). 3.3 Метод квадратичной аппроксимации. Данный метод также является методом нулевого порядка и не требует вычисления производных целевой функции. Данный метод основан на локальной аппроксимации целевой функции квадратичной функцией. Для этого на оси O x выбирают три точки
Получаем:
В качестве очередного приближения минимума функции рассматривают минимум параболы – точку
Затем из трех точек Метод квадратичной аппроксимации гарантированно работает для унимодальных выпуклых целевых функций. На практике начальные точки
Алгоритм 3.3 метода квадратичной аппроксимации 1. Взять точки 2. Вычислить 3. Для r от 1 до N с шагом +1 выполнять цикл 3.1. Вычислить a, b, c по формулам (3.10), (3.11), (3.12). 3.2. Положить 3.3. Упорядочить точки 3.4. Если три первые точки не локализуют минимум ( Поменять местами точки Если три первые точки снова не локализуют минимум ( Поменять местами точки 3.5. Если 4. Если r=N, сообщить о невозможности нахождения минимума и завершить аварийно работу. 5. Положить 6. Завершить работу.
Метод квадратичной аппроксимации полезен для решения задачи одномерного поиска вдоль заданного направления, возникающей при реализации различных методов минимизации функций n переменных. Метод гарантированно работает для унимодальных выпуклых функций (по крайней мере, унимодальных на участке, на котором первоначально локализован минимум).
4. Безусловная минимизация функций n переменных Рассмотрим две основные группы методов безусловной минимизации функций n переменных:
Первую группу составляют методы прямого поиска (методы нулевого порядка). Их главное достоинство – отсутствие требований к дифференцируемости целевой функции. Эти методы удобны, когда не могут быть получены аналитические выражения для производных целевой функции, и эти производные приходится вычислять с помощью конечных разностей. Наконец, многие методы прямого поиска (например, локальных вариаций или Хука-Дживса), не требуют выпуклости целевой функции. В случае многоэкстремальных задач они позволяют найти локальный экстремум, ближайший к начальной точке поиска. Главный недостаток методов прямого поиска – медленная сходимость. В отличие от методов прямого поиска, градиентные методы первого и второго порядков, составляющие вторую группу, отличаются быстрой сходиимостью. Однако, они не гарантируют сходимость для невыпуклых и, тем более, многоэкстремальных функций. Градиентные методы требуют дифференцируемости целевой функции один или два раза, в зависимости от порядка метода. Производные приходится вычислять на каждой итерации градиентного метода. 4.1 Метод покоординатного спуска. Данный метод нулевого порядка является одним из самых простых и интуитивно понятных эмпирических методов безусловной минимизации функций n переменных. В пространстве
Выполнив одномерный поиск в направлении i -й координатной оси, перемещаем начальную точку поиска в точку, где функция достигает минимального значения вдоль этой оси:
Проведя поиск вдоль всех координатных осей, сравниваем расстояние между начальной точкой Алгоритм 4.1 метода покоординатного спуска 1. Задать начальную точку 2. Положить 3. Для r от 1 до N с шагом +1 выполнять цикл 3.1. Для i от 1 до n с шагом +1 выполнять цикл 3.1.1. Решить задачу 3.1.2. Положить 3.2. Если 3.3. Положить 4. Если 5. Положить 6. Завершить работу
Для одномерного поиска на шаге 3.1.1 чаще всего используют метод квадратичной аппроксимации или метод «золотого сечения». При своей простоте метод покоординатного спуска не лишен недостатков. Во-первых, минимизация невыпуклых функций, даже унимодальных, может привести к задачам одномерной минимизации многоэкстремальных функций (рис. 4.2). Во-вторых, в случае, когда линии равного уровня (при 4.2. Метод локальных вариаций. Этот метод по своей идее напоминает метод покоординатного спуска, однако одномерный поиск заменен пробными шагами вдоль координатных осей. Длины шагов уменьшаются при приближении к минимуму целевой функции. В основе метода локальных вариаций лежит алгоритм покоординатного поиска. Пусть вектор Алгоритм 4.2 метода локальных вариаций 1. Задать начальную точку 2. Положить 3. Для r от 1 до N с шагом +1 выполнять цикл 3.1. Выполнить покоординатный поиск из точки 3.2. Если результат поиска совпадает с исходной точкой (то есть 4. Если 5. Положить 6. Завершить работу.
В процессе покоординатного поиска сначала выполняется пробный шаг вдоль первой координаты в положительном направлении
Алгоритм 4.2а покоординатного поиска 1. Положить 2. Для i от 1 до n с шагом +1 выполнять цикл 2.1. 2.2. Если шаг удачен ( Иначе Если шаг удачен ( 3. Завершить работу.
Данный алгоритм сходится несколько медленнее, чем метод покоординатного спуска, однако, применим для невыпуклых и даже многоэкстремальных функций, позволяя найти один из локальных минимумов многоэкстремальной функции (в зависимости от выбора начальной точки). В то же время для функций, линии (поверхности) уровня которых вытянуты в виде оврагов на вдоль одной из координатных осей, этот метод, как и метод покоординатного спуска, практически неработоспособен.
4.3. Метод Хука-Дживса. Данный метод является одним из лучших методов прямого поиска. Он, в частности, сохраняет работоспособность для функций, у которых линии (поверхности) равного уровня вытянуты не вдоль координатных осей. Метод Хука-Дживса не требует выпуклости целевых функций. Данный метод может также применяться для минимизации многоэкстремальных функций, приводя, при выборе различных начальных точек, к различным локальным минимумам таких функций. В основе метода Хука-Дживса лежит идея метода локальных вариаций. Однако, в методе Хука-Дживса направления поиска не зафиксированы вдоль координатных осей. Алгоритм стремится построить направление поиска, приближающееся к направлению наискорейшего убывания целевой функции. Таким образом, встретившись с «оврагом» целевой функции, метод Хука-Дживса стремится вытянуть направление поиска вдоль дна этого «оврага». Кроме этого, размер шага вдоль перспективного направления также может изменяться в зависимости от поведения целевой функции.
Алгоритм 4.3 метода Хука-Дживса 1. Задать начальную точку 2. Положить 3. Выполнять для r от 1 до N с шагом +1 3.1. Выполнять бесконечный цикл 3.1.1. Выполнить покоординатный поиск из точки 3.1.2. Если результат поиска не совпадает с исходной точкой (то есть 3.1.2.1. 3.1.2.2. Если 3.2. Выполнять до тех пор… 3.2.1. Экстраполировать направление к минимуму, положив 3.2.2. Выполнить покоординатный поиск из точки 3.2.3. Положить 3.2 …пока новые значения 4. Вывести предупреждение, что минимум не достигнут за заданное число шагов. 5. Завершить работу. Шаг 3.1 в литературе называется «исследующим поиском». Он заключается в том, чтобы путем покоординатного поиска вокруг базовой точки Шаг 3.2 часто называют «поиск по образцу». В том случае, если шаг 3.1 оказался удачным, новую перспективную точку пытаются построить вдоль прямой, соединяющей две предыдущие точки Во избежание зацикливания, общее число итераций алгоритма целесообразно ограничить.
4.4. Метод наискорейшего спуска. Этот метод, пожалуй, является наиболее простым градиентным методом, то есть методом, требующим вычисления производной целевой функции. Метод наискорейшего спуска относится к методам первого порядка, то есть требует возможности вычисления первой производной целевой функции в любой точке области допустимых значений варьируемых параметров. Метод наискорейшего спуска предлагает, выбрав начальную точку, искать минимальное значение целевой функции путем одномерного поиска вдоль направления, противоположного градиенту этой функции. Действительно, направление градиента – это направление наиболее быстрого возрастания функции
Алгоритм 4.4 метода наискорейшего спуска 1. Задать начальную точку 2. Положить 3. Для r от 1 до N с шагом +1 выполнять цикл 3.1. Решить задачу 3.2. Положить 3.3. Если 3.4. Положить 4. Если 5. Положить 6. Завершить работу
Основным недостатком данного метода является то, что все направления поиска, которые строятся последовательно на всех итерациях, являются взаимно ортогональными. Действительно, в результате одномерного поиска минимума вдоль некоторого направления, мы находим точку, в которой скорость изменения целевой функции вдоль этого направления равна 0, то есть проекция градиента функции на это направление равна 0, что означает, что градиент ортогонален этому направлению. Так как в качестве следующего направления поиска выбирается направление, противоположное градиенту, получается, что это направление будет ортогонально предыдущему. В результате, в случае неудачного выбора начальной точки и овражистой целевой функции направления поиска могут «не улечься» на дно оврага и метод окажется неэффективным. На самом деле, метод наискорейшего спуска, используя в качестве локального направления поиска антиградиент целевой функции, опирается на локальную аппроксимацию целевой функции квадратичной формой вида:
в случае, когда матрица квадратичной формы является диагональной, то есть линии (поверхности) уровня целевой функции представляют собой окружности (сферы, гиперсферы). Действительно, нетрудно видеть, что для такой целевой функции, какую бы начальную точку мы ни выбрали, направление антиградиента будет проходить через минимум этой функции. Это значит, что минимум будет найден всего за одну итерацию, реализующую процедуру одномерного поиска вдоль антиградиента. Для реальных целевых функций, чтобы найти минимум с заданной точностью, приходится выполнять несколько итераций, причем тем больше итераций, чем больше вытянуты линии (поверхности) уровня целевой функции. Говоря другими словами, если максимальное и минимальное значения собственных чисел матрицы Гессе целевой функции сильно различаются, метод наискорейшего спуска оказывается неэффективным (ранее мы показали это из соображений ортогональности направлений поиска).
4.5. Метод сопряженных градиентов. В отличие от метода наискорейшего спуска, данный метод подразумевает локальную аппроксимацию целевой функции
По своей сути, метод сопряженных градиентов использует идею локальной аппроксимации произвольной целевой функции Пусть в некоторой точке
Можно доказать, что для произвольной квадратичной формы с положительно определенной матрицей G, задав n сопряженных относительно G направлений Метод сопряженных градиентов позволяет найти минимум квадратичной формы за одну итерацию, которая заключается в последовательной реализации n процедур одномерного поиска минимума вдоль n сопряженных направлений. В качестве первого направления берут направление, противоположное градиенту В случае произвольной функции Существует несколько модификаций метода сопряженных градиентов, отличающихся способом последовательного вычисления сопряженных направлений. Одним из наиболее популярных является алгоритм Флетчера-Ривса, в котором сопряженные направления рассчитываются из следующих соображений. Начнем с базовой точки поиска
В результате одномерного поиска вдоль этого направления найдем
выбирая
Для этого воспользуемся разложением градиента целевой функции вблизи точки
отсюда
транспонируя выражение (4.10) и домножая его справа на
Если целевая функция имеет непрерывные вторые производные, то матрица Гессе является симметричной, то есть
Подставляя (4.12) в (4.8) получим:
Отсюда, с учетом (4.6) и (4.7) получаем:
Раскрывая скобки, учтем, что в силу ортогональности векторов
В дальнейшем, имея на k -й итерации набор сопряженных направлений
Это выражение можно переписать в рекурсивной форме:
где
Такой способ выбора направлений используется в методе Флетчера-Ривса. Отметим, что в силу приближенности соотношения (4.9), мы получили приближенный способ расчета направлений, сопряженных относительно матрицы Гессе минимизируемой целевой функции. Существуют и другие методы сопряженных градиентов, в которых используются другие приближенные формулы. Так, в методе Полака-Райбера
Интересно, что и метод Флетчера-Ривса, и метод Полака-Райбера остаются методами первого порядка, не требуя непосредственного вычисления матрицы Гессе. Несмотря на то, что в методе сопряжённых градиентов используется информация только о линейной части приращения в точке, как и в методах градиентного спуска, метод сопряжённых градиентов позволяет решать квадратичные задачи за конечное число шагов. В то же время, вычислительная сложность этого метода не превышает сложности метода наискорейшего спуска при гораздо более высокой скорости сходимости. Сходимость метода Флетчера-Ривса строго доказана для целевых функций, удовлетворяющих определенным, не слишком строгим, условиям. Сходимость алгоритма Полака-Райбера доказана для выпуклых функций. На практике, однако, эти методы часто оказываются работоспособными и в тех случаях, когда эти условия сходимости не выполняются, причем алгоритм Полака-Райбера обычно показывает лучшие результаты. Методы сопряженных градиентов чувствительны к накоплению машинных ошибок. Ниже приведен алгоритм метода Полака-Райбера.
Алгоритм 4.5 метода Полака-Райбера 1. Задать начальную точку 2. Положить 3. Для r от 1 до N с шагом +1 выполнять цикл 3.1. Положить 3.2. Для i от 1 до n с шагом +1 выполнять цикл 3.2.1. Решить задачу 3.2.2. Положить 3.2.3. Положить 3.2.4. Положить 3.3. Если 3.4. Положить 4. Если 5. Положить 6. Завершить работу
4.6. Метод Пауэлла. Метод Пауэлла так же, как и метод сопряженных градиентов, основан на квадратичной аппроксимации целевой функции и использует поиск по взаимно сопряженным направлениям. Метод основывается на следующем свойстве квадратичной функции. Любая прямая, проходящая через точку минимума квадратичной формы пересекает под равными углами поверхности постоянного значения (в двумерном случае – линии равного уровня) этой квадратичной формы. Отсюда следует, что, если мы найдем два минимума
Алгоритм Пауэлла, используя соотношение (4.21) позволяет построить набор направлений, сопряженных относительно матрицы квадратичной формы, локально аппроксимирующей целевую функцию, не вычисляя производных, то есть относится к методам нулевого порядка.
Алгоритм 4.6 метода Пауэлла 1. Задать начальную точку 2. Положить 3. Для всех i от 1 до n положить 4. Для r от 1 до N с шагом +1 выполнять цикл 4.1. Решить задачу 4.2. Положить 4.3. Для i от 1 до n с шагом +1 выполнять 4.3.1. Решить задачу Поиск по сайту: |
||||||
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.633 сек.) |