Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
8
Добавлен:
01.05.2014
Размер:
362.5 Кб
Скачать

Кафедра мо эвм

ОТЧЕТ

по лабораторной работе № 2 по дисциплине

"Методы оптимизации"

“ МЕТОДЫ УСЛОВНОЙ МИНИМИЗАЦИИ

Выполнили: Воробьёв А.В.

Ламеров Д.Ю.

Швецов М.Н.

Шефер Е.В.

Факультет КТИ

Группа № 4352

Проверил Балтрашевич В.Э.

«Выполнено» «____» _______ ____

Подпись преподавателя __ _

Санкт-Петербург

2006

  1. Цель работы.

Исследовать МЕТОДЫ УСЛОВНОЙ МИНИМИЗАЦИИ:

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. Градиентный метод с дроблением шага

Описание метода

Итерационная формула метода , при этом шаг выбирается из условия :

. (*)

Иллюстрация:

Необходимо двигаться к х*. В начальной точке проводим касательную к линии уровня и идем по перпендикуляру к касательной в этой точке с шагом соответствующей величины. Если оказываемся на линии уровне дальше, чем были, то делим шаг пополам, проводим линию уровня, касательную и шагаем по перпендикуляру и т.д.

Алгоритм:

  1. Выбираем начальный шаг t.

  2. Проверяем условие (*): если соотношение выполняется, то вычисляем следующую точку, иначе 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