Министерство образования рф
Санкт-Петербургский государственный электротехнический
университет «ЛЭТИ»
Кафедра САПР
ОТЧЕТ ПО ЛАБОРАТОРНОЙ РАБОТЕ № 5
по учебной дисциплине «методы оптимизации»
на тему «Проектирование программы оптимизации»
Вариант 1
Выполнили:
Смирнов С.А.
Маркосов А.С.
Баранов А.А.
Группа: 5372
Факультет: КТИ
Проверил:
(должность, Ф.И.О.)
Санкт-Петербург
2007
Оглавление:
Задание…………………………………………………………………………….3
Описание методов оптимизации…………………………………………………3
Спецификация программы……………………………………………………….4
Листинг программы ……………………………………………………………...5
Результаты тестирования и Выводы…………………….……………………...13
Ответы на контрольные вопросы……………………………………………….13
Задание
Цель работы – изучение современной технологии разработки программ оптимизации, ориентированных на язык C++, и модификация программы, разработанной в лабораторной работе 4.
Описание методов оптимизации
Метод Свенна 4.
Начальный этап. Для запуска метода необходимо:
(1) задать x0 – начальная точка.
(2) выбрать шаг hравным 0.001 илиmin{η,|(y1-y’)/y’1|}, гдеη=1,2.
(3) выбрать направление поиска p.
Основной этап
Шаг 1. Установить направление убывания функции. h=h, еслиy’(x0,p)<0 иh=-h, еслиy’(x0,p)>0.
Шаг 2.Двигаться в направлении р, вычисляя значение функции в точках xk+1=xk+hk*p,hk=2hk-1. Пока производная не поменяет знак, т.е.Y’m-1*Y’m<0
Шаг 3. Фиксируем начальный интервал: [Xm-1,Xm]
Метод Дэвидона.
Этот метод является аналогом метода кубической аппроксимации в задачах поиска минимума функции нескольких переменных по заданному направлению. Идея метода заключается в том, чтобы на ТИЛ найти аппроксимирующий минимум строя полином 3-го порядка.
Начальный этап:
Взять ε, х 0– начальную точку поиска,p– направление поиска.
Найти начальный шаг α1=min{η,|(y1-y’)/y’1|}, гдеη=1,2.y1=y(x1),y’1=y’(x1,p)
Получить начальный интервал поиска [a,b] методом Свенна 4.
Основной этап:
Найти аппроксимирующий минимум, т.е. точку rпо формулам:
r = a+αr *p
αr = α a +γ*( α b - αa )
γ=(z-f’a+W)/(f’b-f’a+2*W)
W=√z2-f’a*f’b
z=f’a+f’b+3*(fa-fb)/(b-a)
Проверить КОП если Y’r<=ε, то остановиться.X=a+αr *pИначе сократить ТИЛ двумя способами:
Y’r<0 -> [r,b]
Y’r>0 -> [a,r]
Установить k=k+1 и вернуться на шаг 1.
Можно модифицировать алгоритм – ввести смещение точек на α0.
Метод Коши
Начальный этап:
Взять ε - погрешность,
х 0– начальную точку поиска,
k=1 – счетчик количества итераций.
Основной этап:
Шаг1: Вычислить антиградиентное направление pk = -grad(yk );
Шаг2: Найти оптимальный шаг αk с помощью метода Дэвидона;
Шаг3: Перейти в новую точку:
- xk+1= xk + αk*pk ;
- k=k+1;
Шаг4: Проверить КОП (любой):
(1) ||∆ xk||<=e1
(2) | ∆yk|<=e2
(3) ||grad(yk)||<=e3
(4) ||∆ xk||/(1+||∆xk||)<=e4
(5) ||grad(yk)||/(1+||grad(yk)||)<=e5
Если КОП выполняется остановимся x* =xк+1 , иначе вернуться на
Шаг1.