Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

практикум по математике часть 3

.pdf
Скачиваний:
121
Добавлен:
15.02.2015
Размер:
4.76 Mб
Скачать

Дадим задаче математическую формулировку. Обозначим через xij – количество груза, отправляемого от i –го поставщика к j-му потребителю. Неотрицательные переменные x11 , x12 ,..., xmn должны удовлетворять условиям:

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

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

3.Суммарная стоимость всех перевозок должна быть минимальной. И тогда под планом задачи подразумевается матрица

x

x

...

x

 

 

11

12

 

1n

 

x21

x22

...

x2n

 

X =

 

 

...

....

 

.... ....

 

 

 

xm2

...

 

 

xm1

xmn

Допустимый план, имеющий не более m + n 1 отличных от нуля компонентов xij , называется базисным, или опорным.

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

 

 

m

= bj ,(j =1,..., n)

 

 

 

xij

(2.1)

 

 

i=1

 

 

 

 

 

n

= ai ,(i =1,..., m)

 

 

 

xij

(2.2)

 

 

j=1

 

 

 

 

xij 0,(i =1,..., m; j =1,..., n)

(2.3)

и доставляющую минимум целевой функции

 

 

 

 

m n

xij

 

 

 

F = ∑∑cij

(2.4)

 

 

 

i=1 j=1

 

 

 

 

 

 

m

n

Различают

задачи

с закрытой

моделью, когда ai

= bj и

 

 

 

 

i=1

j=1

 

 

m

n

 

 

открытой моделью,

когда

ai

bj

, то есть баланс между запасами и

 

 

i=1

j=1

 

 

потребностями отсутствует.

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

m

n

 

ai = bj

(2.5)

i=1

j=1

 

30

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

 

m

n

 

 

 

 

 

 

1. при

ai

> bj

(спрос меньше

предложения) необходимо

 

i=1

j=1

 

 

 

 

 

 

 

 

 

 

 

bn+1

m

n

 

ввести «фиктивного»

потребителя

груза:

= ai bj

и

 

 

 

 

 

 

i=1

j=1

 

соответствующие

тарифы от

любого

поставщика

до

«фиктивного»

потребителя принимаются равными нулю: ci,n+1 = 0.

m

n

 

 

 

2. при ai < bj (спрос больше

предложения)

необходимо

i=1

j=1

 

 

 

 

поставщика груза: am+1

n

m

 

ввести «фиктивного»

= bj ai

и стоимость

 

 

j=1

i=1

 

перевозок от «фиктивного» поставщика до всех потребителей равна нулю: cm+1, j = 0Этим задача открытого типа сводится к транспортной задаче закрытого типа.

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

1.Определение начального допустимого базисного решения (первого опорного плана)– первоначальное распределение поставок.

2.Построение последовательных итераций (шагов), улучшающих опорные планы (каждый новый план не должен увеличивать суммарные затраты)

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

2.1.2. Построение первоначального плана

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

с внесенными пунктами отправления Ai , их запасами ai , пунктами назначения B j , их запросами bj и тарифами cij (i =1,2,..., m; j =1,2,..., n) имеет вид таблицы 2.1.

31

 

 

 

 

 

 

 

Таблица 2.1

Поставщики

 

 

Потребители

 

 

Запасы

 

 

 

 

Bj

 

 

 

B1

B2

...

Bn

 

A1

c11

c12

c1j

c1n

a1

 

x11

x12

x1j

x1n

 

 

 

 

 

 

 

 

 

 

c2j

 

 

 

 

A2

c21

c22

c2n

a2

 

x21

x22

x2j

x2n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ai

ci1

ci2

cij

cin

ai

 

xi1

xi2

xij

xin

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Am

cm1

cm2

cmj

cmn

am

 

xm1

xm2

xmj

xmn

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m

n

Потребности

b1

b2

bj

bn

ai =

bj

 

 

 

 

 

 

 

i=1 j=1

 

 

 

 

 

 

 

 

Тарифы cij записаны в верхнем правом углу, а величины поставок xij в

середине клетки. При этом клетки в которые поместим грузы, называются занятыми, им соответствуют базисные переменные опорного решения. Остальные клетки незанятые, или пустые, им соответствуют свободные переменные.

Рассмотрим два метода построения первого опорного плана.

Метод северо–западного угла. В этом методе первой заполняется клетка с номером (1,1) максимально возможной поставкой. При этом, если закрывается строка, то следующей заполняется клетка с номером (2,1); если же закрывается столбец, то следующей заполняется клетка (1,2) и т.д.. И так каждый раз загружается клетка, соседняя по строке или столбцу. Последней будет заполнена клетка с номером (m,n). В результате заполненные клетки расположатся как бы по диагонали (1,1)– (m,n).

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

32

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

минимальный тариф перевозок cij . В клетке (i, j) этого тарифа (в середине) записывается максимально возможная поставка с учетом ограничений этой строки и этого столбца: xij = min(ai ,bj ). Этой поставкой либо

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

Если имеются два или более одинаковых наименьших тарифов, то заполняемая клетка берется произвольно среди них.

Пример 1. Найти опорный план методом северо-западного угла. Исходные данные приведены в таблице 2.2.

 

 

 

 

 

 

Таблица 2.2

Поставщики

 

Потребители

 

 

Запасы

 

 

 

 

 

B1

B2

B3

B4

 

 

 

 

A1

7

8

1

 

2

160

 

 

 

 

 

A2

4

5

9

 

8

140

 

 

 

 

 

A3

9

2

3

 

6

170

 

 

 

 

 

Потребности

120

50

190

110

 

470

 

 

 

 

 

 

 

Решение. Составим опорный план методом северо-западного угла. Здесь число пунктов отправления (поставщиков) m=3, а число пунктов назначения (потребителей) n=4. Следовательно, опорный план задачи должен содержать 4 +3 1 = 6 заполненных клеток.

Заполнение таблицы начнем с клетки с номером (1,1), т.е. постараемся удовлетворить потребности первого потребителя за счет запасов первого поставщика. Так как запасы поставщика A1 больше, чем потребности пункта B1, то x11 = min(160,120)=120 , записываем это значение в клетке с

номером (1,1) таблицы 2.3 и исключаем из рассмотрения столбец B1, считая при этом запасы пункта A1 равными 40 (где 160 120 = 40).

33

Рассмотрим первые из оставшихся пунктов отправления A1 и назначения B2. Запасы пункта A1 меньше потребностей пункта B2. Тогда весь остаток запасов пункта A1 отправляем в пункт B2, то есть записываем значение 40 в клетку с номером (1,2) таблицы 2.3 и исключаем из рассмотрения строку A1, считая при этом потребности пункта B1 равными 10 ( где 50 40 =10). Снова рассмотрим первых из оставшихся пунктов поставщиков A2 и потребителей B2 (так как не хватает в этот пункт 10ед.). Запасы пункта A2 (равные 140) больше потребностей пункта B2 (потребность составляет 10), то берем минимальное значение ( min(140,10)=10 ) и ставим

его в клетку с номером (2,2) таблицы 2.3, исключая из рассмотрения столбец B2, т.к. все потребности этого потребителя удовлетворены. Тогда запасы пункта A2 равны 140 10 =130. Смотрим ближайшего потребителя и это B3.

Запасы

пункта

A2

 

меньше

потребностей

пункта

B3,

то

x23 = min(130,190)

=130 и исключим из рассмотрения строку A2. Значение

x23 =130 запишем

в

соответствующую

клетку таблицы 2.3

и считаем

потребности пункта B3 равными 60 (это 190 130 = 60 ).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 2.3

 

Поставщики

 

 

 

Потребители

 

Запасы

 

 

 

 

 

 

 

 

 

 

 

 

 

 

B1

 

B2

 

 

B3

 

B4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A1

 

120

7

40

8

 

1

 

2

 

160

 

 

 

 

 

 

 

 

 

 

 

 

A2

 

 

4

 

5

 

9

 

8

 

 

 

 

 

 

 

 

10

 

 

130

 

 

 

140

 

 

A3

 

 

9

 

2

 

3

 

6

 

 

 

 

 

 

 

 

 

 

 

60

 

110

 

170

 

Потребности

 

120

 

50

 

 

190

 

110

 

470

 

 

 

 

 

 

 

 

 

 

 

 

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

x33 .

Здесь

запасы

A3 равны

170,

а потребности B3

– 60.

Вычисляем

x33 = min(170,60)= 60 и исключаем из рассмотрения столбец B3. Значение

x33 = 60 запишем в соответствующую клетку таблицы 2.3 и считаем остаток

запасов пункта A3 170 60 =110 . Что и совпадает с потребностью пункта B4. Пишем это значение в оставшуюся единственную клетку с номером (3,4) таблицы 2.3.

В результате получаем опорный план

34

120

40

0

0

 

 

0

10

130

0

 

X =

 

 

0

0

60

110

 

 

 

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

груза составляет

F =120 7 + 40 8 +10 5 +130 9 + 60 3 +110 6 = 3220.

Пример 2. Найти опорный план методом наименьшей стоимости. Исходные данные приведены в таблице 2.2.

Решение. Составим опорный план методом наименьшей стоимости. Минимальный тариф, равный 1, находится в клетке с номером (1,3). Находим

x13 = min(160,190)=160, запишем это значение в соответствующую

клетку таблицы 2.4 и исключим из дальнейшего рассмотрения строку A1. Считаем потребности потребителя B3 190 160 = 30.

В оставшейся части таблицы с двумя строками A2 и A3 и четырьмя столбцами B1, B2, B3 и B4 клетка с наименьшим значением стоимости равна 2

и

находится на пересечении строки A3 и столбца B2. Находим

x32

= min(50,170)= 50 и вносим это значение в соответствующую клетку

таблицы 2.4. исключаем из дальнейшего рассмотрения столбец B2 (т.к.

потребности его полностью удовлетворены), а запасы пункта A3 будут равны:

170 50 =120.

 

 

Потребители

 

Таблица 2.4

Поставщики

 

 

Запасы

B1

B2

B3

B4

 

2

A1

7

8

1

 

4

5

160

 

160

A2

9

 

8

120

2

3

20

140

A3

9

 

6

120

50

30

90

170

Потребности

50

190

110

470

После этого рассматриваем оставшуюся часть таблицы с двумя строками A2 и A3 и тремя столбцами B1, B3 и B4. В ней находим минимальный тариф равный 3, который находится на пересечении строки A3 и столбца B3. Столбец B3 уже заполнен и не хватает 190 160 = 30, а запасы в A3 равны

35

170 50 =120,

следовательно,

находим x33 = min(120,30)= 30 и

заполняем

эту

клетку.

Тогда

остаток запасов в пункте

A3 равен

120 30 =

90 ед. и исключаем из дальнейшего рассмотрения столбец B3.

Теперь рассмотрим оставшуюся часть таблицы с двумя строками A2 и

A3 и двумя столбцами B1

и B4. В этой оставшейся части таблицы

находим

минимальный тариф равный 4, который находится на пересечении строки A2

и столбца B1. Находим x21

= min(140,120)=120 и записываем это значение

в соответствующую клетку таблицы 4. Столбец B1

исключаем из

рассмотрения, и находим остаток запасов в пункте A2: 140 120 = 20.

Нам остается рассмотреть клетки с номерами (2,4)

и (3,4). Так как

остаток запасов в пункте A2 составляет 20ед., то вносим это значение в клетку с номером (2,4), а остаток запасов в пункте A3 равен 90 и это значение записываем в клетку с номером (3,4) таблицы 5. В результате получим опорный план

 

0

0

160

0

 

 

 

0

0

20

 

X = 120

 

 

0

50

30

90

 

 

 

При данном плане общая стоимость перевозок всего груза составляет

F =160 1+120 4 + 20 8 +50 2 +30 3 +90 6 =1530.

Что составляет меньшую сумму, чем при составлении плана методом северо-западного угла (см. пример 1).

2.1.3.Определение оптимального плана транспортной задачи

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

потенциалов.

 

 

 

 

 

 

 

 

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

то

ему соответствует

система

m + n

действительных

чисел

αi

(i =1,2,..., m) и β j (j =1,2,..., n), удовлетворяющих условиям

 

 

 

 

αi

+ β j = cij

для заполненных клеток

(2.6)

и

 

 

= cij αi β j

0

– для пустых клеток

(2.7)

 

 

ij

 

Числа αi и

β j

называют потенциалами, где αi – потенциалы

поставщиков (строк),

β j

потенциалы потребителей (столбцов), а

ij

оценка свободных клеток.

36

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

Так как число заполненных клеток равно m + n 1, то система из условия (2.6) с m + n неизвестными содержит m + n 1 уравнений. Поскольку число неизвестных превышает на единицу число уравнений, одно из неизвестных можно принять равным произвольному числу, например

α1 = 0 и найти последовательно из уравнений условия (2.6) значения

остальных неизвестных потенциалов.

После того как все потенциалы найдены, для каждой из пустых клеток проверяют выполнение условий оптимальности (2.7).

Если хотя бы одна из оценок

ij < 0 , то план не является

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

Циклом с начальной вершиной в данной клетке называется многоугольник, у которого:

1.все стороны лежат в строках и столбцах;

2.все углы прямые;

3.все вершины, кроме начальной, лежат в заполненных клетках, а начальная вершина – в свободной неоптимальной клетке»

4.на сторонах цикла могут быть занятые клетки, но они не являются вершинами цикла;

Циклы пересчета могут иметь следующую форму:

Примем некоторые обозначения: ο – свободная клетка (начало цикла), – занятая клетка (вершина цикла), а возможные места расположения

занятых клеток обозначим

 

 

 

 

 

 

 

 

 

1)

 

2)

 

 

+

3)

 

 

+

+

 

 

+

 

 

 

 

+

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+

+

 

 

 

 

 

+

 

 

 

 

 

 

 

 

 

 

Число вершин цикла обязательно четно. «Неоптимальная» клетка может находиться в любой вершине цикла (на примерах рассмотрены один из вариантов).

По циклу будем перемещать поставку. Для нахождения величины этой поставки сначала проставим знаки в вершинах цикла: в «неоптимальную» клетку ставим знак «+» (плюс) (всегда), а далее, совершая обход по циклу, чередуем знаки «–» (минус) и «+» (плюс) в вершинах цикла. Найдем наименьшую из величин поставок в отрицательных вершинах. Эту

37

величину прибавим к вершинам со знаком «+» (плюс) и вычтем из вершин со знаком «–» (минус).Произведен сдвиг по циклу. В результате сдвига по циклу приходим к новому опорному плану.

Полученный опорный план проверяем на оптимальность ( при помощи равенств (2.6) и (2.7)). Улучшение новых планов проводим до тех пор, пока очередной план не станет оптимальным. Для него все оценки

свободных клеток должны быть неотрицательными, то есть ij 0 .

Из изложенного выше следует, что процесс нахождения решения транспортной задачи методом потенциалов включает следующие этапы:

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

2. Находим потенциалы αi и β j соответственно поставщиков и

потребителей из условия (2.6).

3. Поверяем план на оптимальность. Для каждой свободной клетки находим ее оценку ij из условия (2.7). Если нет отрицательных

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

4. Для свободной клетки с наибольшей по модулю отрицательной оценкой( ij < 0 ) строим цикл (вариант цикла единственный) и проводим

сдвиг по этому циклу.

5. Полученный опорный план проверяем на оптимальность, т.е. повторяем все действия, начиная с этапа 2.

Замечание. Количество таблиц при решении транспортной задачи может оказаться любым. Это зависит от того, на сколько первый опорный план окажется близким к оптимальному. Может случится, что первая же таблица будет соответствовать оптимальному плану. Это устанавливается методом потенциалов.

Транспортная задача всегда имеет оптимальное решение (один или несколько опорных оптимальных планов).

2.2. Решение типовой задачи

Задача. Имеется три пункта поставки однородного груза А1, А2, А3 и пять пунктов потребления груза В1, В2, В3, В4, В5. На пунктах А1, А2, А3 находится груз соответственно в количестве 280, 220 и 300 тонн. В пункты В1, В2, В3, В4, В5 требуется доставить соответственно 190, 140, 180, 120, 170 тонн груза. Затраты на перевозку 1т. груза между пунктами поставки и пунктами потребления приведены в матрице С (в тыс.руб.) Найти такой план

38

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

 

7

3

9

15

35

С =

3

10

12

20

46

15

11

16

19

48

Решение. Данные задачи запишем в виде таблицы 2.5.

 

 

 

 

 

 

 

Таблица 2.5

 

 

 

 

 

 

 

 

 

Поставщики

 

Потребители

 

 

 

Запасы

 

 

 

 

 

 

 

B1

B2

B3

 

B4

 

В5

 

 

 

 

A1

7

3

9

 

15

 

35

280

 

 

 

 

 

 

 

A2

3

10

12

 

20

 

46

220

 

 

 

 

 

 

 

 

A3

15

11

16

 

19

 

48

300

 

 

 

 

 

 

 

 

Потребности

190

140

180

 

120

 

170

 

 

 

 

 

 

 

 

Проверяем задача закрытая или открытая. Для этого найдем сумму

запасов –

280 + 220 + 300 = 800

 

и сумму

потребностей

190+140+180+120+170=800. Так как эти значения равны, то мы имеем задачу закрытого типа. Теперь начнем ее решать согласно описанному ранее алгоритму.

1. Составим первоначальный опорный план методом наименьшей стоимости перевозок и результат запишем в таблице 2.6

 

 

 

 

 

 

 

Таблица 2.6

 

 

 

 

 

 

 

 

Поставщики

 

Потребители

 

 

Запасы

 

 

 

 

 

 

 

B1

B2

B3

 

 

B4

В5

 

 

 

 

A1

7

3

9

 

15

+ 35

 

 

140

140

 

 

 

 

280

A2

3

10

 

12

 

20

46

220

190

 

30

 

 

 

 

 

A3

15

11

 

16

 

19

48

300

 

 

+ 10

 

 

120

170

 

Потребности

190

140

180

 

 

120

170

 

 

 

 

 

 

 

 

 

 

39