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

Е.В. Буйная Симплексный метод решения оптимизационных задач

.pdf
Скачиваний:
60
Добавлен:
19.08.2013
Размер:
248.34 Кб
Скачать

11

2 этап. Приведение задачи к каноническому виду

В соответствии с требованиями, которые были описаны выше, нам необходимо представить ограничения (4.1)-(4.3) в виде равенств. Для этого введем ослабляющие переменные со знаком (+), так как в ограничениях знак (≤ ), и для простоты последующей работы приведем подобные члены в целевой функции. Тогда задача примет вид:

Максимизировать

L ( x ) = 4 ,6 X 1 + 2 X 2 2 X 3 + 5 X 4

при ограничениях

 

 

 

 

 

0,5X1 + 0,1X 2 +

0,2X3

+

X5

=

10

0,2X1

 

+ 0,5X 4

+

X 6 =

30

0,3X 2 +

0,2X3 +

0,2X 4

 

+ X 7 =

20

X1, X 2 , X3, X 4 , X5 , X6 , X 7 ≥ 0

 

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

3 этап. Выбор начального опорного плана

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

С = {4,6, 2, -2, 5, 0, 0, 0} – вектор коэффициентов при переменных задачи в целевой функции.

В = {10, 30, 20} - вектор значений правых частей ограничений за-

дачи.

А =

0,5

0,1

0,2

0

1

0

0

0,2

0

0

0,5

 

 

 

0

1

0

 

0

0,3

0,2

0,2

 

 

 

 

0

0

1

 

 

 

 

 

 

 

 

- матрица коэффициентов при переменных в ограничениях задачи.

Как мы видим, в матрице А присутствует единичная подматрица, которая соответствует векторам А5, А6, А7, следовательно, начальный опорный план будет выглядеть так: Х0 ={0, 0, 0, 0, 10, 30, 20}.

12

4 этап. Решение задачи симплекс-методом

Строим начальную симплексную таблицу и проверяем начальный опорный план Х0 на оптимальность. Начальный базис Б0=(А5, А6, А7)

C

Базис

План

4,6

2

-2

5

0

0

0

баз

плана

X0

A1

A2

А3

A4

A5

А6

A7

0

A5

10

1/2

1/10

1/5

0

1

0

0

0

A6

30

1/5

0

0

1/2

0

1

0

0

A7

20

0

3/10

1/5

1/5

0

0

1

 

Z k

0

0

0

0

0

0

0

0

 

k

 

-4,6

-2

2

-5

0

0

0

Из таблицы видно, что начальный опорный план не оптимален (для нашей задачи на максимум обнаруживаются отрицательные k и к тому же имеются значения Zjk >0). Следовательно, можно найти более хороший план. Для этого определяем вектор, вводимый в базис, и вектор, выводимый из базиса.

Так как при переходе к новому опорному плану значение целевой функции изменится и будет равно L { X(Θ ) } = L(X0 ) -Θk , то очевидно желание вводить в базис вектор, для которого k<0 и величина Θ ∆ k наибольшая (последнее необязательно, но часто ускоряет достижение поставленной цели). Напомним, что

Θ = m i n

X 0j

 

.

 

Z jk > 0

Z jk

В нашем случае возможны три выбора:

1=-4,6.

 

=

 

10

 

 

30

 

;

 

 

=

20 .

Θ

min

1 / 2

;

1 / 5

 

 

 

 

 

 

 

 

 

 

 

 

 

2=-2.

 

=

 

10

 

 

 

 

 

 

20

 

 

 

= 200

Θ

min

 

 

 

 

; - ;

 

 

 

 

 

 

1 / 10

 

3 / 10

 

 

 

 

 

 

 

 

 

 

 

3 .

4=-5.

 

=

 

 

30

 

 

20

 

=

 

60 .

Θ

min

- ;

1 / 2

;

1 / 5

 

 

 

 

 

 

 

 

 

 

 

 

 

θ ∆ 1=-92.

θ ∆ 2~-133.

θ ∆ 3=-300.

Разумно ввести в базис A4 вместо A6 (выражаем X4 из второго уравнения и исключаем из остальных).

13

Новая симплексная таблица для Б1=(А5, А4, А7) будет выглядеть следующим образом:

C

Базис

План

4,6

2

-2

5

0

0

0

баз

плана

X1

A1

A2

А3

A4

A5

А6

A7

0

A5

10

1/2

1/10

1/5

0

1

0

0

5

A4

60

2/5

0

0

1

0

2

0

0

A7

8

-2/25

3/10

1/5

0

0

-2/5

1

 

Z k

300

2

0

0

5

0

10

0

 

k

 

-2,6

-2

2

0

0

10

0

Полученный опорный план не оптимален, следовательно, необхо-

димо его улучшить. Снова рассчитываем θ

и θ ∆

k.

 

1=-2,6.

 

=

 

10

 

 

60

 

;

 

=

 

20 .

θ ∆

1=-52.

Θ

min

1

/ 2

;

2 / 5

 

 

 

 

 

 

 

 

 

 

 

 

θ ∆

 

2=-2.

 

=

 

 

10

 

 

 

 

8

 

 

=

80

2~-53.

Θ

min

 

 

 

; - ;

 

 

 

 

1

/ 10

3 / 10

 

 

 

 

 

 

 

 

3 .

 

 

В результате в базис войдут векторы: Б2=(А5, А4, А2). Строим новую симплексную таблицу.

C

 

Базис

План

4,6

2

-2

5

0

0

0

баз

 

плана

X2

A1

A2

А3

A4

A5

А6

A7

0

 

A5

22/3

79/150

0

2/15

0

1

2/15

-1/3

5

 

A4

60

2/5

0

0

1

0

2

0

2

 

A2

80/3

-4/15

1

2/3

0

0

-4/3

10/3

 

Z k

1060/3

22/15

2

4/3

5

0

22/3

20/3

 

k

 

-47/15

0

10/3

0

0

22/3

20/3

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

Здесь Θ

=

 

22 / 3

;

60

 

=

1100

и из базиса выводится A5. Строим

min

 

 

 

 

 

79 / 150

2 / 5

79

 

 

 

 

 

 

 

новую симплексную таблицу.

14

C

 

Базис

План

4,6

2

-2

5

0

0

0

баз

 

плана

X3

A1

A2

А3

A4

A5

А6

A7

4,6

 

A1

1100/79

1

0

20/79

0

150/79

20/79

-50/79

5

 

A4

4300/79

0

0

-8/79

1

-60/79

150/79

20/79

2

 

A2

2400/79

0

1

58/79

0

40/79

-100/79

250/79

 

Z

k

31360/79

4,6

2

168/79

5

470/79

642/79

370/79

 

k

 

0

0

326/79

0

470/79

642/79

370/79

Из полученной таблицы видно, что найденный опорный план оптимален для данной задачи (все ∆ k 0), т.е.

Хопт=(1100/79; 2400/79; 0; 4300/79) и Lmax = 31360/79.

Ответ для нашей задачи будет выглядеть следующим образом: для того, чтобы прибыль от производства и реализации продукции трех видов была максимально возможной при данных условиях, необходимо закупить сырье 1-го вида в объеме - ~ 13,92 единицы; сырье 2-го вида - ~ 30,38 единицы; сырье 3-го вида не закупать вовсе; сырье 4-го вида - ~ 54,43 единицы. В результате подобной политики мы получим прибыль в размере ~396,96 у.е.

Замечание. Как мы уже говорили неоднократно, при переходе к новому опорному плану значение целевой функции изменяется на величину Θ ∆ k . Следовательно, получив оптимальный план и обнаружив

существование k=0, не соответствующего базисным векторам, можно сделать вывод, что найденный оптимальный план не единст-

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

Пример 2.

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

15

бы 3 ручки и 2 блокнота. Вполне закономерно, что вам известна цена товаров: 10 - ручка, 5 – карандаш и 20 у.е. – блокнот.

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

Решение:

Если обозначить за Х1 – количество приобретаемых в магазине ручек, за Х2 – карандашей, а за Х3 блокнотов, то исходную задачу можно представить в следующем виде:

Максимизировать

L(X)=X1+X2+X3

при ограничениях

10 X1+5 X2+20 X3≤ 50,

X1≥ 3,

X3≥ 2,

X1, X2, X3≥ 0.

После приведения к каноническому виду задача примет вид:

максимизировать

L(X)=X1+X2+X3

при ограничениях

 

 

 

10 X1 + 5X2 + 20 X3 + X4

 

= 50

X1

X5

=

3

X3

X6 =

2

X1,X2 ,X3 ,X4 ,X5 ,X6 0

При определении начального опорного плана сталкиваемся с отсутствием единичной подматрицы и, следовательно, вводим искусст-

венные переменные и переходим к М-задаче (M

):

16

максимизировать

L(X)=X1+X2+X3-M X7-M X8

при ограничениях

 

 

 

 

10 X1 + 5X 2 + 20 X 3 + X 4

 

 

= 50

X1

X 5

+ X7

=

3

X 3

X6

+ X 8 =

2

X1 , X 2 , X 3 , X 4 , X 5 , X6 , X7 , X 8 0

Отыскав таким образом единичный начальный базис Б0=(А4, А7, А8), переходим к построению симплексных таблиц.

C

 

Базис

План

1

1

1

0

0

0

баз

 

плана

X0

A1

A2

А3

A4

A5

А6

А7

A8

0

 

A4

50

10

5

20

1

0

0

0

0

A7

3

1

0

0

0

-1

0

1

0

A8

2

0

0

1

0

0

-1

0

1

 

Z k

-5М

0

0

М М -М -М

 

k

 

-М-1 -1 -М-1 0

М М 0

0

 

 

 

 

 

 

 

 

 

 

 

 

Если принять во внимание, что М – это большое положительное число, то из данной таблицы видно, что опорный план не оптимален (не все ∆ k>0 и хотя бы одно из значений Zjk >0).

Рассчитываем

1=-M-1.

 

=

 

50

;

 

3

;

 

=

3 .

θ ∆

1=-3M-3.

Θ

min

10

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

θ ∆

 

2=-1.

 

=

 

50

 

 

 

 

 

 

=

10 .

2~-10.

Θ

min

5

 

; - ; -

 

 

 

 

 

 

 

 

 

 

 

 

 

θ ∆

 

3=-M-1.

 

=

 

 

50

 

;;

2

 

=

2 .

3=-2M-2.

Θ

min

20

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

Вводя в базис А1 вместо А7, получаем новую симплексную табли-

цу.

 

 

 

 

 

 

 

 

 

 

17

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

C

Базис

План

 

1

1

1

0

0

0

 

 

 

 

баз

плана

 

X1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A1

A2

 

А3

A4 A5

А6

 

А7

A8

 

 

0

 

A4

 

20

 

0

5

 

20

1

10

0

 

-10

0

 

 

1

 

A1

 

3

 

1

0

 

0

0

-1

0

 

1

0

 

 

 

 

A8

 

2

 

0

0

1

0

0

-1

 

0

1

 

 

 

 

Z k

-2М+3

1

0

 

0 -1

М 1

 

 

 

 

 

 

 

 

 

 

0

-1 -М-1 0 -1 М 1+М 0

 

 

 

 

k

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Очевидно, что ввод в базис вектора А3 предпочтительнее.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

C

 

Ба-

 

План

 

1

 

1

1

0

 

0

 

0

 

баз

 

зис

 

X1

 

A1

 

A2

А3

 

A4

 

A5

 

А6

 

А7

A8

1

 

A3

 

1

 

0

 

1/4

1

1/20

 

1/2

 

0

 

-1/2

0

1

 

A1

 

3

 

1

 

0

0

0

 

-1

 

0

 

1

0

 

A8

 

1

 

0

 

-1/4

0

-1/20

 

-1/2

 

-1

 

1/2

1

 

Z

k

 

-М+4

 

1

1/4М+1/4

1

1/20М+1/20 1/2М+1/2

М

-1/2М-1/2

 

k

 

 

 

0

1/4М-3/4

0

1/20М+1/20

1/2М+1/2

М

1/2М-1/2

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Из таблицы видно, что данный опорный план оптимален. Однако

в базисе находится искусственная переменная и она не равна нулю, от-

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

занном количестве денег в кармане вам необходимо «умерить свой аппетит».

18

5. Варианты заданий для самостоятельной работы

Решить задачу классическим симплекс-методом. Объяснить полу-

ченные результаты.

 

1. Минимизировать

2. Максимизировать

F(x)=-2x1+3x2-6x3-x4

F(x)=4x1-3x2+x3

при условиях

при условиях

2x1+ x2-2x3+ x4=24

x1+3x2+2x3 ≤ 5

x1+2x2+4x3 ≤ 22

5x1-x3≥ 10

x1- x2+2x3≥ 10

-5≤ x1≤ 2

x1, x2, x3, x4≥ 0

x2, x3≥ 0

3. Минимизировать

4. Максимизировать

F(x)=2x1-x2-x4

F(x)=4x1-3x2+x3

при условиях

при условиях

x1-2x2+x3=10

x1+3x2+2x3≤ 5

-2x1-x2-2x3≥ 18

5x1-x3≥ 10

3x1+2x2+x4≥ 36

-5≤ x1≤ 2

x1, x2, x3, x4≥ 0

x2, x3≥ 0

5. Максимизировать

6. Максимизировать

F(x)=x1+x2-4(x3+x4)

F(x)=3x1-(x2+x3)+2x4

при условиях

при условиях

5≤ x1+x2≤ 20

x1+x2+x4≤ 12

2x1-3x2+4x4≤ 10

2(x2+x4) ≥ 0

x3≥ 3

3x2-5x3+x4≥ 2

x3, x2, x4≥ 0

x3≤ 5

7. Минимизировать

x2, x4≥ 0

8. Максимизировать

F(x)=10x1+2x2-6x3

F(x)=3x1+5x2+3x3

при условиях

при условиях

x1+x2+x3≤ 30

x1+2x2+2x3≤ 16

4x2-2x3≥ 2

2x1+x2+x3≤ 21

5x1+x3≤ 0

3x1+2x2+x3≤ 15

x3≤ 0

x1, x2, x3≥ 0

x1, x2≥ 0

 

 

19

 

9. Максимизировать

10. Минимизировать

F(x)=-x1+3x2+3x3

F(x)=2x1+3x2-x3

при условиях

при условиях

x1 - x2 + x3 ≥ 1

x1 + 2x2 – 10 ≥ 0

x1 - x2 ≤ -2

 

2x1 + x2 + x3 - 10 ≥ 0

x1, x2, x3≥ 0

 

x2 + x3 - 4 ≤ 0

11. Максимизировать

x1, x2 ≥ 0

12. Минимизировать

F(x)=9x1+10x2+16x3

F(x)=x1+x2-4x3-4x4

при условиях

при условиях

18x1+15x2+12x3+ x4=360

5≤ x1+x2≤ 20

6x1+4x2+8x3+x5=192

2x1-3x2+4x4≤ 10

5x1+3x2+3x3≤ 180

x3≥ 3

x1, x2, x3, x4, x5≥ 0

x3, x2, x4≥ 0

13. Минимизировать

14. Максимизировать

F(x)=-4x1 + 4x2 + 12x3

F(x)=2x1 - 3x2+6x3 - x4

при условиях

при условиях

X1 - x2 + x3 + 1 ≤ 0

2x1+ x2 - 2x3≤ 24

2x1 + x2 - 2x3 + 1 ≤ 0

x1+2x2 + 4x3≤ 22

x1, x2, x3 ≥ 0

 

x1 - x2+2x3 - x4=10

15. Максимизировать

x1, x2, x3, x4 ≥ 0

16. Минимизировать

F(x)=5x1 + 3x2+2x3 - 5x4 -10 x5

F(x)=5x1 + x2 + 5x3

при условиях

при условиях

3x4+ 10x5

50

4x1 - 10x2 + 4x3 ≥ 100

x1 + x2 + x3

100

3x2 + 2x3 = 10

x1 – x5 ≤ 20

 

x2 ≥ 0

x1, x2, x3, x4, x5 ≥ 0

18. Минимизировать

17. Максимизировать

F(x)=2x1+3x2-x3

F(x)=2x1 - 3x2 –3x4

при условиях

при условиях

x1 + 2x2 – 10 ≥ 0

2x1 - x2 - x3 – x4 ≥ 3

2x1 + x2 + x3 - 10 ≥ 0

x1 - x2 + x3 ≤ 2

x2 + x3 – 4 ≥ 0

x1, x2, x3 ≥ 0

x1, x2 ≥ 0

 

 

 

20

19. Минимизировать

20. Минимизировать

F(x)=2x1 - 3x2 +6 x3 + x4

F(x)= - x1+3x2+3x3

при условиях

при условиях

x1 + 2x2 – 4x3 ≤ 20

x1 - x2 + x3 ≥ 1

x1 - x2 + 2x3 ≥ 10

x1 - x2 ≤ -2

2x1 + x2 - 2x3 + x4 =24

x1, x2, x3≥ 0

x1, x2, x3 ≥ 0 ,

 

x4 ≤ 0

 

21. Максимизировать

F(x)=3x1+2x3 - 6x6

при условиях

2x1 + x2 – 3x3 +6x6 =18 -3x1 + 2x3 + x4 - 2 x6 =24 x1 + 3x3+ x5 - 4x6 =36

x1, x2, x3, x4, x5, x6 ≥ 0

23. Максимизировать

F(x)=x1+3x2 – 5x4

при условиях

2x1 + 4x2 + x3 + 2x4 =28 -3x1 + 5x2 - 3x4 ≤ 30 4x1 - 2x2+ 8x4 ≤ 32

x1, x2, x3, x4 ≥ 0

25. Максимизировать

F(x)=2x1+5x2 – x3 – x4

при условиях

3(x1 + x2 - x3) ≤ 20

2x2 + 2x3 +x4 ≥ 10 x2 - x4 =2

3≤ x1 ≤ 6 , x3 ≤ 50 x3, x4 ≥ 0

22. Минимизировать

F(x)=2x1 + 3x2 - x4

при условиях

2x1 - x2 – 2x4 ≤ 16 3x1 + 2x2 + x3 –3x4 =18

-x1 + 3x2 + 4x4 ≤ 24 x2, x3, x4 ≥ 0

24. Максимизировать

F(x)=x1+2x2 – x3

при условиях

-x1 + 4x2 - 2x3 ≤ 6

x1 + x2 + 2x3 ≥ 6 2x1 - x2+ 2x3 =4

x1, x2, x3 ≥ 0

26. Максимизировать

F(x)=8x2+7x4 + x6

при условиях

x1 - 2x2 – 3x4 - 2x6 =12 4x2 + x3 - 4x4 - 3x6 =12 5x2 + 5x4+ x5 + x6 =25

x2, x3, x4, x5, x6 ≥ 0