Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2793.Методы оптимизации..pdf
Скачиваний:
175
Добавлен:
15.11.2022
Размер:
33.68 Mб
Скачать

2. МЕТОДЫ ОДНОМЕРНОЙ МИНИМИЗАЦИИ

2.1.Предварительные замечания

Внекоторых случаях ограничения в задаче оптимизации

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

функцией, всегда можно ограничиться лишь поиском ее наи­ меньшего значения в области определения £>(/), заданной с учетом ограничений на параметр оптимизации х. Поэтому да­ лее в этой главе будем рассматривать задачу

/( # ) - » min, x e D ( f ) c R ,

(2.1)

поиска наименьшего значения /* = /(#*) функции f(x) и точки я* Е £>(/), в которой f(x) принимает это значение. Для крат­ кости будем говорить об одномерной минимизации, имея в виду нахождение наименьшего значения функции f(x) на мно­ жестве D(f) и точек, в которых это значение достигается.

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

Пусть область определения D ( f ) функции f(x) есть про­ межуток числовой прямой. Напомним [II], что если D ( f ) —

отрезок и f(x) непрерывна на нем, то она имеет на этом от­ резке наименьшее значение. Но при наличии на отрезке точек разрыва функции она может не иметь на нем наименьшего зна­ чения. Оно может не существовать л в том случае, когда D(f) является интервалом или полуинтервалом.

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

в виде (см. 1.5)

 

}{х) —>inf, х € £>(/) С R.

(2.2)

Тогда под решением задачи минимизации такой функции на D(f) следует понимать построение последовательности {жп} точек из D(f), для которой существует предел

lim f(xn) = inf f(x) = / „

(2.3)

n->oo Xn£D(f)

и нахождение этого предела. Если функция /(х ) достигает на множестве D ( f ) своего наименьшего значения /*, то /* = /*.

Например, функция /(х ) = 1/х на множестве D ( f ) = [1, 2) не достигает наименьшего значения, хотя и ограничена снизу. Точная нижняя грань /* функции в данном случае равна 1/2. В качестве последовательности {хп} точек в полуинтервале [1 , 2), для которой справедливо (2.3), можно выбрать {2 — 1/п }. Тогда

П п ) хп 2 - 1 /п 2п 1

и последовательность {f{xn)} сходится к числу 1/2 = /*. Функция может достигать наименьшего значения как в

единственной точке, так и на некотором множестве точек, ко­ нечном, счетном или несчетном. Например, функция f(x) = х4 определена на всей числовой прямой и достигает своего наи­ меньшего значения /* = 0 в единственной точке х* = 0, которая является ее точкой минимума. Функция /(х ) = х4 — 2х2 + 2

также определена на всей числовой прямой и достигает наи­ меньшего значения /* = 1 в точках ж» = ±1. Функция /(ж) = = cos х достигает наименьшего значения на счетном множест­ ве Д* = {х Е М: х = я -)- 2пк, к € Z}, а функция f(x) = \х+ 1 |+ + |ж—1 |— на несчетном множестве Д* = [— 1 , 1].

Функцию f(x) называют унимодальной функцией на от­ резке [о, 5], если существует такая точка ж* € [а, 6], что функция /(ж) в полуинтервале [а,ж») убывает, а в полуинтервале (ж*, Ь] возрастает. Примеры графиков унимодальных функций приве­ дены на рис. 2.1 .

Рис. 2.1

Точка ж* может быть внутренней точкой отрезка [о, 6] (т.е.‘ а < ж* < Ь, см. рис. 2.1 , а-г) или совпадать с одним из его концов (ж* = а или ж* = 6, см. рис. 2.1, <?, е). Унимодальная функция не обязательно непрерывна на отрезке [а, Ь] (см. рис. 2.1 , в, г).

Функцию /(ж), достигающую на отрезке [а, Ь] наименьше­ го значения в единственной точке ж* 6 [а, 6], убывающую при ж G [а, ж*] и возрастающую при ж € [ж*, Ь], будем называть стро­ го унимодальной на отрезке [а, 6] (на рис. 2.1 строго унимо­ дальными являются все функции, кроме функции на рис. 2.1 , г).

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

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

2.2. Пассивный и последовательный поиск

Пусть требуется найти наименьшее значение или точную нижнюю грань /» скалярной действительной функции f(x) одного переменного на отрезке [а, 6]. Предположим, что за­ дан алгоритм вычисления значения функции для любой точки х £ [о, Ь]. Можно выделить две группы методов прямого по­ иска, соответствующие двум принципиально различным ситуа­ циям:

1 ) все N точек т*, k = 1, N, в которых будут вычислены значения функции, выбирают заранее (до вычисления функции в этих точках);

2)

точки Xk выбирают последовательно (для выбора после­

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

Впервом случае поиск значения /* называют пассивным,

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

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

-

определен алгоритм выбора точек Xk, к = 1 , JV;

-

определено условие прекращения поиска, т.е. условие, при

выполнении которого значение /* считают найденным с задан­ ной точностью.

Для методов пассивного поиска алгоритм выбора точек rrjt, к = 1 , iV, — это правило, по которому заранее определяют все N точек я*, к = 1, JV, в которых затем будут вычислены зна­ чения функции f{x). Для методов последовательного поиска алгоритм выбора точек хk — это правило, по которому по­ следовательно определяют каждую следующую точку хь по ин­ формации о расположении точек я*, г = 1 , fc—1 , и о вычисленных значениях f{xi) функции f(x) в этих точках. Выбор очередной точки Xk и вычисление значения f{xk) называют шагом после­ довательного поиска.

В методах последовательного поиска количество точек Xk обычно не задают заранее. Однако объективное сравнение раз­ личных методов прямого поиска нужно проводить при одинако­

вом количестве п вычисленных значений функции f{x). После тьвычислений обычно указывают интервал (или отрезок) дли­ ны /п, называемый интервалом неопределенности, в ко­ тором гарантированно находится точка я*, соответствующая значению /*. Условие прекращения вычислений в случае пас­ сивного или последовательного поиска примем одинаковым — выполнение неравенства 1п ^ £*, где £* — заданная наибольшая допустимая длина интервала неопределенности.

Длина 1п зависит как от самого метода прямого поиска Р, так и от минимизируемой функции / (я), т.е. 1п = /П(Р, /)• Зави­ симость 1п от п дает оценку скорости сходимости конкретного метода прямого поиска Р к искомому значению /* заданной функции f(x). Различные методы из некоторого множества V методов прямого поиска сравнивают обычно при выбран­ ном фиксированном значении п = N на некотором достаточно широком классе функций. В качестве такого класса можно вы­ брать множество Т унимодальных функций, определенных на фиксированном отрезке Х с К . Для метода прямого поиска Р е V примем наихудшую оценку

lN(P) = vnaxlN(Ptf).

Если „ наихудшей “ унимодальной функции не найдется, то оценку принимаем в виде

lN(P) = swplN{P,f). /е?

Значение 1м(Р) представляет собой оценку сверху погреш­ ности вычисления точки х* € X, соответствующей искомому значению /* произвольной функции / € Т, которая получена методом прямого поиска Р V по N вычисленным значениям этой функции. Метод прямого поиска Р* считаем наилучшим, если

IN (P*) = min max IN (PJ),

или IN (P*) = min sup/дг(■?*,/)•

PeP fe?

P €V

Этот критерий сравнения методов поиска определяет мини­ максный метод поиска. Такой метод является наилучшим

для всего множества

Т унимодальных функций на отрезке

X С К в том смысле,

что он дает наименьшую погрешность

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

Все методы прямого поиска можно строить и сравнивать между собой на отрезке X = [0,1]. Полученные результаты при необходимости нетрудно перенести на случай произволь­ ного отрезка [а, Ь], так как любую точку отрезка [0, 1] можно перевести в соответствующую ей точку отрезка [а, Ъ] растяже­ нием в Ъа раз и сдвигом на а.

Если минимизируемая функция f(x ) не является унимодаль­ ной на отрезке [а, Ь] (такую функцию называют мультимо­ дальной функцией на этом отрезке), то, даже если она непре­ рывна на [а, Ь]), при поиске наименьшего значения /* функции на отрезке может возникнуть ошибка: будет найдена точка локального минимума, в которой значение функции не /*, а дру­ гое, большее. Чтобы избежать такой ошибки, в процесс мини­ мизации включают предварительный этап, на котором отрезок минимизации разделяют на несколько отрезков, на каждом из которых минимизируемая функция унимодальна* Сравнитель­ ный анализ наименьших значений функции на этих отрезках позволяет найти искомое наименьшее значение /* на всем от­ резке минимизации.

Пример 2 .1 . Рассмотрим один из возможных подходов к выделению из промежутка X в области определения D(f) минимизируемой функции f(x) отрезка [а, Ь], на котором эта функция является унимодальной. Пусть известна такая точка

"См.: Васильев Ф.П., а также: Лесин В.В., Лисовец Ю.П.

хо 6 X, что при х ^ хо функция f(x) сначала убывает, а затем начиная с пока неизвестного значения х = х* Е X возрастает, хотя далее в промежутке X могут быть расположены и другие участки немонотонного поведения этой функции. Выберем начальное значение h > 0 приращения аргумента х функции /(х ), в несколько раз меньшее предполагаемого расстояния

между точками хо и х*, и вычислим значения /(хо)

и /(x i),

где xi ~ XQ I /it

 

Может оказаться, что /(хо) < /(z i). Тогда за

искомый

отрезок [а, 6] можно сразу принять отрезок [хо, xi]. Но можно продолжить вычисления и, используя последовательный поиск, определять значения / ( х*) в точках х* = хо + h/2k~l) к = 2, 3 ..., до тех пор, пока не будет выполнено неравенство /(х*) < /(хо). Тогда следует принять [а, 6] = [хо, zjt-i] (на рис. 2.2 [а, Ь] = = [хо,Я2], поскольку точка X* должна быть либо на отрезке [х0,х 3], либо на отрезке [rn3, хг])- Надо сказать, что при этом можно „не заметить“ по крайней мере еще один отрезок, на котором функция унимодальна (штриховая линия на рис. 2.2).

Если /(хо) > f{x i), то, используя последовательный поиск,

вычисляем значения f(x 'k),

где х'к = хо + (к 1 )/i, к = 2, 3 ...,

пока не будет выполнено

неравенство /(хк__г ) < /К )> чт0

позволяет принять [а, 6] = [х'к_2, х'к] (на рис. 2.3 [о, 5] = [х2, х'4], так как точка х» должна быть либо на отрезке [х'2, х^], либо на отрезке [x'z, х'^\).