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

3.5 Опорный план транспортной задачи

Метод решения транспортной задачи представляет собой развитие идеи симплекс-метода [3] и тоже основан на переборе опорных планов этой задачи. Опорный план должен включать столько базисных переменных, сколько в задаче линейного программирования независимых уравнений.

Если бы система ограничений закрытой транспортной задачи была линейно независимой, то базисных переменных было бы m+n. Но из задач (6) и (7) видно, что такая система линейных уравнений является линейно зависимой (например, если сложить все ограничения из первой и все из второй группы, а затем вычесть из одной суммы другую, в левой части получится ноль). Можно доказать, что если удалить из системы одно ограничение, то она станет независимой (одно ограничение является лишним, оно следует из остальных). Следовательно, базисных переменных должно быть m+n-1.

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

3.5.1 Метод северо-западного угла построения опорного плана транспортной задачи

Этот метод принято сокращенно обозначать МСЗУ.

Представим опорный план транспортной задачи в виде таблицы, строки которой будут соответствовать поставщикам (с их запасами ai), столбцы – потребителям (с их потребностями bj), а ячейки – компонентам опорного плана (например, в первой строке первого столбца будет стоять значение переменной x11). Будем заполнять лишь те ячейки, которые будут соответствовать базисным компонентам, переменные в незаполненных ячейках равны нулю.

Применение метода начинают с того, что рассматривают левый верхний («северо-западный») угол таблицы, который соответствует переменной x11, т.е. перевозкам от первого поставщика к первому потребителю. Сравнивают их запас и потребность — a1 и b1.

Читайте также:  Таблица программирования pantera 625

1). Если a1 < b1, то x11 = a1, т.е. всю продукцию первого поставщика отправляют к первому потребителю.

После этого первую строку исключают из рассмотрения (все остальные x1j = 0). В самом деле, ведь запасы первого поставщика уже закончились. Следовательно, больше никому ничего везти от него нельзя.

Первому столбцу вместо b1 ставят в соответствие b1`= b1 — a1, поскольку потребность первого потребителя снизилась (она уже частично удовлетворена).

Затем снова рассматривают левый верхний угол оставшейся части таблицы (без первой строки), т.е. х21.

2). Если a1 > b1 , то x11 = b1., т.е. первого потребителя полностью удовлетворяют за счет запасов первого поставщика, после чего этого потребителя (первый столбец) исключают. Запасы первого поставщика уменьшаются a1`= a1 — b 1.

Затем рассматривают левый верхний угол оставшейся части таблицы (без первого столбца), т.е. х12.

3). Если a1 = b1, то можно исключить либо столбец, либо строку.

Далее действуют аналогично, т.е. либо принимают х21 = min 1`;a2>, либо принимают х12 = min 2; a1`>. Процесс продолжается до тех пор, пока не будут исключены из рассмотрения все ячейки. При этом окажется заполненной m+n-1 клетка таблицы.

Рассмотрим применение данного метода к задаче о холодильных установках. Для этого необходимо построить таблицу из трех строк и столбцов, соответствующих шести центрам производства и сбыта (включая дополнительный). Чтобы построить опорный план, необходимо заполнить 3 + 3 – 1 = 5 клеток этой таблицы.

Ее левый верхний угол будет соответствовать поставкам холодильных установок из Стокгольма в Лейпциг (переменной x11). Так как в Стокгольме производится меньше установок, чем необходимо поставить в Лейпциг (a1 < b1, 120 < 150), то направим все эти 120 установок в Лейпциг (x11 = 120). После этого Стокгольм (первую строку таблицы) можно исключить из рассмотрения, так как холодильных установок в этом центре сбыта больше не осталось. В Лейпциг же необходимо поставить еще 150 – 120 = 30 установок, поэтому Лейпцигу (первый столбец) ставится в соответствие новое значение потребностей – 30:

дополнительный центр сбыта

Источник

Глава2 ТРАНСПОРТНАЯ ЗАДАЧА

Под транспортной задачей в дальнейшем понимается задача линейного программирования, в которой требуется найти оптимальный (по стоимости) план перевозок некоторого однородного груза от конечного числа поставщиков A 1 , A 2 , , A m с заданными запасами a 1 , , a m к конечному числу потребителей B 1 , B 2 , , B n с потребностями b 1 , , b n . Стоимость c ij перевозки единицы груза от поставщика A i к потребителю B j предполагается известной. Отметим, что данная постановка задачи может быть значительно расширена или изменена. Например, в приложениях часто рассматриваются задачи перевозки неоднородного груза. Также в качестве критерия оптимальности можно рассматривать время перевозок (транспортная задача по критерию времени). Подобного рода задачи решаются сведением к однородной транспортной задаче, или для них разработаны другие методы, изложение которых остается за рамками данной книги.

§ 2.1. Постановка задачи

Итак, пусть X = ( x ij ) – m × n матрица, где x ij – объем перевозок от i -го поставщика к j -му потребителю. Тогда общие затраты на пе-

m n
ревозку груза определяются функцией z ( X ) = ∑∑ c ij x ij . Математиче-
i = 1 j = 1

ская постановка транспортной задачи определяется следующей задачей линейного программирования m n z ( X ) = ∑∑ c ij x ij → min i = 1 j = 1 при условиях

∑ x ij = b j , j = 1, , n ,
m
i = 1
n i = 1, , m , (2.1)
∑ x ij = a i ,
j = 1
x ≥ 0.
ij

Первая часть нетривиальных ограничений означает, что все потребности удовлетворены, вторая часть – то, что весь груз вывезен от поставщиков. Замечание 2.1. Если запасы и потребности задаются целыми числами, то транспортная задача имеет целочисленное оптимальное решение, поэтому транспортную задачу относят формально к задачам целочисленного линейного программирования. Можно показать, что число базисных переменных в системе ограничений (2.1) равно m + n − 1 .

Поставщики Потребители Запасы
B 1 B 2 B j B n
A 1 c 11 c 12 c 1 j c 1 n a 1
x 11 x 12 x 1 j x 1 n
A c с с c a
2 21 22 2 j 2 n 2
x 21 x 22 x 2 j x 2 n
A i c i 1 c i 2 c ij c in a i
x i 1 x i 2 x ij x in
A m c m 1 c m 2 c mj c mn a m
x m 1 x m 2 x mj x mn
Потребности b 1 b 2 b j b n
Таблица 2.1

Определение 2.1. Решение X = ( x ij ) (оптимальное решение X * = ( x ij * ) ) транспортной задачи, удовлетворяющее условиям (2.1) и имеющее не более m + n − 1 занятой клетки (ненулевой перевозки), бу- дем называть опорным планом (оптимальным опорным планом) транспортной задачи. Исходные данные задачи представляют в виде таблицы 2.1. m Общие запасы определяются суммой ∑ a i , а общая потребность – i = 1
n ∑ b j . Транспортная задача называется задачей с правильным балан- j = 1

m n
сом , а ее модель закрытой , если ∑ a i = ∑ b j , то есть суммарные запа-
i = 1 j = 1
сы поставщиков равны суммарным запросам потребителей. Если
m n
∑ a i ≠ ∑ b j , то такая задача называется задачей с неправильным ба-
i = 1 j = 1

лансом , а ее модель – открытой .

§ 2.2. Построение начального опорного плана транспортной задачи

Алгоритм решения транспортной задачи с правильным балансом излагается в курсе «Линейная алгебра». В этом параграфе мы напомним основные методы построения начального опорного плана и метод потенциалов решения транспортной задачи. Первым этапом решения является построение начального опорного плана, т.е. плана перевозок, удовлетворяющего всем ограничениям конкретной транспортной задачи. Сущность методов состоит в том, что начальный опорный план находят за не более чем m + n − 1 шагов (по числу базисных переменных), на каждом из которых в транспортной таблице заполняют одну клетку, которую называют занятой. Заполнение одной из клеток обеспечивает полностью либо удовлетворение потребности в грузе одного из пунктов назначения (того, в столбце которого находится заполненная клетка), либо вывоз груза из одного из пунктов

B 1 B 2 B 3 B 4 a i
A 1 1 11 3 13 140
A 2 12 4 8 2 160
A 3 3 5 14 6 100
b j 80 40 150 130 400
Таблица 2.2

оптимального.

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

Пример 2.1. Рассмотрим транспортную задачу, заданную таблицей 2.2. В правом нижнем углу стоит сумма запасов (и, одновременно, сумма потребностей, так как модель закрытая) 140+160+100=80+40+ +150+ 130=400.

Напомним сначала метод северо-западного угла. Заполнение
таблицы начинаем с левого
B 1 B 2 B 3 B 4 a i верхнего (северо-западного)
A 1 1 40 11 3 13 140 угла таблицы. Так как по-
80 20
требности первого потреби-
A 2 12 4 8 2 160
теля В 1 равны 80, а запасы
130 30
A 3 3 5 14 6 100 первого поставщика A 1 рав-
100 ны 140, то в клетку A 1 B 1
b j 80 40 150 130 400
вписываем максимально
Таблица 2.3 возможную перевозку 80.
Потребности В 1 полностью удовлетворены, поэтому первый столбец

исключаем из рассмотрения, а оставшиеся запасы первого поставщика, т.е. 60, переносим следующим потребителям. Мы можем 40 записать потребителю В 2 (столбец В 2 исключается), а оставшиеся 20 – В 3 и исключить первую строку из дальнейшего рассмотрения . Далее, так как потребности В 3 равны 150, а 20 единиц груза ему уже доставлены, то оставшиеся 130 единиц доставляются от второго поставщика A 2 (заполняем клетку A 2 B 3 ) . С толбец В 3 исключаем из рассмотрения, а оставшиеся запасы второго поставщика (30 единиц) записываем потребителю В 4 . Окончательно потребности последнего удовлетворяются за счет поставщика A 3 : вписываем в клетку A 3 B 4 пе- ревозку 100. Заметим, что, так как исходная задача — с правильным балансом, то потребности последнего потребителя B 4 равны запасам по- ставщика A 3 , т.е. 100. Получаем таблицу 2.3 с начальным опорным планом

80 40 20 0
0 0 130 30
X = .
0 0 0 100

Суммарная стоимость перевозок равна z ( X ) = 1 80 + 11 40 + 3 20 + 8 130 + 2 30 + 6 100 = 2280. Из решения видно, что метод северо-западного угла, с одной стороны, достаточно прост с точки зрения построения, а с другой стороны, не учитывает стоимость перевозок. Поэтому опорный план, построенный методом северо-западного угла, как правило, далек от оптимального.
Построим теперь для этой же задачи начальный опорный план методом минимального тарифа. Суть этого метода состоит в том, что в клетки с наименьшими тарифами помещают максимально возможные перевозки. Итак, в таблице исходной задачи выбираем клетку с минимальным тарифом, т.е. клетку A 1 B 1 с тарифом 1 . Запасы постав- щика A 1 равны 140, а потребности В 1 – 80, поэтому в клетку A 1 B 1 вписываем максимально возможную перевозку 80, и потребителя В 1 ис- ключаем из рассмотрения. В оставшейся части таблицы выбираем минимальный тариф, т.е.

B 1 B 2 B 3 B 4 a i клетку A B с тарифом 2. За-
1 11 3 13
A 1 140 2 4
80 60 пасы поставщика A 2 равны
A 12 4 8 2 160 140, а потребности В 4 — 130,
2 30 130 поэтому в клетку A 2 B 4 запи-
A 3 3 5 14 6 100
10 90 сываем перевозку 130 и по-
b j 80 40 150 130 400 требителя В исключаем из
4
Таблица 2.4 рассмотрения. У оставшихся

потребителей В 2 , В 3 выбираем клетку с минимальным тарифом. Это A 1 B 3 с тарифом 3. Запасы (оставшиеся) поставщика A 1 равны 60, а по-

требности В 3 – 150, поэтому в клетку A 1 B 3 записываем максимально
возможную перевозку 60 и исключаем поставщика A 1 из дальнейшего
рассмотрения. Далее, аналогично в клетку A 2 B 2 записываем 30 и ис-
ключаем второго поставщика.
В оставшиеся две клетки A 3 B 2 и A 3 B 3 последовательно вписыва-
ем перевозку 10 в A 3 B 2 и 90 в A 3 B 3 . Получаем таблицу 2.4 с начальным
80 0 60 0
опорным планом X = 0 30 0 130
. Суммарная стоимость пере-
0 10 90 0

возок равна z ( X ) = 1 80 + 3 60 + 4 30 + 2 130 + 5 10 + 14 90 = 1950 < 2280. Таким образом, опорный план, построенный методом минимального тарифа, лучше, чем план, полученный методом северо-западного угла. Применим, наконец, к исходной задаче метод аппроксимации Фогеля. Для этого найдем разность между двумя минимальными тарифами для каждой строки и столбца таблицы и запишем их в дополнительно образованные строки и столбцы (см. таблицу 2.5). В строке A 1 минимальный тариф равен 1, а следующий за ним 3, поэтому раз- ность между ними 4-2=2; в строке A 2 минимальный тариф равен 2, а следующий за ним 4, поэтому разность между равна 2; аналогично, для строки A 3 разность между минимальным тарифом 3 и следующим за ним 5 равна 2. Итак, три двойки записываем в первый дополнительный столбец. Аналогично для столбцов разности 3-1=2, 5-4=1, 8-3=5 и 6-2=4 записываем в первую дополнительную строку. Теперь из всех разностей выбираем максимальную , т.е. 5 в столбце B 3 , и в клетку A 1 B 3 с минимальным тарифом в этом столбце записываем максимально возможную перевозку 140. При этом поставщика A 1 исключаем из рас- смотрения. Теперь аналогично вычисляем разности между оставшимися минимальными тарифами и заполняем вторые дополнительные столбец и строку, не учитывая тарифы в строке A 1 . Видим, что теперь максимальная разность получается в столбце B 1 и перевозку 80 записываем в клетку A 3 B 1 с минимальным тарифом 3 в этом столбце (первую строку мы исключили из рассмотрения). Столбец B 1 аналогично исключаем из рассмотрения. Как видно из таблицы, на следующем

B 1 B 2 B 3 B 4 a i Разности по строкам
A 1 1 11 3 13 140 2
140
A 2 12 4 8 2 160 2 2 2 2 0
20 10 130
A 3 3 5 14 6 100 2 2 1 1 0 0
80 20
b j 80 40 150 130 400
2 1 5 4
9 1 6 4
Разности
1 6 4
по
1 4
столбцам
1
0

Таблица 2.5 шаге вписываем перевозку 10 в клетку A 2 B 3 и исключаем столбец B 3 , затем – максимально возможную перевозку 40 в клетку A 2 B 4 и исключаем из рассмотрения столбец B 4 . Теперь для вычисления дальнейших разностей остается единственный столбец B 2 , поэтому в качестве разностей по строкам записываем нули. Далее, в клетку A 2 B 2 записываем 20, а на последнем шаге записываем перевозку 20 в клетку A 3 B 2 . По-

Источник

Оцените статью