Скачиваний:
18
Добавлен:
01.05.2014
Размер:
111.1 Кб
Скачать

Министерство образования РФ

Санкт-Петербургский государственный электротехнический

университет «ЛЭТИ»

Кафедра САПР

ОТЧЕТ ПО ЛАБОРАТОРНОЙ РАБОТЕ № 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)

Описание методов оптимизации:

Метод случайного поиска с возвратом при неудачном шаге

Начальный этап

  1. Выбрать x=x1R, =10-6, k=1 – счётчик числа неудачных попыток

  2. 1=0.51 – начальный шаг

  3. =210 – коэффициент дробления

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

Шаг 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

Начальный этап

  1. Выбрать погрешность расчёта =10-310-7. Получить начальный интервал методом Свенна.

  2. Вычислить стартовые точки 1=a1+0,382L1, 1=a1+0,618L1 (следует отметить, что золотые числа следует вычислять точно)

  3. Принять k=1 – счётчик числа итераций

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

Шаг 1. Взять очередную пробную точку x2=ak+bk-x1, симметричную исходной и сократить ТИЛ рассмотрением 4-х возможных ситуаций:

  1. Если (x1<x2) и (f(x1)<f(x2)) то b=x2;

  2. Если (x1<x2) и (f(x1)>=f(x2)) то a=x1;

  3. Если (x1>x2) и (f(x1)<f(x2)) a=x2;

  4. Если (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.

Ответы на контрольные вопросы:

  1. Выполнить 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. Как реализуется свойство параллельного подпространства в методах Пауэлла-1 и Пауэлла-2?

В методах Пауэлла-1 и Пауэлла-2 на Шаге 1, после спуска в точки xn+1 и xn+2 соответственно находим новое сопряженное направление d, которое либо dk=xn+1-x1, либо dk+1=xn+2-x2

  1. Используя метод сопряженных градиентов найти точку x+ 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=

  1. Являются ли направления p1 = (0; 1)t и p2 = (1; 0)t линейно независимыми? Ортогональными? Сопряженными?

Данные вектора являются ортогональными =>независимы

P1*p2=0*1+1*0=0-Ортогональные

P1*H*p2= - Сопряженные

8

Соседние файлы в папке Всё стасовское новое