Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kopia_Posobie.doc
Скачиваний:
8
Добавлен:
25.04.2019
Размер:
6.99 Mб
Скачать

Глава II. Транспортная задача

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

2.1. Замкнутая модель транспортной задачи.

Пусть в пунктах A1,…,Am производится некоторый продукт в количествах a1,…,am > 0. Этот продукт перевозится в пункты B1,…,Bn, где он полностью потребляется в количествах b1,…,bn > 0. Для каждой пары индексов i,j задана стоимость cij 0 перевозок единицы продукта из пункта производства Ai в пункт потребления Bj. Необходимо перевезти весь произведенный продукт из пунктов A1,…,Am в пункты потребления B1,…,Bn. При этом требуется, чтобы потребности каждого из пунктов B1,…,Bn полностью удовлетворялись.

Сформулируем эту задачу как задачу линейного программирования.

Назовем планом перевозок неотрицательную матрицу X = (xij) размера m×n, в которой число xij ≥ 0 указывает количество продукта, перевозимого из пункта Ai в пункт Bj, 1 ≤ i m, 1 ≤ jn.

Стоимость z(X) перевозок является линейной функцией от X, именно, z(X) = ∑i,j cijxij, xij ≥ 0.

В задаче требуется найти такой план перевозок X, чтобы его стоимость была бы минимальной, причем весь продукт был бы вывезен из пунктов производства, доставлен в пункты потребления, и все потребности были бы полностью удовлетворены. Отсюда следует, что транспортная задача является задачей линейного программирования. Действительно то, что весь продукт, производимый в Ai вывозится записывается в виде уравнения

j xij = ai , ( i = 1, …, m )

Аналогично, условие того, что потребности пункта Bj полностью удовлетворены, записывается в виде уравнения

i xij = bj, ( j = 1, …, n ).

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

(1)

xij ≥ 0;

z(X) = ∑i,j cijxij → min.

Сформулированная в (1) транспортная задача называется замкнутой моделью.

Другие модели транспортной задачи будут рассмотрены позднее.

Назовем план перевозок X допустимым, если выполнены все ограничения из (1). Укажем способ построения допустимого решения методом минимального элемента.

Этот способ возможен, если ∑i ai = ∑j bj. Для этого выберем клетку с индексами (i,j), в которой стоит минимальное из чисел cij. В эту клетку помещаем число xij = min(ai ,bj ). Если ai < bj, то все остальные элементы i-ой строки полагаем равными нулю, число bj заменяем на bjai, а ai на 0. Если же ai bj, то все остальные элементы j-ого столбца полагаем равными нулю, число ai заменяем на aibj, а bj на 0. В результате число пустых строк или столбцов уменьшается на единицу. Продолжая этот процесс, получаем первоначальный план.

Продемонстрируем этот метод на конкретном примере. Пусть a1 = 18, a2 = 10, a3 = 12, b1 = 16, b2 = 9, b3 = 15, а матрица C имеет вид

Построим вспомогательную таблицу

b1 = 16

b2 = 9

b3 = 15

a1 = 18

с11=1

с12=3

с13=4

a3 = 10

с21=2

с22=5

с23=3

a3 = 12

c31=6

c32=7

c33=5

Минимальный элемент с11=1. В клетку (1,1) помещаем min(18,16)=16. В соответствии с изложенным правилом получаем таблицу

b1 = 0

b2 = 9

b3 = 15

a1 = 2

16

с11=1

с12=3

с13=4

a3 = 10

0

с21=2

с22=5

с23=3

a3 = 12

0

c31=6

c32=7

c33=5

Далее из всех незаполненных клеток, находящихся в двух последних столбцах выбираем ту, в которой число cij минимально. Это, например, с23=3. Применяя общее правило, получаем новую таблицу

b1 = 0

b2 = 9

b3 = 5

a1 = 2

16

с11=1

с12=3

с13=4

a3 = 0

0

с21=2

0

с22=5

10

с23=3

a3 = 12

0

c31=6

c32=7

c33=5

Далее выбираем клетку (1,2) с с12=3. Получаем новую таблицу

b1 = 0

b2 = 7

b3 = 5

A1 = 0

16

с11=1

2

с12=3

0

с13=4

A3 = 0

0

с21=2

0

с22=5

10

с23=3

A3 = 12

0

c31=6

c32=7

c33=5

Наконец завершаем процесс и получаем первоначальный план. При этом можно отбросить первую строку и первый столбец. Получаем

16

с11=1

2

с12=3

0

с13=4

0

с21=2

0

с22=5

10

с23=3

0

c31=6

7

c32=7

5

c33=5

Теорема 1. Транспортная задача (1) имеет решение тогда и только тогда, когда

i ai = ∑j bj.

Доказательство. Пусть решение X существует. Тогда из (1) вытекает, что

i ai = ∑i j xij = ∑j i xij = ∑j bj.

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

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

Рассмотрим двойственную задачу линейного программирования к транспортной задаче (1). В соответствии с общим правилом запишем (1) в виде

j xij ai , i = 1, …, m;

- ∑j xij ≤ - ai , i = 1, …, m;

i xijbj, j = 1, …, n; (2)

- ∑i xij ≤ - bj, j = 1, …, n

xij ≥ 0;

- z(X) = - ∑i,j cijxij → max.

Тогда двойственная задача имеет вид

i’ - i’’ + βj’ - βj’’ ≥ - cij , i = 1, …, m, j = 1, …, n;

i’,i’’,βj’, βj’’ ≥ 0, i = 1, …, m, j = 1, …, n; (3)

T’= 1a1 – 1’’a1 + … + mam – m’’am + β1b1 – β1’’b1 + … + βmbm – βm’’bm → min

Положим T = -T’ и i = i’’ - i’, βj = βj’’ - βj’, i = 1, …, m, j = 1, …, n.

Тогда (3) имеет вид

i + βjcij , i = 1, …, m, j = 1, …, n; (4)

T = 1a1 + … + mam + β1b1 + … + βmbm → max.

Теорема 2. Для того, чтобы допустимый план перевозок X был оптимальным необходимо и достаточно, чтобы существовали такие числа (потенциалы) 1, … , m1, … , βn, для которых

1) i + βjcij при всех i,j;

2) i + βj = cij, если xij > 0.

Доказательство. Проверим достаточность. Пусть задан допустимый план X = (xij), и 1, … , m1, … , βn из условий теоремы. Предположим, что Y = (yij) - произвольный допустимый план. В силу ограничений (1) и свойств 1), 2) из условия теоремы получаем

z(Y) = ∑i,j cijyij ≥ ∑i,j (i + βj)yij = ∑iij yij + ∑j βji yij = ∑ii ai + ∑j βj bj = ∑iij xij + ∑j βji xij = ∑i,j (i + βj)xij = ∑i,j cijxij = z(X).

Проверим теперь необходимость. Пусть X 0= (xij0) – оптимальный план и 1, … , m1, … , βn – оптимальное решение двойственной задачи. По (4) выполнено неравенство 1) из условия теоремы. Кроме того, по теореме о равновесии получаем (i+ βj - cij) xij0 = 0. Поэтому если xij0 > 0, то выполнено равенство 2) из условия теоремы.

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

G  {1, … ,m }, H  {1, … ,n},

что одно из них собственное и

i G ai = j H bj

Другими словами, суммарный запас продукта в пунктах Ai, i G, совпадает с потреблением в пунктах Bj, jH.

Далее мы будет предполагать, что рассматриваемая транспортная задача невырождена. Изложим метод потенциалов решения невырожденной транспортной задачи, опирающийся на теорему 2. Мы уже имеем допустимый первоначальный план, построенный методом минимального элемента. Из этого построения видно, что число ненулевых элементов в первоначальном плане равно n + m – 1. Найдем первоначальную систему потенциалов. Для этого в соответствии с условием 2) из теоремы 2 составим систему из n + m – 1 линейного уравнения

i + βj = cij.

В этой системе число неизвестных ij равно n + m. Можно показать, что ранг этой матрицы равен n + m – 1. Поэтому одно из неизвестных является свободным. Полагаем его равным нулю и далее находим частное решение системы. Продемонстрируем этот шаг на рассмотренном выше примере. Имеем системы линейных уравнений

Положим 1 = 0. Тогда β1 = 1, β2 = 3. Далее 3 = 4, β3 = 1, 2 = 2.

Для полученной системы потенциалов проверяем выполняется ли условие 1) из теоремы 2. Для этого составляем вспомогательную матрицу D, в которой на месте (i,j) стоит dij = i + βj . Если dijcij для всех (i,j), то построенный план по теореме 2 является оптимальным. Далее вычисляем значение целевой функции z(X) для этого плана. В нашем примере

Мы видим, что условие 1) нарушается в клетке (1,2).

Опишем основной шаг алгоритма, состоящий в улучшении плана. Выберем клетку (p,q), в которой p + βq > cpq. По построению xpq = 0. Нам потребуется

Предложение. Пусть план X = (xij) допустим, и xpq = 0 для некоторой пары индексов (p,q). Тогда существует и единственная такая последовательность различных строк p = i(0), i(1), … , i(k) и различных столбцов j(1), … , j(k-1), j(k) = q в матрице X, что элементы этой матрицы, стоящие в клетках (i(0), j(1)), (i(1), j(1)), (i(1), j(2)), (i(2), j(2)), … , (i(k), j(k-1)), (i(k), j(k)), отличны от нуля.

Заметим, что если мы начнем движение по матрице X с клетки (p,q), двигаясь далее по клеткам (i(0), j(1)), (i(1), j(1)), (i(1), j(2)), (i(2), j(2)), … , (i(k), j(k-1)), (i(k), j(k)) из предложения, то мы сначала идем по строке, далее по столбцу, затем снова по строке и т. д. На последнем шаге мы идем по строке и попадаем в исходный столбец с номером q.

Расставим во всех выбранных клетках чередующиеся метки +, - , начиная с + в начальной выбранной клетке (p,q). Пусть  - минимальный среди элементов xij, стоящих в выбранных клетках с меткой -. В клетках с меткой + число xij увеличиваем на , а в клетках с меткой - уменьшаем на . Все остальные элементы матрицы X не меняем. Получаем новый допустимый план X’ = (xij’). Сравним значения целевых функций для планов X и X’. Имеем

z(X') - z(X) = i,j cij(x'ij - xij) = s=0k-1 ci(s)j(s)(x'i(s)j(s) - xi(s)j(s) ) +

s=0k ci(s)j(s+1)(x'i(s)j(s+1) - xi(s)j(s+1) ) = s=0k-1 ci(s)j(s) - s=0k ci(s)j(s+1) = [ ci(0)j(0) + (i(1) + j(1)) +  + (i(k-1) + j(k-1)) - (i(0) + j(1)) - … - (i(k-1) + j(k))] = [ ci(0)j(0) - (i(0 + j(k))] < 0.

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

Продемонстрируем работу этого алгоритма на рассмотренному выше примере. Мы выбрали клетку (2,1). Выбираем путь (2,3), (3,4), (3,2), (1,2), (1,1). Расставляем метки + для клеток (2,1), (3,4), (1,2), и метки – для клеток (2,3), (3,2), (1,1). Минимальный элемент  стоящий в клетках с меткой – равен 7. Изменяем матрицу и получаем новую таблицу

9

с11=1

9

с12=3

0

с13=4

7

с21=2

0

с22=5

3

с23=3

0

c31=6

0

c32=7

12

c33=5

Для новой таблицы пишем систему уравнений для нахождения потенциалов:

Полагаем 1 = 0. Тогда β1 = 1, и поэтому β2 = 3, 2 = 1. Далее β3 = 2, 3 = 3. Таким образом, матрица D имеет вид

В соответствии с теоремой 2 построенный план

оптимален. Поэтому ответом является

z(X) = 91 + 93 + 72 + 33 + 125 = 9 + 27 + 14 + 9 + 60 =119.

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