Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка_Практические занятия2.doc
Скачиваний:
4
Добавлен:
10.11.2019
Размер:
7.65 Mб
Скачать

Практическая работа № 8 Градиентные методы оптимизации

Цель: Изучение методов многокритериальной оптимизации.

Градиентные методы относятся к группе методов спуска, являющихся численными методами решения задач безусловной минимизации:

Исходя из заданной начальной точки x(0) методы спуска позволяют строить последовательность точек x(1), x(2), …, удовлетворяющих условию

f(x(k)) < f(x(k-1)), k = 1, 2, … (8.1)

В общей схеме методов спуска последовательность x(0), x(1), x(2),… приближений к точке минимума x* выбирается по правилу

x(k) = x(k-1) + kh(k), k = 1, 2, …,

где h(k) – вектор, определяющий направление убывания функции f(x) (направление спуска) в точке x(k-1);

k – скаляр, определяющий длину шага вдоль h(k).

Название метода спуска определяется способом выбора h(k), а его различные варианты связываются с различными способами выбора k.

Градиентные методы основаны на идее замены минимизируемой функции в окрестности очередной точки x(k) линейной частью ее разложения в ряд Тейлора. В градиентных методах в качестве направления спуска h(k) выбирается антиградиент функции f(x) в точке x(k-1), то есть

x(k) = x(k-1) – kf´(x(k-1)), k = 1, 2, …

Градиентные методы отличаются друг от друга способами выбора параметра k: метод с дроблением шага, метод наискорейшего спуска.

Метод с дроблением шага

В качестве h(k) используют нормированный антиградиент , то есть x(k) определяют как .

Величину k выбирают исходя из условий (8.1).

Выбирают константы  > 0 и 0 <  < 1 (часто ).

На k-й, k=1, 2, ..., итерации проверяется выполнение условия (8.1) при k = . Если оно не выполняется, то производят дробление шага, то есть полагают k =  и вновь проверяют выполнение условия (8.1). Процесс дробления, то есть умножение текущего значения на  продолжают до тех пор, пока условие (8.1) не окажется выполненным.

Алгоритм решения задачи безусловной минимизации методом с дроблением шага заключается в следующем.

1. Задают , , , x(0); вычисляют f(x(0)), f´(x(0)), ||f´(x(0))||, полагают k = 1.

2. Полагают k = .

3. Вычисляют x(k) = x(k-1) + x(k), f(x(k)).

4. Проверяют условие выбора k: f(x(k)) < f(x(k-1)).

Если оно выполняется, то осуществляют переход к пункту 5. Если условие не выполняется, то полагается k= k и осуществляют переход к пункту 3.

5. Вычисляют f´(x(k)), ||f´(x(k))||.

6. Проверяют условие окончания вычислений ||f´(x(k))||  ε. Если оно выполняется, то полагают x*x(k), f*f(x(k)) и вычисления завершают. Если условие не выполняется, то полагают k = k + 1 и осуществляют переход к пункту 2.

Помимо рассмотренного применяют алгоритм, в котором в качестве начального значения k используют конечное значение k-1 При этом в пункте 1 рассмотренного алгоритма добавляют определение 0: полагают 0 = ; в пункте 2 алгоритма заменяют определение k: полагают k = k-1.

Пример

Решить методом с дроблением шага задачу безусловной минимизации при  = 1,  = 1/2,  = 0,3, x(0) = (1, 0).

Решение

Находят первые частные производные f(x):

Используют второй (упрощенный) вариант метода с дроблением шага. Результаты вычислений заносят в табл. 8.1. Поскольку условие окончания вычислений выполнено.

Так как ||f´(x(3))|| = 0,188 <  = 0,3, то вычисления завершают. В результате решения задачи безусловной минимизации получают:

x*x(3) = (2; –0,547), f*f(x(3)) = –4,496.

Ответ: x* (2; –0,547), f*  –4,496.

Метод наискорейшего спуска

На каждой итерации шаг k выбирается из условия минимума функции f(x) в направлении движения, то есть

f(x(k-1)) – kf´(x(k-1)) = , где () = f(x(k-1)) – kf´(x(k-1)).

Таблица 8.1. Метод с дроблением шага

Номер итерации

x1

x2

x1

x2

f(x)

||f´||

0

1

0

–3

–2

2

2,83

1

1

0,707

–0,707

1,71

–0,707

–4,32

–0,586

–0,828

1,01

2

1

0,580

0,820

2,29

0,113

–3,67

f(x(2)) > f(x(1))   =  = 0,5

2

0,5

0,29

0,410

2,00

–0,297

–4,42

0

0,812

0,812

3

0,5

0

–0,5

2,00

–0,797

–4,32

f(x(3)) > f(x(2))   =  = 0,25

3

0,25

0

–0,25

2,00

–0,547

–4,96

0

–0,188

0,188

Такой способ выбора k требует меньшего числа итераций, чем предыдущий, поскольку он обеспечивает достижение наименьшего значения функции вдоль заданного направления. Однако в этом варианте градиентного метода на каждой итерации требуется решать задачу одномерной минимизации, что приводит к увеличению трудоемкости итерации. Метод наискорейшего спуска требует меньшего числа итераций, чем метод с дроблением шага, но каждая итерация сложнее реализуется.

Алгоритм решения задачи безусловной минимизации методом наискорейшего спуска заключается в следующем.

1. Задают , x(0); вычисляют f(x(0)), f´(x(0)), ||f´(x(0))||, полагают k = 1.

2. Определяют k.

3. Вычисляют x(k) = –kf´(x(k-1)), x(k) = x(k-1) + x(k), f(x(k)), f´(x(k)), ||f´(x(k))||.

4. Проверяют условие окончания вычислений ||f´(x(k))||  . Если оно выполняется, то x*x(k), f*  f(x(k)) и вычисления завершают. Если условие не выполняется, то полагают k = k + 1 и осуществляют переход к пункту 2.

Пример

Решить методом наискорейшего спуска задачу безусловной минимизации:

при  = 0,3, x(0) = (1, 0).

Решение

Находят первые частные производные f(x):

Первая итерация. Определяют 1:

() = f(x(0) – f´(x(0))) = (1 + 2)2 + 2(–2)2 – 4(1 + 2) + 2(–2);

´() = 2(1 + 2)2 + 4(–2)(–2) – 8 – 4;

´() = 0  24 – 8 > 0   = 1/3.

Поскольку ´´() = 0  24 > 0, то  = 1/3 является точкой минимума (). Следовательно, 1 = 1/3 = 0,333.

Вторая итерация. Определяют 2:

() = f(x(1) – f´(x(1))) = (1,667 + 0,667)2 + 2(–0,667 + 0,667)2

– 4(1,667 +0,667) + 2(–0,667 + 0,667);

´() = 2(1,667 + 0,667)0,667 +

+ 4(–0,667 + 0,667)0,667 – 40,667 + 20,667 = 2,667 – 0,886;

´() = 0  2,667 – 0,886 = 0   = 0,332.

Поскольку ´´() = 2,667 > 0, то  = 0,332 является точкой минимума (). Следовательно, 2 = 0,332.

Третья итерация. Определяют 3:

() = f(x(2) – f´(x(2))) = (1,89 + 0,22)2 + 2(–0,445 + 0,22)2

– 4(1,89 + 0,22) + 2(–0,445 + 0,22);

´() = 2(1,89 + 0,22)0,22 + 4(–0,445 + 0,22)(–0,22) –

– 40,22 + 2(–0,22) = 0,29 – 0,0968;

´() = 0  0,29 – 0,0968 = 0   = 0,333.

Поскольку ´´() = 0,29 > 0, то  = 0,333 является точкой минимума (). Следовательно, 3 = 0,333.

Результаты вычислений заносят в табл. 8.2.

Поскольку условие окончания вычислений выполнено

||f´(x(3))|| = 0,105 <  = 0,3,

то вычисления завершаются. В результате решения задачи безусловной минимизации получаем x*x(3) = (1,96; –0,518), f*f(x(3)) = –4,5.

Ответ: x*  (1,96; –0,518), f*  –4,5.

Таблица 8.2. Результаты итераций

Номер итерации

x1

x2

x1

x2

f(x)

||f´||

1

1

0

–3

–2

2

2,283

2

0,333

0,667

–0,667

1,67

–0,667

–4,33

–0,667

–0,667

0,943

3

0,333

0,222

0,222

1,89

–0,445

–4,48

–0,22

0,22

0,311

4

0,333

0,074

–0,074

1,96

–0,518

–4,5

–0,074

–0,074

0,105

Внешний вид минимизируемой функции в трехмерном пространстве (x1, x2, f(x)) изображен на рис. 8.1.

Рис. 8.1. Внешний вид минимизируемой функции

Задание

1. В соответствии с заданным вариантом решить задачу безусловной минимизации градиентным методом с дроблением шага.

2. В соответствии с заданным вариантом решить задачу безусловной минимизации градиентным методом наискорейшего спуска.

Содержание отчета

1. Расчет задачи безусловной минимизации градиентным методом с дроблением шага.

2. Расчет задачи безусловной минимизации градиентным методом наискорейшего спуска.

3. Таблицы 8.1 и 8.2.

4. Внешний вид минимизируемой функции (рис. 8.1).

Вопросы

1. Какие методы относятся к градиентным?

2. Опишите метод с дроблением шага.

3. Опишите метод наискорейшего спуска.

4. Какие методы минимизации существуют?

5. По какому признаку определяется название методов градиентной оптимизации?

6. Назовите основную идею, лежащую в основе градиентных методов.

Библиографический список:

1. Арсеньев Ю.Н., Шелобаев С.И., Давыдова Т.Ю. Принятие решений. Интегрированные интеллектуальные системы: Учеб. пособие для вузов. – М: ЮНИТИ-ДАНА, 2003. – 270 с.

2. Ларичев О.И. Теория и методы принятия решений, а также Хроника событий в Волшебных Странах: Учеб. пособие для вузов. Издание второе. – М.: Логос, 2002. – 329 с.

3. Николаев В.И., Брук В.М. Системотехника: Методы и приложения. – Л.: Машиностроение, 1985. – 199 с.

4. Харчистов Б.Ф. Методы оптимизации: Учеб. пособие. – Таганрог: Изд-во ТРТУ, 2004. – 140 с.

1 * - сравнение не проводится

22