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

Методы оптимизации семинары

.pdf
Скачиваний:
173
Добавлен:
27.02.2016
Размер:
818.9 Кб
Скачать

z = 3x1 - 2x2 ® max ,

ì 7x1 + 2x2 ³14

ïí - x1 + 2x2 ³ 2

ïî7x1 + 10x2 £ 28

x1 ³ 0, x2 ³ 0 .

Решение. На графике (рис. 3.6) многоугольник решений выродился в точку, найдем ее координаты. Из первых двух уравнений границ

ì7x1 + 2x2 = 14

íî- x1 + 2x2 = 2

Находим x1 = 32 , x2 = 74 , подставим эти значения в третье уравнение:

7 32 + 10 74 = 28 ; 28=28.

рис. 3.6

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

единственный план задачи X = (32 , 74) , которому отвечает значение целевой функции

z = 3(32) - 2(74) =1.

Пример 3. Решить задачу

z = 2x1 - 10x2 ® min ,

ì x1 - x2 ³ 0 , îíx1 - 5x2 ³ -5

x1 ³ 0, x2 ³ 0 .

Решение.

рис. 3.7

Линия уровня параллельна граничной прямой 2 (рис.3.7), это следует из пропорциональности коэффициентов при переменных в целевой функции и во втором неравенстве системы ограничений. Поэтому минимальное значений достигается не только в угловой точке А но и во всех точках прямой 2.

Точке А соответствует оптимальный план

X * = (54 , 54) .

Оптимальным будет также любой план

X * = (x, 5x + 1) , x ³ 54 .

Каждому такому плану отвечает минимальное значение целевой функции

zmin = 2x - 10(5x + 1) = -10 .

Пример 4. Решить задачу

z = x1 - 10x2

® min ,

ì

1

 

 

ï

 

 

 

 

- 2 x2

³ 0,

í x1

ï

- 5x2 ³ -5

îx1

x1 ³ 0, x2

³ 0 .

рис. 3.8

Линию уровня можно сколь угодно долго смещать противоположно

вектору N, она всегда при этом будет пересекать область допустимых

решений. Это значит, что целевая функция не ограничена снизу на множестве планов, т.е. задача не имеет оптимального плана (не имеет решения).

Пример 5. Решить задачу

z = 2x1 - 5x2 ® max ,

ì4x1 + 3x2 £12,

íî3x1 + 4x2 ³12

x1 ³ 0, x2 ³ 0 .

Решение.

рис. 3.9

Определяемые ограничениями-неравенствами четыре полуплоскости не образуют общей области, значит, система ограничений не совместна и задача не имеет решения.

Графическим методом можно решить задачу линейного программирования с числом переменных и более двух, если ее можно свести к задаче в стандартной форме, содержащей не более двух переменных. Это всегда можно сделать, если система ограничений канонической формы задачи содержит m линейно независимых уравнений с n неизвестными и

n - m £ 2.

Пример 6. Записать в канонической форме задачу

z =

2x1 + x2 + 6x3 -12x4 - 9x5 ® max ,

(3.8)

ì x1 + x2 + 7x3 - 3x4 - 7x5 =13

 

ï

+ 2x2 +13x3 + 2x4 -14x5 = 20,

(3.9)

íx1

ïx

+ 3x

2

+ 20x

3

+ 6x

4

- 23x

5

=19

 

î 1

 

 

 

 

 

 

 

 

 

x j ³ 0 (j=1,2,…,5).

(3.10)

Решение. Задача содержит n=5 и m=3 ограничений-равенств, поэтому есть возможность свести ее к стандартной задаче с двумя переменными (если уравнения-ограничения линейно зависимы). С этой целью разрешим систему (3.9) относительно первых трех переменных методом Жордана-Гаусса. Преобразования запишем в матричном виде

æ1 1 7 - 3 - 7

 

 

13ö

æ1 1 7 - 3 - 7

 

 

 

13ö

 

 

ç

 

-14

 

 

20

÷

ç

 

- 7

 

 

 

7

÷

ç1 2 13 2

 

 

÷

Þ ç0 1 6 5

 

 

 

÷

ç

 

- 23

 

 

19

÷

ç

 

-

16

 

6

÷

è1 3 20 6

 

 

ø

è0 2 13 9

 

ø

æ1 0 1 - 8 0

 

6 ö

æ1 0 0 - 7 2

 

 

14 ö

 

 

 

 

ç

 

- 7

 

7

÷

ç

 

 

 

 

55

÷

 

ç0 1 6 5

 

÷ Þ ç0 1 0 11 5

 

 

÷ .

ç

- 1

- 2

 

- 8

÷

ç

- 1

- 2

 

 

- 8

÷

 

è0 0 1

 

ø

è0 0 1

 

 

ø

 

Итак, преобразовали систему к виду

ì x

- 7x

4

+ 2x

5

= 14

ï

1

 

 

 

íx2 + 11x4 + 5x5 = 55

ï

x3

- x4

- 2x5 = -8

î

или

ì x1 ïíx2 ïî x3

=14 + 7x4 - 2x5 ³ 0

 

= 55 -11x4 - 5x5 ³ 0 .

(3.11)

= -8 + x4 + 2x5 ³ 0

 

Исключим из целевой функции переменные x1 , x2 , x3 , подставив в (3.8) их выражения из (3.11):

z = 18 + 14x4 - 4x5 + 55 - 11x4 - 5x5 - 48 + 6x4 + 12x5 -12x4 - 9x5 = -35 - 3x4 - 6x5

Таким образом, исходную задачу преобразовали к задаче

z = 35 - 3x4

- 6x5

® max ,

(3.12)

ì- 7x4 + 2x

5 £14

 

 

ï

11x4

+ 5x5

£ 55

,

(3.13)

í

ï

- x4

- 2x5

£ -8

 

 

î

 

 

 

 

x4 ³ 0, x5 ³ 0 ,

(3.14)

содержащей только две переменные.

Задачу (3.12)-(3.14) решаем графическим методом

рис. 3.10

Линия уровня параллельна стороне AD многоугольника решений, максимуму целевой функции соответствует опорная прямая, проходящая через точки A и D, т.е. задача (3.12)-(3.14) имеет множество решений (оптимальных планов). Возьмем план, отвечающий точке А:

X * = (0;4) .

Компоненты плана исходной задачи (3.8)-(3.10) x1 , x2 , x3 найдем пользуясь равенствами (3.11)

x1 = 6, x2 = 35, x3 = 0 .

Оптимальный план исходной задачи

X * = (6, 35, 0, 0, 0, 4) .

Оптимальное значение целевой функции zmax =11.

Графическим методом решить следующие задачи:

1. z = 2x1 + 3x2

® max , íì3x1

+ 3x2 £ 6

,

x1 ³ 0, x2 ³ 0 .

 

î x1

+ x2 ³ 1

 

 

Ответ:

X* =(0;2),zmax =6.

 

 

 

 

 

ì x1 - x2 £1

2. z = x1

+ 3x2

® max , íï2x1

+ x2

³ 2, x1 ³ 0, x2 ³ 0 .

 

 

ï x

- x

2

³ 0

 

 

î 1

 

 

Ответ: Решения нет, z → ∞ .

3.

z = 2x1 + 3x2 ® max ,

íì3x1

+ 2x2

³ 6

,

x1 ³ 0, x2

³ 0 .

 

 

 

î x1

+ 4x2

 

³ 4

 

 

 

Ответ:

X * = (8 / 5;3/ 5), zmin = 5.

 

 

 

 

 

 

 

 

 

ì- x1 - x2 ³ -3

 

 

 

4.

z = x1

+ 3x2 ® max ,

íï

2x1

- 3x2

£ 6 ,

x1 ³ 0, x2

³ 0 .

 

 

 

ï

x

+ x

2

³ 4

 

 

 

 

 

 

î

1

 

 

 

 

 

 

Ответ: Решения нет: система ограничений несовместна.

 

ìx1 + 2x

2

£ 10

5. z = x1 + x2

® max , íï x1

 

+ 2x2

³ 2 , x1 ³ 0, x2 ³ 0 .

 

ï2x

+ x

2

£ 10

 

î

1

 

 

Ответ:

X * = (10 / 3;10 / 3), zmax = 20 / 3

 

 

 

 

 

 

 

 

 

 

 

 

ì 2x1 - x2 - x3

 

= -1

 

 

ïx - 3x

2

 

- x

4

 

= -13

6. z = -4x1 + 3x2 + x4 - x5 ® max ,

ï

1

 

 

 

 

 

 

= 26 , x j ³ 0 (j=1,2,…,7).

í

4x1

+ x2

 

+ x5

 

 

 

ï

x

- 3x

2

+ x

2

= 0

 

 

ï

1

 

 

 

 

 

 

 

î

x1

+ x2

 

- x7

 

= 4

Ответ:

X * = (5;6;5;0;0;13;7), zmax = -2

 

 

 

 

 

 

 

 

 

 

 

ì4x1 - 3x2 - x3 + x4 + x5 = 6

 

 

 

7. z = x1 + x2 ® max , íï

x1 + 4x2

+ x3

+ x5

= 15

, x j ³ 0 (j=1,2,…,5).

 

 

ï

2x - 4x

2

- x

3

+ x

4

= -3

 

 

 

 

î

1

 

 

 

 

 

 

Ответ: Решение неединственное:

 

 

 

= λX1*

+ (1 - λ)

X 2* ,(0 £ λ £ 1),

 

X1* = (3;0;9;0;3),

X 2* = (4;1;7;0;0),

 

X *

zmax = 3.

4. Симплексный метод

Симплексный метод является основным методом решения задач линейного программирования. Он применяется к задаче, записанной в канонической форме

z = c1 x1 + c2 x2

+ ... + cn xn

® min(max),

ì a

x

+ a

x

2

+ ... + a

 

x

n

= b

 

 

ï

11 1

 

12

 

1n

 

 

1

 

 

ï a21 x1

+ a22 x2

+ ... + a2n xn

= b2

,

í

 

 

 

 

 

 

......

 

 

 

 

 

 

 

ï

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ïa

m1

x

+ a

m2

x

2

+ ... + a

mn

x

n

= b

n

 

î

1

 

 

 

 

 

 

 

(4.1)

(4.2)

x j ³ 0 (j=1,2,…,n),

(4.3)

где bi ³ 0 (i=1,2,…,m).

Система ограничений (4.2) может быть представлена в векторной форме

x1 A1 + x2 A2 + ... + xn An = A0

(4.4)

 

где A1 , A2 ,..., An , A0 - векторы:

 

 

 

 

 

 

 

 

 

 

æ a

ö

 

æ a

ö

 

 

æ b

ö

 

ç 11

÷

 

ç 1n ÷

 

 

ç 1

÷

A =

ç a21 ÷

,…, A =

ç a2n ÷

, A

=

ç b2 ÷

ç

÷

ç

÷

ç

÷

1

n

0

 

 

ç ...

÷

 

ç ...

÷

 

 

ç ...

÷

 

ç

÷

 

ç

÷

 

 

ç

÷

 

èam1

ø

 

èamn ø

 

 

èbm

ø

Равенство (4.4) можно рассматривать как разложение вектора A0 по векторам A1 , A2 ,..., An . В этом случае переменные x1 , x2 ,..., xn или компоненты вектора X = (x1 , x2 ,..., xn ) суть коэффициенты разложения вектора A0 .

Напомним, что вектор X = (x1 , x2 ,..., xn ) называется планом или

допустимым решением задачи линейного программирования, если он удовлетворяет условиям (4.2) и (4.3). План называется опорным, если положительным (ненулевым) компонентам вектора X соответствуют линейно независимые векторы Aj в разложении (4.4). Опорный план называется

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

Множество планов данной задачи образует многогранник в m-мерном пространстве, называемый многогранником решений. В теории линейного программирования доказывается, что если целевая функция ограничена на

многограннике решений, то существует такая угловая точка (вершина) многогранника, в которой целевая функция достигает своего наименьшего (наибольшего) значения, и что каждой угловой точке соответствует опорный план. Следовательно, для отыскания оптимального плана достаточно исследовать только опорные планы.

Симплексный метод позволяет переходить от одного опорного плана к другому, более близкого к оптимальному. Геометрически симплекс-метод можно трактовать, как перемещение по ребрам многогранника решений от вершины к вершине в строну оптимального плана. Симплексный метод можно применить, если известен какой-нибудь исходный опорный план. Такой опорный план можно непосредственно записать, если в разложении (4.4) имеется m линейно независимых единичных векторов Aj . Пусть,

например,

æ

1

ö

æ

0

ö

æ

0

ö

ç

0

÷

ç

1

÷

ç

0

÷

ç

÷

ç

÷

ç

÷

A1 = ç

 

÷, A2

= ç

 

÷,..., An

= ç

 

÷,

ç

...÷

ç

...÷

ç

...÷

ç

0

÷

ç

0

÷

ç

1

÷

è

ø

è

ø

è

ø

т.е. система ограничений (4.2) имеет вид

ì

x

+ a

x

m+1

+ ... + a

x

n

= b

 

 

ï

1

1,m+1

 

1n

 

1

 

 

ï x2

+ a2,m+1 xm+1

+ ... + a2n xn = b2

.

(4.5)

í

 

 

 

......

 

 

 

ï

 

 

 

 

 

 

 

 

ï

 

+ am,m+1 xm+1

+ ... + amn xn = bm

 

 

îxm

 

 

Единичные векторы A1 , A2 ,..., Am образуют базис m-мерного векторного пространства; соответствующие им переменные x1 , x2 ,..., xm называют базисными, а остальные переменные xm+1 , xm+2 ,..., xn свободными. Полагая в системе уравнений (4.5) свободные переменные равными нулю, получаем

x1 = b1 , x2 = b2 ,..., xm = bm

Вектор X = (b1,b2 ,...,bm ,0,...,0) является опорным планом, так как он

удовлетворяет системе ограничений (4.5), его компоненты неотрицательны и нулевым компонентам соответствуют линейно зависимые векторы Aj .

Проверку исходного опорного плана на оптимальность и дальнейшие вычисления удобно вести в специальной, так называемой симплексной таблице, в которую вначале заносят исходные данные задачи (табл. 4.1). После заполнения таблицы вычисляют показатели (m+1)-й строки. В этой строке в столбце A0 записывается значение целевой функции z0 ,

соответствующее первоначальному опорному плану

m

 

z0 = åci xi ,

(4.6)

i=1

 

а в следующих столбцах – величины

 

m

 

D j = z j - c j = åci aij - c j ,

(4.7)

i=1

называемые оценками плана.

Оценки служат критерием оптимальности плана. Если при решении

задачи на минимум целевой функции все оценки неположительные

 

z j - c j £ 0 (j=1,2,..,n),

(4.8)

то план является оптимальным. При решении задачи на максимум

условие оптимальности – неотрицательность всех оценок:

 

z j - c j ³ 0 (j=1,2,…,n).

(4.9)

Если условие оптимальности нарушено хотя бы для одной из оценок, то необходимо в соответствующем столбце просмотреть величины aij : если

все aij £ 0 хотя бы для одного из таких столбцов, то задача линейного

программирования не имеет решений (целевая функция не ограничена в области допустимых решений).

Если же в столбце, где нарушено условие оптимальности, есть положительные величины aij , то нужно перейти к другому опорному плану.

Перейти к новому опорному плану – значит разложить вектор A0 по другому

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

1. Для каждого столбца с нарушением условия оптимальности вычисляется величина

θ0 j = min

bj

 

,

 

 

 

 

i

 

aij

 

где минимум берется по тем i, для которых aij

³ 0 . Соответствующее

значение aij каким-либо образом отмечается в таблице.

 

2. Вычисляются величины θ0 j (z j - c j ) и определяется

 

max[θ0 j (z j

- c j )]

(4.11)

j

 

 

 

 

 

при решении задачи на минимум и

 

 

 

 

 

min[θ0 j

(z j - c j )]

(4.12)

j

 

 

 

 

 

при решении задачи на максимум. Элемент aij , отмеченный на предыдущем

шаге и стоящий в столбце, соответствующем условию (4.11) или (4.12), выделяется в качестве ведущего элемента; строка и столбец, содержащие ведущий элемент, называются направляющими. Если имеется несколько одинаковых максимальных значений θ0 j (z j - c j ) при решений задачи на

минимум, то в соответствующих столбцах ведущим элементом выбирается отмеченный элемент в столбце, которому соответствует наименьшее c j . В

аналогичном случае при решении задачи на максимум ведущим принимается отмеченный элемент в столбце, которому соответствует наибольшее c j .

3. С учетом выбранного ведущего элемента выполняется преобразование по методу полного исключения над всеми элементами столбцов A0 , A1 , A2 ,..., An , включая (m+1)-ю строку, и заполняется новая

симплексная таблица (табл. 4.2). При этом вектор Ai направляющей строки выводится из базиса, а вектор Aj направляющего столбца становится базисным.

Правильность вычислений проверяется пересчетом элементов (m+1)-й строки по формулам (4.6),(4.7).

В столбце A0 стоят компоненты нового опорного плана

X1 = (b1′, b2′ ,...,0,...,bm′ ,0,...,bk′ ,0,...,0) .

Если для нового опорного плана выполнены условия оптимальности, то решение задачи на этом заканчивается. Если условия оптимальности не выполнены, то, как и на предыдущем шаге, выясняем, не оказалась ли задача неразрешимой и если нет, то переходим к следующему опорному плану, повторяя шаги 1-3.

Как известно из теории, после конечного числа таких этапов(итераций) мы либо приходим к оптимальному плану, либо убеждаемся в том, что задача не имеет решения. (Мы пренебрегаем возможностью так называемого зацикливания ввиду того, что оно практически не встречается в реальных задачах). Если в симплексной таблице с оптимальным опорным планом нулевые оценки соответствуют только базисным векторам, то оптимальный план единственный. Если ненулевые оценки есть у небазисных векторов, то решение неединственное.

Таблица 4.1

I

Базис

Cσ

A0

C1

C2

Cr

Cm

Cm−1

Ck

Cn

 

 

 

 

 

A1

A2

Ar

Am

Am+1

Ak

An

1

A1

C1

b1

1

0

0

0

a1m+1

a1k

a1n

2

A2

C2

b2

0

1

0

0

a2m+1

a2k

a2n

r

Ar

Cr

br

0

0

1

0

arm+1

 

arn

m

Am

Cm

bm

0

0

0

1

amm+1

amk

amn

m+1

z j c j

 

z0

0

0

0

0

m+1

k

n

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 4.2

I

Базис

Cσ

A0

C1

C2

Cr

Cm

Cm−1

Ck

Cn

 

 

 

 

 

A1

A2

Ar

Am

Am+1

Ak

An

1

A1

C1

b1

1

0

a1r

0

a1m+1

0

a1n

2

A

C

2

b

0

1

a

0

a

0

a

 

2

 

2

 

 

 

2r

 

 

2m+1

 

 

 

2n

r

A

C

k

b

0

0

a

0

a

1

a

k

 

r

rr

rm+1

rn

m

Am

 

Cm

0

0

1

0

 

bm

amr

amm+1

amn

m+1

z j

-

c j

0

0

D

0

D

0

D

 

z0

r

m+1

n

Пример 1. Симплексным методом решить следующую задачу линейного программирования:

z = x1 + x2 + x3 ® min,

ì x1 - x4 - 2x6 = 5

ïí x2 + 2x4 - 3x5 + x6 = 3 , ïîx3 + 2x4 - 5x5 + 6x6 = 5

x j ³ 0 (j=1,2,…,6).

Решение. Задача записана в канонической форме, система ограничений имеет положительные правые части и содержит три единичных линейно независимых вектора A1 , A2 , A3 , поэтому можем заполнить первую

симплексную таблицу (табл. 4.3.).

Таблица 4.3

i

Базис

 

Cσ

A0

1

1

1

0

0

0

 

 

 

 

 

A1

A2

A3

A4

A5

A6

1

A1

 

1

5

1

0

0

-1

0

-2

2

A2

 

1

3

0

1

0

2

-3

1

3

A3

 

1

5

0

0

1

2

-5

6

m+1

z j - c j

 

13

0

0

0

3

-8

5

Вносим в нее исходные данные задачи и вычисляем элементы (m+1)-й строки.

Значение z0 вычисляется следующим образом: элементы столбца Cσ умножаются на соответствующие элементы столбца A0 (компоненты вектора A0 ) и эти произведения суммируются:

z0 = 1* 5 + 1* 3 + 1* 5 = 13.

Значения оценок D j = z j - c j вычисляются аналогично, но из суммы произведений вычитается соответствующее значение c j , записанное сверху в

шапке таблицы, например

D1 =1*1 + 1* 0 + 1* 0 =1

и т.д.

D6 = 1* (-2) + 1*1 + 1* 6 - 0 = 5 .

Среди оценок есть положительные (D 4 = 3 и D6 = 5 ), значит

первоначальный опорный план не оптимальный и необходимо перейти к новому опорному плану. Такой переход возможен, так как в столбцах A4 и A6

, где нарушено условие оптимальности, есть положительные элементы aij .