Кафедра мо эвм
ОТЧЕТ
по лабораторной работе № 2 по дисциплине
"Методы оптимизации"
“ МЕТОДЫ УСЛОВНОЙ МИНИМИЗАЦИИ ”
Выполнили: Воробьёв А.В.
Ламеров Д.Ю.
Швецов М.Н.
Шефер Е.В.
Факультет КТИ
Группа № 4352
Проверил Балтрашевич В.Э.
«Выполнено» «____» _______ ____
Подпись преподавателя __ _
Санкт-Петербург
2006
Цель работы.
Исследовать МЕТОДЫ УСЛОВНОЙ МИНИМИЗАЦИИ:
1) метод проекции градиента
градиентный с дроблением шага
наискорейшего спуска
метод Ньютона с одномерной минимизацией
метод Полака-Ривьера
2) метод условного градиента
3) метод функции Лагранжа
Рассматривается задача поиска минимума функции f на допустимом множестве X:
X={x Rn , gi(x) ≤ 0, i=1..m}, где f и все gi – выпуклы
Исследование проводится на примере целевой функции:
f(x1,x2)=(x1-b)4+a*(x2+3-b)4; xR2
– для следующих значений параметра а:
а=0.1; а=1;
– для следующих значений параметра b:
b=0; b=3;
– при разных начальных точках x0:
(3 , 8) (3, 10) (10, 20)
Ограничения:
Минимум функции при a=0.1 и b=0 находится в точке x* = (0,0), причем f(x*) = 8.100.
Минимум функции при а=1 и b=0 находится в точке x* = (0,0), причем f(x*) = 81.000.
Минимум функции при а=0.1 и b=3 находится в точке x* = (~2.76,~0.68), причем f(x*)~0.024.
Минимум функции при a=1 и b=3 находится в точке x* = (~2.56,~0.60), причем f(x*) ~0.168.
2. Испытания методов.
2.1. Методы проекции градиента
Этот метод является обобщением градиентного метода для задачи условной минимизации с выпуклым допустимым множеством. Так как возможен выход за пределы допустимого множества, то вводится операция проектирования на X (поиск ближайшей точки на X):
xk+1= px (xk- f(xk)), где px проектор на X
2.1.1. Градиентный метод с дроблением шага
Описание метода
Итерационная формула метода , при этом шаг выбирается из условия :
. (*)
Иллюстрация:
Необходимо двигаться к х*. В начальной точке проводим касательную к линии уровня и идем по перпендикуляру к касательной в этой точке с шагом соответствующей величины. Если оказываемся на линии уровне дальше, чем были, то делим шаг пополам, проводим линию уровня, касательную и шагаем по перпендикуляру и т.д.
Алгоритм:
Выбираем начальный шаг t.
Проверяем условие (*): если соотношение выполняется, то вычисляем следующую точку, иначе t делим на 2 и снова проверяем условие и т.д.
Исследование метода
b=0
x0 |
(3 , 8) |
(3, 10) |
(10, 20) | |||
a |
0.1 |
1 |
0.1 |
1 |
0.1 |
1 |
k* |
9 |
16 |
9 |
17 |
11 |
19 |
xk* |
(0.000; 0.000) |
(0.000; 0.000) |
(0.000; 0.000) |
(0.000; 0.000) |
(0.000; 0.000) |
(0.000; 0.000) |
f(xk*) |
8.100 |
81.000 |
8.100 |
81.000 |
8.100 |
81.000 |
b=3
x0 |
(3 , 8) |
(3, 10) |
(10, 20) | |||
a |
0.1 |
1 |
0.1 |
1 |
0.1 |
1 |
x20 |
(2.997635; 0.779430 ) |
(2.579228; 0.609093) |
(3.000000 ; 0.793994) |
(2.584570; 0.611131 ) |
(3.226579; 0.882104) |
(2.672009; 0.644983) |
f(x20) |
0.03690697 |
0.16898347 |
0.03974369 |
0.16927285 |
0.06318064 |
0.18463127 |
k* |
144 |
40 |
145 |
41 |
169 |
47 |
f(xk*) |
0.02468595 |
0.16861399 |
0.02468595 |
0.16861399 |
0.02468595 |
0.16861399 |
Итерационный процесс для x0 = (3, 8), a = 0.1, b=0:
шаг x1 x2 f 1 2.325000 4.672500 375.75616748 2 1.696596 2.414205 94.21420662 3 1.208241 0.827106 23.58384820 4 0.782743 0.109508 9.72441965 5 0.426698 0.051908 8.70847516 6 0.255373 0.028840 8.42024148 7 0.125230 0.013316 8.24501930 8 0.014589 0.001470 8.11588415 9 0.000000 0.000000 8.10000000 |