Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы Петров.doc
Скачиваний:
11
Добавлен:
10.09.2019
Размер:
1.09 Mб
Скачать

33. Чисельні методи багатовимірної оптимізації: метод Ньютона та його модифікації.

МЕТОДЫ БЕЗУСЛОВНОЙ МИНИМИЗАЦИИ ФУНКЦИЙ МНОГИХ ПЕРЕМЕННЫХ

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

Метод Ньютона. Используется квадратичная аппроксимация f(x). Разложим функцию в ряд Тейлора и оставим члены второго порядка: . Метод Ньютона обладает медленной сходимостью вдали от точки минимума, но хорошо сходится вблизи неё. 3.3.3. Модифицированный метод Ньютона Исследования показывают, что, если целевая функция не квадратичная, то метод Ньютона ненадёжен, то есть если x0 находится на значительном расстоянии от точки оптимума, то шаг может быть таким большим, что приведёт к несходимости. Введём параметр длинны шага , который определяется из задачи минимизации функции f(x(k+1)), теперь . Такая формула обеспечивает убывание функции от итерации к итерациии.

34. Чисельні методи багатовимірної оптимізації: методи спряжених напрямів.

Методы, использующие сопряженные направления.

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

Определение. Пусть H - симметрическая матрица порядка nxn. Векторы d1,..., dk называются H-сопряженными, или просто сопряженными, если они линейно независимы и di(t)Hdj = 0 при i != j, где di(t) - вектор строка.

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

Метод Дэвидона - Флетчера - Пауэлла

Первоначально метод был предложен Дэвидоном и затем развит Флетчером и Пауэллом. Метод Дэвидона-Флетчера-Пауэлла называют также и методом переменной метрики. Он попадает в общий класс квазиньютоновских процедур, в которых направления поиска задаются в виде -Dj*grad(f(y)). Направление градиента является, таким образом, отклоненным в результате умножения на -Dj, где Dj - положительно определенная симметрическая матрица порядка nxn, аппроксимирующая обратную матрицу Гессе. На следующем шаге матрица Dj+1 представляется в виде суммы Dj и двух симметрических матриц ранга один каждая. В связи с этим схема иногда называется схемой коррекции ранга два.

 

Алгорим метода Дэвидона - Флетчера - Пауэлла

 

Начальный этап. Пусть eps >0 - константа для остановки. Выбрать точку x1 и начальную симметрическую положительно определенную матрицу D1 . Положить y1 = x1, k=j=1 и перейти к основному этапу.

 

Основной этап.

Шаг 1. Если ||grad(f(x))|| < eps , то остановиться; в противном случае положить dj = -Dj*grad(f(yj)) и взять в качестве lymj - оптимальное решение задачи минимизации f(yj + lym*dj) при lym >= 0. Положить y[j+1] = yj + lymj*dj. Если j < n, то перейти к шагу 2. Если j=n, то положить y1=x[k+1]=y[n+1], заменить k на k+1, положить j=1 и повторить шаг 1.

Шаг 2. Построить Dj+1 следующим образом:

pjpj(t)          Djqjqj(t)Dj

Dj+1 = Dj +

------------    -   -------------- ,

pj(t)qj            qj(t)Djqj

где

pj = lymj*dj,

qj = grad(f(y[j+1])) - grad(f(yj)).

 

Заменить j на j+1 и перети к шагу 1.