Схема алгоритм метода дихотомии, представленная на рис. 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, требует дополнения процедуры-функции 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, требует дополнения процедуры-функции 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