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

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).