Материал: Бородакий Нелинейное программирование в современных задачах оптимизации 2011

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

На рис. 1.1.1 приведены некоторые варианты унимодальных функций.

f (x)

f (x)

a

α

β

b

x

a

α = β

b x

f (x)

 

 

 

 

f (x)

 

 

a

α = β = b

x

a = α

β

b x

Рис. 1.1.1. Варианты унимодальных функций

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

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

16

1.1.2. Поиск отрезка, содержащего точку минимума

Сущность поиска отражена на рис 1.1.2 и заключается в том, что, начиная с некоторой точки, осуществляются возрастающие по величине шаги до тех пор, пока не будет пройдена точка минимума функции f (x) .

Рис. 1.1.2. Поиск минимума функции f(x)

Алгоритм.

1.Положить k =1.

2.Выбрать точку x0 и определить направление убывания функции f(x).

Для этого положить шаг h > 0 и вычислить значение функции

f(x0 + h).

Если f(x0 Если f(x0 Если f(x0 Если f(x0

+h) < f(x0), то перейти к п. 3, положив x1 = x0 + h.

+h) ≥ f(x0), то положить h = –h и вычислить f(x0 + h).

+h) < f(x0), то перейти к п. 3, положив x1 = x0 + h.

+h) ≥ f(x0), то положить h = h/2 и повторить п. 2.

3.Удвоить шаг, т.е. положить h = 2h и вычислить xk+1 = xk + h.

4.Вычислить f(xk+1).

Если f(xk+1) < f(xk), то положить k = k + 1 и перейти к п. 3.

Если f(xk+1) ≥ f(xk), то поиск прекратить и в качестве отрезка, содержащего точку минимума, выбрать отрезок [xk-1, xk+1].

17

1.2. Методы одномерной минимизации

Рассмотрим с общих позиций ряд методов, позволяющих найти минимум функции f (x) при ограничениях x [a,b] .

1.2.1. Методы нахождения глобального минимума унимодальных функций

1.2.1.1. Прямые методы минимизации

Данные методы основаны на вычислении значений функции f(x) в некоторых точках; они не используют значений производных оптимизируемой функции.

Метод перебора – простейший, но редко используемый в серьезных задачах.

Согласно этому методу отрезок [a,b] делится на п равных частей

 

b a

 

 

 

точками

, i =1, n . Вычисляются значения функции

xi = a + i

n

 

 

 

 

 

 

 

в этих точках, и путем сравнения определяется точка минимума хт:

 

f (x m ) = min f (xi ).

 

 

 

 

0in

 

 

 

В качестве точки экстремума полагается:

x* x ,

f * f (x ) .

 

 

 

m

m

При этом очевидно,

что погрешность ε в

определении точки

*

b a

 

минимума x равна отрезку деления, т.е. ε =

n

.

 

 

 

 

 

Метод перебора, предполагающий предварительный выбор точек xi, называется также пассивной стратегией поиска точки минимума x*. На практике точки xi выбираются заранее, когда удобно провести (n +1) независимый эксперимент по измерению

значений функции f(x), а последовательное измерение этих значений трудоемко или невозможно по каким-либо причинам.

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

полученной в предыдущих экспериментах, приводит к более эффективному поиску точки x*.

18

Методы минимизации, в которых точки xi определяются в

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

Метод золотого сечения. Метод состоит в том, что исходный отрезок [a, b] уменьшается по определенному закону, постепенно

стягиваясь к точке минимума (рис. 1.2). Сокращение отрезка происходит за счет его деления и отбрасывания частей, не содержащих экстремальной точки. Отрезок делится в отношении «золотого сечения» (отсюда название).

Рис. 1.2. Схема разбиения отрезка для поиска экстремума

Прежде всего, при реализации этого метода необходимо задать желаемую точность ε вычисления точки x*. Количество вычислений функции заранее не задается и полностью определяется точностью ε.

Метод Фибоначчи. Этот метод почти полностью совпадает с методом золотого сечения, но есть два отличия:

1)отрезок делится с помощью чисел Фибоначчи –

γ0 = γ1; γn = γn1 + γn2 , n 2,

врезультате получаем следующую последовательность чисел:

1, 1, 2, 3, 5, 8, 13, 21,;

2) требуется до начала работы метода задать число шагов n (так

как на первой итерации отрезок делится пропорционально γn2 и

γn

γn1 , а величина п изменяется в обратную сторону к нулю).

γn

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

19

Следует отметить, что как в методе «золотого сечения», так и в методе с использованием чисел Фибоначчи легко аналитически рассчитать количество вычислений функции на отрезке [a, b] , если

желаемая точность вычисления x* ε, и, наоборот, какая будет точность при п вычислениях функции.

Метод золотого сечения имеет несколько меньшую скорость сходимости, чем метод Фибоначчи.

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

В этом отношении более предпочтительными оказываются методы, основанные на полиномиальной аппроксимации.

Идея метода такова: если на отрезке [a, b] с внутренней точкой минимума есть основание полагать, что функция f (x) достаточно

хорошо аппроксимируется многочленом (2-й, 3-й степени), то за приближенное значение x* целесообразно взять точку минимума этого многочлена.

1.2.1.2. Методы минимизации, основанные на использовании производных функции

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

Метод дихотомии. При использовании этого метода вычисляется середина отрезка, в которой находится производная функции f (x) ; в зависимости от знака производной отбрасывается

одна из половин отрезка. За счет чего отрезок стягивается. Скорость сходимости данного метода выше, чем у методов

«золотого сечения» и с использованием чисел Фибоначчи.

Метод касательных. Данный метод используется только для выпуклых функций и имеет простой геометрический смысл: находят абсциссу c точки пересечения касательных к графику функции f (x) , проведенных в граничных точках отрезка (рис. 1.3),

для этого нужны производные в этих точках.

20

Источник: https://studfile.net/preview/16708738/