
Все лабораторные работы / Всё стасовское новое / 9_our_
.docМинистерство образования РФ
Санкт-Петербургский государственный электротехнический
университет «ЛЭТИ»
Кафедра САПР
ОТЧЕТ ПО ЛАБОРАТОРНОЙ РАБОТЕ № 9
по учебной дисциплине «методы оптимизации»
на тему «Исследование методов безусловной оптимизации нулевого порядка»
Вариант 1
Выполнили:
Смирнов С.А.
Маркосов А.С.
Баранов А.А.
Группа: 5372
Факультет: КТИ
Проверил:
(должность, Ф.И.О.)
Санкт-Петербург
2007
Оглавление:
Задание…………………………………………………………………………….3
Описание методов оптимизации…………………………………………………3
Спецификация программы……………………………………………………….4
Листинг программы ……………………………………………………………...5
Результаты тестирования и Выводы…………………….……………………….7
Ответы на контрольные вопросы………………………………………………...8
Задание:
Цель работы – исследование прямых методов многомерной минимизации и разработка программы, удовлетворяющей требованиям лабораторной работы 5.
Методы оптимизации:
М1 – метода конфигураций (Хука–Дживса);
Функция y(x) |
Начальная точка (x1)t |
Значение минимума (x*)t |
(x2 – x12)2 + (1 – x1)2 |
(1.5; 2) (0; 0) (–1.2; 1) |
(1; 1) |
[1.5 – x1(1 – x2)]2 + [2.25 – x1(1 – x22)]2 + + [2.625 – x1(1 – x23)]2 |
(0; 0) |
(3; 0.5) |
Описание методов оптимизации:
Алгоритм ЗС-2
Начальный этап
-
Выбрать погрешность расчёта =10-310-7. Получить начальный интервал методом Свенна.
-
Вычислить стартовые точки 1=a1+0,382L1, 1=a1+0,618L1 (следует отметить, что золотые числа следует вычислять точно)
-
Принять k=1 – счётчик числа итераций
Основной этап
Шаг 1. Взять очередную пробную точку x2=ak+bk-x1, симметричную исходной и сократить ТИЛ рассмотрением 4-х возможных ситуаций:
-
Если (x1<x2) и (f(x1)<f(x2)) то b=x2;
-
Если (x1<x2) и (f(x1)>=f(x2)) то a=x1;
-
Если (x1>x2) и (f(x1)<f(x2)) a=x2;
-
Если (x1>x2) и (f(x1)>=f(x2)) b=x1;
Увеличить счётчик числа итераций k=k+1
Шаг 2. Проверить
критерий окончания поиска: если
|ak+1-bk+1|
- остановиться – минимум найден. Точнее
фиксируем аппроксимирующий минимум
как
.
Иначе вернуться на Шаг 1.
Метод Хука-Дживса (конфигураций)
Эффективность прямого поиска точки минимума можно повысить, если на каждом k-м шаге поиска соответствующим образом выбирать направление спуска. Для этого на каждом k-м шаге выделяют предварительный этап исследующего поиска. Целью этого этапа является выбор направления спуска путем исследования поведения целевой функции f(x) в окрестности точки xk-1, найденной на предыдущем шаге. В результате выполнения этапа исследующего поиска находится точка xk, для которой f(xk) < f(xk-1). Направление спуска, завершающего k-w. шаг поиска, определяется вектором xk - xk-1. Такая стратегия поиска, получила название метода Хука - Дживса.
Исследующий поиск 1
Вдоль координатных орт выполняют малые шаги. Т.е. локальное обследование точки х1, для поиска лучшей чем х1 точки. Если шаг удачный то точку фиксируют и продолжают шаги из неё, если не удачный то делают шаг в противоположную сторону, если полученная точка снова хуже, то по этой оси шаг не делается.
Ускоряющий поиск
Выполняем единичный
шаг вдоль направления
,
.
Затем производим исследующий поиск в
окрестности x3, в надежде найти
точку лучшую чем x2.
Начальный этап
β = 10, ε = 10-4 – 10-8 , k = 1, х1, h1= … =hn=0.1;
Основной этап
Шаг 1. Выполнить
ИП1 и отыскать т. х2 для которой
.
Шаг 2. Если ИП1 удачен т.е. найдена х2, то перейти на шаг 3, иначе, но в то же время h<ε необходимо уменьшить шаг в β раз и вернуться на шаг 1. При h<ε остановиться х* = х1.
Шаг 3. Выполнить
УП в пробную точку
.
Обозначить
.
В окрестности х3 попытаться ИП2 найти т. х4 «лучшую» чем х1.
Шаг 4. Если ИП2
удачен, то положить
и вернуться на шаг 1.
Иначе: уменьшить шаг в β раз и вернуться на шаг 1.
Спецификация программы:
Текст программы:
Алгоритм программы
Результаты тестирования программы
-
Функция
Результаты
(x2 – x12)2 + (1 – x1)2
X0=(0.000000;0.000000))
MIN= (1.000000;1.000000)
[1.5 – x1(1 – x2)]2 + [2.25 – x1(1 – x22)]2 + [2.625 – x1(1 – x23)]2
X0=(0.000000;0.000000))
MIN= (3.000000;0.500000)
При пошаговом выполнении выводится значение нормы вектора, по которой определяем критерий окончания поиска
Итерация |
Норма вектора |
1 |
1.41421 |
2 |
1.41421 |
3 |
0.141421 |
4 |
0.141421 |
5 |
0.141421 |
6 |
0.141421 |
Выводы:
Были изучены прямые методы многомерной минимизации и разработана программа, описывающая эти методы. При пошаговом выполнении программы вывели значение нормы вектора, по которой определяется критерий окончания поиска.
Ответы на контрольные вопросы:
-
Выполнить 2 шага аналитического решения задачи Вашего варианта задания.
Пусть дана функция: f(x1,x2)=(1-x2)^2+(x1-x2)^2, x1=(0,0)
Ш1:
p1=-g1=
Ш2:
x2==>f(a1)=(1-2*a1)^2+(-2*a1)^2
F’(a1)=-4(1-2*a1)+8*a1=0 => a1=1/4
Ш3:
x2=
Ш4:
||g1||=2>E
K=2
Ш1:
p2=-g1+b1*p1 g2=g(x2)=
=> j1=g2-g1=
B1=(g2*j1)/(p1*j1)=
P2=-+1/4*
=
x3=
=
F(a2)=(1-1/2-1/2*a2)^2+(a2-1/2-1/2*a2)^2
F’(a2)=-1/8*(1-a2)
=> a2=1 =>x3==
=>g3=g(x3)=
=>||g3||=0 STOP
-
Как реализуется свойство параллельного подпространства в методах Пауэлла-1 и Пауэлла-2?
В методах Пауэлла-1 и Пауэлла-2 на Шаге 1, после спуска в точки xn+1 и xn+2 соответственно находим новое сопряженное направление d, которое либо dk=xn+1-x1, либо dk+1=xn+2-x2
-
Используя метод сопряженных градиентов найти точку xk + 1 для функции y(x) = x12 + 2x1x2 + x22 и xk = (1; 1; 1)t.
Ш1:
p1=-g1==
Ш2:
x2==>f(a1)=(1+4*a1)^2+2*(1+4*a1)*(1+4*a1)+(1+4*a1)^2
F’(a1)=32*(1+4*a1) =0 => a1=1/4
Ш3: x2=
Ш4:
||g1||=(4+4+1)^1/2=3
> E
4. Определить характер матрицы Гессе функции y(x) = (x2 – x1)2 + + (1 – x1)2 в точке минимума x* = (1; 1)t. Используя матрицу Гессе найти направление, сопряженное к p = (1; 0)t.
G=
=>H=
P1*H*p2=0
=>
Пусть y=2
=> x=1
=> p2=
-
Для функции y(x) = 3x12 + 5x22 привести 2 итерации поиска Хука–Дживса.
Принять x1 = (2; 1)t, h = 0.5. => f(x1)=17
X1: z1=(2.5;1)=>y=23,75 z1=(1.5;1)=>y=11.75 +
X2: z1=(1.5;0.5)=>y=8 +
Получили точку x2=(1.5;0.5) => x3=2*x2-x1=2*x2=(3;1) x1=x2=(1.5;0.5)
X1: z1=(2;0.5)=>y=13.25 z1=(1;0.5)=>y=4.25+
X2: z1=(1;1)=>y=8 z1=(1;0)=3+
Получили x2=(1;0) => x3=2*x2-x1=(2;0) - (1.5;0.5)=(0.5;-0.5) x1=x2=(1;0)
X1: z1=(1;-0.5)=>y=4.25 z1=(0;0.5)=>y=1.25+
X2: z1=(0;0)=>y=0+
Получили х2=(0;0) =>x3=2*x2-x1=(-1;0) x1=x2;
X1: z1=(-1.5;0)=>y=0.75 z1=(-1.5;0)=>y=6.75
X2: z1=(-1;0.5)=>y=4.25 z1=(-1;-0.5)=4.25
Неудачный ИП=>возвращаемся на Ш1: x1=(0;0),h=h/b=h/10->прогоняем все снова и получим лучшую точку x*=(0;0) при уменьшении шага.