МО-Лекции
.pdfПараметр может находиться как результат минимизации по направлению, определяемому наилучшей пробой, или выбираться по определенному правилу.
С увеличением числа проб выбранное направление приближается к
направлению |
f |
x . |
Если функция |
f x близка к линейной, то имеется возможность |
ускорить поиск, рассматривая вместе с наилучшей и наихудшую пробу. Тогда рабочий шаг можно делать или в направлении наилучшей пробы, или в направлении, противоположном наихудшей пробе.
Рис. 7.5. Алгоритм наилучшей пробы
7.3.3. МЕТОД СТАТИСТИЧЕСКОГО ГРАДИЕНТА
Из исходного состояния x k в m случайных направлениях делается
m независимых проб g 1 ,..., g m , а затем вычисляются значения ми-
нимизируемой функции в соответствующих точках. Для каждой пробы запоминаем приращения функции
f j |
f x k g |
j |
f x k . |
После этого формируем векторную сумму
m
f |
|
|
|
j f j . |
|
j |
1 |
|
|
70
В пределе при m направление f совпадает с направлением
градиента целевой функции. При конечном m вектор f представляет собой статистическую оценку направления градиента. В направле-
нии f делается рабочий шаг (рис. 7.6). В результате очередное приближение определяется соотношением
x k 1 |
x k |
|
|
|
f |
|
|
. |
|
|
|
|
|
|
|||
|
|
|
|
|
f |
|
|
|
|
|
|
|
|
|
|
|
|
При выборе оптимального |
значения |
|
|
|
, которое минимизирует |
функцию в заданном направлении, мы получаем статистический вариант метода наискорейшего спуска. Существенное преимущество перед детерминированными алгоритмами заключается в возможности принятия решения о направлении рабочего шага при m n . При m n и неслучайных ортогональных рабочих шагах, направленных вдоль осей координат, алгоритм вырождается в градиентный метод.
Рис. 7.6. Алгоритм статистического градиента
71
7.3.4.АЛГОРИТМ НАИЛУЧШЕЙ ПРОБЫ
СНАПРАВЛЯЮЩИМ ГИПЕРКВАДРАТОМ
Внутри допустимой области строится гиперквадрат. В этом гиперквадрате случайным образом разбрасывается m точек x1, ..., xm , в ко-
торых вычисляются значения функции. Среди построенных точек выбираем наилучшую. Таким образом, на 1-м этапе координаты
случайных точек удовлетворяют неравенствам ai1 xi bi1, i |
|
|
|
1, n , и |
|||
x1 arg min f (x j ) – точка с минимальным значением |
целевой |
||
j 1,m |
|
|
|
функции (рис. 7.7). |
|
|
|
Рис. 7.7. Алгоритм наилучшей пробы с направляющим гиперквадратом
Опираясь на эту точку, строим новый гиперквадрат. Точка, в кото-
рой достигается минимум функции на |
k -м этапе, берется в качестве |
|||||||||
центра нового гиперквадрата на (k 1) -м этапе. |
|
|
||||||||
Координаты вершин гиперквадрата на (k |
1) -м этапе определяются |
|||||||||
соотношениями |
|
|
|
|
|
|
|
|
|
|
|
|
bk |
|
ak |
|
|
bk |
ak |
||
ak 1 |
xk 1 |
i |
|
i |
, bk 1 |
xk 1 |
|
i |
i |
, |
i |
i |
|
2 |
|
i |
i |
|
|
2 |
|
|
|
|
|
|
|
|
|
|
где x k – наилучшая точка в гиперквадрате на k -м этапе.
72
Вновом гиперквадрате выполняем ту же последовательность действий, случайным образом разбрасывая m точек. В результате осуществляется направленное перемещение гиперквадрата в сторону уменьшения функции.
Валгоритме с обучением стороны гиперквадрата могут регулироваться в соответствии с изменением по некоторому правилу параметра
,определяющему стратегию изменения стороны гиперквадрата. В
этом случае координаты вершин гиперквадрата на (k 1) -м этапе будут определяться соотношениями
ak 1 |
xk 1 |
bk |
ak |
, bk 1 |
xk 1 |
bk |
ak |
|
i |
i |
i |
i |
. |
||||
i |
i |
|
2 |
i |
i |
|
2 |
|
|
|
|
|
|
|
|
Хорошо выбранное правило регулирования стороны гиперквадрата приводит к достаточно эффективному алгоритму поиска.
В алгоритмах случайного поиска вместо направляющего гиперквадрата могут использоваться направляющие гиперсферы, направляющие гиперконусы.
7.4. АЛГОРИТМЫ ГЛОБАЛЬНОГО ПОИСКА
Случайный поиск приобретает решающее значение при решении многоэкстремальных задач и оптимизации сложных объектов. В общем случае решение многоэкстремальных задач без элемента случайности практически невозможно.
Рассмотрим некоторые подходы к поиску глобального экстремума.
Алгоритм 1. В допустимой области D случайным образом выбирают точку x1 D . Приняв эту точку за исходную и используя некоторый детерминированный метод или алгоритм направленного случай-
ного |
поиска, осуществляют спуск в точку |
локального |
минимума |
x1 |
D , в области притяжения которого оказалась точка x1 . |
|
|
Затем выбирается новая случайная точка x2 |
D и по той же схеме |
||
осуществляется спуск в точку локального минимума x2 |
D , и т. д. |
||
(рис. 7.8). |
|
|
73
Рис. 7.8. Алгоритм 1
Поиск прекращается, как только некоторое заданное число m раз не удается найти точку локального экстремума со значением функции, меньшим предыдущих.
Алгоритм 2. Пусть получена некоторая точка локального экстре-
мума x1 D . После этого переходим к ненаправленному случайному
поиску до получения точки x2 такой, что f x2 f x1 .
Из точки x2 с помощью детерминированного алгоритма или направленного случайного поиска получаем точку локального экстремума x2 , в которой заведомо выполняется неравенство f x2 f x1 .
Далее с помощью случайного поиска определяем новую точку x3 , для которой справедливо неравенство f x3 f x2 , и снова – спуск
в точку локального экстремума x3 , и т. д.
Поиск прекращается, если при генерации некоторого предельного числа новых случайных точек не удается найти лучшей, в которой значение функции меньше, чем предыдущий локальный экстремум; он тогда и принимается в качестве решения.
Алгоритм 3 (рис.7.9). Пусть x10 – некоторая исходная точка поиска в области D , из которой осуществляется спуск в точку локального
экстремума x1 со значением f x1 . Далее из точки x1 |
движемся ли- |
|
бо в случайном направлении, либо в направлении x |
x 0 |
до тех пор, |
1 |
1 |
|
74 |
|
|
пока функция снова не станет убывать (выходим из области притяжения x1 ).
Полученная точка x20 принимается за начало следующего спуска. В результате находим новый локальный экстремум x2 со значением
функции f x2 . |
|
|
|
|
|
Если f x2 |
f |
x1 |
, точка x1 забывается и ее место занимает точ- |
||
|
|
|
|
|
|
ка x2 . Если f |
x2 |
f |
x1 , то возвращаемся в точку x1 и движемся |
из нее в новом случайном направлении.
Рис. 7.9. Алгоритм 3
Процесс прекращается, если не удается найти лучший локальный минимум после заданного числа попыток или не удается найти «случайное» направление, в котором функция снова начинает убывать.
Такой подход позволяет найти глобальный экстремум в случае многосвязных допустимых областей.
Алгоритм 4. В допустимой области D разбрасываем m случайных точек и выбираем из них наилучшую, т. е. ту, в которой значение функции минимально. Из выбранной точки осуществляем локальный спуск, а далее вокруг траектории спуска образуем запретную область.
В оставшейся области случайным образом разбрасываем новую совокупность случайных точек и из лучшей точки осуществляем спуск в точку локального экстремума. Вокруг новой траектории также строим запретную область и т. д. (рис. 7.10)
75
Рис. 7.10. Алгоритм 4
Поиск прекращается, если в течение заданного числа попыток не удается найти лучший локальный экстремум.
Замечание. Комбинация случайного поиска с детерминированными методами применяется не только для решения многоэкстремальных задач. Часто к такой комбинации прибегают в ситуациях, когда детерминированные методы сталкиваются с теми или иными трудностями (застревают на дне узкого оврага, в седловой точке и т.п.). Шаг в случайном направлении порой позволяет преодолеть такую ситуацию, тупиковую для детерминированного алгоритма.
КОНТРОЛЬНЫЕ ВОПРОСЫ
1.Простой случайный поиск.
2.Направленный случайный поиск и ненаправленный. В чем различие?
3.Примеры направленного случайного поиска.
4.Примеры ненаправленного случайного поиска.
5.Алгоритм метода статистических градиентов.
6.Примеры построения алгоритмов глобального поиска.
76
8. ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ
8.1. ОСНОВНЫЕ ОПРЕДЕЛЕНИЯ И ТЕОРЕМЫ
Определение 1. Задача, в которой требуется минимизировать (или максимизировать) линейную форму
|
n |
|
|
|
|
ci xi |
min (max) |
||
i |
1 |
|
|
|
при условии, что |
|
|
|
|
n |
|
|
|
|
|
aij xi |
bj , j 1, m , |
||
j |
1 |
|
|
|
или
n |
|
|
|
|
aij xi |
b j , j m 1 , p , |
|||
i 1 |
|
|
|
|
и |
|
|
|
|
|
|
|
|
|
xi |
0 , i 1, n , |
называется задачей линейного программирования в произвольной форме записи [7, 8].
Определение 2. Задача в матричной форме вида
c x min max |
|
Ax b, |
(1) |
x 0
называется симметричной формой записи задачи линейного программирования.
Определение 3. Задача линейного программирования вида
c x min max
|
|
(2) |
Ax b, |
x 0
77
называется канонической формой записи задачи линейного программирования.
Любую задачу линейного программирования можно привести к канонической форме. Например, если система ограничений задана в виде
Ax b ,
то можно, введя дополнительные переменные, привести ее к виду
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
Ax Ey b , x 0 , y 0 , |
|
|
|
|
|||||||||||||||||||
где y |
xn 1,..., |
xn m . Если же ограничения в задаче заданы в виде |
||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
Ax |
b , |
|
|
|
|
|
|
|
|
|
|
|
|||||||
то |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
Ax Ey b , x 0 , y 0 . |
|
|
|
|
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
Рассмотрим задачу с ограничениями |
Ax |
|
b . Эту систему ограни- |
|||||||||||||||||||||||
чений можно представить в виде системы |
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
|
|
|
a1,1x1 |
a1,2 x2 |
... |
|
a1,n xn |
xn |
1 |
b1 |
|
|||||||||||||||
|
|
|
a2,1x1 |
a2,2 x2 |
... |
|
a2,n xn |
xn |
2 |
b2 |
|
|||||||||||||||
|
|
|
................................................................. . |
|
|
|
||||||||||||||||||||
|
|
|
am,1x1 |
am,2 x2 |
... |
|
am,n xn |
xn m |
bm |
|
||||||||||||||||
Введем следующие обозначения: |
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
|
x1 |
|
a1,1 |
|
|
|
|
|
|
a1,n |
|
|
|
|
|
1 |
|
|
|
0 |
||||||
|
x2 , |
|
a2,1 |
|
|
|
|
|
|
a2,n , |
|
|
|
|
|
0 |
|
|
|
0 , |
||||||
x |
A |
,…, A |
|
|
A |
1 |
|
,…, A |
||||||||||||||||||
|
... |
1 |
... |
|
n |
|
|
|
|
... |
|
|
|
|
n |
|
... |
|
n m |
... |
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
xn |
|
am,1 |
|
|
|
|
|
|
am,n |
|
|
|
|
|
0 |
|
|
|
1 |
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
b1 |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
b2 |
. |
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
A0 |
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
... |
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bm
78
Тогда задачу линейного программирования можно записать:
|
|
|
|
|
n |
|
|
|
|
|
|
|
||
|
|
|
|
|
ci xi |
min (max) , |
||||||||
|
|
|
|
i |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x1 A1 |
x2 A2 ... |
xn An |
xn 1 An 1 ... xn m An m A0 , |
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
x 0 . |
||||||
|
|
|
||||||||||||
Векторы Ai |
называются векторами условий, а сама задача линей- |
ного программирования называется расширенной по отношению к исходной.
Пусть D и D1 – допустимые множества решений исходной и расширенной задач линейного программирования соответственно. Тогда любой точке множества D1 соответствует единственная точка множества D и наоборот. В общем случае допустимое множество D исход-
ной задачи есть проекция множества |
D1 |
расширенной задачи на под- |
пространство исходных переменных. |
|
|
Определение 4. Набор чисел x |
x1, |
x2 ,..., xn , удовлетворяющий |
ограничениям задачи линейного программирования, называется ее
планом.
Определение 5. Решением задачи линейного программирования называется ее план, минимизирующий (или максимизирующий) линейную форму.
Введем понятие базисного решения. Из матрицы расширенной за-
|
|
|
|
||||
дачи Ap |
A1, A2 ,..., An m выберем m линейно независимых векто- |
||||||
ров-столбцов, которые обозначим как матрицу Bm m , |
а через Dm n – |
||||||
обозначим матрицу из оставшихся столбцов. Тогда Ap |
B, D , и ог- |
раничения расширенной задачи линейного программирования можно записать в виде
|
|
|
|
Ap x BxB DxD A0 . |
(3) |
79