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

Задачи ЛП и методы их решения

.pdf
Скачиваний:
155
Добавлен:
29.03.2016
Размер:
7.64 Mб
Скачать

29

θ = min{1083 , 1083 , 1083}=125

Минимум достигается в строке, соответствующей переменной x3 (она будет выведена из числа базисных). Отмечаем ведущую строку, ведущий столбец и ведущий элемент.

ШАГ 3. Заменяем в NБ номер 3 на номер 2, а в столбце СБ с3 = 0 на с2 = 5. Переписываем строку СБ в новую таблицу. Так как в ведущей строке есть два нулевых элемента, то соответствующие им столбцы переносим в новую таблицу без изменений. Делим ведущую строку на ведущий элемент и заполняем нулями ведущий столбец. Остальные элементы выделенной части пересчитываем по методу Гаусса-Жордана (по строкам).

 

 

 

 

 

1

2

3

4

5

 

 

 

2-я строка

 

NБ

CБ

XБ

4

5

0

0

0

 

 

 

 

 

 

 

 

 

 

 

 

 

3-я строка

 

 

4 8 (2/3) =

12

2

5

12/5

0

1

3/10

-2/5

0

 

 

 

10/3

5

1

4

12/5

1

0

-1/5

3/5

0

4 8 (1/3) =

16

 

 

 

 

0 1 (2/3) = − 1

 

 

 

 

 

 

 

 

10/3

5

 

5

0

16/5

0

0

-1/10

-1/5

1

 

 

 

10/3

5

 

 

 

 

 

 

 

 

 

 

0 1 (1/3) = − 1

 

 

 

 

 

 

 

 

 

 

 

1/3(2/3) (4/3) =

3

 

108/5

0

0

7/10

2/5

0

10/3

10

 

 

 

 

 

 

 

 

 

 

 

10/3

 

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1/ 3

1/ 3 (4 / 3)

= −

1

 

4-я строка

 

 

 

 

 

 

10 / 3

 

5

 

 

 

 

 

 

 

 

 

 

16

8 (7 /3)

= −

108

0

1 (7 /3)

 

10/3

 

5

 

10/3

= −

7

4 /3

(7 / 3) (4/ 3)

=

2

 

10

 

10 / 3

 

5

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

ШАГ 1.

 

 

 

 

 

 

1

2

3

4

5

NБ

 

CБ XБ

 

 

 

 

 

 

 

 

 

 

 

 

 

2

5

 

12/5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

4

12/5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

0

16/5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

108/5

 

0

0

7/10

2/5

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f

30

В строке

все оценки положительны или равны нулю. Следовательно, выполняются

условия оптимальности

 

 

j 0

( j 1: n)

Таким образом, мы заключаем, что текущее решение является оптимальным

решением

ЗЛП (т.е. целевая функция достигла своего максимального значения fmax =108/

5).

Выпишем оптимальное значение из симплекс-таблицы. В столбце NБ хранятся номера базисных переменных, а в столбце ХБ их значения.

Получаем

NБ XБ

2

12/5

1

12/5

5

16/5

x2 = 12/5

x1 =12/5

x5 = 16/5

Остальные переменные (небазисные) равны нулю: x3 = 0, x4 = 0

Значение целевой функции выписываем из клетки f f = 108 / 5

Окончательно, данная ЗЛП имеет следующее оптимальное решение:

X* =(

12

,

12

, 0 , 0,

 

16

), f (X*)=108/ 5

 

 

5

 

5

5

 

 

 

Такой же результат получен графически (см. раздел 2 ) ЭКОНОМИЧЕСКИЙ СМЫСЛ ПОЛУЧЕННЫХ РЕЗУЛЬТАТОВ.

1.Наиболее выгодным является выпуск табуреток и стульев в количестве по 12 шт. за 5 плановых периодов.

2.Прибыль за плановый период составит 108\5 ед.

3.Сырье 1-го и 2-го видов при этом будет израсходовано полностью ( x3 = 0, x4 = 0), а остаток сырья 3-го вида ( x5 ) составит 16\5 ед. к концу планового периода.

31

3.4. Метод искусственных переменных. Вспомогательная задача ЛП.

В рассмотренном выше примере столбцы матрицы ограничений при дополнительных переменных x3, x4, x5 образовывали единичную подматрицу

 

1

 

 

0

 

 

0

 

 

1 0

0

A3 =

 

 

 

A4 =

 

 

 

A5 =

 

 

 

AБ =

 

 

 

0

,

1

,

0

,

0

1

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

0

 

 

0

 

 

1

 

 

0

1

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

x3 = 24 , x4 =12, x5 = 8 - значения базисных переменных равны соответствующим элементам вектора правой части в системе ограничений;

x1 = 0, x2 = 0- значения небазисных переменных равны нулю;

и заполнить начальную симплекс-таблицу.

В общем случае (например для ЗЛП в стандартной форме)

f = x1 − 2x2 + 4x3 + 6x4 → max

 

x + x

+ x

+ x

= 2

 

1

2

3

4

(+)

2x1 x2 x3 + 2x4 = 4

 

xi

≥ 0

(i 1: 4)

для нахождения начального базисного решения и заполнения начальной симплекс-таблицы необходимо проделать следующее:

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

Например

A1 =

1

 

 

 

1

 

 

1

1

 

,

 

A2

=

 

,

AБ

=

 

( * )

 

 

2

 

 

−1

 

 

2

−1

 

или

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

1

 

 

1

1

 

A2

=

 

,

A3

=

 

,

AБ

=

 

( ** )

 

−1

 

 

−1

 

 

−1

−1

 

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

Так, столбцы A2 и A3 не образуют базис в силу их линейной зависимости (в данном случае они просто равны между собой), а матрица в (**) не является базисной. С другой стороны, столбцы A1 и A2 линейно независимы (они не пропорциональны друг другу) и обратную матрицу к базисной в (*) можно найти путем приведения исходной базисной матрицы к единичной по методу полного исключения Гаусса-Жордана.

32

Это ведущий элемент

1

1

1

0

2

-1

0

1

 

 

 

 

 

 

 

 

 

 

 

 

1

1

1

0

 

 

1

0

1/3

1/3

 

 

 

 

 

 

 

 

 

 

 

 

0

-3

-2

1

 

 

0

1

2/3

-1/3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Это единичная матрица

Это исходная

Это матрица обратная

базисная матрица

к базисной

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

1

1

 

 

 

 

 

 

 

 

3

3

B =

 

 

 

2

1

 

 

 

 

3

3

 

на вектор правой части b = [2 4]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Перемножаются скалярно

 

 

 

 

 

 

 

 

x

 

1 3

1 3

2

2

 

 

=

 

 

=

x

 

 

2 3

−1 3

4

0

Начальное базисное решение X0

= (2, 0,

0, 0) является допустимым, т.к. все его

компоненты неотрицательны.

 

 

 

 

 

г) Перед заполнением начальной симплекс-таблицы (т.к. выбранный базис

{A1 , A2 }отличается от единичного) требуется вычислить матрицу разложения всех столбцов исходной системы ограничений по данному базису. Для этого необходимо умножить обратную матрицу В на матрицу исходной системы ограничений,

 

 

 

 

 

 

 

 

1

0

0

1

1/3

1/3

Х

1

1

1

1

=

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

1

1

0

2/3

-1/3

 

2

-1

-1

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Далее симплекс-таблица заполняется обычным образом (см. 3.3) и приобретает следующий вид

x5 + x6 min

33

 

 

 

 

 

1

2

3

4

 

 

NБ CБ XБ

 

 

 

 

 

 

 

1

-2

4

6

 

C

1

1

2

 

 

 

0

 

1

 

 

 

1

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

-2

0

 

0

1

1

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

0

0

-6

-5

f

 

 

 

 

Теперь текущее базисное решение может быть улучшено посредством симплекс-алгоритма. Из приведенного примера видно, что при отсутствии единичного базиса в исходной

системе ограничений ЗЛП требуется значительная вычислительная работа для выполнения нулевого шага симплекс-метода.

Выбор

Установление их

Нахождение

Определение

линейной

обратной

базисных компонент

столбцов

независимости

матрицы

решения

 

Столбцы линейно зависимы

Окончательное заполнение начальной симплекс-таблицы

 

Проверка

 

выполнения условий

Решение недопустимо

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

Вычисление матрицы разложения

 

столбцов по базису

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

Этой громоздкой процедуры можно избежать, если предварительно рассмотреть следующую вспомогательную задачу ЛП:

f =

 

x + x + x + x + x

= 2

 

1

2

3

4

5

(i)

2x1 x2 x3 + 2x4

+ x6

= 4

 

xi 0

 

(i 1:6)

 

 

Переменные x5 и x6 в задаче ЛП (i) носят название искусственных переменных. Задача (i)

имеет начальное базисное решение с единичным базисом, соответствующим искусственным переменным

X i

= (0, 0, 0, 2, 4)

0

 

34

и ее целевая функция ограничена снизу нулем. А, следовательно, такая задача ЛП всегда разрешима.

Пусть X * = (x1* , x2* , x3* , x4* , x5* , x6* ) оптимальное решение задачи (i),

а g(X * ) - минимальное значение целевой функции. Если при этом g(X * ) = 0 и

искусственные переменные x5 , x6 , не входят в число базисных ( x5* = 0, x6* = 0 ), то

X0 = (x1* , x2* , x3* , x4* )

является начальным базисным решением исходной ЗЛП (+).

Построение начальной симплекс-таблицы для ЗЛП (i) трудностей не вызывает, т.к.

начальное решение имеет единичный базис.

 

 

 

 

 

 

 

 

1

2

3

4

5

6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

NБ

CБ

XБ

0

0

0

0

1

1

C Улучшаем данное решение в

5

1

2

1

1

1

1

1

0

 

соответствии с алгоритмом

 

симплекс-метода для ЗЛП на

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

min (заметим, что изменяется

6

1

4

2

-1

-1

2

0

1

 

 

только критерий оптимальности

 

 

 

 

 

 

 

 

 

 

 

6

3

0

0

3

0

0

j ≤ 0, j 1:6 )

f

ШАГ 1.

1

> 0. Текущее решение не является оптимальным.

 

 

 

Бi

 

 

 

 

2

 

4

 

 

 

 

x

 

 

 

 

 

ШАГ 2.

j0

=1, θ = min

 

 

 

Aj i

> 0

= min

 

,

 

 

= 2

 

 

1

2

 

 

A

 

 

0

 

 

 

 

 

 

 

 

j0i

 

 

 

 

 

 

 

 

 

ШАГ 3. Переходим к новому базисному решению с базисом {5, 1}.

 

 

 

1

2

3

4

5

6

NБ CБ XБ

 

 

 

 

 

 

0

0

0

0

1

1

 

 

 

 

 

 

 

 

 

5

1

0

0

3/2

3/2

0

1

-1/2

 

 

 

 

 

 

 

 

 

1

0

2

1

-1/2

-1/2

1

0

1/2

 

 

 

 

 

 

 

 

 

 

 

0

0

3/2

3/2

0

0

-3/2

 

 

 

 

 

 

 

 

 

ШАГ 1.

2

> 0 . Текущее решение не является оптимальным.

 

 

 

 

 

 

 

 

 

 

0

 

 

ШАГ 2.

j0

= 2

, θ = min

 

 

= 0

3

 

 

 

 

 

 

 

 

 

 

2

 

 

ШАГ 3. Переходим к новому базисному решению с базисом {2, 1}.

35

-1

-2

4

6

 

 

 

1

2

3

4

5

6

 

NБ CБ XБ

0

0

0

0

1

1

 

2

0

0

0

1

1

0

2/3

-1/3

 

1

0

2

1

0

0

1

1/3

1/3

 

 

 

0

0

0

0

0

-1

-1

Полученное решение

 

 

ЗЛП (*) является

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

оптимальным

Если теперь отбросить часть С-Т, относящуюся к искусственным переменным, заменить коэффициенты в целевой функции из ЗЛП (+) и пересчитать последнюю строку (значение целевой функции и оценки), то получим С-Т для улучшения начального базисного решения

X0 = (2, 0, 0, 0)

исходной ЗЛП (+).

 

 

 

 

1

2

3

4

 

 

 

NБ CБ XБ

 

 

 

 

 

 

 

 

1

-2

4

6

 

 

C

 

 

 

 

 

 

 

 

 

 

 

 

2

-2

0

 

 

1

 

0

 

 

Действуем далее в соответствии с

0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

1

2

1

0

0

 

1

 

 

алгоритмом С-М для задачи на

 

 

 

максимизацию.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2 0 0 -6 -5

f

ШАГ 1. 3 < 0 . Текущее решение не является оптимальным.

 

 

0

 

 

ШАГ 2.

j0

= 3, θ = min

 

 

= 0

1

 

 

 

 

 

ШАГ 3. Переходим к новому базисному решению с базисом {3, 1}.

1

2

3

4

 

 

 

 

 

 

 

NБ CБ XБ

1

-2

4

6

C

 

 

 

 

 

 

3

4

0

0

1

1

0

1

1

2

1

0

0

1

 

 

2

0

6

-6

-5

f

36

ШАГ 1.

4

< 0. Текущее решение не является оптимальным.

 

 

= 4

2

 

 

ШАГ 2.

j0

, θ = min

 

 

= 2

 

 

 

 

1

 

 

ШАГ 3. Переходим к новому базисному решению с базисом {3, 4}.

 

 

 

 

 

1

2

3

4

 

NБ CБ XБ

 

 

 

 

 

 

1

-2

4

6

 

3

4

0

 

 

 

1

 

0

 

 

0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

4

6

2

 

1

0

0

 

1

 

 

 

 

 

 

 

 

 

 

 

 

12

5

6

0

0

f

 

 

 

 

C

ШАГ 1. Текущее решение является оптимальным, т.к.

j 0, j 1: 4

Если в оптимальном решении задачи (i) g(X*i ) > 0 , то это соответствует

неразрешимости исходной ЗЛП (+), из-за отсутствия допустимых решений.

Действительно, если

X0 = (x10 , x20 , x30 , x40 )- допустимое решение ЗЛП (+), то

X0i = (x10 , x20 , x30 , x40 ,0,0) -допустимое решение ЗЛП (i). При этом

g(X0i ) = 0 < g(X*i ) = gmin - противоречие !!!.

Значит ЗЛП (+) не имеет ни одного допустимого решения.

В качестве примера рассмотрим ЗЛП

f = x1 + 2x2 + x3 max

2x

+ 3x

 

+ 5x

 

= 30

 

1

 

2

 

3

( + )

6x1 + 9x2

+15x3 = 91

 

 

xi 0 ,

 

(i 1: 3)

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

f = x4 + x5 min

2x + 3x

 

+ 5x

 

+ x

 

= 30

 

1

 

2

 

3

 

4

( i )

6x1 + 9x2

+15x3

 

+ x5 = 91

 

xi

0

(i 1: 5)

37

 

 

 

1

2

3

4

5

 

 

 

 

1

2

3

4

5

NБ CБ XБ

0

0

0

1

1

C

NБ CБ XБ

0

0

0

1

1

4

1

30

2

3

5

1

0

 

1

0

15

1

3/2

5/2

1/2

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

1

1

0

0

0

-3

1

5

1

91

6

9

15

0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

0

0

0

-4

0

 

 

121

8

12

20

0

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Текущее решение является оптимальным решением задачи (i) и gmin =1> 0. Следовательно, исходная ЗЛП(+) не имеет ни одного допустимого решения. Действительно, левая часть 2-го уравнения в системе ограничений ЗЛП (+) может быть получена, если 1-ое уравнение умножить на 3. Тогда имеем

6x1 + 9x2 +15x3 = 906x1 + 9x2 +15x3 = 91

Ясно, что данная система несовместна. h

38

4. ТРАНСПОРТНАЯ ЗАДАЧА ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ.

Рассмотрим частный случай задачи линейного программирования, которая получила название транспортной задачи (ТЗ). Модификация симплекс-метода для ее решения называется методом потенциалов.

 

4.1 Постановка транспортной задачи.

 

 

 

 

 

 

 

 

Потребность

Пусть

имеется

несколько

 

 

 

 

 

 

 

 

 

Цена

в

поставщиков

однородной

 

продукции

продукции

 

(каждый

с

 

перевозки

 

 

 

 

Запас

 

60

определенным

запасом)

и

продукции

 

несколько

 

потребителей

этой

 

5

 

 

 

 

продукции

известными

 

120

 

 

 

 

 

 

 

 

 

 

10

 

потребностями

у

каждого).

 

12

 

 

100

Задана

 

также

 

сеть

 

 

 

 

 

8

 

коммуникаций

(дорог,

рек,

 

6

 

воздушных

линий

и

т.д.),

 

70

 

 

80

связывающая

 

каждого

 

4

 

 

 

 

 

 

 

 

 

Это

 

 

поставщика

с

каждым

Это

 

 

 

 

 

 

 

поставщики

 

потребителем.

На

каждой

коммуникации

Это

 

коммуникации

задана

цена

 

 

потребители

 

 

 

перевозки

 

-

 

стоимость

 

 

 

перевозки

 

единицы

продукции

(см. рис.).

 

 

 

 

 

 

 

 

Если какая-либо коммуникация отсутствует, то считаем, что она есть, но цену перевозки на ней устанавливаем равной бесконечности (+ ∞ ). Это соглашение сделает невыгодным перевозку по ней и автоматически исключит данную коммуникацию из плана перевозок.

Экономическая постановка ТЗ

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

потребности потребителей были бы удовлетворены за счет вывоза запаса от поставщиков.

Цель - минимизация суммарной стоимости всех перевозок.

Итак, мы привели экономическую постановку транспортной задачи. Отметим один существенный момент. Если суммарный запас продукции, имеющейся у поставщиков,

совпадает с суммарной потребностью в продукции у потребителей, тогда транспортная задача считается закрытой (имеет место баланс запасов и потребностей). Если же баланс нарушается (не хватает запасов, или запасов излишек) задача называется открытой. Имея в виду тот факт, что метод потенциалов “работает” только для закрытых ТЗ, изложим способ сведения открытой ТЗ к закрытой. Суть этого способа очень проста. Так, например, при

нехватке запасов вводят в рассмотрение фиктивного поставщика с запасом, равным этой нехватке, и устанавливают цену перевозки от него к каждому потребителю (на фиктивных коммуникациях) равной нулю (самый выгодный поставщик!). Так ,в приведенном примере суммарный запас равен

120 + 70 = 190 ед. С другой стороны суммарная потребность составляет

60 + 100 + 80 = 240 ед.