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

MO_conspect

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

В оставшейся области случайным образом разбрасываем новую совокупность случайных точек и из лучшей точки осуществляем спуск в точку локального экстремума. Вокруг новой траектории также строим запретную область и т.д.

Рис. 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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]