
Все лабораторные работы / Всё стасовское новое / 10_our_
.docМинистерство образования РФ
Санкт-Петербургский государственный электротехнический
университет «ЛЭТИ»
Кафедра САПР
ОТЧЕТ ПО ЛАБОРАТОРНОЙ РАБОТЕ № 10
по учебной дисциплине «методы оптимизации»
на тему «Исследование алгоритмов случайного поиска»
Вариант 1
Выполнили:
Смирнов С.А.
Маркосов А.С.
Баранов А.А.
Группа: 5372
Факультет: КТИ
Проверил:
(должность, Ф.И.О.)
Санкт-Петербург
2007
Оглавление:
Задание…………………………………………………………………………….3
Описание методов оптимизации…………………………………………………3
Спецификация программы……………………………………………………….4
Листинг программы ……………………………………………………………...5
Результаты тестирования и Выводы…………………….……………………….7
Ответы на контрольные вопросы………………………………………………...8
Задание:
Цель работы – разработка программы многомерной минимизации целевых функций на основе применения алгоритмов случайного поиска, удовлетворяющей требованиям лабораторной работы 5.
Методы случайного поиска:
М1 – метод поиска с возвратом при неудачном шаге;
Функция y(x) |
Начальная точка (x1)t |
Значение минимума (x*)t |
3(x1 – 4)2 + 5(x2 + 3)2 + 7(2x3 + 1)2 |
(2; –2; –2) (0; 0; 0) |
(4; –3; –0.5) |
100[x3 – 0.25(x1 + x2)2]2 + (1 – x1)2 + (1 – x2)2 |
(–1.5; 2; 0) |
(1; 1; 1) |
Описание методов оптимизации:
Метод случайного поиска с возвратом при неудачном шаге
Начальный этап
-
Выбрать x=x1R, =10-6, k=1 – счётчик числа неудачных попыток
-
1=0.51 – начальный шаг
-
=210 – коэффициент дробления
Основной этап
Шаг 1. Положить счётчик неудачных попыток k=1.
Шаг 2. Получить
реализацию случайного вектора
Шаг 3. Найти пробную точку z=x+kpk
Шаг 4. Если точка z – лучше, чем x (y(z)<y(x)), то положить x=z и перейти на шаг 3, иначе на шаг 5.
Шаг 5. Положить k=k+1. Если k≤M, то перейти на шаг 2, иначе на шаг 6.
Шаг 6. Проверить
КОП: если k≤,
то остановиться и положить x*=z,
иначе
и вернуться на шаг 1.
На Шаге 3 необходимо использовать какой-нибудь из линейных методов, например, алгоритм ЗС-2 или Больцано, как в нашей работе. Для реализации случайного вектора (Шаг 2) используется функция rand().
Алгоритм ЗС-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.
Спецификация программы:
Текст программы:
Алгоритм программы
Результаты тестирования программы
Функция 1 : 3*(x1-4)^2 + 5*(x2+3)^2 + 7*(2x3+1)^2
Метод Больцано:
х0 = (0.000000; 0.000000; 0.000000)
Min = (3.999360; -3.000151; -0.499994)
Метод ЗС-2:
х0 = (0.000000; 0.000000; 0.000000)
Min = (3.999360; -3.000151; -0.499994)
Функция 2 : 100*[x3-0.25*(x1+x2)^2]^2 + (1-x1)^2 + (1-x2)^2
Метод Больцано:
х0 = (-1.500000; 2.000000; 0.000000)
Min = (0.994727; 0.993459; 0.988437)
Метод ЗС-2:
х0 = (-1.500000; 2.000000; 0.000000)
Min = (0.994727; 0.993459; 0.988437)
Выводы:
Была разработана программа многомерной минимизации целевых функций на основе применения алгоритмов случайного поиска. При рассмотрении двух методов – Больцано и ЗС-2 экспериментально установили, что количество итераций в методе ЗС-2 больше и итоговый минимум в методе Больцано получается намного быстрее, нежели в методе ЗС-2.
Ответы на контрольные вопросы:
-
Выполнить 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=
-
Являются ли направления p1 = (0; 1)t и p2 = (1; 0)t линейно независимыми? Ортогональными? Сопряженными?
Данные вектора являются ортогональными =>независимы
P1*p2=0*1+1*0=0-Ортогональные
P1*H*p2=
- Сопряженные