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

Информационные системы менеджмента - Бажин И.И

..pdf
Скачиваний:
168
Добавлен:
24.05.2014
Размер:
12.28 Mб
Скачать

Глава 6. Методы поиска оптимальных решений

351

3. Следующее вычисление значения функции проводится в точке, расположен­ ной от конца отброшенной части интервала на расстоянии TLk, где 1_|< - новая длина интервала, полученного после отбрасывания подынтервала на предыду­ щем шаге.

4.Повторяем процедуру исключения подынтервалов и вычисления значений функции в новых точках.

5.Процесс поиска заканчивается либо при достижении заданной величины дли­

ны интервала S (или относительной погрешности), либо при достижении задан­ ной относительной точности искомого значения функции.

Рассмотрим пример. Минимизировать f(x) = (100 - х)2 в интервале

60 < х < 150 с точностью 8 = 0,05 (относительная погрешность еотн= s/L = = 0,05/90 = 0,00555).

а = 60; b = 150; L = b - а = 150-60 = 90;

Итерация 1.

 

 

X-i = а +

(1 - T)L = а + 0.382L = 60 + 0,382*90 = 94,38

Х2 = а +

Tl_ = a + 0,618L=

60+ 0,618*90 = 115,5

fl = f(a +

0.382L) = f(94,38)

= 31,584

f 2 = f ( a +

0,618l_) = f(115,5)

= 243,98

 

f 2 > f i

 

Таким образом, исключается интервал правее точки Х2 - (115,5; 150). Длина интервала поиска уменьшается с 90 до 55,5

а = 60; Ь = 115,5; Lk = b - а

= 115,5 - 60 = 55,5

Итерация 2

 

 

 

Х1 =

а +

(1 - T)L = а + 0,3821.

= 60 + 0,382*55,5 = 81,25

Х 2 = а +

X L ^ a + 0,6181. = 60+ 0,618*55,5 = 94,299

f-l =

f(a +

0.382L) = f(81,25) = 353,402

f2 =

f(a +

0,618L) = f(94,299) = 32,501

 

 

fl>f2

 

Таким образом, исключается интервал левее точки Х-j _ (60; 81,25). Длина интервала поиска уменьшается с 55,5 до 34,25.

а = 81,25; Ь = 115,5; Ц = b - а = 115,5 - 81,25 = 34,25

Результаты расчета 14 итераций приведены в таблице.

352

 

Часть 1. Новые принципы работы

 

 

 

ТАБЛИЦА РАСЧЕТОВ ПО МЕТОДУ ЗОЛОТОГО СЕЧЕНИЯ

к

а

b

Lk

Xi

х

f(Xi)

f(x2)

Еотн

 

2

1

60

150

90

94,38

115,5

31,584

243,98

-

2

60

115,5

55,5

81,25

94,299

353,402

32,501

0,617

3

81,25

115,5

34,25

94,38

102,478

31,677

6,1419

0,380

4

94,38

115,5.

21,22

102,48

107,493

6,180

56,1594

0,236

5

94,38

107,49

13,11

99,38

102,491

0,374

6,16022

0,146

6

94,38

102,49

8,11

97,48

99,391

6,360

0,36968

0,090

7

97,48

102,49

5,01

99,39

100,576

0,367

0,33198

0,0557

8

99,39

102,49

3,1

100,57

101,305

0,329

1,70511

0,0344

9

99,39

101,3

1,91

100,119

100,570

0,014

0,32533

0,0212

10

99,39

100,57

1,18

99,840

100,119

0,025

0,01422

0,0131

11

99,84

100,57

0,73

100,118

100,291

0,0141

0,08476

0,0081

12

99,84

100,29

0,45

100,011

100,118

0,000142

0,01395

0,0050

13

99,84

100,118

0,278

99,946

100,011

0,002895

0,00014

0,0031

14

99,948

100,118

0,172

100,011

100,052

0,000137

0,00273

0,0019

Метод золотого сечения оказывается более эффективным по сравнению с методом половинного деления (и других алгоритмов, использующих процедуру деления интервала на отрезки), поскольку он требует наименьшего числа оце­ ниваний значения функции для достижения одного и того же заданного относи­ тельного уменьшения исходного интервала (относительной точности). В таблице приведены сравнительные данные двух методов о количествах вычислений, не­ обходимых для определения координаты точки минимума с заданной относи­ тельной точностью.

Требуемые количества вычислений значения функции:

Метод поиска

ботн 0,1

Заданная точность

£<этн = 0,001

Метод половин­

SOTH = 0,05

SOTH = 0,01

7

9

14

20

ного деления

Метод золотого

6

8

11

16

сечения

Глава 6. Методы поиска оптимальных решений

353

Метод Ньютона-Рафсона

Рассмотренные ранее методы одномерной оптимизации, относящиеся к ме­ тодам нулевого порядка, использовали в своих алгоритмах информацию лишь о значениях минимизируемой функции на каждом шаге итерации. Для реализа­ ции этих алгоритмов требовалось лишь предположение об унимодальности функции.

Метод Ньютона-Рафсона относится к методам второго порядка и позволяет увеличить эффективность поиска за счет использования дополнительной ин­ формации - вычисления производных функции. Таким образом, кроме предпо­ ложений об унимодальности, здесь требуется также информация о дифференцируемости функции.

Пусть, как и ранее, ставится задача отыскания минимума унимодальной, дважды дифференцируемой функции f(x) на интервале (а, Ь).

Напомним, что необходимое условие существования локального минимума функции (точнее, стационарной точки) заключается в равенстве нулю ее первой производной

f (х*) = Щх*)1дх = О

Можно непосредственно решать это уравнение, но это зачастую аналитиче­ ски затруднено. В таком случае используются итерационные методы. В рамках метода Ньютона предполагается, что функция f(x) дважды дифференцируема. Таким образом, задача f(x) -> min может быть сведена к решению уравнения

f (х) = О

Если обозначить f(x) = у(х), то получим уравнение у(х), и известная схема Ньютона для решения уравнений приводит к формуле

Хк+1 = Хк - у(хк)/ У'(хк),

или, перейдя к f, получим

Xk+1 = Xk -f(xk )/f"(xk ),

При использовании полученной формулы необходимо решить вопрос, как выбрать начальную точку. Это может быть либо правый, либо левый конец ин­ тервала (а, Ь). Вспомним, что в методе Ньютона для решения уравнений выби­ рается тот конец интервала, где у и у" имеют одинаковые знаки.

Тогда в задаче минимизации функции нужно выбрать тот конец интервала, где f(x) и f"(x) имеют одинаковые знаки.

Алгоритм метода Ньютона-Рафсона

Пусть известен отрезок (а, Ь), на котором находится стационарная точка

354

Часть 1. Новые принципы работы

(минимум или максимум) функции f (х),

и задано число S > 0 (точность решения

задачи). Пусть f"(x), и f "(х) непрерывны и имеют постоянные знаки на (а, Ь).

1 .Определяем знак f "(х).

 

2. В качестве

начального приближения

выбираем конец отрезка (а или Ь), где

f (х) имеет тот же знак, что и f "(х).

 

3.Определяем первое приближение

 

 

X! = а - f (a)/ f"(a),

или Х1 = b - f (b)/ f"(b)

4. Каждое следующее приближение определяем по формуле

Xk+1 = X k - f ( x k ) / f " ( x k )

5.Процесс поиска заканчивается, когда

I Xk + 1 - X k I < 8

I Xk+1 - Xk | = | f (xk)/ f"(xk) |

Рассмотрим пример. Минимизировать f(x) = 2x + 16/x в интервале

1 < x < 2 с точностью 8 = 0,001. Итерация 1. Определим производные

f (х) = 4х - 16/х2

f (1) = -12, f (2) = 4

f"(x) = 4 + 32/х3

 

f "(x) = - 96/х4 < 0

 

Таким образом, в качестве стартовой (начальной) точки следует принять левый конец интервала х = 1, так как в этой точке первая и третья производные функции имеют одинаковые знаки.

Результаты расчетов на всех последующих итерациях приведены в таблице

ТАБЛИЦА РАСЧЕТОВ ПО МЕТОДУ НЬЮТОНА-РАФСОНА

к

Хк

f'(Xk)

Г(хк)

Е = f'(Xk)/f"(Xk)

1

1

-12

36

0,333333

2

1,3333

- 3,6667

17,5

0,209524

3

1,5428

- 0,5550

12,7131

0,043271

4

1,5861

-0,0153

12,01928

0,001272

5

1,5874

-1.2Е-05

12,00002

1.02Е-06

6

1,5874

-7.9Е-12

12

6.57Е-13

Глава 6. Методы поиска оптимальных решений

355

6.3. МНОГОМЕРНАЯ БЕЗУСЛОВНАЯ ОПТИМИЗАЦИЯ

Рассмотрим методы безусловной оптимизации функций многих переменных. Согласно приведенной ранее классификации в соответствии с типом используе­ мой при реализации того или иного метода информации - это методы нулевого, первого и второго порядка. Особое место занимает симплексный метод, предна­ значенный для решения задач линейного программирования.

Необходимость использования различных методов связана с тем, что ни один метод или класс методов не отличаются высокой эффективностью при решении конкретных оптимизационных задач различных типов. В частности, возможны случаи, когда происходит переполнение памяти ЭВМ; в других случа­ ях вычисление значений целевой функции требует чрезмерных затрат времени; в некоторых задачах требуется получить решение с очень высокой степенью точности; в ряде задач либо невозможно, либо весьма затруднительно найти аналитические выражения для производных целевой функции. Таким образом, пользователь вынужден приспосабливать применяемый метод к конкретным ха­ рактеристикам решаемой задачи.

6.3.1. МЕТОДЫ ПОКООРДИНАТНОГО СПУСКА

Эта группа методов отличается наличием процесса спуска вдоль выбранно­ го координатного направления. Это обстоятельство сводит многопараметриче­ скую оптимизацию к однопараметрическои, что значительно упрощает процесс

 

 

 

 

оптимизации.

Рассмотрим

 

EL Х1

 

 

один из

распространенных

1

 

 

методов

покоординатного

!

Х2

ОБЪЕКТ Q=Q(X1,X2,...,Xn)

спуска

-

метод

Гаусса-

 

 

Зейделя.

 

 

 

 

 

 

 

 

 

 

 

 

Этот

метод

является

 

 

 

 

 

 

естественным

применени­

 

 

 

 

П-i — V r

^

 

ем

однопараметрического

 

АП

 

 

поиска

к

решению задачи

 

1

 

 

 

 

БЛОК

многомерной оптимизации.

 

УПРАВЛЕНИЯ

Смысл его сводится к по­

 

 

 

 

следовательной

цикличе­

 

 

СЗДНОКАНАЛЬНЫЙ

ской

оптимизации

по каж­

 

 

дому

 

из

управляемых

 

 

ОПТИМИЗАТОР

(оптимизируемых)

пара­

 

 

 

 

метров. Эта задача реша­

 

Рис.6.1С1. Блок;хема-(

метода Гауссгз-Зецделя

ется

 

одним

одноканаль-

 

ным оптимизатором и бло­

 

 

 

 

ком управления (БУ), кото­ рый последовательно переключает оптимизатор с одного параметра на другой и т.д. в момент, когда достигается экстремум по предыдущему каналу (рис.6.13).

356

Часть 1. Новые принципы работы

При работе алгоритма одноканального оптимизатора на i-ом цикле поиска происходит минимизация показателя качества (целевой функции) F по i-ому па­ раметру, то есть решается задача одномерной оптимизации

F(X1( Х2, ...,ХП) -» min Xi 6 S

где S - множество допустимых значений X = (Xi, Хг, ...,ХП).

Целевая функция при этом является функцией одной переменной Хь остальные же параметры остаются неизменными Xj = const (j Ф i).

Алгоритм поиска оптимального значения параметра Xj в дискретном случае записывается в виде рекуррентной формулы

X(k-1) = Х . ( К, + Д Х . , К )

где AXj(k) - рабочий шаг, который для различных алгоритмов выглядит поразному.

Итак, происходит последовательное изменение каждого параметра Xj из на­ чальной точки Xj(0) при сохранении остальных параметров постоянными до тех пор, пока на некотором ш'аге Sj не будет достигнут минимум целевой функции F(X). Начальной точкой для поиска по следующей переменной является точка минимума, достигнутая при поиске по предыдущей переменной (за исключением исходной точки Xj<0').

После завершения такой процедуры для всех п переменных за S шагов (S = ESj) начинается новый цикл поиска с изменением первой переменной из но­ вой начальной точки с тем, чтобы попытаться еще улучшить решение.

Блок управления (БУ) работает так, чтобы процесс оптимизации, реализуе­ мый одноканальным оптимизатором, последовательно охватывает все пере­ менные объекта. Для этого он осуществляет последовательное циклическое переключение оптимизатора с одной переменной объекта на другую в моменты поиска, которые характеризуются тем, что переход к оптимизации очередного параметра осуществляется не раньше, чем приращение целевой функции по оптимизируемому параметру станет меньше заданного порога.

Для минимизации по каждой переменной могут использоваться любые из­ вестные методы одномерного поиска (в том числе и рассмотренные ранее). В частности, простейший прием (с постоянным шагом) использован для показа ал­ горитма покоординатного спуска (рис.6.14).

Параметр L в этом описании алгоритма регистрирует попытки двигаться по одной координате в прямом (1_=1; блоки 4,5) или обратном (1_=2; блоки 14,5) направлениях. Если после S, успешных шагов (подсчитываемых в блоке 8) в одном из этих направлений очередное приращение ДХ( оказалось неудачным (проверка в блоке 7), то происходит возврат в предыдущую точку (блок 10), и осуществляется переход к движению по следующей координате (изменение параметра цикла в блоке 3). Этот же переход выполняется в том случае, когда движение по предыдущей переменной не принесло успеха (S,=0), что проверя­ ется в блоке 11, ни в одном из направлений (L=2), что проверяется в блоке 13.

Глава 6. Методы поиска оптимальных решений

357

х - Хо , Fo = F(x0)

2.I S = О I

i= 1, к

 

 

Si = О

 

 

 

Stop

 

 

L = 1

16.

Stop

18.

5 ^

Xi = Xi + АХ

 

 

 

 

6.

 

F = F(x)

 

14.

 

 

 

 

 

нет

AX = - ДХ

 

7

^

^

 

 

 

 

L = 2

 

1. v .

 

г *

 

 

 

 

 

 

 

 

Да

8.Si = Si + 1

9.Fo = F

10.Vi — v: A v

нет

да

Рис.6.14. Алгоритм метода покоординатного спуска

358

Часть 1. Новые принципы работы

Если же продвинуться к оптимуму не удалось последовательно ни по одной из переменных (накопление в блоке 12), то поиск прекращается (блок 16), по­ скольку дальнейшие попытки движения приводят к зацикливанию.

Приведем пример расчета по методу покоординатного спуска. Требуется отыскать максимум функции

 

R(x) = 8 + л - л2

Х1

Х2

R

точки

 

0,6

 

0

- 1

2,44

1

-0,7

0,6

4,24

2

-0,4

0,6

5,18

3

-0,1

0,6

6,76

4

0,2

0,6

7,48

5

0,5

0,6

7,84

6

0,8

0,6

7,84

7

0,5

0,9

7,24

8

0,5

0,3

8,26

9

0,5

0,0

8,5

10

0,5

-0,3

8,56

11

0,5

-0,6

8,44

+ хлх2 - х2 - х22 -> max,

Стартовая точка Хо = (-1,0 ; 0,6); точ­ ность е = 0,1.

Поставленная задача отыскания мак­ симума функции R(x) эквивалентна отысканию минимума функции

F(x) = - R(x) -» min

Выберем постоянный шаг поиска для каждой из переменных ДХ = 0,3.

В таблице

представлены результаты

расчетов для 11 итераций.

Точное решение: Xi= 0,43;

Х2 = -0,29;

R = 8,57.

6.3.2. ГРАДИЕНТНЫЕ МЕТОДЫ

Ранее рассмотренный метод покоординатного спуска, отнесенный к мето­ дам нулевого порядка, позволял получать решение задачи на основе использо­ вания только значений целевой функции. Важность методов нулевого порядка несомненна, поскольку в ряде практических задач оптимизации информация о значениях целевой функции является единственной надежной информацией, которой располагает исследователь. С другой стороны, при использовании даже самых эффективных методов нулевого порядка, для получения решения иногда требуется чрезвычайно большое количество вычислений значений функции. Это обстоятельство, наряду с совершенно естественным стремлением реализовать возможности нахождения стационарных точек (то есть точек, удовлетворяющих необходимому условию первого порядка), приводит к необходимости рассмот­ рения методов, основанных на использовании градиента функции. Указанные методы носят итеративный характер, так как компоненты градиента являются нелинейными функциями оптимизируемых параметров.

Далее везде предполагается, что целевая функция f(x) и ее первые и вто­ рые производные по всем переменным существуют и непрерывны. Предполага-

Глава 6. Методы поиска оптимальных решений

359

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

Здесь понадобится понятие градиента функции. Это вектор-столбец пер­ вых производных f(x) по всем переменным

df

df

дх2

V f(x) =

df

дхп

или записанный в виде вектора-строки, так называемый транспонированный

вектор-столбец (матрица).

VTf(x) = df

, df

df

_dxi

дх2

дхп_

Доказано, что градиент скалярной функции направлен в сторону наискорей­ шего увеличения функции, то есть наискорейшего подъема, и что он перпенди­ кулярен линии уровня f(x)

z

 

 

в данной точке.

 

 

 

 

Вектор,

противопо­

 

 

 

 

 

 

ложный

этому

градиенту

 

 

 

(отрицательный градиент,

 

 

 

антиградиент),

 

направ­

1

Vf(xk)i

 

лен

в сторону

наискорей­

 

 

 

шего

спуска (рис.6.15.а и

 

 

 

6.15.6).

 

 

 

 

 

 

Таким образом, в ос­

\

Vf(xky

/

нове

простейшего

гради­

ентного

метода

лежит

0

 

 

формула

 

 

 

 

Х1

Ик+1) _

у(к)

 

(к)ч

 

 

 

 

= Xl"'-aVf(Xw),

Х2

 

где a - заданная положи­

Рис.6.15.а

тельная константа

 

 

(коэффициент шага).

 

 

X(k+1) _ ( k, R) ("О, K f(kb, R
= YX ' - a 'Vf(X ') Целесообразно оптимизировать величину a(k)

360

Часть 1. Новые принципы работы

Градиентный метод с постоянным коэффициен­ том шага обладает двумя недостатками: во-первых, возникает необходимость выбора подходящего зна­ чения постоянного коэф­ фициента а , и, во-вторых, методу свойственна мед­ ленная сходимость в точ­ ке минимума вследствие малости V f(x) в окрестно­ сти этой точки.

Таким образом, целе­ сообразно сделать коэф­ фициент шага а не посто­ янным, а определять его значение на каждом шаге итерации

(6.2) чтобы обеспечить наиско-

рейшее попадание в точку минимума. Значение aJk>' можно вычислять путем решения задачи минимизации функции на (к+1)-ом шаге вдоль направления ан­ тиградиента с помощью того или иного метода одномерного поиска. Такой гра­ диентный метод носит название метода наискорейшего спуска, или метода Коши. Коши первым использовал аналогичный алгоритм для решения систем ли­ нейных уравнений.

При этом минимизируется функция

Ф

(а)

,{к),K

„(к),

(к),w

 

= f[X ' - а ' V f ( X ) l -> min,

являющаяся функцией одной переменной а. Решение этой задачи одномерной оптимизации позволяет отыскивать значение а на каждой следующей итерации. Алгоритм метода Коши приведен на рис.6.16.

Рассмотрим пример.

2

2

Минимизировать функцию f(x) = 8x1 + 4xiX2 + 5х2 Прежде всего, вычислим компоненты градиента функции

dfldx,

16х!+ 4х2

Vf(x) =

10х2 + 4х1

df/dx2

Соседние файлы в предмете Экономика