Материал: Алгоритмы пособие

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

2.6.Алгоритмы методов одномерной оптимизации

2.6.1.Метод дихотомии

Схема алгоритм метода дихотомии, представленная на рис. 2.6-1, требует дополнения процедуры-функции f(x), в которой вычисляется значение целевой функции.

Рис.2.6-1. Алгоритм метода дихотомии

В методе дихотомии используется функция f(x), унимодальная на отрезке [a;b][3].На отрезке [a0;b0], где a0=a, аb0 = b, выбираются две точки симметричные относительно середины отрезка:

α

a0 b0

δ

и β

a0 b0

δ,

0 δ

b a

,

 

 

 

 

 

1

2

 

1

2

 

2

 

 

 

 

 

 

 

 

 

где - параметр метода, величина которого (0< /2.).

 

 

Вычислим

и сравним

значения функций f( 1) и

f( 1). В силу

унимодальности функции можно провести сокращение отрезка неопределенности по следующему правилу:

Еслиf( 1) f( 1), то x* [a0; 1] ; Если f( 1) >f( 1), то x* [ 1;b0].

36

Сокращение отрезка проводятся до тех пор, пока не выполнится неравенство n=|bn-an|≤ε.

2.6.2. Метод золотого сечения

Схема алгоритма метода золотого сечения, представленная на рис. 2.6-2, требует дополнения процедуры-функции f(x), в которой вычисляется значение целевой функции.

Рис.2.6-2. Алгоритм метода золотого сечения

В методе дихотомии используется функция f(x), унимодальная на отрезке [a;b] [3].В основу метода положено разбиение отрезка неопределенности [a;b] в соотношении золотого сечения:

x a 0.382(b a)

 

x1 a k1(b a)

1

или

 

 

x2 a 0.618(b a)

x2

a k2(b a)

,

где k1=0.382, а k2=0.618.

37

Сравнение значений функции в точках х1 и х2 позволяет, в силу унимодальности функции f(x), отбросить ту часть отрезка, где заведомо нет точки минимума. Известно, что и точка х1и точка х2дваждыосуществляет золотое сечение на отрезке[a;b]. Это приводит к тому, что значение целевой функции на каждой итерации (кроме первой) вычисляется один раз.

После каждой итерации длина отрезка неопределенности сокращается в 1.618 раза. Сокращение отрезка проводятся до тех пор, пока не выполнится неравенство n=|bn-an|≤ε.

2.6.3. Метод средней точки

Схема алгоритма метода средней точки, представленная на рис. 2.6-3, требует дополнения процедуры-функции f(x), в которой вычисляется значение целевой функции.

Рис. 2.6-3. Алгоритм метода средней точки Алгоритм метода средней точки [2] основан на сокращении длины

текущего отрезка неопределенности [a;b], путем отбрасывания той половины отрезка, которая не содержит точки минимума. В основу метода положено основное свойство унимодальности функции, то есть, для того чтобы на отрезке [a;b] существовал минимум, необходимо, чтобы первая производная на нем была неубывающей. Выбрав середину текущего отрезка c=(ai+bi)/2),

принимается решение: если

 

f (c) 0 , то в следствии унимодальности

 

38

функции, точка минимума не может лежать левее точки с, переопределяется

левая граница отрезка(ai+1), а если

f (c) 0

, то минимум не может лежать

 

правее точки с и переопределяется правая граница отрезка (bi+1=c). В случае

если

f (c) 0

за точку минимума принимают значение с.

 

Сокращение отрезка проводятся до тех пор, пока не выполнится неравенство n=|bn-an|≤ε.

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

2.7.Алгоритмы методов многомерной оптимизации

Итерационные методы, применяемые для решения задач минимизации функции нескольких переменных, относятся к классу методов спуска[3]. В них каждая итерация(k) приводит к уменьшению значения целевой функции:

Q(xk+1,yk+1)<Q(xk,yk), для всех k 0.

В качестве начальной точка (x0, y0)выбирается точка, принадлежащая области допустимых значений функции.

Поскольку направление спуска совпадает с направлением вектора антиградиента, то координаты очередной точки траектории спуска вычисляются по формулам:

x

 

x

 

λ

 

 

Q

 

 

 

;

 

k 1

k

k

x

x ,y

 

 

 

 

 

 

 

 

 

k

 

k

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y

 

y

 

λ

 

 

Q

 

 

 

 

 

.

k 1

k

k

y

x ,y

 

 

 

 

 

 

 

 

 

 

k

 

k

 

 

 

 

 

 

 

 

 

 

 

 

 

где k - шаг спуска. Способ

задания шага спуска k определяется

конкретным методом.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Итерации повторяются до тех пор пока не выполняется условие

окончания цикла:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

|

Q

 

x

 

,y

| ε;

и

|

Q

 

x

 

,y

| ε.

 

 

 

 

x

 

 

y

 

 

 

 

k 1

k 1

 

 

 

k 1

k 1

Схема алгоритма метода градиентного спуска, представленная на рис. 2.7-1, требует дополнения следующих процедур-функций:

Q(x,y) – целевая функции;

g1(x,y) – частная производная по х;

g2(x,y)– частная производная по y.

39

Рис.2.7-1. Алгоритм методов наискорейшего спуска

40

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