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

Задачи ЛП и методы их решения

.pdf
Скачиваний:
161
Добавлен:
29.03.2016
Размер:
7.64 Mб
Скачать

 

 

 

39

 

 

 

 

 

 

 

 

 

Задача открытая. Имеет место нехватка

 

 

 

продукции в количестве 240 - 190 = 50

120

 

60

ед. Вводим

 

фиктивного

поставщика с

 

 

 

таким запасом. Проводим от него

 

 

 

фиктивные

 

коммуникации

ко

всем

120

 

100

потребителям и устанавливаем на них

 

нулевые цены. ТЗ становится закрытой.

 

 

 

 

 

 

0

 

Аналогично,

при

излишке

запасов

 

0

 

 

 

вводится

фиктивный

потребитель,

50

 

80

 

0

имеющий потребность, равную

этому

 

 

 

Это

Это его

 

излишку.

 

Цены

на

фиктивных

 

коммуникациях, идущих к нему от всех

фиктивный

коммуникации

 

 

 

 

 

 

 

 

 

поставщик

 

 

поставщиков,

устанавливаются

 

 

 

равными нулю.

 

 

 

 

 

 

 

Несколько слов об истолковании

решения открытой ТЗ. Пусть в оптимальном плане перевозок потребитель получает часть

продукции от “настоящих” поставщиков, а часть от фиктивного. Тогда последняя

представляет собой ту часть его потребностей, которая не удовлетворяется (недопоставка

продукции). В задаче же с излишком запасов та часть продукции, которая вывозится к

фиктивному потребителю, есть ни что иное, как продукция, остающаяся у поставщика

невывезенной

 

 

 

 

 

 

 

 

 

В дальнейшем будем рассматривать только закрытые ТЗ.

 

 

 

 

 

 

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

Исходя из того, что план перевозок определяется указанием количества перевозимого груза

по каждой коммуникации (нулевое количество, если продукция по коммуникации не

перевозится), обозначим через

неизвестные xij количество перевозимой продукции от

поставщика с номером i к потребителю с номером j (объем перевозки). В нашем примере

таких неизвестных будет 3х3=9 ( x11 , x12 , x13 , x21 , x22 , x23 , x31 , x32 , x33 ). В общем случае

количество неизвестных будет равно m x n, где m - количество поставщиков, n - количество

потребителей.

 

 

 

 

 

 

 

 

 

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

линейной функции. Для этого необходимо объем перевозки на каждой коммуникации

умножить на цену перевозки и просуммировать полученные величины по всем

коммуникациям. Для нашего примера имеем

 

 

 

 

 

 

 

f = 5x11

+ 10x12 + 12x13

+ 8x21 + 6x22

+ 4x23 + 0x31 + 0x32

+ 0x33 min

 

 

 

или, используя знаки суммирования,

 

 

 

 

 

 

 

3

3

f = ∑∑cij xij → min

i=1

j=1

(цель задачи - найти минимум суммарной стоимости перевозок). Здесь cij - элементы матрицы стоимостей С

 

5

10

12

C =

8

6

4

 

 

 

 

 

 

 

 

0

0

 

 

0

 

(При суммировании сначала изменяются индексы (номера) у внутренней суммы при фиксированном индексе у внешней суммы, затем изменяется на единицу индекс внешней суммы).

40

Перейдем к формулировке ограничений. Как видно из экономической постановки, ограничения делятся на 2 следующие группы:

1)Условия полного вывоза продукции от каждого поставщика. (Таких условий будет столько, сколько имеется поставщиков. У нас - 3).

2)Условия полного удовлетворения потребностей каждого потребителя. (Число условий равно числу потребителей (У нас - 3). Таким образом, в ТЗ будет (m+n) ограничений (в нашем примере 3+3=6). Запишем ограничения первой группы. Они будут иметь структуру

вывоз продукции от поставщика = запас

Для первого поставщика имеем (см. рисунок)

 

 

 

x11 + x12 + x13

- вывоз продукции ко всем

 

 

 

поставщикам. Его запас равен 120

 

 

 

единиц. Условие полного вывоза имеет

120

X11

1

вид

 

 

 

 

 

 

x11 + x12 + x13 =120

 

X12

 

 

 

 

Аналогично

выглядят

ограничения по

 

X13

2

вывозу для второго и третьего

 

 

 

 

 

поставщиков

 

 

 

Это обьем

 

 

x21

+ x22

+ x23

= 70

 

3

вывоза

 

 

 

 

 

 

 

 

 

x31

+ x32

+ x33

= 50

продукции от 1-го

 

 

поставщика

 

 

 

 

 

 

 

 

Ограничения второй группы можно сформулировать в виде

привоз продукции к потребителю = потребность

1

2

3

X11

60

 

X21

X31

Это все,

что получает

1-й

потребитель

Привоз продукции к первому потребителю составит

x11 + x21 + x31

и ограничение примет вид

x11 + x21 + x31 = 60

Аналогично для второго и третьего потребителей

x12 + x22 + x32 =100 x13 + x23 + x33 = 80

Окончательно, учитывая ограничения неотрицательности

xij ≥ 0, i =1,2,3, j =1,2,3

запишем математическую постановку ТЗ в виде задачи линейного программирования:

41

f = 5x11 + 10x12 + 12x13 + 8x21 + 6x22 + 4x23 + 0x31 + 0x32 + 0x33 min

x

 

+

x

+

x

 

 

 

 

 

=120

 

11

 

12

 

13

 

 

 

 

 

 

 

 

 

 

 

x21 +

x22 +

x23

 

 

= 70

 

 

 

 

 

 

 

 

x31 + x32 +

x33

= 50

 

 

 

 

 

+ x21

 

 

+ x31

 

 

= 60

x11

 

 

 

 

 

 

 

 

 

 

x12

 

+ x22

 

+ x32

 

 

=100

 

 

 

 

 

 

+ x

 

+ x

 

= 80

 

 

 

 

 

x

23

33

 

 

 

 

 

13

 

 

 

 

 

 

 

 

 

xij 0,

i = 1,2,3, j = 1,2,3

 

 

 

Или, используя обозначения:

 

 

 

 

 

 

cij

- для цен перевозок,

 

 

 

 

 

 

xij - для объемов перевозок,

 

 

 

 

 

 

ai - для запасов (а1 =120, а2 = 70, a3=50),

 

 

 

bj - для потребностей (b1 =60, b2 =100, b3 =80)

 

 

 

m,n - для числа поставщиков и потребителей,

 

 

 

приведем постановку ТЗ в виде

 

 

 

 

 

 

 

 

 

 

 

m n

 

 

 

 

 

 

 

 

 

 

 

f = ∑∑cij xij

min

 

 

 

 

 

 

 

 

i=1 j=1

 

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

 

 

 

xij = ai

 

,i 1: m

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

j=1

 

 

 

 

 

 

 

 

 

 

 

m

 

 

 

 

 

 

 

 

 

 

 

xij = bj

 

, j 1: n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i=1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

xij 0,

 

i 1: m,

j 1: n

 

 

 

 

 

 

 

 

 

 

 

 

4.2. Метод потенциалов для решения ТЗ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

неизвестные

 

 

Коль

скоро

ТЗ

сформулирована

 

в

виде

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

задачи

 

линейного

программирования,

сразу

 

 

1

2

3

4

5

6

7

8

9

появляется мысль решать ее симплекс-методом.

 

 

В принципе, делать это можно, но не нужно.

 

 

 

 

 

 

 

 

 

 

 

 

1

1

1

1

0

0

0

0

0

0

Чтобы

пояснить

почему,

выпишем

матрицу

 

 

 

 

 

 

 

 

 

 

 

 

2

0

0

0

1

1

1

0

0

0

коэффициентов

системы

ограничений

в

 

3

0

0

0

0

0

0

1

1

1

рассматриваемом

примере.

В

этой

матрице

 

 

 

 

 

 

 

 

 

 

 

преобладают

нулевые

элементы,

 

поэтому

 

4

1

0

0

1

0

0

1

0

0

большинство

операций

при решении

задачи

 

 

 

 

 

 

 

 

 

 

 

ограничения

5

0

1

0

0

1

0

0

1

0

симплекс-методом

ЭВМ

будет

выполнять

 

 

 

 

 

 

 

 

 

 

 

 

6

0

0

1

0

0

1

0

0

1

впустую,

“пережевывая”

 

нули.

 

 

Далее,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

42

подсчитаем как будет расти размерность симплекс-таблицы в зависимости от числа поставщиков и потребителей. Возьмем среднюю по размерам ТЗ с 20 поставщиками и 20 потребителями. Тогда ЗЛП будет содержать 20х 20=400 переменных и 20+20=40 ограничений, т.е. симплекс-таблица будет содержать около 40х400=16000 чисел. В то же время таблица для решения ТЗ методом потенциалов, который будет описан ниже, содержит всего m+n=400 чисел, что в 40 раз меньше, чем при решении симплекс-методом.

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

множестве решений. Отсутствие указанного шага в методе потенциалов обусловлено теоремой о том, что закрытая ТЗ всегда разрешима. Итак, алгоритм метода потенциалов

для решения ТЗ состоит из следующих шагов:

ШАГ 1. Построение начального плана перевозок. ШАГ 2. Проверка текущего плана на оптимальность.

Если план оптимален, то алгоритм завершен. ШАГ 3. Улучшение плана перевозок. Переход к шагу 1.

Опишем алгоритм по шагам, иллюстрируя каждый шаг на примере ТЗ, сформулированной выше.

ШАГ 0. Построение начального плана перевозок.

Построение начального решения (как и последующие расчеты) проводят в таблице, имеющей следующий вид:

Цены перевозок

n - столбцов

1

5

10

12

 

120

 

 

 

 

 

 

 

 

 

 

8

6

4

2

70

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0

0

3

50

 

 

 

60

100

80

запасы

1

2

3

 

 

 

потребности

 

строк - m

Клетка ( i , j ) таблицы соответствует коммуникации, связывающей i-го поставщика с j-м потребителем.

Построить начальный план перевозок означает - назначить объемы перевозок в клетки таблицы таким образом, чтобы:

43

а) число заполненных клеток было (m+n-1). (Тогда план перевозок будет отвечать базисному решению ЗЛП); б) сумма перевозок в любой строке должна быть равна запасу соответствующего

поставщика, а сумма перевозок в каждом столбце равна потребности потребителя. (Условия выполнения ограничений ТЗ).

Существует несколько способов нахождения начального решения, которые отличаются

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

минимальной ценой перевозки, что в большинстве случаев (но не всегда) приводит к более дешевому (а значит и более близкому к оптимальному) начальному плану перевозок. Изложим теперь алгоритм нахождения начального решения.

ШАГ 1. Определенным способом (СЗУ, МС или каким-либо другим) выбираем клетку в текущей таблице. Пусть она имеет индексы (i, j) (i - номер поставщика, j - номер потребителя).

ШАГ 2. В качестве перевозки в эту клетку назначаем наименьшую из величин запаса ai и

потребности bj , т.е.

xij = min{ai ,bj }

ШАГ 3. Уменьшим запас ai и потребность bj на величину перевозки xij , т.е.

ai' = ai xij ,

b'j = bj xij

ШАГ 4. При исчерпании запаса (ai' = 0) запрещаем к перевозке оставшиеся свободные клетки i-ой строки, а при исчерпании потребности (b'j = 0 ) запрещаем такие же клетки в j-ом столбце.

В случае одновременного исчерпания запасов и потребностей (ai' = b'j = 0) запрещаем

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

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

 

 

 

 

 

 

 

 

44

 

 

 

 

 

 

 

 

 

 

 

 

 

сзу

 

 

В

способе

СЗУ строится начальный план

 

 

 

 

 

 

перевозок

в

виде

“лесенки”.

 

Т.е.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

распределяются

запасы

1

 

 

 

 

 

 

 

очередного поставщика до их исчерпания, без

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

--

--

--

--

 

 

 

 

 

 

 

 

 

 

 

 

 

8

6

 

 

 

 

учета

 

того,

какова

 

цена

перевозок

на

 

--

 

 

 

 

коммуникациях.

В

способе

МС

выбор

2

 

 

 

 

--

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

0

 

 

 

МС

 

 

 

 

 

 

 

3

--

 

--

 

 

 

 

 

 

 

 

 

 

min Cij

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

--

 

--

--

--

80

 

 

 

 

 

 

 

 

 

 

 

 

1

 

2

3

4

5

 

 

1

 

--

 

--

--

--

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8

6

 

 

 

 

 

перевозки между поставщиком и потребителем

2

--

 

 

 

--

--

 

 

 

 

 

 

 

 

 

 

 

определяется

самой

дешевой

(на

 

данный

3

--

--

 

--

 

--

 

 

момент) коммуникацией

 

 

 

 

4

--

--

 

--

--

--

 

 

Найдем

теперь

начальные

планы

в

нашем

 

 

 

 

1

2

 

3

4

5

 

 

примере способами СЗУ и МС.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Способ северо-западного угла.

120

1. Выбираем С-З клетку (1,1)

70

50

 

5

 

10

 

12

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8

 

6

 

4

 

 

 

 

 

 

 

 

 

 

0

 

0

 

0

 

 

 

 

 

 

 

 

 

60

100

80

2. Назначаем перевозку

x11 = min{120,60} = 60

 

 

1

2

3

1

120

60

 

 

2

70

 

 

 

 

 

 

 

3

50

 

 

 

 

 

 

 

 

 

60

100

80

45

 

 

1

2

3

1

60

60

 

 

2

 

 

 

 

 

70

 

 

 

3

 

 

 

 

 

50

 

 

 

 

 

R

100

80

 

 

1

2

3

1

60

60

 

 

2

 

 

 

 

70 -

3

50

-

R 100 80

1.С-З клетка ~ (1 , 2)

2.x12 = min{60,100} = 60

3. a'

= 60 60 = 0,

b'

=100 60 = 40

1

 

2

 

1 2 3

3. Уменьшаем запасы 1-го поставщика и потребности 1-го потребителя на величину перевозки.

4. Исчерпана потребность у 1-го потребителя (ему больше ничего не надо) - запрещаем перевозки в свободных клетках 1-го столбца и получаем новую текущую таблицу (без 1-го столбца). Далее (опуская пояснения) выполняем с шага 1.

 

 

1

2

3

1

х

60

60

-

 

 

 

 

2

70

-

 

 

 

 

 

3

50

-

 

 

 

 

 

 

 

х

40

80

1

 

 

 

 

 

4. Исчерпывается запас - запрещаем 1-ю строку.

 

х

60

60

-

 

 

Текущая таблица не содержит 1-й строки и 1-го

 

 

 

 

 

 

2

 

 

 

 

 

столбца

 

 

 

 

 

 

70

-

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

50

-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

2

3

 

 

х

40

80

 

 

60

60

-

 

 

 

 

 

1

R

1. С-З клетка ~ (2 , 2)

 

 

2

30

-

40

 

 

 

 

 

2.

x22 = min{70,40} = 40

 

 

50

-

-

 

3. a2' = 70 40 = 0, b2' = 40 40 = 0

3

 

 

 

 

 

 

 

 

R

R

80

 

 

 

 

 

 

 

46

 

 

 

 

 

 

 

 

 

 

4. Запрещаем перевозки во 2-м столбце

 

 

1

2

3

 

 

 

 

 

 

 

1

R

60

60

-

1. С-З клетка ~ (2 , 3)

 

 

 

2. x23

= min{30,80}

= 30

 

 

2

 

 

 

 

 

 

 

 

 

 

3.

a'

= 30 30 = 0,

b' = 80 30 = 50

 

 

 

 

 

 

 

 

R

-

40

30

 

2

 

 

3

 

 

 

4. Нужно запретить перевозки в строке 2, но там уже

3

 

 

 

 

 

 

 

 

все клетки либо заполнены, либо запрещены

 

50

-

-

 

 

 

 

 

 

 

 

 

 

 

 

R

R

50

 

 

 

 

1

2

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

R

60

60

-

 

1. С-З клетка ~ (3 , 2)

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

R

-

40

30

 

2. x33 = min{50,50} = 50

 

 

 

 

 

 

 

 

3

 

 

 

 

 

3. a3' = b3' = 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

R

-

-

50

 

4. Таблица исчерпана. Конец.

 

 

 

 

 

 

 

 

R R R

Подсчитаем стоимость полученного плана. Для этого умножим объем перевозок в заполненных клетках на цены перевозок в них:

 

 

 

f СЗУ

= 60 5+ 60 10 + 40 6 + 30 4 + 50 0 =1260

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

Способ минимальной стоимости.

 

 

 

1

2

 

3

 

 

 

 

 

 

 

 

 

 

1.

Клетки с минимальной ценой (3,1), (3,2) и (3,3).

 

 

 

 

 

 

 

 

5

10

 

12

 

 

 

 

 

 

Выбираем, например, (3,2). (Далее все шаги, как в

1

120

 

 

 

 

 

 

 

 

 

 

предыдущем способе).

 

 

 

 

 

 

 

8

6

 

4

 

2.

x32

= min{50,100} = 50

2

70

 

 

 

 

 

 

 

 

 

 

 

 

= 50 50 = 0, b2' =100 50 = 50

 

 

 

 

 

 

3.

a3'

 

 

 

 

 

 

 

3

0

0

0

4. Запрещаем строку 3.

 

 

 

 

 

 

 

R

-

50

 

-

2

3

 

 

 

 

1

 

 

 

 

60

50

80

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

120

5

10

12

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

8

6

4

 

 

 

 

 

 

 

 

 

 

 

 

1.

Клетка с min ценой ~ (2,3)

 

 

 

R

-

-

70

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2.

x23

= min{70,80} = 70

 

 

3

 

 

0

0

0

 

 

 

 

 

 

 

 

 

R

-

50

-

 

3.

a'

= 70 70 = 0,

b' = 80 70 = 10

 

 

 

 

 

 

2

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

4. Запрещаем строку 2.

 

 

 

 

 

 

 

60

50

10

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

47

 

 

 

 

 

 

 

1

2

3

1. Клетка с min ценой ~ (1,1)

 

 

1

 

5

60 1

10

12

2. x11 = min{120,60} = 60

 

 

60

 

 

3.

a1' =120 60 = 60,

b1' = 0

 

 

2

 

8

2

6

4

4.

В первом столбце запрещать уже нечего. Текущая

 

 

 

R

-

-

70

таблица содержит две клетки (1,2) и (1,3).

3

 

0

3

0

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

R

-

50

-

 

 

 

1

2

3

 

 

 

 

 

 

 

 

 

5

10

12

 

 

 

R

50

10

 

1

10

60

50

 

 

 

 

 

 

 

 

2

 

8

6

4

 

 

 

 

 

 

 

 

 

 

 

1. Выбираем клетку (1,2)

 

 

 

R

-

-

70

2. x12

= min{60,50} = 50

 

 

3

 

0

0

0

 

 

 

 

 

 

 

 

 

3.

a1'

= 6050 =10,

b2' = 0

 

 

 

R

-

50

-

4. Текущая таблица содержит одну клетку (1,3).

 

R

R

10

 

 

 

 

 

 

 

 

 

 

 

 

1

2

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

10

12

 

1

 

R

60

50

10

 

 

 

 

2

 

 

 

 

 

 

 

 

8

6

4

 

 

 

R

-

-

70

 

3

 

 

 

 

 

 

 

 

0

0

0

 

R

-

50

-

 

R

R

R

1.Выбираем последнюю клетку (1,3)

2.x13 = min{10,10}=10

3.a1' = b3' = 0

4.Таблица исчерпана. Конец.

Стоимость полученного плана составит

f0МС = 60 5+ 50 10 +10 12 + 70 4 + 50 0 =1200

Это на 60 единиц меньше стоимости начального плана, найденного способом СЗУ. Однако, если выбрать на первом шаге вместо клетки (3,2), клетку (3,1), это приведет к более дорогому начальному плану, чем в способе СЗУ. Предлагаем убедиться в этом самостоятельно.

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

 

1

2

3

1

7

4

8

100

 

 

 

 

 

2

9

12

6

 

80

 

 

3

2

6

11

 

 

90

 

 

 

100

120

50

Воспользуемся, например, способом СЗУ

1.С-З клетка ~(1,1)

2.x11 = min{100,100}=100

 

48

 

 

 

 

 

 

 

1

2

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7

 

4

 

8

 

 

 

 

 

 

 

1

 

100

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

9

 

12

 

6

 

2

80

 

 

 

 

 

3

2

6

11

90

 

 

 

 

 

 

100

120

50

3. a'

=

b'

= 0

1

 

1

 

Одновременно исчерпались запасы и потребности

R 100 -

80

-

 

 

90

-

 

 

 

R

120

50

 

 

 

 

 

 

R

100

-

-

 

 

 

 

 

 

 

 

 

 

 

R - 80 -

R

-

40

50

 

R

R

R

.

Легко убедиться в том, что, если запретить перевозки одновременно в свободных клетках 1-ой строки и 1-го столбца, то придем к плану перевозок, содержащему менее чем m+n-1=5 заполненных клеток (см. Таблицу справа). Поэтому будем, для определенности, считать, что у первого потребителя вся потребность удовлетворена (и запретим перевозки в 1-м столбце), а у первого поставщика имеется запас в количестве равном нулю. Тогда придем к таблице:

 

1

0

100

 

 

Далее, действуя как обычно,

 

 

 

 

 

распределяем перевозку равную нулю

2

80

-

 

 

в С-З клетку (1,2) и окончательно получим

 

 

 

 

 

 

 

 

3

90

-

 

 

 

 

 

 

 

 

 

 

R

120

50

R

100

0

-

R

R

-

80

 

80

R

-

40

50

90

 

R

R

R

 

100 0 -

-

-

R R R