01-09-2014_14-57-50 / Моделир. Оптим.(з)_Подобие_ЛП_лекц
..pdf151
(((
x0 )= (30)= 4900
x0 |
+ )= (35)= 4225 |
x0 |
- )= (25)= 5625 |
Так как, |
|
|
( x0 |
- ) ( x0 ) ( x0 |
+ ), |
то величина должна быть положительной, а координата точки минимума x *
должна быть больше 30. Имеем x1 = x0 + = 35. Далее |
x2 = x1 +2 = 45, |
(45)= |
||||
3025< ( x1 ), |
|
|
|
|
|
|
откуда x * >35. |
(65)=1225< ( x2 ), |
|
|
|||
x3 |
= x2 + 2 |
2 |
=65, |
|
|
|
|
|
|
|
|
|
|
откуда |
x * >45 |
=105, |
(105)= 25< ( x3 ), |
|
|
|
x4 |
= x3 + 2 |
3 |
|
|
||
|
|
|
|
|
|
|
откуда |
x * >65 |
=185, |
(185)= 7225> ( x4 ). |
|
|
|
x5 |
= x4 + 2 |
4 |
|
|
||
|
|
|
|
|
|
|
Следовательно, x * <185. Таким образом, шесть шагов вычислений |
x * поз- |
|||||
волили выявить интервал 65 x * 185, в котором расположена точка |
x *. Эф- |
фективность поиска граничных точек зависит от величин шага . Если велико получаем грубые оценки координат граничных точек. Если мало, то может потребоваться большой объем вычислений.
5.1.2.2. Этап уменьшения интервала. Метод деления интервала пополам (дихотомии)
После того как установлены границы интервала, содержащего точку оптимума, можно применить более сложную процедуру уменьшения интервала с целью получения уточненных оценок координат оптимума. Поскольку местонахождение точки оптимума неизвестно, целесообразно предположить, что размещение пробных точек должно обеспечивать уменьшения интервала в одном и том же отношении. Кроме того, в целях повышения эффективности алгоритма необходимо потребовать, чтобы указанное отношение было максимальным. Подобную стратегию иногда называют минимаксной стратегией поиска. Рассмотрим метод деления интервала пополам.
Метод деления интервала пополам является простейшим последовательным методом минимизации (методы минимизации, в которых точки xi определяются
в процессе минимума с помощью найденных ранее значений функции ( x ) называются последовательными методами). Он позволяет для любой функции( x ) Q[a;b] построить последовательность вложенных отрезков [a;b] [ a1 ; b1 ]... [ an 1 ; bn 1 ] [ an ; bn ], каждый из которых содержит хотя бы одну из точек минимума x * функции f (x) . Пусть >0 – требуемая точность определения точ-
151
|
152 |
ки |
x *. Выбрав [0;2 ] ( может характеризовать погрешность измерений ве- |
личины x , и ограничена снизу возможностями измерительного прибора), по- |
строим последовательности |
{ a |
|
},{ b },{ x |
(n) |
}и{ x |
(n) |
}, n=0,1,.., используя рекур- |
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
n |
|
|
n |
1 |
|
|
|
2 |
|
|
|
|
|
|
|
рентные формулы. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
a0 |
= a |
, b0 |
= b |
; |
|
|
|
|
|
|
|
|
||
x1 |
|
a |
|
b |
|
|
; |
|
|
x2 |
|
a |
|
|
b |
|
; |
(5.1) |
||
|
n 1 |
n 1 |
|
|
|
|
|
n 1 |
n 1 |
|
||||||||||
(n 1) |
|
|
|
|
|
|
(n 1) |
|
|
|
|
|
|
|||||||
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
an = an 1 |
, |
bn |
= x2 |
, если ( x1 |
)< ( x2 |
|
), |
|
|
|
||
|
|
|
|
|
|
|
(n 1) |
(n 1) |
(n 1) |
|
|
|
|
|
|
|
an = |
x1 |
|
, bn = bn 1 |
, если ( x1 |
)> ( x2 |
|
). |
|
|
|
||
|
|
|
|
(n 1) |
|
|
(n 1) |
(n 1) |
|
|
|
|
||
f (x) |
|
|
|
|
|
|
|
f (x) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(n 1) |
) f (x |
(n 1) |
|
||
f (x |
(n 1) |
) f (x |
(n 1) |
) |
|
|
|
f (x |
) |
|||||
|
|
|
|
|
|
|||||||||
|
|
|
1 |
|
2 |
|
||||||||
|
2 |
|
|
|
|
|
|
|||||||
1 |
|
|
|
|
|
|
|
|
|
|
|
|
a |
n 1 |
x |
* |
x |
(n 1) |
|
x |
(n 1) |
b |
|
x |
a |
|
x |
* |
x(n 1) |
x(n 1) |
|
b |
|||||
|
|
|
|
2 |
n 1 |
n 1 |
|
|||||||||||||||||
|
|
|
1 |
|
|
|
|
|
|
|
|
1 |
|
|
2 |
|
n 1 |
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* |
|
|
|
|
|
|
|
|
|
|
|
|
* |
|
|
|
a |
|
|
|
|
x |
b |
|
|
|
a |
|
|
|
x |
|
b |
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
n |
||||||||||
|
|
n |
|
|
|
|
|
|
|
|
n |
|
|
|
|
n |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x
а) |
б) |
Рис.5.2. Уменьшение интервала поиска точки минимума методом деления интервала пополам.
Переход от отрезка [ an 1 ; bn 1 ] к отрезку [ an |
; bn ] методом деления отрезка по- |
||||||
полам иллюстрируется на рисунке 5.2,а , если ( x1 |
)< ( x2 |
), и на рисун- |
|||||
|
|
|
|
(n 1) |
|
(n 1) |
|
ке5.2,б, если ( x(n 1) |
)> ( x(n 1) ). Полагая x* |
an |
bn |
, находим |
x * |
с абсолютной |
|
|
|
||||||
1 |
2 |
|
2 |
|
|
|
|
|
|
|
|
|
|
|
погрешностью, не превосходящей величины.
Используя условие
|
n |
|
n |
|
bn an |
|
b a |
|
|
(5.2) |
|
2n 1 |
2 |
|||||
|
2 |
|
|
|
|||
, из последнего выражения можно найти необходи- |
мое число шагов n для обеспечения требуемой точности
Однако на практике часто поступают иначе: определив границы отрезка [ вычисляют n
по формуле (5.2) и сравнивают с заданной точностью .
a |
n |
|
;
b |
n |
|
],
152
153
n
0
1
2
3
Пример 5.2. Найти минимальное значение * и точку минимума |
x * функ- |
ции |
|
8x |
|
6x |
|
72x |
на отрезке [1,5;2,0]. |
f (x) x |
4 |
3 |
2 |
||||
|
|
|
|
|
|||
Точку |
x * найти с погрешностью =0,05. |
||||||
Положим =0,02< |
2 =0,1. Построим последовательность вложенных отрез- |
||||||
ков [ an ; bn ] |
|
по формулам (5.1), записывая результаты вычислений в таблицу 5.2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Таблица 5.2 |
||||||||
|
|
|
|
|
Значения вложенных отрезков и функций (x). |
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||
|
n |
|
n |
|
|
n |
n |
|
1 |
|
2 |
( 1 |
) |
( |
|
2 |
) |
|
|
|
|
Примечание |
|
|
|
||||||||||
a |
|
b |
|
|
|
b |
a |
|
x |
(n) |
x |
(n) |
x |
(n) |
|
|
x |
(n) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
n |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1.5 |
2.0 |
|
0.25 |
|
1.74 |
1.76 |
- |
|
-92.096 |
( |
x |
|
)< ( |
x |
2 |
), |
b |
|
= |
x |
2 |
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
1 |
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(0) |
|
|
(0) |
|
|
|
|
|
(0) |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
92.135 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
1.5 |
1.76 |
|
0.13 |
|
1.62 |
1.64 |
- |
|
-91.696 |
( |
x |
|
)> ( |
x |
2 |
), |
a |
2 |
= |
x |
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
1 |
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(1) |
|
|
(1) |
|
|
|
|
|
|
|
(1) |
|
|
|
|
|
|
|
|
|
|
|
|
|
91.486 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
1.62 |
1.76 |
|
0.07 |
|
1.68 |
1.70 |
- |
|
-92.084 |
( |
|
x |
|
|
)> ( x 2 |
), |
a |
3 |
= |
x |
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
1 |
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(2) |
|
|
(2) |
|
|
|
|
|
|
(2) |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
91.995 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
1.68 |
1.76 |
|
0.04 |
|
|
|
|
|
|
|
|
|
|
|
|
n |
,точность достиг- |
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
нута |
|
|
|
|
|
|
|
Следовательно,
x* |
a |
3 |
b |
1,72 |
|
3 |
|||
|
|
2 |
||
|
|
|
|
и
f *
f (1,72)
92,13
. Для увеличения скоро-
сти сходимости метода величину (0;2 ) целесообразно выбирать как можно меньшей, однако этот выбор ограничен снизу используемым количеством верных десятичных знаков при задании аргумента х. В любом случае должно быть больше машинного нуля применяемой ЭВМ.
Упражнения.
Методом деления отрезка пополам найти точку минимума на отрезке [a;b] с точностью и минимум *.
1. |
f (x) x sin x 2cos x , |
[-5;-4], =0,02. |
||||||||||
2. |
Ответ: |
x *= -4,4934; *= -4,8206. |
||||||||||
f (x) x |
4 |
8x |
3 |
6x |
2 |
72x 90, |
[1,5;2], =0,05. |
|||||
|
|
|
|
|
|
|
|
|
|
|||
3. |
Ответ: x *=1,6030; *= -2,1376. |
|||||||||||
f (x) x |
6 |
3x |
2 |
6x 1, |
[-1;0], =0,1. |
|||||||
|
|
|
|
|
|
|
|
|
|
|
||
|
Ответ: |
x *= -0,7549; *= -3,6347. |
||||||||||
4. |
f (x) 10x ln x |
x2 |
, |
|
[0,5;1], =0,05. |
|||||||
|
|
|||||||||||
|
|
|
|
|
|
2 |
|
|
|
|
|
154
5.
Ответ:
f (x) 3x |
4 |
|
Ответ:
x
x *=0,3822; *= -3,7491. |
|||||
10x |
3 |
21x |
2 |
12x , |
[0;0,5], =0,02. |
|
|
|
|
*=0,3684; *=2,4154.
5.1.3. Метод "золотого сечения".
Метод "золотого сечения" является последовательным методом минимизации. Этот метод использует найденные значения ( x ) более рационально, чем метод деления интервала пополам, что позволяет переходить к очередному интервалу, содержащему x * после вычисления одного, а не двух значений ( x ).
Рассмотрим на исходном отрезке [а;b] точку |
x1 |
и вычислим ( x1 |
). Зная зна- |
чение целевой функции в одной точке, невозможно сузить область поиска точки xmin . Поэтому выберем вторую точку x2 так, чтобы a< x1 < x2 <b, и вычислим
( x2 ). Возможен один из следующих двух случаев ( x1 |
) ( x2 ) или ( x1 |
) |
|
( x2 ). |
|
|
|
Согласно свойству унимодальных функций: если ( x1 ) ( x2 ), то x |
*< x2 |
; |
|
если же ( x1 ) ( x2 ), то x* > x1 ; в первом случае искомая точка x * не может |
|
||
быть на отрезке [ x2 ;b], а во втором – на отрезке [a; x1 ] |
(эти отрезки на рисунке |
5.3 отмечены штриховкой). Следовательно, теперь область поиска сужается и
следующую точку |
x3 |
следует брать в одном из укороченных отрезков [a; x2 |
] |
или [ x1 ;b]. |
|
|
|
f (x) |
|
f (x) |
|
|
|
|
a
x1 x*
x |
2 |
|
b
x
a
x1 x*
x |
2 |
|
b
x
a) б)
Рис. 5.3. Уменьшение интервала поиска точки минимума методом золотого сечения.
Установим где на исходном отрезке лучше всего выбрать точки x1 и x2 . Так как первоначально ничего не известно о положении x *, то оба указанных выше случая равновозможные, то есть "лишним" может оказаться любой из отрезков [ x2 ;b] и [a; x1 ]. Отсюда ясно, что точки x1 и x2 должны быть расположены симметрично относительно середины отрезка [a;b]. Чтобы максимально
154
155
сузить область поиска, эти точки должны быть "поближе" к середине исходного отрезка. Если их взять рядом с серединой исходного отрезка, то на втором этапе сужение области поиска будет незначительным (рис. 5.4).
a x1
|
|
|
x |
3 |
|
|
|
|
|
|
x |
2 |
|
|
|
b
Риc. 5.4. К выбору пробных точек
x1
и
x |
2 |
|
.
На втором этапе сужения области поиска потребуется вычислить лишь одно значение ( x3 ), которое будем сравнивать с уже имеющимся значением
( x1 ) или ( x2 ) в зависимости от того, какой из двух случаев реализовался. Поэтому, с одной стороны, точки x1 и x2 следует выбирать рядом с серединой отрезка, а с другой – слишком близкими их брать нельзя. Для того, чтобы найти ―золотую середину‖, используется метод "золотого сечения".
Поиск с помощью метода золотого сечения основан на разбиении отрезка прямой на две части, известном как золотое сечение – отношение длины всего отрезка к большей части равно отношению большей части к меньшей. Рассмотрим симметричное расположение двух пробных точек на исходном интервале единичной длины (рисунок 5.5.).
|
F |
|
|
||
|
|
|
|
|
|
0 |
x1 |
|
|
|
|
|
1-F |
|
|
|
|
1-F
|
|
|
x |
2 |
|
|
|
F
1
Рис.5.5. Поиск пробных точек с помощью метода золотого сечения Пробные точки x1 и x2 отстоят от граничных точек интервала на расстоя-
нии F. При таком симметричном расположении точек длина остающегося после исключения интервала всегда равна F независимо от того, какое из значений функции в пробных точках оказывается меньшим. Предположим, что исключается правый подинтервал. На рис. 5.6. показано, что оставшийся под интервал
длины F содержит одну пробную точку |
x1 |
, расположенную на расстоянии (1-F) |
||||||
от левой граничной точки. |
|
|
|
|
|
|
|
|
|
|
1-F |
|
|
|
|
F |
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
x |
|
|
x2 |
||||
1 |
|
|
|
|
155
156
Рис.5.6. Интервалы, полученные методом золотого сечения.
Чтобы точки |
x1 |
=1-F и |
x2 |
=F делили отрезки [0;F] и [0;1] |
отношении должно выполнятся равенство |
1 |
|
F |
или |
F |
|
|
|
|
|
2 |
|
F |
|
1 F |
|
|
водном и том же
1 F , откуда
находим положительное значение
F
5 1 2
0.61803
0.62
. Таким образом,