![](/user_photo/1438_p9ksI.png)
Информационные системы менеджмента - Бажин И.И
..pdfГлава 6. Методы поиска оптимальных решений |
341 |
•методы глобальной оптимизации - это те методы и практические приемы, которые позволяют отыскивать глобальный оптимум (наилучшую среди локальных оптимальных точек).
ПОИСКОВЫЕ МЕТОДЫ ОПТИМИЗАЦИИ |
||
1г |
I . |
1 |
|
||
|
|
|
Методы |
|
Методы |
безусловной |
|
условной |
оптимизации |
|
оптимизации |
i г |
|
1г |
Методы |
|
Методы |
локальной |
|
глобальной |
оптимизации |
|
оптимизации |
Рис.6.2 Кгассификация методов по виду искомого экстремума.
При решении оптимизационных задач большое значение имеют методы безусловной оптимизации, поскольку часто задачи условной оптимизации (задачи с ограничениями) сводятся различными способами к задачам безуслов ной оптимизации. Классификация этих методов может быть представлена в ви де, изображенном на рис.6.3.
Методы нулевого порядка в качестве исходной информации используют лишь значения целевой функции (нулевая производная). Реализация методов первого порядка требует знания первых производных входящих в модель функций. При использовании методов второго порядка необходимо вычислять, кроме значений целевой функции и ограничений, еще и значения первых и вто рых производных всех функций, входящих в модель.
Эффективность методов обычно возрастает с ростом порядка метода (методы второго порядка эффективнее методов первого и нулевого порядка). Однако эти методы требуют большего объема вычислений и накладывают до полнительные математические ограничения на входящие в модель функции. В частности, для обеспечения сходимости в ряде задач необходимо иметь воз можность вычислять производные функций с очень высокой точностью, что не всегда просто может реализоваться на практике.
342 |
Часть 1. Новые принципы работы |
ЛОКАЛЬНЫЕ МЕТОДЫ БЕЗУСЛОВНОЙ ОПТИМИЗАЦИИ
Нулевого порядка |
Первого порядка |
Второго порядка |
||
f(x) |
f(x), f |
'(х) |
f(x), f '(х), f "(х) |
|
Методы |
Методы |
метод |
метод |
|
одномерного |
многомерного |
наискорейшего |
Ньютона |
|
поиска |
поиска |
спуска |
|
|
метод |
метод |
метод |
метод |
|
покоординатного |
||||
золотого |
сопряженных |
Пауэлла |
||
спуска |
||||
сечения |
градиентов |
|
||
|
|
|||
метод |
метод |
|
|
|
деформируемого |
метод |
|
||
дихотомии |
|
|||
многогранника |
|
|||
проекции |
|
|||
|
|
|||
метод |
метод |
градиента |
|
|
|
|
|||
квадратичной |
случайного |
|
|
|
интерполяции |
поиска |
|
|
Рис.6.3. Классификация локальных методов оптимизации.
6.2. ОДНОМЕРНАЯ ОПТИМИЗАЦИЯ
Рассмотрение методов оптимизации удобно начать с одномерного случая, то есть функций одной переменной. Как и в случае решения уравнений и систем уравнений, методы отыскания оптимума функций делятся на прямые и итераци онные.
6.2.1. ПРЯМОЙ (АНАЛИТИЧЕСКИЙ) МЕТОД
В отношении функций, для которых отыскивается максимум или минимум (экстремум), минимальное предположение для применения аналитических ме тодов состоит в следующем: для f(x) в промежутке (а, Ь), где отыскивается экс тремум, существует конечная производная f'(x).
Глава 6. Методы поиска оптимальных решений |
343 |
Напомним необходимые и достаточные условия существования экстремума f(x) на промежутке (а, Ь).
Необходимое условие. Если в точке х0 функция имеет экстремум, то
f'(x0) = 0. Точка х0 при выполнении необходимого условия называется стацио
нарной точкой.
Достаточные условия для стационарных точек.
1.Устанавливаем знак Г(х) для х0 < х и х0 > х . Если при увеличении х производ ная меняет знак «плюс» на знак «минус», то имеет место максимум. Если же знак меняется с «минуса» на «плюс», то имеем минимум. Если знак не меняет ся - экстремума нет.
2, Вычисляем вторую производную в точке х0 .
Если f"(x) > 0, то f(x) имеет минимум. Если Г(х) < 0, то f(x) имеет максимум.
Рассмотрим пример применения аналитического метода.
Задача:
Из всех прямоугольников с заданным периметром найти тот, который имеет наибольшую площадь.
S = (х • у) |
-» шах |
|
L = 2(х+у) |
= const |
x |
2х = 1 -2у |
* |
у |
х = 1/2 - у |
|
|
S = (1/2 - у) у = у/2 - у2 -> max |
|
|
Необходимое условие: |
dS/dy = 1/2 - 2у = 0 |
(6.1) |
Достаточное условие: d2S/dy2 = - 2 - это максимум. |
|
|
Из условия (6.1) определяем точку максимума: |
|
1/2 = 2у, откуда 1 = 4у и х = 4у/2 - у, то есть х = у.
Таким образом, из всех прямоугольников с заданным периметром наибольшую площадь имеет квадрат.
В различных задачах оптимизации требуется отыскивать либо минимум, ли бо максимум целевой функции. Покажем, что с математической точки зрения за дача максимизации критерия эффективности идентична задаче минимизации.
Чаще ищут min f(x), но это равносильно отысканию max[-f(x)], то есть max[f(x)] = min[-f(x)]. Это утверждение достаточно убедительно иллюстрирует рис.6.4.
Глава 6. Методы поиска оптимальных решений |
345 |
После выбора в блоке 1 начальной точки х в блоке 4 производится вычис ление значения функции f(x), после чего в блоке 5 принимается решение о пре кращении или продолжении поиска в соответствии с правилом останова, зало женного в блоке 5. Видом этого правила и отличаются алгоритмы конкретных поисковых методов. Если в соответствии с этим правилом поиск должен про должаться, то в блоке 2 выбирается направление следующего шага поиска, а в блоке 3 вычисляется величина шага итерации. После изменения переменной х на величину вычисленного шага снова в блоке 4 определяется значение f(x). Далее поисковая процедура повторяется, до тех пор, пока, в соответствии с правилом блока 5, поиск может быть прекращен.
Для рассмотрения итерационных методов введем некоторые предвари тельные понятия и определения.
Определение*!. Функция является монотонно возрастающей (рис.6.6) на
отрезке (а, Ь), если при х2 > x-i |
f(x2) > f(x-i). Функция является монотонно убы |
вающей (рис.6.7) на (а, Ь), если при х2 > x-i f(x2) < f(x-i). |
|
f(x) I |
f(x) I |
|
|
|
\ . |
f(x2) |
|
|
f(x2) |
|
f(Xl) |
|
|
f(Xl) |
|
|
|
|
|
a Xi |
x2 |
b " x |
3 Xi |
X2 |
b ^x |
Рис.6.6 |
|
|
Рис.6.7 |
|
Определение 2. Функция унимодальна на отрезке (а, Ь) в том, и только в том случае, если она монотонна по обе стороны единственной на данном от резке точки минимума х*.
То есть, для унимодальной функции на отрезке (а, Ь) должны быть справедливы соотношения:
Для точек x-i и х2 |
|
|
|
из х* < x-i < |
х2 |
следует |
f(x*) < f(x-i) < f(x2) |
из х* > Xi > |
х2 |
следует |
f(x*) < f(xi) < f(x2) |
Свойство унимодальности очень важно. Фактически все одномерные мето ды поиска, используемые на практике, основаны на предположении, что иссле-
346 |
Часть 1. Новые принципы работы |
дуемая функция, по крайней мере, унимодальна. Это позволяет при сравне нии значений в двух различных точках интервала поиска определить, в каком из заданных двумя указанными точками подинтервалов поиска точка оптимума от сутствует. Рассмотрим это, используя для иллюстрации рис.6.8.
Пусть f(x-i) > f(x2) и пусть а< х* < Хч Тогда f(x*) <f(x!) > f(x2) и х* < Xi < х2. Однако это неравенство не может вы полняться, так как унимодальная функ ция должна быть монотонна по обе сто роны от точки х*. То есть, в интервале (a, Xi) не может находиться точка х*.
|
Пусть теперь f(xi) < f(x2) и х2 < х* < b |
|
Тогда f(x*) < f(x2) > f(xi) и Xi < х2< х*. |
|
Это неравенство также не может выпол |
О а X] xft x2 b |
няться, и, значит, на отрезке (х2, Ь) точки |
оптимума быть не может. |
|
|
Таким образом, согласно этому пра |
Рис.6.8 |
вилу исключения интервалов, можно реа |
|
лизовать процедуру, позволяющую найти |
точку оптимума путем последовательного исключения частей исходного ограни ченного интервала. Здесь требуется только вычисление значений функции.
В процессе применения таких методов поиска можно выделить два этапа: 1.Этап установления границ интервала, содержащего точку оптимума.
2.Этап уменьшения интервалов. Здесь реализуется конечная последователь ность преобразований исходного интервала с тем, чтобы уменьшить его длину до заранее установленной величины.
На первом этапе различными методами (обычно эвристическими) выбира ется исходный интервал, внутри которого, по нашим представлениям, находится точка оптимума, а затем, на основе применения правила исключения интерва лов, осуществляются шаги второго этапа.
Второй этап - уменьшение интервала - реализуется различными процеду рами поисковых методов, с некоторыми из них мы познакомимся далее.
Метод половинного деления
Идея метода половинного деления (дихотомии) заключается в том, чтобы на каждом шаге итерации вдвое уменьшать интервал поиска. Пусть установле но, что на интервале (а, Ь) функция f(x) унимодальна и внутри интервала нахо дится искомая точка минимума функции f(x) (рис.6.9).
Разделим отрезок (а, Ь) пополам, получим точку Х т - середину отрезка.
xm =(a + b)/2
Выберем две точки: xi и Х2 - правее и левее точки Х т , так что xi = х т - S, х2 = х т + S,
Глава 6. Методы поиска оптимальных решений |
347 |
где 2S > 0 - величина заданной погрешности определения точки минимума. Часто пользуются также понятием относительной погрешности, представляю щей собой относительное уменьшение
f(x) |
|
|
|
|
исходной |
длины интервала £0 тн= |
|
|
|
|
|
|
|||
i i |
|
|
|
|
2s/(b-a). |
|
|
|
|
|
|
|
|
||
|
У |
f(x2) |
|
|
Точки xi |
и X2 делят интервал (а, Ь) |
|
|
|
У |
на три отрезка: (а, х^, (хч, х2) и (хг, Ь). |
||||
|
\ |
f(Xl) |
|
Правило |
исключения интервалов, ос |
||
|
|
|
|
|
нованное на свойстве унимодальности |
||
|
|
|
|
X |
функции, позволяет исключить какой- |
||
0 |
\ |
x-i x m |
х2 |
ь - |
либо из интервалов (а, х-|) или (хг, Ь), в |
||
котором определенно не может быть |
|||||||
|
|
Рис.6.9. |
|
|
|||
|
|
|
|
точки минимума. А поскольку токи х-| и |
Х2 находятся от точки х т на расстоянии 8, составляющем половину заданной точности вычислений, то какой-либо из указанных отброшенных интервалов практически равен его половине. Таким образом, на каждом шаге итерации дан ный метод позволяет исключить половину рассматриваемого интервала.
Вычислим значения функции f(x) в выбранных точках х<| и Х2 , получим f(x-|) и f(X2). Пусть, например, f(x2> > f(x-|). Тогда, согласно правилу исключения ин тервалов, нужно исключить интервал (хг, Ь), находящийся правее точки хг. Те перь оставшийся отрезок (а, хг) является исходным интервалом для следующей итерации, на которой нужно повторить все вычисления предшествующей итера ции.
Алгоритм метода половинного деления
Пусть задана функция f(x) и интервал (а, Ь), на котором находится точка минимума заданной функции.
1. Вычисляем срединную точку интервала х т = (а + Ь)/2.
2. Определяем координаты двух точек: справа и слева вблизи точки Х т : X! = х т - S, х2 = х т + S,
3.Вычисляем значения функции в этих точках: f(x-|) и f(X2).
4.Если f(x-|) < f(X2), то отбрасываем часть интервала правее точки Х2 и полагаем хг = Ь, если f(xi) > f(x2), то отбрасываем часть интервала левее точки х-| и по лагаем xi = а.
5.Если (Ь - а) < 2S, то поиск прекращается, если (Ь - а) > 28, следует перейти к пункту 1 и повторить процедуру вычислений на следующей итерации.
348 Часть 1. Новые принципы работы
Преимуществом метода дихотомии является то, что на каждой итерации ал горитма исключается практически половина интервала поиска. Недостатком яв ляется необходимость вычислений на каждом шаге итерации значений функции в двух точках.
Рассмотрим пример. Минимизировать f(x) = (100-х)2 в интервале
60 < х < 150 с точностью 28 = 0,1.
а = 60; b = 1 5 0 ; b - a = 150-60 = 90; Xm = (60 + 150)/2 = 90
Итерация 1.
Х-, = Х т - 8 = 105 - 0,05 = 104,95;
Хг = Х т + S = 105 +0,05 = 105,05; f(104,95) = 24,5025 < f(105,05) = 25,5025
Таким образом, исключается интервал правее точки Хг - (105,05; 150). Длина интервала поиска уменьшилась с 90 до 45,05.
а = 60; b = 105,05; b - а = 105,05 - 60 = 45,05; Xm = (60 + 105,05)/2 = 82,525
Итерация 2.
Х-\=Хт-£ = 82,525 - 0,05 = 82,475 ;
Х2 = Х т + 8 = 82,525 + 0,05 = 82,575; f(82,475) = 307,1256 > f(82,575) = 303,6306
Таким образом, исключается интервал левее точки Х-| - (60; 82,475). Длина ин тервала поиска уменьшилась с 45,05 до 22,575.
Результаты расчета 17 итераций в среде Excel 7.0 приведены в таблице.
ТАБЛИЦА РАСЧЕТОВ ПО МЕТОДУ ПОЛОВИННОГО ДЕЛЕНИЯ
к |
а |
b |
b-a |
Xm |
х1 |
х2 |
f(x1) |
f(x2) |
еотн |
1 |
60 |
150 |
90 |
105 |
104,95 |
105,05 |
24,5025 25,5025 |
- |
|
2 |
60 |
105,05 |
45,05 |
82,525 |
82,475 |
82,575 |
307,126 |
303,631 |
0,5 |
3 |
82,475 105,05 |
22,575 |
93,762 |
93,712 |
93,812 |
39,5326 |
38,2852 |
0,25 |
|
4 |
93,712 |
105,05 |
11,337 |
99,381 |
99,331 |
99,431 |
0,44722 |
0,32348 |
0,126 |
5 |
99,431 |
105,05 |
5,6187 |
102,24 |
102,19 |
102,29 |
4,79884 5,24696 |
0,062 |
|
6 |
99,431 |
102,29 |
2,8593 |
100,86 |
100,81 |
100,91 |
0,65759 |
0,82978 |
0,032 |
7 |
99,431 |
100,91 |
1,4796 |
100,17 |
100,121 |
100,22 |
0,01466 |
0,04887 |
0,016 |
8 |
99,431 |
100,22 |
0,7898 |
99,826 |
99,776 |
99,876 |
0,05010 |
0,01533 |
0,009 |
9 |
99,776 |
100,22 |
0,4449 |
99,998 |
99,947 |
100,04 |
0,00264 |
0,00236 |
0,005 |
10 |
99,947 |
100,22 |
0,2725 |
100,08 |
100,03 |
100,13 |
0,00122 |
0,01819 |
0,003 |
11 |
99,947 |
100,13 |
0,1863 |
100,04 |
99,992 |
100,09 |
0,00007 |
0,00842 |
0,0021 |
12 |
99,947 |
100,09 |
0,1432 |
100,02 |
99,970 |
100,07 |
0,00089 |
0,00493 |
0,0016 |
13 |
99,947 |
100,07 |
0,1216 |
100,01 |
99,959 |
100,06 |
0,00165 |
0,00353 |
0,0013 |
14 |
99,947 |
100,06 |
0,1108 |
100,004 99,954 |
100,054 |
0,00211 |
0,00291 |
0,0012 |
|
Глава 6. Методы поиска оптимальных решений |
349 |
||||||
15 99,947 |
100,054 0,1054 |
100,001 |
99,951 |
100,051 |
0,00237 |
0,00263 |
0,0012 |
|
16 99,947 |
100,051 0,1026 |
99,999 |
99,949 |
100,05 |
0,00250 |
0,002497 0,0011 |
||
17 99,949 |
100,05^ |
0,1013 |
100,00 |
99,950 |
100,05 |
0,00244 |
0,00256 |
0,0011 |
Метод золотого сечения
Общая идея метода золотого сечения состоит в следующем:
1.Пробные точки должны размещаться в интервале по симметричной схеме та ким образом, чтобы отношение длины исключаемого подынтервала к величине интервала поиска оставалось постоянным.
2.На каждой итерации процедуры поиска должно вычисляться только одно зна чение функции в получаемой точке.
Исходя из этих соображений, рассмотрим симметричное расположение двух пробных точек на исходном интервале единичной длины, которое показано на рис.6.10. (Выбор единичного интервала обусловлен соображениями удобства).
|
т |
|
1 -Т |
° | — |
© |
Ь — |
и |
е |
|||
|
|
|
|
|
1 -Т |
т |
|
Рис.6.10.
Пробные точки (1 и 2) отстоят от концов интервала на расстоянии Т. При таком симметричном расположении точек длина отрезка, остающегося после исклю чения какой-либо части исходного интервала, всегда равна X, независимо от то го, какое из значений функции в пробных точках оказывается меньшим. Предпо ложим, что исключается правый подынтервал. На рис.6.11 показано, что остав шийся подынтервал длины Т содержит одну пробную точку, расположенную на расстоянии (1 - X) от левой граничной точки.
350 |
Часть 1. Новые принципы работы |
Для того чтобы симметрия поискового образца сохранялась, расстояние (1-Т) должно составлять Т-ю часть длины интервала (которая равна Т). При таком
выборе Т следующая пробная точка размещается на расстоянии, равном т-ой части длины интервала, от правой граничной точки интервала (рис.6.12).
|
т2 |
Отсюда следует, что при |
||||
|
— с > - — О - —* 1 |
выборе |
Т, в |
соответствии с |
||
0 | |
|
|
|
2 |
|
|
условием 1 - |
X = Т , симмет |
|||||
,_ |
1 -Т |
рия поискового |
образца, |
по |
||
|
|
казанного на рис.6.10, сохра |
||||
|
Рис.6.12. |
няется |
при |
|
переходе |
к |
|
уменьшенному |
интервалу, |
||||
|
|
|||||
|
|
который |
изображен |
на |
рис.6.12. Решая это квадратное уравнение, получим
х = (-1 ±V5)/2,
откуда положительное решение Т = 0,61803... Схема поиска, при котором проб ные точки делят интервал в этом отношении, и получила название поиска с по мощью метода золотого сечения.
Итак, две пробные точки имеют координаты (с учетом того, что интервал имеет не единичную длину L и координата начала интервала равна а):
Х<{ = а + (1 - T)L = а + 0.382L; Х2 = а + TL = а + 0.618L;
Поскольку на каждой следующей итерации одна из пробных точек сохраняется, то на каждом шаге алгоритма требуется вычисление лишь одной новой точки, что существенно уменьшает объем вычислений и делает данный метод наибо лее эффективным.
Алгоритм метода золотого сечения
Пусть задана функция f(x) и интервал (а, Ь), на котором находится точка минимума заданной функции. Длина интервала L = b - а.
1. Проводим два первых вычисления значений функции в точках
|
X! = а + (1 - т)1_ = Х0 + 0.382L и Х2 = а + TL = Х0 + 0.618L |
|
f-l = f(a + |
0.382L) |
и f2 = f(a + 0,618L) |
2. Пользуясь правилом исключения интервалов, исключаем один из подын |
||
тервалов; |
|
|
Если |
f-| < f2 |
, то исключаем интервал правее Х2, положим b = Хг- |
Если |
f-| > f2 |
, то исключаем интервал левее Х-|, положим а = Х-|. |