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

Введение в математическое программирование

..pdf
Скачиваний:
14
Добавлен:
15.11.2022
Размер:
1.81 Mб
Скачать

Задача(3.5.8)–(3.5.10) приобреланеобходимыйдляС-методавид. Составляем табл. 3.5.3 (таблицу из коэффициентов системы

уравнений и целевой функции).

Таблица 3.5.3

Базис

Свободные

x

x

x

x

x

x

 

bk

 

 

 

 

члены

1

2

3

4

5

6

 

akj

 

 

 

 

 

 

 

 

x3

19

2

3

1

0

0

0

19/2

x4

13

2

1

0

1

0

0

13/2

x5

15

0

3

0

0

1

0

 

x6

18

[3]

0

0

0

0

1

6

 

(Z )

0

7

5

0

0

0

0

 

 

 

Исходное опорное решение, соответствующее табл. 3.5.3, имеет вид

X1 = (0, 0, 19, 13, 15, 18) ;

Z1 = 0.

Просматриваем элементы последней строки табл. 3.5.3, среди них есть положительные, например, c1 = 7 . Отмечаем этот

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

ляем отношения bk (последняя строка не рассматривается), т.е. ak1

192 , 132 , 6, и заносим в соответствующие строки последнего

столбца. Выбираем наименьшее из этих отношений – 6. Отмечаем стрелкой строку, где стоит наименьшее значение, и объявляем эту строку разрешающей. На пересечении разрешающего столбца и разрешающей строки выделяем разрешающий элемент. Составляем табл. 3.5.4. Базисное неизвестное x6 заменяем

на x1 . Все элементы разрешающей строки делим на разрешающий элемент и заносим в ту же строку табл. 3.5.4. В табл. 3.5.3

31

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

умножаем

разрешающую строку

последовательно на

 

 

,

3

 

 

2

 

 

7

 

 

 

 

 

 

 

 

 

 

 

 

 

 

,

и прибавляем соответственно к 1-й, 2-й и послед-

3

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

ней строке табл. 3.5.3. Результаты заносим в табл. 3.5.4.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 3.5.4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Базис

 

 

Свободные

x1

x3

x4

x5

x6

 

 

bk

 

 

 

 

 

 

akj

 

 

 

 

 

 

члены

 

x2

 

 

 

 

 

 

 

 

x3

 

 

7

0

3

1

0

0

–2/3

 

7/3

 

x4

 

 

1

0

[1]

0

1

0

–2/3

 

1

 

 

 

 

x5

 

 

15

0

3

0

0

1

0

 

5

 

 

 

 

x1

 

 

6

1

0

0

0

0

1/3

 

 

 

 

(Z )

 

 

–42

0

5

0

0

0

0

 

 

 

 

 

 

Выписываем соответствующий табл. 3.5.4 опорный план и значение Z:

X 2 = (6, 0, 7, 1, 15, 0) и Z2 = −42 .

Начинаем работу с табл. 3.5.4 с п. 3 алгоритма С-метода. Просматриваем элементы последней строки табл. 3.5.4, среди них есть положительный, он равен 5. Отмечаем соответствующий столбец стрелкой (разрешающий столбец). Просматриваем элементы разрешающего столбца и вычисляем отношения

b

7

 

 

k

 

 

, 1, 5

. Наименьшее отношение соответствует 2-й стро-

ak 2

3

 

 

 

ке С-табл. 3.5.4. Разрешающий элемент равен 1. Составляем табл. 3.5.5, в которой на место базисной переменной x4 ставим

переменную x2 . Разрешающую строку переносим в табл. 3.5.5 (раз-

решающий элемент 1). Разрешающую строку табл. 3.5.4 умножаем последовательно на (–3), (–3) и (–5) и прибавляем соответственно к 1-й, 3-й и последней строке табл. 3.5.4. Результаты записываем в табл. 3.5.5.

32

Таблица 3.5.5

Базис

Свободные

x1

 

x2

 

x3

x4

x5

x

 

bk

 

 

 

 

члены

 

 

 

 

 

 

 

6

 

akj

 

 

 

 

 

 

 

 

 

 

 

 

x3

4

 

 

0

 

0

 

1

–3

0

[4/3]

 

3

 

x2

1

 

 

0

 

1

 

0

1

0

–2/3

 

 

x5

12

 

 

0

 

0

 

0

–3

1

2

 

6

 

x1

6

 

 

1

 

0

 

0

0

0

1/3

 

18

 

(Z )

–47

0

 

0

 

0

–5

0

1

 

 

 

Опорный план

 

3 = (6, 1,

4,

0, 12,

0) ,

Z3 = −47 .

 

 

X

 

 

Просматриваем последнюю строку табл. 3.5.5. Находим положительный элемент 1, отмечаем стрелкой разрешающий столбец. Определяем разрешающую строку, сравнивая отношения 3, 6 и 18. Наименьшему отношению соответствует 1-я строка

табл. 3.5.5. Отмечаем ее стрелкой. Разрешающий элемент 43

выделяем квадратной скобкой. Составляем табл. 3.5.6. Вместо x3 в базис войдет переменная x6 . Действуя по указанному ал-

горитму, получаем табл. 3.5.6.

Таблица 3.5.6

Базис

Свободные

x1

x2

x3

 

x4

x5

x6

 

bk

 

akj

 

 

члены

 

 

 

 

 

 

 

 

 

x6

3

 

0

0

3/4

 

–9/4

0

1

 

 

 

x2

3

 

0

1

1/2

 

–1/2

0

0

 

 

 

x5

6

 

0

0

–3/2

 

3/2

1

0

 

 

 

x1

5

 

1

0

–1/4

 

3/4

0

0

 

 

 

(Z )

–50

0

0

–3/4

 

–11/4

0

0

 

 

 

Опорный план

 

4 = (5, 3,

0, 0, 6,

3) и

Z4 = −50 .

 

 

X

 

 

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

33

Итак, возвращаясь к исходной задаче, получаем: оптимальный план производства X = (5, 3), максимальный доход

Zmax =50 ó.å.

Дадим геометрическую интерпретацию полученного С-методом решения, используя результаты примера 1, в котором та же задача решена геометрическим способом. Табл. 3.5.3 соответствует опорное решение (0, 0, 19, 13, 15, 18) , в котором ос-

новные неизвестные x1 = 0 и x2 = 0 , т.е. табл. 3.5.3 соответству-

ет т. О (0, 0) (см. рис. 3.3.7).

Табл. 3.5.4 соответствует опорное решение (6, 0, 7, 1, 15, 0) , в котором основные неизвестные x1 = 6 и x2 = 0 , т.е.

табл. 3.5.4 соответствует т. Е (6, 0).

 

 

 

Табл.

3.5.5

соответствует

опорное

решение

(6, 1,

4,

0, 12, 0), в котором основные неизвестные x1 = 6 и x2 =1 ,

т.е.

табл. 3.5.5 соответствует т. D (6, 1).

 

 

 

Табл.

3.5.6

соответствует

опорное

решение

(5, 3,

0,

0, 6, 3) , в котором основные неизвестные x1 = 5 и x2 =3 , т.е.

табл. 3.5.6 соответствует т. С (5, 3).

Таким образом, переходу от табл. 3.5.3 к табл. 3.5.4, 3.5.5, 3.5.6 соответствует движение от вершины О (0, 0) к вершине С (5, 3) по границе OEDC многоугольника решений. Если бы на первом шаге в табл. 3.5.3 вместо элемента c1′ = 7 выбрать эле-

мент c2′ =5 , то путь обхода многоугольника из вершины О

в вершину С проходил бы через точки А (0, 5) и В (2, 5). Следовательно, решение задачи содержало бы тоже четыре таблицы.

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

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

34

В заключение заметим, что существуют различные программы, реализующие симплекс-метод на персональном компьютере.

3.6. Метод искусственного базиса

Для того чтобы задачу линейного программирования решить С-методом, необходимо записать ее в специальном виде.

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

равно Cnr , где n – число неизвестных, r – ранг системы (3.5.2).

Метод искусственного базиса позволяет привести каноническую задачу линейного программирования к специальному виду, если система уравнений (3.5.2) имеет хотя бы одно неотрицательное решение. Пусть, для простоты, ранг системы уравнений (3.5.2) равен m. Для дальнейшего решения необходимо, чтобы свободные члены в уравнениях этой системы были неотрицательны. Если в каком-то уравнении свободный член отрицателен, то умножим обе его части на (–1). Введем неотрицательные вспомогательные неизвестные y1, ..., ym и построим для системы (3.5.2)

вспомогательную систему линейных уравнений:

a11x1 +... + a1n xn + y1

= b1,

 

 

a21x1 +... + a2n xn

+ ó2

= b2

,

(3.6.1)

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . .

 

am1x1 +... + amn xn

+ óm = bm ,

 

bi 0

(i =

 

) .

 

 

1, m

 

 

Система (3.5.2) имеет

неотрицательные

 

решения тогда

и только тогда, когда система (3.6.1) имеет неотрицательные решения, в которых вспомогательные неизвестные y1, ..., ym равны нулю.

35

Предположим, что систему (3.6.1) удалось привести к виду

x1

 

 

′′

 

′′

 

,

 

 

+a1,m+1 xm+1

+... +a1,n xn +a11y1

+ +a1m ym...

=b1

 

 

õ2

+1xm+1

′′

 

′′

,

 

 

 

+a2,m

+... +a2,n xn +a21y1

 

+... +a2m ym =b2

 

(3.6.2)

 

 

 

 

 

 

 

 

 

 

 

 

.. ....................... .......................................

 

 

 

 

 

 

′′

 

′′

 

 

,

õm +am,m+1

xm+1 +... +am,n xn +am1 y1

+ +amm ym...

=bm

 

 

 

 

bi′ ≥ 0

(i =

 

) .

 

 

 

 

 

 

 

 

1, m

 

 

 

 

Тогда, приравняв к нулю вспомогательные неизвестные y1, ..., ym в системе (3.6.2), приходим к системе нужного (специального) вида

x

+ a

x

m+1

+... + a

x

n

= b,

 

1

1,m+1

 

1,n

 

1

 

õ2

+ a2,m+1xm+1

+... + a2,n xn

= b2,

 

 

 

 

 

 

 

 

(3.6.3)

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

 

 

 

 

 

 

 

 

õm + am,m+1

xm+1 +... + am,n xn = bm ,

bi′ ≥ 0 (i =1, m) .

Для того чтобы перейти от системы (3.6.1) к системе (3.6.3), решим вспомогательную задачу линейного программирования.

Среди неотрицательных решений системы (3.6.1) найти решение, при котором линейная форма F = y1 +... + ym (3.6.4) (вспомо-

гательная линейная форма) примет минимальноезначение. Задача линейного программирования (3.6.1), (3.6.4) удовле-

творяет всем требования первого шага С-метода. Она составлена искусственным образом так, что вспомогательные переменные y1, , ym образуют исходный базис, отсюда и название метода. Линейную формулу F нетрудно выразить через свободные переменные задачи (x1, , xn) и записать ее в специальном виде. Так как форма F по определению неотрицательная, то она имеет конечный минимум, который достигается через конечное число шагов С-метода.

36

Пример 3

Привести систему линейных уравнений к специальному виду

2õ1 5õ2 +6õ3 + õ4 = 4,3õ1 4õ2 +3õ3 5õ4 = −3.

Решим эту задачу методом искусственного базиса.

Так как свободный член во втором уравнении отрицателен, то умножим обе части этого уравнения на (–1). Тогда система примет вид

 

2

õ

5õ

+6õ + õ = 4,

 

 

 

1

2

 

3

4

 

 

 

3õ1 + 4õ2 3õ3 +5õ4 =3.

 

Введем искусственный базис y1 , y2

 

 

2

õ 5õ +6

õ

+ õ

+ ó

= 4,

(3.6.5)

 

1

 

2

3

4

1

ó2 =3.

3õ1 + 4õ2 3õ3 +5õ4 +

 

Введем вспомогательную целевую функцию

F = y1 + y2 (min),

выразим ее через свободные переменные, для этого достаточно сложить уравнения системы (3.6.5), получим

–x1 x2 + 3x3 + 6x4 + F = 7.

Cоставим первую С-таблицу (табл. 3.6.1).

Таблица 3.6.1

Базис

Свобод-

õ1

õ2

õ3

õ

ó1

ó2

 

bk

 

 

 

ный член

 

 

 

4

 

 

 

akj

 

 

 

 

 

 

 

 

ó1

4

2

–5

6

1

1

0

 

4

 

ó2

3

–3

4

–3

[5]

0

1

 

3/5

F

7

–1

–1

3

–1

0

0

 

 

 

Согласно алгоритму С-метода находим разрешающий элемент (он обозначен рамкой), выводим из базиса y2 и, поскольку в конечном итоге y2 следует приравнять к нулю, сделаем это на данном шаге, исключив y2 из последующих рассуждений. На место y2 в базис записываем x4. Составим табл. 3.6.2.

37

Таблица 3.6.2

Базис

Свобод-

õ1

õ

õ

õ

ó

 

bk

 

ный член

2

3

4

1

 

akj

 

 

 

 

 

 

 

ó1

17/5

[13/5]

–29/5

33/5

0

1

17/13

õ4

3/5

–3/5

4/5

–3/5

1

0

 

F

17/5

13/5

–29/5

33/5

0

0

 

 

 

Находим разрешающий элемент, обозначаем его рамкой, заменяем в базисе y1 на x1 и приравниваем y1 к нулю. Очевидно, базисное решение, соответствующее новому базису x1, x4 дает форме F минимум, равный нулю. Переходим к последней таблице, в которой отсутствуют столбцы с y1 и y2 и строка, соответствующая форме F (табл. 3.6.3).

Таблица 3.6.3

Базис

Свободный член

õ1

 

õ2

 

õ3

õ4

õ1

 

17/13

1

 

–29/13

 

33/13

0

õ4

 

18/13

0

 

–7/13

 

12/13

1

Выпишем систему уравнений, соответствующую получен-

ной таблице:

 

 

 

 

 

 

 

 

 

x

29 13 x

+33 13 x

=17 13,

 

 

 

 

1

2

3

 

 

 

 

 

 

 

7 13 x2 +12 13 x3 + x4 =18 13.

 

 

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

опорноерешение исходной системы X = (17/13, 0, 0, 18/13).

3.7. Двойственность в линейном программировании

Понятие двойственности служит иллюстрацией одного из основных законов диалектики – закона единства и борьбы противоположностей. К аналогичным понятиям в математике относятся понятия «+» и «–», «дифференцирование» и «интегрирование», в физике – «северный» и «южный» магнитные полюса и т.д.

38

Понятие двойственности для симметричных задач линейного программирования

Рассмотрим понятие двойственности на примере задачи оптимального использования сырья.

Пусть на предприятии решили рационально использовать отходы основного производства. В плановом периоде появились

отходы сырья Si четырех видов в объемах bi ( i =1,4 ). Из этих отходов предприятие может наладить выпуск двух видов неосновной продукции Пj ( j =1,2 ). Обозначим через аij норму рас-

хода i-го вида сырья на единицу j-го вида продукции ( j =1,2 ),

cj – цену реализации единицы j-го вида продукции. Исходные данные поместим в табл. 3.7.1.

 

 

 

Таблица 3.7.1

 

 

 

 

Виды

Виды продукции

Запас

сырья

Ï 1

Ï 2

 

S1

a11

a12

b1

S2

a21

a22

b2

S3

a31

a32

b3

S4

a41

a42

b4

Доход

c1

c2

 

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

Составим математическую модель задачи. Обозначим через xj количество продукции вида Пj ( j =1,2 ), планируемое к про-

изводству.

Запишем ограничения задачи и целевую функцию:

a

x

+a

 

x

b ,

 

11 1

12

 

2

1

 

 

a21x1 +a22 x2 b2 ,

(3.7.1)

a

x

+a

 

 

x

b

,

31 1

32

2

3

 

 

a

x

+a

42

x

b

,

 

 

41 1

 

2

4

 

 

x j 0

( j =

 

),

(3.7.2)

1,2

Z = c1x1 + c2x2

(max).

(3.7.3)

 

 

39

 

 

 

 

 

 

 

Предположим, что при рассмотрении вопроса об использовании отходов основного производства появилась возможность реализации этих отходов некоторой организации. Тогда необходимо установить прикидочные оценки (цены) на эти отходы. Обозначим эти цены y1, y2, , ym. Они должны быть установлены с учетом интересов как продающей стороны, так и покупающей. Сформулируем требования сторон:

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

2.Общую стоимость отходов сырья покупающая организация стремиться минимизировать.

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

à11 ó1 +à21 ó2 +à31 ó3 + à41 ó4 ñ1 .

Аналогичное неравенство получится для продукции второго вида:

à12 ó1 + à22 ó2 + à32 ó3 + à42 ó4 ñ2 .

Требование покупателя – минимизация общей стоимости сырья:

F =b1ó1 +b2 ó2 +b3 ó3 +b4 ó4 (min).

Итак, получили задачу линейного программирования:

à11 ó1 +à21 ó2 + à31 ó3 +à41 ó4

ñ1,

(3.7.4)

à12 ó1 +à22 ó2 +à32 ó3 + à42 ó4 ñ2 ,

 

ói 0 (i =

 

 

 

(3.7.5)

1,4) ;

 

F = b1 ó1 +b2 ó2 +b3 ó3 +b4 ó4

(min).

(3.7.6)

40