Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методы оптимальных решений.pdf
Скачиваний:
1772
Добавлен:
13.03.2015
Размер:
1 Мб
Скачать
☆

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

Под транспортной задачей в дальнейшем понимается задача линейного программирования, в которой требуется найти оптимальный (по стоимости) план перевозок некоторого однородного груза от конечного числа поставщиков A1, A2 , , Am с заданными запасами

a1, ,am к конечному числу потребителей B1, B2 , , Bn с потребностями b1, ,bn . Стоимость cij перевозки единицы груза от поставщика Ai к потребителю Bj предполагается известной.

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

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

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

 

m

n

ревозку груза определяются функцией

z(X ) = ∑∑cij xij . Математиче-

 

i=1

j=1

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

m n

z(X ) = ∑∑cij xij → min

i=1 j=1

при условиях

23

∑xij =bj ,

j =1, ,n,

 

m

 

 

 

i=1

 

 

 

n

 

i =1, ,m,

(2.1)

∑xij = ai ,

j=1

 

 

 

x

≥ 0.

 

 

ij

 

 

 

 

 

 

 

Первая часть нетривиальных ограничений означает, что все потребности удовлетворены, вторая часть – то, что весь груз вывезен от поставщиков.

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

Можно показать, что число базисных переменных в системе ограничений (2.1) равно m + n −1.

Поставщики

 

 

 

Потребители

 

 

 

Запасы

 

B1

 

B2

…

 

Bj

…

 

Bn

 

 

 

 

 

 

A1

 

c11

 

c12

…

 

c1 j

…

 

c1n

a1

 

x11

 

x12

 

 

x1 j

 

 

x1n

 

 

A

 

c

 

с

…

 

с

…

 

c

a

2

 

21

 

22

 

 

2 j

 

 

2n

2

 

x21

 

x22

 

 

x2 j

 

 

x2n

 

 

…

 

…

 

…

…

 

…

…

 

…

…

Ai

 

ci1

 

ci2

…

 

cij

…

 

cin

ai

 

xi1

 

xi2

 

 

xij

 

 

xin

 

 

…

…

 

…

 

…

…

 

…

…

 

…

Am

 

cm1

 

cm2

…

 

cmj

…

 

cmn

am

 

xm1

 

xm2

 

 

xmj

 

 

xmn

 

 

Потребности

 

b1

 

b2

…

 

bj

…

 

bn

 

 

 

 

 

 

Таблица 2.1

 

 

 

 

Определение 2.1. Решение X =(xij ) (оптимальное решение X * =(xij* )) транспортной задачи, удовлетворяющее условиям (2.1) и

имеющее не более m + n −1 занятой клетки (ненулевой перевозки), бу-

дем называть опорным планом (оптимальным опорным планом)

транспортной задачи.

Исходные данные задачи представляют в виде таблицы 2.1.

m

Общие запасы определяются суммой ∑ai , а общая потребность –

i=1

24

n

∑bj . Транспортная задача называется задачей с правильным балан-

j=1

 

m

n

сом, а ее модель закрытой, если ∑ai

= ∑bj , то есть суммарные запа-

 

i=1

j=1

сы

поставщиков равны суммарным

запросам потребителей. Если

m

n

 

∑ai ≠ ∑bj , то такая задача называется задачей с неправильным ба-

i=1

j=1

 

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

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

Алгоритм решения транспортной задачи с правильным балансом излагается в курсе «Линейная алгебра». В этом параграфе мы напомним основные методы построения начального опорного плана и метод потенциалов решения транспортной задачи.

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

груза из одного из пунктов

 

B1

B2

B3

B4

ai

A1

1

11

3

13

140

 

 

 

 

 

 

 

 

 

 

A2

12

4

8

2

160

 

 

 

 

 

 

 

 

 

 

A3

3

5

14

6

100

 

 

 

 

 

 

 

 

 

 

bj

80

40

150

130

400

 

 

Таблица 2.2

 

 

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

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

более или менее отличные от

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

140+160+100=80+40+ +150+ 130=400.

25

 

Напомним

сначала

метод северо-западного

угла. Заполнение

 

 

 

 

 

 

 

 

таблицы начинаем с левого

 

 

B1

B2

B3

B4

ai

верхнего (северо-западного)

A1

 

1

40

11

3

13

140

угла таблицы. Так как по-

 

80

 

20

 

 

 

 

 

 

 

 

 

требности первого потреби-

A2

 

12

 

4

8

2

160

 

 

теля В1 равны 80, а запасы

 

 

 

 

130

30

A3

 

3

 

5

14

6

100

первого поставщика A1

рав-

 

 

 

 

 

100

ны 140, то в клетку

A1B1

bj

 

80

40

150

130

400

 

вписываем

максимально

 

 

 

Таблица 2.3

 

 

возможную перевозку

80.

 

 

 

 

 

 

 

 

Потребности В1

полностью удовлетворены, поэтому первый столбец

исключаем из рассмотрения, а оставшиеся запасы первого поставщика, т.е. 60, переносим следующим потребителям. Мы можем 40 записать потребителю В2 (столбец В2 исключается), а оставшиеся 20 – В3

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

Далее, так как потребности В3 равны 150, а 20 единиц груза ему

уже доставлены, то оставшиеся 130 единиц доставляются от второго поставщика A2 (заполняем клетку A2B3 ) . С толбец В3 исключаем из

рассмотрения, а оставшиеся запасы второго поставщика (30 единиц) записываем потребителю В4 . Окончательно потребности последнего

удовлетворяются за счет поставщика A3 : вписываем в клетку A3B4 пе-

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

ставщика A3 , т.е. 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.

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

26

Построим теперь для этой же задачи начальный опорный план методом минимального тарифа. Суть этого метода состоит в том, что в клетки с наименьшими тарифами помещают максимально возможные перевозки. Итак, в таблице исходной задачи выбираем клетку с минимальным тарифом, т.е. клетку A1B1 с тарифом 1. Запасы постав-

щика A1 равны 140, а потребности В1 – 80, поэтому в клетку A1B1 вписываем максимально возможную перевозку 80, и потребителя В1 ис-

ключаем из рассмотрения. В оставшейся части таблицы выбираем минимальный тариф, т.е.

 

B1

B2

B3

B4

ai

клетку A B с тарифом 2. За-

 

1

11

3

13

 

A1

140

2

4

 

 

80

 

60

 

пасы поставщика A2

равны

A

12

4

8

2

160

140, а потребности В4

- 130,

2

 

30

 

130

 

поэтому в клетку A2B4

запи-

A3

3

5

14

6

100

 

10

90

 

сываем перевозку 130 и по-

 

 

 

 

bj

80

40

150

130

400

требителя

В

исключаем из

 

 

 

 

 

 

 

4

 

 

 

 

Таблица 2.4

 

 

рассмотрения.

У оставшихся

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

требности В3 – 150, поэтому в клетку

A1B3

записываем максимально

возможную перевозку 60 и исключаем поставщика A1 из дальнейшего

рассмотрения. Далее, аналогично в клетку

A2B2 записываем 30 и ис-

ключаем второго поставщика.

 

 

 

 

В оставшиеся две клетки A3B2

и A3B3

последовательно вписыва-

ем перевозку 10 в A3B2

и 90 в A3B3 . Получаем таблицу 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). В строке A1 минимальный тариф равен 1, а следующий за ним 3, поэтому раз-

ность между ними 4-2=2; в строке A2 минимальный тариф равен 2, а следующий за ним 4, поэтому разность между равна 2; аналогично,

27

для строки A3 разность между минимальным тарифом 3 и следующим

за ним 5 равна 2. Итак, три двойки записываем в первый дополнительный столбец.

Аналогично для столбцов разности 3-1=2, 5-4=1, 8-3=5 и 6-2=4 записываем в первую дополнительную строку. Теперь из всех разностей выбираем максимальную, т.е. 5 в столбце B3 , и в клетку A1B3 с

минимальным тарифом в этом столбце записываем максимально возможную перевозку 140. При этом поставщика A1 исключаем из рас-

смотрения. Теперь аналогично вычисляем разности между оставшимися минимальными тарифами и заполняем вторые дополнительные столбец и строку, не учитывая тарифы в строке A1 . Видим, что теперь

максимальная разность получается в столбце B1 и перевозку 80 записываем в клетку A3B1 с минимальным тарифом 3 в этом столбце (первую строку мы исключили из рассмотрения). Столбец B1 аналогично исключаем из рассмотрения. Как видно из таблицы, на следующем

 

B1

B2

B3

B4

ai

 

Разности по строкам

 

A1

1

11

3

13

140

2

 

–

–

–

–

 

–

 

 

140

 

 

 

A2

12

4

8

2

160

2

 

2

2

2

0

 

–

 

20

10

130

 

 

A3

3

5

14

6

100

2

 

2

1

1

0

 

0

80

20

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

bj

80

40

150

130

400

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

1

5

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

9

1

6

4

 

 

 

 

 

 

 

 

 

Разности

 

 

 

 

 

 

 

 

 

 

 

 

 

–

1

6

4

 

 

 

 

 

 

 

 

 

по

 

 

 

 

 

 

 

 

 

 

 

 

 

–

1

–

4

 

 

 

 

 

 

 

 

 

столбцам

 

 

 

 

 

 

 

 

 

 

–

1

–

–

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

–

0

–

–

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 2.5

шаге вписываем перевозку 10 в клетку A2B3 и исключаем столбец B3 , затем – максимально возможную перевозку 40 в клетку A2B4 и исключаем из рассмотрения столбец B4 . Теперь для вычисления дальнейших разностей остается единственный столбец B2 , поэтому в качестве разностей по строкам записываем нули. Далее, в клетку A2B2 записываем 20, а на последнем шаге записываем перевозку 20 в клетку A3B2 . По-

28