Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабы по МетОпт 2024 / Лабораторная работа №1

.pdf
Скачиваний:
0
Добавлен:
09.09.2026
Размер:
1 Мб
Скачать
МИНОБРНАУКИ РОССИИ
САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ
ЭЛЕКТРОТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
«ЛЭТИ» ИМ. В.И. УЛЬЯНОВА (ЛЕНИНА)
Кафедра МО ЭВМ
ОТЧЁТ
по лабораторной работе №1
Тема: исследование методов безусловной минимизации
Студенты гр. 238
Преподаватель
Балтрашевич В.Э.
Санкт-Петербург
2024
3
Анищенко А.И.
Бараева Е.Н.
2
Цель работы
Исследовать методы безусловной минимизации значения функции.
Задание
1. Запустить lab1.exe.
2. Провести исследования всех методов (кроме овражного) поочерёдно a. для следующих значений параметра a: 0,1; 1; 10. b. при разных начальных точках: (3, 8); (2, 5); (4, 23).
3. В отчёте привести: a. целевую функцию; b. формулы всех исследованных методов; c. результаты испытаний методов; d. сравнительный анализ методов безусловной оптимизации.
Примечание: при смене данных учесть, что вызовом пункта меню является
цифра в крайней правой позиции строки. Число больше шести является
признаком выхода из программы.
Основные теоретические положения
Допустимым множеством является n-мерное евклидово пространство
. Пусть функция  дифференцируема. Тогда в точке минимума выполняется
равенство:
󰇛󰇜 
где 󰇛󰇜
󰇡





󰇢
(вектор из частных производных функции ), и
условие 󰇛󰇜  является необходимым условием локального экстремума дифференцируемой функции . Уравнение 󰇛󰇜  является нелинейным и
поиск всех его решений во многих случаях труден. Альтернативой ему являются
релаксационные методы – методы построения последовательности
󰇝
󰇞
,  
со следующими свойствами:
1. 󰇛
󰇜
 󰇛
󰇜
 ;
2.  󰇝󰇛󰇜  
󰇞
.
3
Все рассматриваемые методы делятся на несколько групп в зависимости
от порядка производной функции , используемой для вычисления
последовательности. Порядком метода называется порядок старшей
производной , вычисляемой при реализации этого метода. Если производные не используются, то порядок метода равен нулю.
Общая схема методов безусловной оптимизации. Основная итерационная
формула методов:

 
где  – некоторый вектор, определяющий направление изменения ;
скаляр, обычно называемый длиной шага.
Вектор  может зависеть только от :  󰇛
󰇜
, может зависеть от
󰇛


󰇜
, от
󰇛


󰇜
и т.д. В зависимости от этого методы делятся на:
– одношаговые ( 󰇛
󰇜
);
– двухшаговые ( 󰇛

󰇜
);
– и т.д. Методы первого порядка (градиентные методы). Для вычисления и 
используются значения функции и её первой производной. Известно, что
градиент 󰇛󰇜 даёт направление наибольшего возрастания функции в точке
. Направление наибольшего убывания – это направление антиградиента 󰇛
󰇜
. Наиболее распространены методы, для которых  󰇛
󰇜
, а 
.
Градиентный метод с постоянным шагом. Пусть шаг не зависит от
(т.е. постоянный). Тогда итерационная формула метода имеет вид

 
󰇛
󰇜
. Очевидно, что 

 , если 󰇛
󰇜
 .
Градиентный метод с дроблением шага. Выбор постоянного шага может
привести к осложнениям. Итерационная формула градиентного метода с
дроблением шага имеет вид

 󰇛
󰇜
, при этом шаг выбирается из
условия
󰇛

󰇜
󰇛
󰇜
 
󰇛
󰇜
4
где      не зависит от .
Алгоритм:
1. Выбираем начальный шаг .
2. Проверяем выполнение соотношения. Если соотношение выполняется,
то вычисляем следующую точку; если не выполняется, длину шага делим на два, затем проверяем снова.
Критерий остановки:
󰇛
󰇜
 , где  – наперёд заданная величина.
Градиентный метод с убыванием шага как
 
. Итерационная формула
метода имеет вид

 󰇛
󰇜
единственное
убывает с каждым шагом как
 
.
Метод наискорейшего спуска. В схеме метода наискорейшего спуска
вычисляется оптимальное значение шага на каждой итерации:
 

󰇛
󰇜
Характерная черта метода: градиенты функции в соседних точках
ортогональны:

󰇛
󰇜

  󰇡󰇛
󰇜
󰇛
󰇜
󰇢
󰇛

󰇜
󰇛
󰇜
 
Графическая интерпретация (см. Рисунок 1): в начальной точке проводим
касательную к линии уровня и делаем шаг оптимальной величины в направлении
перпендикуляра к касательной в данной точке. Получив новую точку, повторяем
действия и т.д.
Рисунок 1 – Иллюстрация работы метода наискорейшего спуска
5
Метод Ньютона-Рафсона. Используется для вычисления точки
локального минимума функции и переменных, обладающей третьими
производными по всем переменным. Последовательность
󰇝

󰇞
приближений к стационарной точке строится по формуле:

 

󰇛
󰇜󰇛
󰇜
где 󰇛
󰇜
󰇛
󰇜


матрица Гессе размером   функции в точке
.
Метод тяжёлого шарика. Общая схема метода тяжёлого шарика:

 󰇛
󰇜
󰇛

󰇜
Это разностное уравнение, полученное из дифференциального уравнения,
которое описывает движение шарика, катящегося по некоторой поверхности с
постоянным трением. Введение инерции 󰇛

󰇜
увеличивает скорость сходимости. Модификация двухшагового метода – метод сопряжённых градиентов.
Метод сопряжённых градиентов. Итерационная схема метода
сопряжённых градиентов имеет вид

 󰇛
󰇜

󰇛


󰇜
Она отличается от схемы метода тяжёлого шарика тем, что числа и
зависят от шага и выбираются следующим образом:
󰇛

󰇜
 󰇛
󰇜
󰇛

󰇜
    
Модификация Полака-Рибьера. Итерационная схема метода имеет вид:

 
где  󰇛
󰇜
;   ;  󰇛
󰇜


; 
󰇛
󰇜
󰇛

󰇜
󰇛
󰇜
󰇛

󰇜
,  .
Для квадратичной функции последовательность точек
, определённая
этими формулами, совпадает с последовательностью, полученной методом
сопряжённых градиентов.
6
Рекомендуется применять процедуру обновления, т.е. через каждые n
шагов происходит сдвиг в направлении антиградиента.
Таким образом,  , затем  , …, 

 , следовательно, 
󰇛

󰇜
 
󰇛
󰇜
 󰇛

󰇜
(сдвиг в направлении антиградиента).
Скорость сходимости метода сопряжённых градиентов выше, чем для
метода наискорейшего спуска, но ниже, чем для метода Ньютона.
Метод Давидона-Флетчера-Пауэлла (ДФП). Метод перевычисления
матриц
имеет вид

 

󰇛

󰇜
󰇛

󰇜


󰇛

󰇜
 
Проверим выполнение квазиньютоновского условия:

 

󰇛

󰇜
󰇛

󰇜

󰇛

󰇜
󰇛

󰇜
 
Для квадратичной функции метод сходится за шагов, где – размерность
пространства состояний. Скорость сходимости этого метода сверхлинейная
(быстрее геометрической прогрессии). Сходимость глобальная. Объединяет
достоинства градиентных методов и метода Ньютона.
Процедура применения: на очередном шаге, имея
, делаем шаг в
направлении . Получаем
(например, по методу наискорейшего спуска),

, вычисляем и пересчитываем 

для следующего шага.
Недостаток (по сравнению с методом сопряжённых градиентов): надо
хранить и пересчитывать  размерностью  .
Метод Бройдена-Флетчера-Шенно. Метод перевычисления матриц 
имеет вид

 

󰇛
󰇜

󰇛
󰇜

󰇛
󰇜
󰇛

󰇜
где  
󰇛

󰇜
󰇛

󰇜
,  .
7
Примечание: последовательности
, генерируемые каждым вариантом,
для квадратичной функции совпадают. Существует много других модификаций
приведённых квазиньютоновских методов.
Выполнение работы
Целевая функция 󰇛󰇜󰇛
󰇜
󰇛
󰇜
. Минимального
значения для любого параметра функция достигает в точке (1, 1).
Градиентный метод с постоянным шагом. Результаты работы алгоритма
при различных параметрах и стартовых точках приведены в Таблица 1. Таблица 1 – Результаты для градиентного метода с постоянным шагом
(x, y)\a
Количество шагов
  
  
  
(3, 8)
500+
500+
500+
(2, 5)
500+
150
500+
(4, 23)
500+
Параметры запуска, такие как начальная длина и количество шагов представлены в Таблица 2. Таблица 2 – Параметры запуска градиентного метода с постоянным шагом
(x, y)\a
  
  
  
Шаг
Количество
Шаг
Количество
Шаг
Количество
(3, 8)
0,05
500
0,05
500
0,02
500
(2, 5)
0,1
500
0,1
150
0,02
500
(4, 23)
0,1
0,01
10
500
0,1
0,01
10
500
0,1
0,02
10
500
Процесс поиска решения показан на Рисунок 2.
Рисунок 2 – Градиентный метод с постоянным шагом
8
Метод может сойтись, если угадать с шагом и выбрать хорошую начальную точку. Сходимость также зависит от значения параметра . Даже так, ему всё ещё требуется большое количество шагов.
Градиентный метод с дроблением шага. Результаты работы метода при различных параметрах и стартовых точках приведены в Таблица 3. Таблица 3 – Результаты для градиентного метода с дроблением шага
(x, y)\a
Количество шагов
  
  
  
(3, 8)
500+
114
(2, 5)
500+
229
65
(4, 23)
500+
500+
152
Параметры запуска, такие как начальная длина и количество шагов представлены в Таблица 4. Таблица 4 – Параметры запуска градиентного метода с дроблением шага
(x, y)\a
  
  
  
Шаг
Количество
Шаг
Количество
Шаг
Количество
(3, 8)
0,01
0,1 1 100
1
500
1
500
(2, 5)
0,1
10
500
10
500
5
100
(4, 23)
1,5
500
10
500
5
300
Процесс поиска решения показан на Рисунок 3.
Рисунок 3 – Градиентный с дроблением шага
Метод сработал значительно лучше предыдущего, для большого значения
удалось определить конечное количество шагов, во всех остальных случаях
9
метод показал правильное направление движения, но количество шагов, необходимое для достижения минимума на порядок превышает пятьсот. В одном случае метод не сошёлся.
Градиентный метод с убыванием шага как  
. Результаты работы метода при различных параметрах и стартовых точках приведены в Таблица 5. Таблица 5 – Результаты для градиентного метода с убыванием шага
(x, y)\a
Количество шагов
  
  
  
(3, 8)
– – –
(2, 5)
– – –
(4, 23)
– – –
Параметры запуска, такие как начальная длина и количество шагов представлены в Таблица 6. Таблица 6 – Параметры запуска градиентного метода с убыванием шага
(x, y)\a
  
  
  
Шаг
Количество
Шаг
Количество
Шаг
Количество
(3, 8)
0,0001
10
0,0001
10
0,0001
10
(2, 5)
0,0001
10
0,0001
10
0,0001
10
(4, 23)
0,01
100
0,1
0,01
100
0,0001
10
Процесс поиска решения показан на Рисунок 4 и Рисунок 5.
Рисунок 4 – Убывание шага, точка (3, 8), параметр 0,1
Рисунок 5 – Убывание шага, начальная точка (4, 23), параметр 1
10
Метод либо не сходится совсем, либо за огромное количество шагов. На
каждой итерации шаг убывает, что замедляет работу метода. Большой
начальный шаг выбирать тоже не удаётся, из-за этого метод расходится в начале.
При этом метод требует всего лишь одного вычисления функции на каждой
итерации.
Метод наискорейшего спуска. Результаты работы метода при различных параметрах и стартовых точках приведены в Таблица 7. Таблица 7 – Результаты для метода наискорейшего спуска
(x, y)\a
Количество шагов
  
  
  
(3, 8)
400
99
27
(2, 5)
330
20
80
(4, 23)
500+
94
25
Параметры запуска, такие как начальная длина и количество шагов представлены в Таблица 8. Таблица 8 – Параметры запуска метода наискорейшего спуска
(x, y)\a
  
  
  
Шаг
Количество
Шаг
Количество
Шаг
Количество
(3, 8)
0,01
400
0,01
400
0,01
400
(2, 5)
0,01
400
0,01
400
0,01
400
(4, 23)
10
500
1
400
1
400
Процесс поиска решения показан на Рисунок 6 и Рисунок 7.
Рисунок 6 – Метод наискорейшего спуска