MO_conspect
.pdfВ оставшейся области случайным образом разбрасываем новую совокупность случайных точек и из лучшей точки осуществляем спуск в точку локального экстремума. Вокруг новой траектории также строим запретную область и т.д.
Рис. 7.8. Алгоритм 4
Поиск прекращается, если в течение заданного числа попыток не удается найти лучшего локального экстремума.
Замечание: Комбинация случайного поиска с детерминированными методами применяется не только для решения многоэкстремальных задач. Часто к такой комбинации прибегают в ситуациях, когда детерминированные методы сталкиваются с теми или иными трудностями (застревают на дне узкого оврага, в седловой точке и т.п.). Шаг в случайном направлении порой позволяет преодолеть такую ситуацию, тупиковую для детерминированного алгоритма.
Контрольные вопросы
1.Простой случайный поиск?
2.Направленный случайный поиск и ненаправленный? В чём различие?
3.Примеры направленного случайного поиска?
4.Примеры ненаправленного случайного поиска?
5.Алгоритм метода статистических градиентов?
6.Примеры построения алгоритмов глобального поиска?
61
8. Линейное программирование
8.1. Основные определения и теоремы
Определение 1. Задача, в которой требуется минимизировать (или максимизировать) линейную форму
n |
|
|
|
|
|
|
|
ci xi |
min (max) |
||||||
i 1 |
|
|
|
|
|
|
|
при условии, что |
|
|
|
|
|
|
|
n |
|
|
|
|
|
|
|
aij xi |
|
|
|
||||
bj , j |
1, m |
, |
|||||
j 1 |
|
|
|
|
|
|
|
или |
|
|
|
|
|
|
|
n |
|
|
j m 1 , p , |
||||
aij xi |
bj , |
||||||
i 1 |
|
|
|
|
|
|
|
и |
|
|
|
|
|
|
|
xi 0, |
|
||||||
i |
1, n |
, |
называется задачей линейного программирования в произвольной форме записи [7,8].
Определение 2. Задача в матричной форме вида
c |
|
x min max |
|
|
||||
|
|
|||||||
|
|
|
||||||
|
|
Ax |
b, |
|
|
(1) |
||
|
|
|
|
|
|
|
|
|
|
|
x 0, |
|
|||||
|
|
|
|
называется симметричной формой записи задачи линейного программирования.
Определение 3. Задача линейного программирования вида
c |
|
x min max |
|
|
||||
|
|
|||||||
|
|
|
||||||
|
|
Ax |
b, |
|
|
(2) |
||
|
|
|
|
|
|
|
|
|
|
|
x 0, |
|
|||||
|
|
|
|
называется канонической формой записи задачи линейного программирования.
Любую задачу линейного программирования можно привести к канонической форме. Например, если система ограничений задана в виде
Ax b ,
то можно, введя дополнительные переменные, привести ее к виду
Ax Ey b , x 0 , y 0 ,
где y xn 1 ,..., xn m . Если же ограничения в задаче заданы в виде
62
Ax b ,
то
Ax Ey |
b |
|
x |
|
|
y |
|
. |
, |
0 |
, |
0 |
Рассмотрим задачу с ограничениями A x b . Эту систему ограничений можно представить в виде системы
a1,1 x1 a1,2 x2 |
... a1,n xn xn 1 |
b1 |
|
a2,1 x1 a2,2 x2 |
... a2,n xn xn 2 |
b2 |
|
|
|||
|
|
|
. |
................................................................. |
|||
|
|
|
|
am,1 x1 am,2 x2 |
... am,n xn xn m bm |
|
|
|
Введем следующие обозначения:
x |
|
|
|
|
a |
|
|
|
|
|
|
a |
|
|
|
1 |
|
|
|
0 |
|
|
||
1 |
|
|
|
|
1,1 |
|
|
|
|
|
|
1,n |
|
|
|
|
|
|
|
|
|
|
|
|
x x2 |
|
|
|
|
a2,1 |
|
|
|
n a2,n |
, |
|
|
|
0 |
|
|
|
n m |
0 |
|
|
|||
, |
A1 |
,…, |
A |
An 1 |
,…, |
A |
, |
|||||||||||||||||
... |
|
|
|
... |
|
|
|
|
|
|
... |
|
|
|
... |
|
|
... |
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
xn |
|
|
|
|
am,1 |
|
|
|
|
|
|
am,n |
|
|
|
|
0 |
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b2 |
. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
A0 |
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
... |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bm |
|
|
|
|
|
|
|
|
|
|
|
Тогда задачу линейного программирования можно записать в виде:
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 , удовлетворяющий
ограничениям задачи линейного программирования, называется ее пла-
ном.
63
Определение 5. Решением задачи линейного программирования называется ее план, минимизирующий (или максимизирующий) линейную форму.
Введем понятие базисного решения. Из матрицы расширенной зада-
чи A |
|
1, |
|
2 |
,..., |
|
n m |
выберем m линейно независимых векторов- |
|
A |
A |
A |
|||||||
p |
|
|
|
|
|
столбцов, которые обозначим как матрицу Bm m , а через Dm n – обозначим матрицу из оставшихся столбцов. Тогда Ap B, D , и ограничения расширенной задачи линейного программирования можно записать в виде:
|
|
|
|
|
|
|
|
|
|
|||
|
|
Ap x BxB DxD |
A |
0 . |
(3) |
|||||||
Очевидно, что столбцы матрицы B образуют базис m -мерного про- |
||||||||||||
|
|
|
|
|
|
|
|
|
|
|||
странства. Поэтому вектор A0 |
и любой столбец матрицы D можно пред- |
|||||||||||
ставить в виде линейной комбинации столбцов матрицы B . |
|
|||||||||||
Умножим (3) на B 1 слева |
|
|||||||||||
|
|
B 1Bx B 1D x B 1 |
A |
0 |
(4) |
|||||||
|
|
B |
D |
|
||||||||
и найдем отсюда xB : |
|
|
|
|
|
|
||||||
|
|
|
|
|
||||||||
|
|
x B 1 |
A |
0 |
B 1Dx . |
(5) |
||||||
|
|
B |
D |
|
Придавая xD различные значения, будем получать различные решения xB .
Если положить xD |
|
, то |
|
|
|
0 |
|
|
|
||
x B 1 |
|
|
|
||
A0 . |
(6) |
||||
|
B |
|
|
|
Решение (6) называют базисным решением системы из m уравнений с m n неизвестными.
Если полученное решение содержит только положительные компоненты, то оно называется базисным допустимым.
Особенность допустимых базисных решений состоит в том, что они являются крайними точками допустимого множества D1 расширенной задачи.
Если среди компонент xB нет нулевых, то базисное допустимое решение называется невырожденным.
Определение 6. План x задачи линейного программирования будем
называть опорным, если векторы условий Ai с положительными коэффициентами линейно независимы.
То есть, опорный план – это базисное допустимое решение расширенной системы, угловая точка многогранника решений.
Определение 7. Опорное решение называется невырожденным, если оно содержит m положительных компонент (по числу ограничений).
Невырожденный опорный план образуется пересечением n гиперплоскостей из образующих допустимую область. В случае вырожденности в
64
угловой точке многогранника решений пересекается более чем n гиперплоскостей.
8.2. Основная теорема линейного программирования
Теорема 1 [8].
1)Линейная форма z c x достигает своего минимума в угловой точке многогранника решений.
2)Если она принимает минимальное решение более чем в одной угловой точке, то она достигает того же самого значения в любой точке, являющейся выпуклой комбинацией этих угловых точек.
Доказательство: Доказательство теоремы основано на следующей лемме. Лемма. Если D - замкнутое, ограниченное, выпуклое множество, имеющее конечное число крайних (угловых) точек, то любая точка x D может
быть представлена в виде выпуклой комбинации крайних точек D .
1) Пусть x 0 - некоторая внутренняя точка. Многогранник ограниченный, замкнутый, имеет конечное число угловых точек. D
– допустимое множество.
Предположим, что точка x 0 |
является |
||
оптимальной |
точкой. |
То |
есть, |
z x 0 z x , |
x D . |
Предположим, |
что точка x 0 не является угловой. Тогда на основании леммы точку x 0 |
||||
можно выразить через угловые точки многогранника x i , т.е. |
||||
|
p |
|
p |
|
x 0 i x i , |
i 0 , |
i |
1. |
|
Так как функция z x |
i 1 |
|
i 1 |
|
линейна, то |
|
|
|
|
|
p |
|
|
|
|
z x 0 i z x i . |
|
(*) |
|
|
i 1 |
|
|
|
Выберем среди точек x i ту, в которой линейная форма z x принимает
наименьшее значение. Пусть это будет точка x k . Обозначим минимальное значение функции в угловой точке через z :
z z(x k ) min z(x1 ), z(x 2 ), |
, z(x p ) . |
|
1 i p |
|
|
Подставим данное значение функции в линейную форму (*) вместо z x i |
||
и получим: |
|
|
p |
p |
|
z x 0 i z z i |
z . |
|
i 1 |
i 1 |
|
65
Так как x 0 - оптимальная точка, то получили противоречие: |
z x 0 z* (!). |
||||
Следовательно, z x 0 z x k , x 0 x k |
– угловая точка. |
|
|||
2) Предположим, |
что линейная форма z x принимает минимальное зна- |
||||
чение более чем в одной |
угловой точке, например, в угловых точках |
||||
x1, x 2 ,..., x q z |
x1 z x 2 |
... z x q |
z . Тогда если x |
является вы- |
|
пуклой комбинацией этих точек, то есть |
|
|
|||
|
|
q |
q |
|
|
|
|
x i x i , i 1 и i i 0, |
|
||
|
|
i 1 |
i 1 |
|
|
|
a |
|
a |
|
|
то z x z |
i x i z i z . |
|
|
||
|
i 1 |
|
i 1 |
|
|
То есть, если минимальное значение достигается более чем в одной угловой точке, то того же самого значения линейная форма достигает в любой точке, являющейся выпуклой комбинацией этих угловых точек
Теорема 2. Если известно, что система векторов условий A1,..., Am , (m n) линейно независима и такова, что
x1 A1 ... xm Am A0 ,
где все x j 0 , то точка x x1 ,..., xm ,0,...,0 является угловой точкой многогранника решений.
Теорема 3. Если вектор x является угловой точкой многогранника решений, то векторы условий, соответствующие положительным компонентам вектора x , являются линейно независимыми.
Следствия:
1)Угловая точка многогранника решений имеет не более m положительных компонент вектора x .
2)Каждой угловой точке многогранника решений соответствует m
линейно независимых векторов из данной системы: A1,..., An .
8.3. Симплекс метод
8.3.1. Введение в симплекс-метод
Этот метод называет еще методом последовательного улучшения плана [8]. Метод предназначен для решения общей задачи линейного программирования.
Пусть имеем следующую задачу:
Q x c1x1 c2 x2 ... cn xn min , |
(1) |
с системой ограничений следующего вида:
66
|
a1,1 x1 a1,2 x2 ... |
a1,n xn |
b1 |
||
....................................................... |
|||||
|
|
|
|
|
|
|
a x a |
x ... |
a |
x b |
|
|
m,1 1 m,2 2 |
|
m,n n |
m |
Разрешим эту систему относительно переменных x1 ,..., xm :
x1 a1,' m 1 xm 1 |
... |
a1,' n xn b1' |
|||
..................................................... |
|||||
|
|
|
|
|
|
x a' |
x |
... |
a' |
x b' |
|
m |
m,m 1 |
m 1 |
|
m,n n m |
(2)
(3)
Векторы условий, соответствующие x1 ,..., xm , образуют базис. Переменные x1 ,..., xm назовем базисными переменными. Остальные переменные
задачи – небазисные.
Целевую функцию можно выразить через небазисные переменные:
Q x cm' 1xm 1 cm' 2 xm 2 ... cn' xn c0' min .
Если приравнять небазисные переменные нулю
xm 1 0, xm 2 0, ..., xn 0 ,
то соответствующие базисные переменные примут значения
x1 b1' , x2 b2' , ..., xm bm' .
Вектор x с такими компонентами представляет собой угловую точку многогранника решений (допустимую) при условии, что bi' 0 (опорный
план).
Теперь необходимо перейти к другой угловой точке с меньшим значением целевой функции. Для этого следует выбрать некоторые небазисную и базисную переменные так, чтобы после того, как мы “поменяем их местами”, значение целевой функции уменьшилось. Такой направленный перебор в конце концов приведет нас к решению задачи.
Пример 1: Пусть
Q x x 4 x5 min x1 x4 2x5 1
x2 2x4 x5 2 . x3 3x4 x5 3
Выберем в качестве базисных следующие переменные x1, x2 , x3 и
разрешим систему относительно этих переменных. Система ограничений примет следующий вид:
x1 1 x4 2x5 x2 2 2x4 x5 . x3 3 3x4 x5
67
Переменные x4 , x5 являются небазисными. Если взять x4 |
0 |
и x5 0 , |
|
то получим угловую точку (опорный план) |
|
|
|
x1 1 2 3 0 |
0 , |
|
|
которому соответствует Q x1 0. |
|
|
|
Значение целевой функции можно уменьшить за счет увеличения x5 . |
|||
При увеличении x5 величина x1 также увеличивается, а x2 |
и x3 |
– умень- |
шаются. Причем величина x2 может стать отрицательной раньше. Поэтому, вводя в базис переменную x5 , одновременно x2 исключаем из базиса.
В результате после очевидных преобразований получим следующие выражения для новой системы базисных переменных и целевой функции:
x 5 2 x2 2x4 |
|
|
||
x1 5 2x2 3x4 |
|
|
||
|
|
|||
x3 1 x2 5x4 |
|
|
||
|
|
|||
Q x 2 x4 |
x2 |
min . |
и Q x 2 2. |
|
Соответствующий опорный план x 2 |
5 |
0 |
1 0 2 |
Целевую функцию можно уменьшить за счет увеличения x4 . Увеличение x4 приводит к уменьшению только x3 . Поэтому вводим в базис переменную x4 , а x3 исключаем из базиса. В результате получим следующие выражения для новой системы базисных переменных и целевой функции:
|
x4 |
|
1 |
|
|
1 |
x2 |
1 |
|
|
x3 |
|
|
|
|
|
|
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
5 |
|
5 |
5 |
|
|
|
|
|
|
|
|||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
28 |
|
|
|
|
7 |
|
|
|
|
|
|
3 |
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||
|
x1 |
|
|
|
|
|
|
|
x2 |
|
|
|
|
|
x3 |
|
|
|
|
|
|
||||||||||||||
5 |
|
5 |
5 |
|
|
|
|
|
|||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
x5 |
|
12 |
|
|
3 |
x2 |
|
|
2 |
|
x3 |
|
|
|
|
|
|
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
5 |
|
|
5 |
|
3 |
|
|
|
|
|
|||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
Q x |
11 |
|
|
4 |
x |
|
|
1 |
x min . |
|
|
|
|
||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||
|
|
|
|
|
|
|
5 |
|
|
|
5 |
|
2 |
|
5 |
|
|
3 |
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
x 3 |
|
28 |
|
|
0 0 |
1 |
12 |
|
||||||||||||||
Соответствующий опорный план |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
и значение |
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||
целевой функции Q x |
3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
|
|
|
|
5 |
|
5 |
|
||||
11 |
|
. Так как все коэффициенты при небазисных |
|||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||
5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
переменных в целевой функции неотрицательны, то нельзя уменьшить целевую функцию за счет увеличения x2 или x3 . Следовательно, получен-
ный план x 3 является оптимальным.
68
Пример 2: Пусть имеем задачу |
|
|
|
|
|
Q x x1 x2 min |
|||||
x |
|
1 x |
x |
|
|
3 |
|
1 |
2 |
|
|
x4 2 x1 2x2 |
. |
||||
|
|
x 0 |
|
|
|
|
|
|
|
||
Переменные x3 , x4 – базисные, |
а x1 , x2 – небазисные переменные. |
||||
Опорный план x 0 0 0 1 |
2 , |
Q x 0 0. |
Теперь вводим в базис переменную x1 , а x4 исключаем из базиса. В результате получим следующие выражения для базисных переменных и
целевой функции: |
|
|
|
|
|
x |
2 2x |
|
x |
|
|
1 |
|
2 |
|
4 |
|
x3 3 x2 x4 |
|
|
Q x 2 3x2 x4 .
Опорный план x1 2 |
0 3 0 , значение целевой функции |
Q x1 2 . |
|
Теперь можно заметить, что при увеличении x2 значения переменных x1 и x3 также возрастают. То есть, при x2 в допустимой области Q x (задача не имеет решения).
Замечание: В процессе поиска допустимого плана может быть выявлена противоречивость системы ограничений.
8.3.2. Алгоритм симплекс метода
Формализованный алгоритм симплекс метода состоит из двух основных этапов [8]:
1)построение опорного плана;
2)построение оптимального плана.
Проиллюстрируем алгоритм на рассмотренном ранее примере: |
|
Q x x4 x5 |
min |
x1 x4 2x5 |
1 |
x2 2x4 x5 |
|
2 , |
|
x3 3x4 x5 |
|
3 |
x0 .
Вслучае базисных переменных x1 , x2 , x3 начальная симплексная
таблица для данного примера будет выглядеть следующим образом:
69
|
|
|
x4 |
x5 |
|
1 |
|
|
x1 |
= |
1 |
–2 |
|
1 |
|
|
x2 |
= |
–2 |
1 |
|
2 |
|
|
x3 = |
3 |
1 |
|
3 |
|
|
|
Q x = |
–1 |
1 |
|
0 |
|
|
|
|
|
|
|
|
|
|
Она уже соответствует опорному плану x1 1 |
2 3 0 0 (столбец |
||||||
свободных членов). |
|
|
|
|
|
|
Построение оптимального плана. Для того чтобы опорный план был оптимален при минимизации целевой функции необходимо, чтобы коэффициенты в строке целевой функции были неположительными (в случае максимизации – неотрицательными). То есть, при поиске минимума мы
должны освободиться от положительных коэффициентов в строке Q x .
Выбор разрешающего элемента. Если при поиске минимума в строке целевой функции есть коэффициенты больше нуля, то выбираем столбец с положительным коэффициентом в строке целевой функции в качестве разрешающего. Пусть это столбец с номером l .
Для выбора разрешающей строки (разрешающего элемента) среди положительных коэффициентов разрешающего столбца выбираем тот (ту строку), для которого отношение коэффициента в столбце свободных членов к коэффициенту в разрешающем столбце минимально:
br |
|
|
|
|
min |
bi |
|
ail 0 . |
|
|
|
|||
arl |
ail |
|
|
Тогда arl – разрешающий (направляющий) элемент, строка r – разре-
шающая.
Для перехода к следующей симплексной таблице (следующему опорному плану с меньшим значением целевой функции) делается шаг модифицированного жорданова исключения с разрешающим элементом arl .
Если в разрешающем столбце нет положительных коэффициентов, то целевая функция неограничена снизу (при максимизации – неограничена сверху).
Шаг модифицированного жорданова исключения над симплексной таблицей:
1.На месте разрешающего элемента ставится 1 и делится на разрешающий элемент.
2.Остальные элементы разрешающего столбца меняют знак на противоположный и делятся на разрешающий элемент.
3.Остальные элементы разрешающей строки делятся на разрешающий элемент.
70