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

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

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

Глава 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 - = 0

(6.1)

Достаточное условие: d2S/dy2 = - 2 - это максимум.

 

Из условия (6.1) определяем точку максимума:

 

1/2 = 2у, откуда 1 = и х = 4у/2 - у, то есть х = у.

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

В различных задачах оптимизации требуется отыскивать либо минимум, ли­ бо максимум целевой функции. Покажем, что с математической точки зрения за­ дача максимизации критерия эффективности идентична задаче минимизации.

Чаще ищут min f(x), но это равносильно отысканию max[-f(x)], то есть max[f(x)] = min[-f(x)]. Это утверждение достаточно убедительно иллюстрирует рис.6.4.

344

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

6.2.2. ИТЕРАЦИОННЫЕ (ПОИСКОВЫЕ) МЕТОДЫ

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

1. Выбор начальной точки

i

 

^

2.Определение направления поиска

+

 

^

 

 

З.Шаг поиска

 

 

*

.

 

Wь, 4. Вычисление f(x)

 

 

5. Прекратить поиск? ^ ~ -~-=-=,

нет

Тда

<Конец поиска^

Рис.6.5. Общий вид алгоритма поиска

Глава 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

, то исключаем интервал левее Х-|, положим а = Х-|.

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