Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛИНЕЙННОЕ ПРОГРАММИРОВАНИЯ БЛЯТЬ.doc
Скачиваний:
31
Добавлен:
08.03.2015
Размер:
1.18 Mб
Скачать

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

Пусть имеется mпоставщиковА1,А2, ...,Аmоднородного груза в количествах соответственноа1,а2, .., .аmединиц и n потребителейВ1,В2, ...,Вnэтого груза, потребность которых составляет соответственноb1,b2...,bnединиц.

Известны стоимости перевозок (тариф) единицы груза от i-го поставщика кj-му потребителю -сij(i=1,m; j=1,n).

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

Возможны три ситуации:

1) количество груза у всех поставщиков равно потребности в данном грузе всех потребителей:

или.

2) количество груза у всех поставщиков больше потребности в данном грузе всех потребителей:

или.

3) количество груза у всех поставщиков меньше потребности в данном грузе всех потребителей:

или.

В первом случае модель задачи называется закрытой, во втором и третьем – открытой.

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

В случае превышения запаса над потребностью вводится фиктивный (n+ 1)-й пункт назначения с потребностьюи соответствующие тарифы считаются равными нулю.

Аналогично вводится фиктивный (m+ 1)-й пункт отправления с запасом грузаи тарифы полагаются равными нулю. Этим задача сводится к закрытой транспортной задаче, из оптимального плана которой получается оптимальный план исходной задачи.

Решение транспортной задачи включает следующие этапы:

1.Нахождение первоначального опорного плана (метод северо-западного угла, метод минимальной стоимости). При этом число заполненных клеток должно быть равноm +n - 1.

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

Заполнение начинается с левой верхней клетки (северо-западный угол). На каждом шаге, исходя из запасов очередного поставщика и запросов очередного потребителя, заполняется только одна клетка и исключается из рассмотрения один поставщик или потребитель. Если в очередную клетку таблицы требуется поставить перевозку, а поставщик или потребитель имеют нулевые запасы или запросы, то в клетку ставится перевозка, равная нулю (базисный нуль), и после этого исключается из рассмотрения поставщик или потребитель.

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

2.Проверка опорного плана на оптимальность, например, методом потенциалов.

Пример. Четыре предприятия используют три вида сырья. Потребности в сырье каждого из предприятий соответственно равны 100, 90, 170 и 30 ед. Сырьё сосредоточено в трёх пунктах, а запасы соответственно равны 200, 160, и 140 ед. Тарифы перевозок заданы матрицей

.

Составить такой план перевозок, при котором общая стоимость перевозок является минимальной.

Данная задача является открытой, так как потребности в сырье 100+90+170+30=390 меньше запасов 200+160+140=500. Введём 5-го фиктивного потребителя с потребностью .

Теперь исходные данные задачи запишем в виде таблицы, а опорный план получим методом северо-западного угла.

Заполнение таблицы начинаем с клетки (1, 1). х11=min(a1=200,b1=100)=b1=100 – запасыА1позволяют полностью удовлетворить потребности пункта В1, значит исключаем этого потребителя из рассмотрения. Теперь запасы пунктаA1считаем равнымиa1=200 - 100=100 ед. В оставшейся части таблицы левой верхней клеткой является (1, 2):х12 =min(a1,b2)=b2=90 – снова запасы удовлетворяют потребность полностью. Внесём значение в соответствующую клетку и исключим из рассмотрения столбецВ2. Запасы пунктаА1считаем равнымиa1= 100 – 90 = 10 ед. Теперь «северо-западным углом» является клетка (1, 3).х13=min(a1,b3)=a1=10 – запасы могут удовлетворить потребность пунктаB3частично. Заполняем клетку (1, 3) и исключаем из рассмотрения строкуA1. Потребности пунктаB3считаем равнымиb3= 170 - 10 = 160.х23=min(a2,b3) =a2=b3= 160 – запасыA2исчерпаны, потребностьB3удовлетворена. Но по правилам мы не можем вычеркнуть и строку и столбец одновременно. Поэтому исключим из рассмотрения сначала столбецB3, а в клетку (2, 4) запишемх24= 0 (так как запасыА2уже исчерпаны) и только теперь вычеркнем строкуА2. И так далее. Получим следующую таблицу.

Потребности

Запасы

b1=100

b2=90

b3=170

b4=30

b5=110

β1=12

β2=15

β3=21

β4=16

β5=4

a1=200

α1=0

12 100

15 90

21 10

14

0

a2=160

α2=-6

13

8

15 160

10 0

0

a3=140

α3=-4

19

16

26

12 30

0 110

Число заполненных клеток равно 7 и m+n- 1=3 + 5 – 1 = 7 – план невырожденный. Оптимальный план найдём методом потенциалов.

Теорема.В оптимальном плане транспортной задачи заполненным клеткам отвечают равенства, а пустым неравенства.

Расставим потенциалы:

, положим, тогда.

(Обычно равным нулю принимают потенциал строки или столбца с наибольшим числом заполненных клеток.)

Теперь проверим пустые клетки на выполнение неравенства .

.

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

Цикл перерасчёта таблицы- это последовательность ячеек, начинающаяся и заканчивающаяся в одной и той же клетке, с вершинами, лежащими в занятых клетках, кроме одной.

Вершина цикла– клетка, в которой происходит поворот под прямым углом.

"Перемещаем" груз по следующим правилам:

  1. каждой из клеток, связанных циклом присваивается знак: пустой ячейке "+", остальным - поочерёдно знаки "-" и "+" .

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

В нашем примере цикл образуют шесть ячеек: (1, 5) – пустая, для которой не выполняется неравенство, и (3, 5), (3, 4), (2, 4), (2, 3), (1, 3) – заполненные.

х =min(10,0,110)=0. Значит в плюсовые клетки "завозим" 0 ед. груза, из минусовых "вывозим". Получим новый опорный план:

Потребности

Запасы

b1=100

b2=90

b3=170

b4=30

b5=110

β1=12

β2=15

β3=21

β4=12

β 5=0

a1=200

α1=0

12 100

15 90

21 10

14

0 0

a2=160

α2=-6

13

8

15 160

10

0

a3=140

α3=0

19

16

26

12 30

0 110

Расставим потенциалы и проверим пустые клетки на выполнение неравенства . Для клетки (2,2) неравенство не выполняется. Строим новый цикл.

х =min(90,160)=90. Значит в плюсовые клетки "завозим" 90 ед. груза, из минусовых "вывозим". Получим новый опорный план:

Потребности

Запасы

b1=100

b2=90

b3=170

b4=30

b5=110

β1=12

β2=14

β3=21

β4=12

β 5=0

a1=200

α1=0

12 100

15

21 100

14

0 0

a2=160

α2=-6

13

8 90

15 70

10

0

a3=140

α3=0

19

16

26

12 30

0 110

Расставим потенциалы и проверим пустые клетки на выполнение неравенства . Полученный план является оптимальным.

Ответ: ,

=100*12+100*21+90*8+70*15+30*12=5430.

Так как пятый потребитель является фиктивным, то 110 ед. груза у третьего поставщика останутся невостребованными.