Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

МО-Лекции

.pdf
Скачиваний:
20
Добавлен:
03.05.2015
Размер:
4.33 Mб
Скачать

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

С увеличением числа проб выбранное направление приближается к

направлению

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