Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методичка хорошая ОММ.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
4.19 Mб
Скачать

2.4. Транспортная задача, ее решение методом потенциалов и в Excel

Задача 2.4.1. Три фермерских хозяйства А1, А2, А3 ежедневно могут доставлять в магазины соответственно 70, 50 и 60 ц картофеля для обеспечения четырёх торговых точек: В1, В2, В3, В4 . Стоимость перевозки 1 ц картофеля и потребность торговых точек в картофеле указаны в табл. 2.4.1.

Таблица 2.4.1. Исходные данные транспортной задачи

Фермерские хозяйства

Затраты на перевозку 1 ц картофеля по торговым точкам

Запасы картофеля, ц

В1

В2,

В3

В4

А1

6

5

7

9

70

А2

9

9

6

5

50

А3

5

9

3

8

60

Потребности в картофеле, ц

20

80

20

40

Определить план поставки картофеля в каждую точку для удовлетворения потребностей, чтобы суммарные транспортные издержки были минимальными.

Решение.

1. Проверяем наличие закрытости транспортной модели.

Задача называется закрытой, если a1 +a2 +…+am = b1+ b2 +…+bn.

Если a1 +a2 +…+am b1+ b2 +…+bn, то задача называется открытой. a1, a2, …, am запасы картофеля у поставщиков, b1, b2 ,…, bn потребности потребителей.

В нашем случае ,

.

Следовательно задача открытая.

Составим математическую модель задачи.

Введём переменные количество картофеля, которое планируется перевозить от i-го фермерского хозяйства к j-й торговой точке (например, х11 количество картофеля, которое планируется перевозить от первого фермерского хозяйства к первой торговой точке), Z – суммарные транспортные издержки, которые надо минимизировать:

С первого фермерского хозяйства вывозится ц картофеля и так как задача открытого типа, запасы картофеля больше потребностей, то эта величина не превосходит 70 ц, что записывается в виде неравенства . Количество привезённого картофеля на первую торговую точку равно и оно равно 20 ц, т.е х11+х21+х31 = 1700. Поступая аналогично по остальным фермерским хозяйствам и торговым точкам, получаем математическую модель задачи:

Так как спрос больше потребления, то вводим фиктивного потребителя с потребностью равнёй 180 – 160 =2 0 ц и тарифами перевозок равными нулю. Для этого в матрицу транспортной задачи вводим дополнительный столбец, соответствующую фиктивному потребителю с потребностями и тарифами перевозок .

Для удобства данные запишем в виде табл. 2.4.2.

Таблица 2.4.2. Закрытая транспортная задача примера 2.4.2

bj

ai

20

80

20

40

20

70

6

5

7

9

0

50

9

9

6

5

0

60

5

9

3

8

0

2. Методом северо-западного угла находим начальный опорный план. Сущность метода северо-западного угла состоит в том, что максимально возможные поставки последовательно вводятся в северо-западную клетку таблицы.

У первого поставщика берём 20 ц картофеля и отдаём их первому потребителю. 20 записываем в клетку (1;1). Оставшиеся 50 ц картофеля даём второму потребителю. Второму потребителю надо ещё 30 ц картофеля. Его берём у второго поставщика. Оставшиеся 20 ц картофеля у второго поставщика распределяем третьему потребителю. От третьего поставщика 40 ц отдаём третьему потребителю и 20 ц четвёртому.

Таблица 2.4.3. Первоначальное распределение

bj

ai

20

80

20

40

20

70

6

5

7

9

0

20

50

50

9

4

6

5

0

30

20

60

5

9

3

8

0

40

20

Проверяем баланс по каждой строке и каждому столбцу.

3. Проверяем распределение на вырожденность. Заполненных клеток должно быть m+n–1=3+5–1=7. Мы получили шесть заполненных клеток. Такое распределение называется вырожденным. Для того, чтобы сделать распределение невырожденным, ставят поставку объемом равным нулю в клетку, которая образует с другими заполненными так называемую цепочку (цикл) перераспределения. Это означает, что от каждой заполненной клетки можно перейти в любую другую заполненную клетку перемещаясь только горизонтально и вертикально. делая повороты только в заполненных клетках. В одну незаполненную клетку (3;4) ставим 0 и считаем ее заполненной. Ноль можно ставить не в любую незаполненную клетку. В нашем случае ноль нельзя ставить в клетки (1;3) и (2;1).

Получили начальное распределение

,

Z(X1) = 20·6+50·5+30·4+20·6+40·8= 930 (грн.).

4. Проверяем полученный план на оптимальность. Проверка текущего опорного плана на оптимальность осуществляется методом потенциалов. Находим потенциалы. Каждому поставщику и потребителю ставим в соответствие числа , называемые потенциалами таким образом, чтобы их сумма равнялась тарифам соответствующих заполненных клеток.

если (i;j) заполненная клетка.

Таблица 2.4.4. Потенциалы и оценки оптимальности

bj

ai

20

80

20

40

20

ui

70

6

5

7

9

0

u1 = 0

20

50

[0]

[ 3]

[ 2]

50

9

4

6

5

0

u2 = 1

[ 4]

30

2 0

0

[ 3]

60

5

9

3

8

0

u3 = 2

[3]

[ 2]

[ 6]

40

20

vj

v1 = 6

v2 = 5

v3 = 7

v3 = 6

v4 = 2

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

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

5. Находим оценки незаполненных клеток по формуле

:

Их значения записываем в клетках таблицы в нижнем левом углу. Величины груза выделены жирным шрифтом, а значения оценок выделены квадратными скобками. Оценка 3 в клетке (3;1) показывает, что если в эту клетку поместить единицу груза, то стоимость перевозок уменьшится на три гривны. Действительно, для сохранения баланса с клетки (3;4) необходимо отнять единицу груза, в клетку (2;4) необходимо прибавить единицу груза, с клетки (2;2) необходимо отнять единицу груза, в клетку (1;2) необходимо добавить единицу груза, с клетки (1;1) отнять единицу груза. Стоимость перевозки будет соответственно меняться: , т.е. уменьшиться на 3 грн.

Отсюда следует, что текущий опорный план будет оптимальным, если для всех незаполненных клеток оценки будут неположительными:

6. Начальный план не является оптимальным, поскольку имеются положительные оценки для пустых клеток. Переходим к новому опорному плану. Переход осуществляется заполнением клетки, которой соответствует наибольшая положительная оценка оптимальности. В нашем случае это клетка (3;3). Для клетки (3;3) строим цикл пересчёта (цепочку перераспределения). Циклом для незаполненной клетки называется последовательность заполненных клеток, в которые поочерёдно добавляется и вычитается груз для сохранения баланса, если в незаполненную клетку поместить некоторый груз. Для каждой свободной ячейки всегда существует только одна цепочка перераспределения. Она составляется таким образом, что на каждом углу цепочки стоят заполненные клетки, а один угол цепочки находится в клетке, куда осуществляется перераспределение.

0 + ρ

20 – ρ

40 – ρ

+ ρ

Рис. 2.4.1. Цикл перераспределения для клетки (3;3)

7. Определяем груз ρ, который будем перемещать по циклу, он равный минимуму грузов стоящих в клетках, в которых он вычитается от объемов в клетках

ρ = min (40,20) = 20.

8. Составляем новую таблицу. Клетка (3;3) заполняется, а клетка (2;3) освобождается. Так как в клетку (3;3) будем ставить груз равный 20 ц, то значение целевой функции при втором распределении уменьшится следующим образом:

.

Таблица 2.4.5. Потенциалы и оценки оптимальности второго плана

bj

ai

20

80

20

40

20

ui

70

6

5

7

9

0

u1 = 0

2 0

5 0

[ 6]

[ 3]

[ 2]

50

9

4

6

5

0

u2 = -1

[ 4]

30

[ 6]

20

[ 3]

60

5

9

3

8

0

u3 = 2

[ 3]

[ 2]

20

20

20

vj

v1 = 6

v2 = 5

v3 = 1

v3 = 6

v4 = 2

Z(X2) = 20·6+50·5+30·4+20·5+20·3+20·8= 810 (грн.)

9. Возвращаемся к пункту 4 и продолжаем итерации, пока получим все оценки незаполненных клеток неположительные.

Находим потенциалы и оценки оптимальности для незаполненных клеток второго опорного плана. Вычисления выполняем непосредственно в табл. 2.4.5.

Второй план также не оптимален, так как имеется положительная оценка для свободной клетки (3;1). Будем делать перераспределение в клетку (3;1). Для этой клетки составляем цепочку перераспределения и определяем груз, который будем перемещать по этой цепочке.

50 + ρ

20 – ρ

20 + ρ

30 – ρ

20 – ρ

+ ρ

Рис. 2.4.2. Цепочка перераспределения для клетки (3;1)

ρ = min (20,30,20) = 20

Составляем третью таблицу. Освобождается две клетки (1;1) и (3;4), но незаполненной считаем только (1;1), так как в ней находится больший тариф. В клетку (3;4) ставим нуль и считаем её заполненной.

Таблица 2. 4. 6. Потенциалы и оценки оптимальности третьего плана

bj

ai

20

80

20

40

20

ui

70

6

5

7

9

0

u1 = 0

[ 3]

70

[ 7]

[ 3]

[ 2]

50

9

4

6

5

0

u2 = 1

[ 7]

10

[ 6]

40

[ 3]

60

5

9

3

8

0

u3 =2

20

[ 2]

20

0

20

vj

v1 =3

v2 = 5

v3 = 1

v3 = 6

v4 = 2