Информационные системы менеджмента - Бажин И.И
..pdfГлава 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.
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 |