Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лек.материал_ММУ.doc
Скачиваний:
15
Добавлен:
17.08.2019
Размер:
1.19 Mб
Скачать

6. Транспортная задача

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

Простейшая формулировка транспортной задачи, получившая название задачи по критерию стоимости, следующая:

В p пунктах отправления находится соответственно a1,…,ap единиц однородного груза (ресурсы), который должен быть доставлен g потребителям в количествах b1,…,bg единиц (потребности). Заданы стоимости cik перевозок из i – го пункта отправления к k – му пункту потребления (коэффициенты затрат). Требуется спланировать перевозки, то есть указать сколько единиц груза должно быть отправлено из любого i-го пункта отправления в любой k- ый пункт потребления так, чтобы максимально удовлетворить потребности, и чтобы суммарные затраты на перевозки были минимальными.

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

Обозначим через xik количество единиц продукта, запланированное к перевозке из

i–го пункта в k–ый. Тогда условие задачи можно представить в виде распределительной таблицы.

Таблица 6.1

b1

b2

bk

bg

a1

c11

x11

c12

x11

c1k

x1k

c1g

x1g

a2

c21

x21

c22

x22

c2k

x2k

c2g

x2g

ai

ci1

xi1

ci2

xi2

cik

xik

cig

xig

ap

cp1

xp1

cp2

xp2

cpk

xpk

cpg

xpg

Переменные хik должны удовлетворять ограничительным условиям

Суммарные затраты на перевозки равны

Требуется найти n=pg переменных хik, удовлетворяющих указанным условиям и минимизирующих функцию z.

Решение такой задачи разбиваем на два этапа:

  1. Определение исходного опорного (базисного) решения;

  2. Построение последовательных итераций, то есть приближение к оптимальному решению.

Для каждого их этих этапов существует несколько методов.

Рассмотрим первый этап. Для построения опорного решения чаще всего используют один из следующих методов: «северо – западного» угла и метод минимальных затрат.

1. Метод «северо – западного угла».

Заполним таблицу 6.1, начиная с левого верхнего (северо – западного) угла, двигаясь затем по строке вправо и по столбцу вниз. Запишем в клетку (1.1) меньшее из числа а1 и b1, то есть x11 = min {a1, b1}. Если а1>b1, то x11=b1 и первый столбец закрыт, то есть потребности первого потребителя удовлетворены полностью. Двигаясь дальше по первой строке, записываем в соседнюю клетку (1.2) меньшее из чисел a1 - b1 и b2, то есть x12 = min {a1-b1, b2}. Если же а1 < b1, аналогично закрывается первая строка (ресурсы первого отправителя исчерпаны), и далее заполняется соседняя клетка (2.1), куда заносится x21 = min {a2, b1-а2}. Этот процесс продолжается до тех пор, пока на каждом этапе не исчерпываются ресурсы аp и потребности bg. Может оказаться, что на каком–то промежуточном, а не только последнем этапе, построение опорного плана при внесении очередной величины хik закрываются одновременно i–ая строка и k–ый столбец. Это происходит, когда очередной остаток в k–ом столбце будет равен аi, или остаток в i–ой строке равен bk. Тогда занесем в следующую по строке или столбцу клетку (в ту из них, которой соответствую меньшие затраты) величину хik+1 = 0 или (xi+1k = 0). Такие нули называются, в отличие от пустых клеток, базисными. Они необходимы для предотвращения вырождения опорного плана.

Найдем опорный план методом «северо- западного» угла для транспортной задачи, приведенной в таблице 6.2.

Таблица 6.2.

a i bk

40

100

60

80

60

4

3

7

8

140

9

5

4

2

80

6

3

8

4

Заполним таблицу, начиная с клетки (1.1). х11 = min {60 ; 40}= 40. Первый столбец закрывается (потребности удовлетворены полностью) и во всех его остальных клетках ставится прочерк. Запасы первого поставщика не израсходованы на 60-40=20 единиц. Сравниваем с потребностями второго потребителя b2 = 100. Тогда х12= min {20 ; 100}= 20. Так как запасы первого поставщика исчерпаны, то в двух последних клетках первой строки ставим прочерки. Далее рассмотрим клетку (2,2).

х22= min {140 ; 80}, где 140 – запасы второго поставщика, а 80 – оставшиеся потребности второго потребителя. Таким образом, х22= 80, а в оставшейся клетки второго столбца ставим прочерк. Рассмотрим клетку (2,3). х23= min {60 ; 60}= 60. При этом одновременно закрываются вторая строчка и третий столбец, что означает полное удовлетворение потребностей третьего потребителя и исчерпание ресурсов второго поставщика. Поэтому, чтобы избежать вырождения, в соседней к (2,3) пустой клетке с наименьшей стоимостью перевозок (2,4) ставим ноль, а клетке (3,3) ставим прочерк. Заполняем оставшуюся клетку (3,4). х34= min {80 ; 80}= 80. Тем самым получено опорное решение. Таблица 6.3

a i bk

40

100

60

80

60

4

40

3

20

7

8

140

9

5

80

4

60

2

0

80

6

3

8

4

80

Найдем общую стоимость перевозки как сумму произведений объемов перевозок хik на соответствующие стоимости

z= 40·4 + 20·3 + 80·5 + 60·4 + 80·4 = 1180

2. Метод минимальных затрат.

В правиле «северо- западного» угла не учитываются величины затрат сik, а, значит, опорное решение может быть далеким от оптимального. Поэтому в дальнейших расчетах может потребоваться много шагов (итераций) для достижения оптимального решения. Число итераций, как правило, можно сократить, если исходное решение строить по усовершенствованному методу минимальных затрат. Сущность его состоит в том, что на каждом шаге заполняется клетка с наименьшей величиной сik. Начинаем заполнение таблицы с клетки, которой соответствует наименьший элемент сik из всей таблицы (в таблице 6.2 начинаем с клетки (2,4), где сik =2). Затем остаток по столбцу или строке помещаем в клетку того же столбца или строки, которой соответствует следующее по величине значение сik и так далее. Таким образом, последовательность заполняемых клеток определяется по величинам сik, а помещаемые в этих клетках величины хik определяются как и в правиле «северо- западного» угла. В результате для таблице 6.2 получаем другое опорное решение.

Таблица 6.4

a i bk

40

100

60

80

60

4

40(6)

3

20(5)

7

8

140

9

5

0(3)

4

60(2)

2

80(1)

80

6

3

80(4)

8

4

Индексы в скобках в таблице 6.4. показывают порядок заполнения. Начинаем с клетки (2,4) с наименьшей среди стоимостей сik (с24 = 2), поэтому

х 24= min {140 ; 80}= 80. Так как потребности четвертого потребителя удовлетворены, прочеркиваем остальные клетки четвертого столбца. У второго поставщика осталось 60 единиц товара. Находим минимальное значение сik для оставшихся клеток второй строки. Это с23= 4. Поэтому х23= min {60 ; 60}= 60. При этом одновременно исчерпываются ресурсы второго поставщика и удовлетворяют потребности третьего потребителя. Чтобы избежать вырождения, ставим базисный ноль в клетке (2,2) с наименьшим тарифом с22 =5. В остальных клетках второй строки и третьего столбца ставим прочерки. Затем рассматриваем второй столбец. Здесь у оставшихся клеток (1,2) и (3,2) тарифы равны. Заполним клетку (3,2) с максимальным хi из этих двух; х32= 80. Оставшиеся 20 единиц помещаем в клетку (1,2), то есть х12= 20. Ресурсы третьего поставщика исчерпаны, поэтому в пустой клетке третьей строки ставим прочерк. Наконец заполняем оставшуюся клетку (1,1), х11= 40.

Общая стоимость по такому плану равна:

z = 40·4 + 20·3 + 80·3 + 60·4 + 80·2 = 860

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

Введем понятие цикла. Циклом называется набор клеток, в котором две и только две соседние расположены в одном столбце или одной строке, причем последняя клетка находится в одном столбце или одной строке с первой.

Рассмотрим пример:

Для таблицы 6.3 построим цикл, начинающийся в клетке (3.1).

Решение имеет вид:

Таблица 6.5

a i bk

40

100

60

80

60

4

[-]40

3

[+]20

7

8

140

9

5

[-]80

4

60

2

[+]0

80

6

[+]

3

8

4

[-]80

Здесь все пустые клетки обозначены точками. Начинаем с клетки (3.1), в которой ставим «+», как и в дальнейшем в нечетных клетках цикла. Во второй клетке цикла (1.1) ставим « - », как и во всех четных клетках цикла. За исключением первой в цикл входят только занятые клетки, причем только две из строки и столбца, так что при его обходе можно вернуться в исходную клетку. Можно доказать, что такой цикл единственный, причем только из занятых клеток нельзя образовать цикла.

Распределительный метод описывается следующим алгоритмом:

  1. Располагаем исходные данные в распределительной таблице.

  2. Строим опорное решение. При этом должны оказаться занятыми r = p+g-1 клеток.

  3. Производим оценку первой свободной клетки путем построения для нее цикла и вычисления по этому циклу величины

,

где в первую сумму входят тарифы клеток цикла со знаком «+», а во вторую со знаком « - ».

Если Δst < 0, то переходим к пункту 4.

Если Δst ≥ 0, то оцениваем следующую свободную клетку до тех пор, пока обнаружим клетку с отрицательной оценкой Δst. Если все Δst неотрицательны, то решение соответствующее таблице является оптимальным.

  1. Находим λ= min {хij}, где хij – значения величины перевозок в клетках со знаком

«-» затем прибавляем λ ко всем клеткам цикла со знаком «+» и отнимаем из всех клеток со знаком «-». После этого возвращаемся к пункту 3.

Оценки свободных клеток связаны с определенной таблицей. На каждом новом этапе после 4 пункта оценки одних и тех же клеток будут изменяться, поэтому на каждом этапе необходимо пересчитывать оценки свободных клеток Δst.

При выполнении пункта 3 целесообразно выбирать для оценки сначала клетки с минимальными тарифами сik.

Рассмотрим приведенный алгоритм для таблицы 6.3.

Таблица 6.6

a i bk

40

100

60

80

60

4

40

3

20

7

8

140

9

5

[-]80

4

60

2

[+]0

80

6

3

[+]

8

4

[-]80

В таблице 6.6 построен цикл для свободной клетки (3.2), имеющий наименьший тариф с32=3.

с32==(3+2)-(5+4)=-4<0

λ=min{80;80}=80

Выполнив пункт 4, имеем таблицу 6.7. Оценим сначала клетку (3.4).

Δ34=9-5=4>0

Таблица 6.7

a i bk

40

100

60

80

60

4

40

3

20

7

8

140

9

5

[+]0

4

60

2

[-]80

80

6

3

[-]80

8

4

[+]

Затем остальные свободные клетки (3,3), (3,1), (2,1), (1,3), (1,4).

Δ34=6>0; Δ31=2>0; Δ13=5>0; Δ14=8>0; Δ21=3>0.

Таким образом, решение в таблице 6.7 является оптимальным. Заметим, что в данном примере метод минимальных затрат сразу дал оптимальное решение (см.таблицу 6.4), а для правила «северо – западного» угла потребовалась одна итерация.

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

Каждому поставщику ai сопоставил величину Ui, называемую потенциалом. Каждому потребителю bj сопоставим потенциал Vj.

Составим уравнение вида Vj-Ui-cij=0 для всех занятых клеток. Для удобства перепишем эту таблицу в виде:

Таблица 6.8

a i bk

V1

V2

V3

V4

U1

4

40

3

20

7

8

U2

9

5

80

4

60

2

0

U3

6

3

8

4

80

Получаем:V1-U1=4; V2-U1=3; V2-U2=5; V3-U2=4; V4-U2=2; V4-U3=4.

Полагая одну из неизвестных (наиболее часто встречающуюся) равной нулю (здесь U2=0), найдем все остальные.

V1=6; V2=5; V3=4; V4=2; U1=2; U3= -2.

Проверим выполнение условий оптимальности для занятых клеток. Для этого должно выполняться соотношение δij = Vj - Ui-Cij 0.

δ13=V3-U1-C13=4-2-7=-5<0

δ14=V4 - U1-C14=2 - 2 - 8 = - 8 < 0

δ21=V1 - U2 - C21=6 – 0 - 9= - 3 < 0

δ31=V1 - U2 - C31 = 6 + 2 - 6 = 2 > 0

δ32=V2 - U3 - C32 = 5 + 2 – 3 = 4 > 0

δ33=V3 - U3 - C33 = 4 + 2 - 8 = -2 < 0

Построим цикл для клетки с наибольшем нарушением δij. Это клетка (3,2). Как в распределительном методе пересчитаем xij для клеток цикла. Полученный результат запишем в таблице 6.9.

Таблица 6.9

ai bk

V1

V2

V3

V4

U1

4

40

3

20

7

8

U2

9

5

0

4

60

2

80

U3

6

3

80

8

4

Опять проверяем на оптимальность. Имеем систему из 6 уравнений с 7 неизвестными.

V1 - U1 = 4; V2 - U1 = 3; V2 - U2 = 5; V2 - U3 = 3; V3 - U2 = 4; V4 - U2 = 2.

Система имеет множество решений. Полагая V2 =5, находим U1=2; U2=0; U3=2;

V3 = 4; V4 = 2; V1 = 6.

В таком случае δ13 = - 5; δ14 = - 8; δ21 = - 3; δ31 = -2; δ33 = - 6; δ34 = - 4.

Все δij, соответствующие пустым клеткам, отрицательны. Значит, решение в таблице 6.9 является оптимальным (оно совпадает с таблицей 6.4 и таблицей 6.7).