Решение транспортной задачи ОНЛАЙН (метод северо-западного угла, метод потенциалов)
Высшая Mатематика Решение задач - OnLine
./ Главная /Решение транспортной задачи, ШАГ-1/ШАГ-2/ШАГ-3 >

Пример решения транспортной задачи нашим сервисом:
(метод северо-западного угла, метод потенциалов)




Заметьте! Решение вашей конкретной задачи будет выглядеть аналогично данному примеру, включая все таблицы и поясняющие тексты, представленные ниже, но с учетом ваших исходных данных…


Задача:

Имеется 4 склада содержащие некоторое количество единиц однотипной продукции (см.таблицу 1), имеется также 6 потребителей нуждающихся в определенном количестве данной продукции (см.таблицу 2). При перевозке одной единицы продукции со склада i потребителю j возникают издержки Pij. Величины издержек приведены в таблице 3. При перевозке K единиц продукции со склада i потребителю j суммарные затраты на перевозку составляют K*Pij.

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


Таблица 1
Склад № Запас ед. продукции
114
27
322
417

Таблица 2
Потребитель № Потребность в ед. продукции
17
212
33
411
58
620

Таблица 3
Издержки на перевозку единицы продукции со склада i потребителю j
Потребители
Склад № 1 2 3 4 5 6
11.122.05130.5
232.154.8311.072.2
30.810.752.120.12.8
40.70.31.13.710.2




Шаг:1
Проверка на сбалансированность

Общее число запасов на складах : 60; Общая потребность : 61
.
Мы видим, что общая потребность превышает ощее число запасов на 1
Задача является открытой (несбалансированной), для приведения ее к закрытой введем фиктивного производителя №5
c запасом продукции равному 1.
Все издержки по доставке продукции с данного производителя (склада) любому потребителю принимаем равными нулю.


Шаг:2
Отыскание начального решения. Метод северо-западного угла

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

b1= 7
b2= 12
b3= 3
b4= 11
b5= 8
b6= 20
a1= 14
      
a2= 7
      
a3= 22
      
a4= 17
      
a5= 1
      

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


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

b1= 7
b2= 12
b3= 3
b4= 11
b5= 8
b6= 20
a1= 14
X       14
a2= 7
       7
a3= 22
       22
a4= 17
       17
a5= 1
       1
7 12 3 11 8 20

Итерация: 1
Заполним клетку a1,b1.
Сравним значения остатков для производителя a1 и потребителя b1.

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

b1= 7
b2= 12
b3= 3
b4= 11
b5= 8
b6= 20
a1= 14
7 X      7
a2= 7
       7
a3= 22
       22
a4= 17
       17
a5= 1
       1
0 12 3 11 8 20

Итерация: 2
Заполним клетку a1,b2.
Сравним значения остатков для производителя a1 и потребителя b2.

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

b1= 7
b2= 12
b3= 3
b4= 11
b5= 8
b6= 20
a1= 14
7 7      0
a2= 7
  X      7
a3= 22
       22
a4= 17
       17
a5= 1
       1
0 5 3 11 8 20

Итерация: 3
b1= 7
b2= 12
b3= 3
b4= 11
b5= 8
b6= 20
a1= 14
7 7      0
a2= 7
  5 X     2
a3= 22
       22
a4= 17
       17
a5= 1
       1
0 0 3 11 8 20

Итерация: 4
b1= 7
b2= 12
b3= 3
b4= 11
b5= 8
b6= 20
a1= 14
7 7      0
a2= 7
  5 2     0
a3= 22
   X     22
a4= 17
       17
a5= 1
       1
0 0 1 11 8 20

Итерация: 5
b1= 7
b2= 12
b3= 3
b4= 11
b5= 8
b6= 20
a1= 14
7 7      0
a2= 7
  5 2     0
a3= 22
   1 X    21
a4= 17
       17
a5= 1
       1
0 0 0 11 8 20

Итерация: 6
b1= 7
b2= 12
b3= 3
b4= 11
b5= 8
b6= 20
a1= 14
7 7      0
a2= 7
  5 2     0
a3= 22
   1 11 X   10
a4= 17
       17
a5= 1
       1
0 0 0 0 8 20

Итерация: 7
b1= 7
b2= 12
b3= 3
b4= 11
b5= 8
b6= 20
a1= 14
7 7      0
a2= 7
  5 2     0
a3= 22
   1 11 8 X 2
a4= 17
       17
a5= 1
       1
0 0 0 0 0 20

Итерация: 8
b1= 7
b2= 12
b3= 3
b4= 11
b5= 8
b6= 20
a1= 14
7 7      0
a2= 7
  5 2     0
a3= 22
   1 11 8 2 0
a4= 17
      X 17
a5= 1
       1
0 0 0 0 0 18

Итерация: 9
b1= 7
b2= 12
b3= 3
b4= 11
b5= 8
b6= 20
a1= 14
7 7      0
a2= 7
  5 2     0
a3= 22
   1 11 8 2 0
a4= 17
      17 0
a5= 1
      X 1
0 0 0 0 0 1

Итерация: 10
b1= 7
b2= 12
b3= 3
b4= 11
b5= 8
b6= 20
a1= 14
7 7      0
a2= 7
  5 2     0
a3= 22
   1 11 8 2 0
a4= 17
      17 0
a5= 1
      1 0
0 0 0 0 0 0

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

b1= 7
b2= 12
b3= 3
b4= 11
b5= 8
b6= 20
a1= 14
7 7     
a2= 7
  5 2    
a3= 22
   1 11 8 2
a4= 17
      17
a5= 1
      1

Шаг:3

Проверрим полученный опорный план на невырожденность. Количество заполненных клеток N должно удовлетворять условию N=n+m-1 . В нашем случае N=10, n+m=6+5=11 , что удовлетворяет условию невырожденности плана.


Шаг:4

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

b1= 7
b2= 12
b3= 3
b4= 11
b5= 8
b6= 20
a1= 14
7
1.1
7
2
 
 
 
 
 
 
 
 
a2= 7
 
 
5
2.15
2
4.8
 
 
 
 
 
 
a3= 22
 
 
 
 
1
0.75
11
2.12
8
0.1
2
2.8
a4= 17
 
 
 
 
 
 
 
 
 
 
17
0.2
a5= 1
 
 
 
 
 
 
 
 
 
 
1
0

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

Pнач= 75.92

Шаг:5

Проведем поэтапное улучшение начального решения, используя метод потенциалов.

Итерация: 1


Составим вспомогательную рабочую матрицу затрат. Она строится из исходной матрицы издержек (см. Таблицу 3) путем переноса только тех ячеек Pij которые соответствуют заполненным клеткам транспортной таблицы. Остальные ячейки остаются пустыми.
Кроме того, введем вспомогательный столбец в который внесем значения неизвестных U1 ... U5 (5,это m - число складов) и вспомогательную строку в которую внесем значения неизвестных V1 ... V6 (6,это n - число потребителей). На рисунке они представлены желтым цветом. Эти n+m неизвестных должны для всех (i,j), соответствующих загруженым клеткам, удовлетворять линейной системе уравнений

Ui+Vj=Pij

Эту систему всегда можно решить следующим способом: На первом шаге полагают V6=0. Если на k-м шаге найдено значение неизвестной, то в системе всегда имеется еще не определенная неизвестная, которая однозначно может быть найдена на (k+1)-м шаге из уравнения Ui+Vj=Pij, так как значение другой неизвестной в этом уравнении уже известно. То какую неизвестную можно найти на (k+1)-м шаге, определяют методом проб. Переменные Ui и Vj называются симплекс-множителями или потенциалами.
Рабочая матрица затрат с рассчитанными потенциалами представлена ниже.

b1
b2
b3
b4
b5
b6
a1
1.1 2     
u1= 6.7
a2
  2.15 4.8    
u2= 6.85
a3
   0.75 2.12 0.1 2.8
u3= 2.8
a4
      0.2
u4= 0.2
a5
      0
u5= 0
v1= -5.6
v2= -4.7
v3= -2.05
v4= -0.68
v5= -2.7
v6= 0

Порядок вычисления потенциалов был следующий:
   1) Пусть V6 = 0 ;
   2) U3 = P3,6 - V6 ;
   3) U4 = P4,6 - V6 ;
   4) U5 = P5,6 - V6 ;
   5) V3 = P3,3 - U3 ;
   6) V4 = P3,4 - U3 ;
   7) V5 = P3,5 - U3 ;
   8) U2 = P2,3 - V3 ;
   9) V2 = P2,2 - U2 ;
   10) U1 = P1,2 - V2 ;
   11) V1 = P1,1 - U1 ;


Теперь для всех свободных клеток рабочей матрицы затрат вычислим оценки Sij, по формуле Sij = Pij – Ui - Vj (зеленый цвет). Каждая такая оценка показывает на сколько изменятся общие транспортные затраты при загрузке данной клетки единицей груза. Таким образом, если среди оценок имеются отрицательные (затраты уменьшаются) то данный план можно улучшить переместив в соответствующую клетку некоторое количество продукции. Если же среди оценок нет отрицательных - план является оптимальным.
Рабочая матрица затрат с заполнеными оценками клетками представлена ниже.

b1
b2
b3
b4
b5
b6
a1
1.1 2 -2.6 -5.02 -1 -6.2
u1= 6.7
a2
1.75 2.15 4.8 -3.17 6.92 -4.65
u2= 6.85
a3
3.6 2.9 0.75 2.12 0.1 2.8
u3= 2.8
a4
6.1 4.8 2.95 4.18 3.5 0.2
u4= 0.2
a5
5.6 4.7 2.05 0.68 2.7 0
u5= 0
v1= -5.6
v2= -4.7
v3= -2.05
v4= -0.68
v5= -2.7
v6= 0

Из всех отрицательных оценок имеет смысл выбрать наибольшую по модулю (красный цвет), так как ее воздействие на общие затраты является максимальным. В нашем случае такая оценка находится в ячейке а1,b6 (красный цвет), в сответствующую ячейку транспортной таблицы мы должны переместить некоторое количество продукции т.е. загрузить ее. Отметим в транспортной таблице ячейку а1,b6 знаком + . Кроме нее мы пометим знаками - и + другие занятые числами ячейки таким образом, что в каждой строке и каждом столбце транспортной таблицы число знаков + будет равно числу знаков - . Это всегда можно сделать единственным образом, причем в каждой строке и каждом столбце содержится по одному + и - .То есть помеченные знаками клетки должны образовывать цикл.

b1= 7
b2= 12
b3= 3
b4= 11
b5= 8
b6= 20
a1= 14
7
 
7
-
 
 
 
 
 
 
 
+
a2= 7
 
 
5
+
2
-
 
 
 
 
 
 
a3= 22
 
 
 
 
1
+
11
 
8
 
2
-
a4= 17
 
 
 
 
 
 
 
 
 
 
17
 
a5= 1
 
 
 
 
 
 
 
 
 
 
1
 

Затем мы определим минимум M из всех элементов, помеченных знаком - , и выбираем одну ячейку где этот минимум достигается. В нашем случае таковой является а2,b3 и обозначает загруженую клетку, которая должна стать свободной.

Число M при этом составляет: 2

Переход к новой транспортной таблице разбивается на следующие шаги.
а) В ячейку а1,b6 новой таблицы записывается число M.
б) Ячейка а2,b3 остается пустой.
в) В остальных ячейках, помеченных знаками - или +, число M соответственно вычитается из стоящего в ячейке числа или складывается с ним. Результат вносится в соответствующую ячейку новой таблицы.
г) Непомеченные числа переносятся в новую таблицу без изменений. Остальные ячейки новой таблицы остаются пустыми.

b1= 7
b2= 12
b3= 3
b4= 11
b5= 8
b6= 20
a1= 14
7 5     2
a2= 7
  7     
a3= 22
   3 11 8 0
a4= 17
      17
a5= 1
      1

Итерация: 2
Рабочая матрица затрат с пересчитанными потенциалами и оценкам.
b1
b2
b3
b4
b5
b6
a1
1.1 2 3.6 1.18 5.2 0.5
u1= 0.5
a2
1.75 2.15 6.2 3.03 13.12 1.55
u2= 0.65
a3
-2.6 -3.3 0.75 2.12 0.1 2.8
u3= 2.8
a4
-0.1 -1.4 2.95 4.18 3.5 0.2
u4= 0.2
a5
-0.6 -1.5 2.05 0.68 2.7 0
u5= 0
v1= 0.6
v2= 1.5
v3= -2.05
v4= -0.68
v5= -2.7
v6= 0

Ячейка а3,b2, транспортной таблицы, должна загрузиться.

b1= 7
b2= 12
b3= 3
b4= 11
b5= 8
b6= 20
a1= 14
7
 
5
-
 
 
 
 
 
 
2
+
a2= 7
 
 
7
 
 
 
 
 
 
 
 
 
a3= 22
 
 
 
+
3
 
11
 
8
 
0
-
a4= 17
 
 
 
 
 
 
 
 
 
 
17
 
a5= 1
 
 
 
 
 
 
 
 
 
 
1
 
Ячейка а3,b6 становится свободной.
M = 0

b1= 7
b2= 12
b3= 3
b4= 11
b5= 8
b6= 20
a1= 14
7 5     2
a2= 7
  7     
a3= 22
  0 3 11 8  
a4= 17
      17
a5= 1
      1

Итерация: 3
Рабочая матрица затрат с пересчитанными потенциалами и оценкам.
b1
b2
b3
b4
b5
b6
a1
1.1 2 0.3 -2.12 1.9 0.5
u1= 0.5
a2
1.75 2.15 2.9 -0.27 9.82 1.55
u2= 0.65
a3
0.7 1 0.75 2.12 0.1 3.3
u3= -0.5
a4
-0.1 -1.4 -0.35 0.88 0.2 0.2
u4= 0.2
a5
-0.6 -1.5 -1.25 -2.62 -0.6 0
u5= 0
v1= 0.6
v2= 1.5
v3= 1.25
v4= 2.62
v5= 0.6
v6= 0

Ячейка а5,b4, транспортной таблицы, должна загрузиться.

b1= 7
b2= 12
b3= 3
b4= 11
b5= 8
b6= 20
a1= 14
7
 
5
-
 
 
 
 
 
 
2
+
a2= 7
 
 
7
 
 
 
 
 
 
 
 
 
a3= 22
 
 
0
+
3
 
11
-
8
 
 
 
a4= 17
 
 
 
 
 
 
 
 
 
 
17
 
a5= 1
 
 
 
 
 
 
 
+
 
 
1
-
Ячейка а5,b6 становится свободной.
M = 1

b1= 7
b2= 12
b3= 3
b4= 11
b5= 8
b6= 20
a1= 14
7 4     3
a2= 7
  7     
a3= 22
  1 3 10 8  
a4= 17
      17
a5= 1
    1   

Итерация: 4
Рабочая матрица затрат с пересчитанными потенциалами и оценкам.
b1
b2
b3
b4
b5
b6
a1
1.1 2 0.3 -2.12 1.9 0.5
u1= 0.5
a2
1.75 2.15 2.9 -0.27 9.82 1.55
u2= 0.65
a3
0.7 1 0.75 2.12 0.1 3.3
u3= -0.5
a4
-0.1 -1.4 -0.35 0.88 0.2 0.2
u4= 0.2
a5
2.02 1.12 1.37 0 2.02 2.62
u5= -2.62
v1= 0.6
v2= 1.5
v3= 1.25
v4= 2.62
v5= 0.6
v6= 0

Ячейка а1,b4, транспортной таблицы, должна загрузиться.

b1= 7
b2= 12
b3= 3
b4= 11
b5= 8
b6= 20
a1= 14
7
 
4
-
 
 
 
+
 
 
3
 
a2= 7
 
 
7
 
 
 
 
 
 
 
 
 
a3= 22
 
 
1
+
3
 
10
-
8
 
 
 
a4= 17
 
 
 
 
 
 
 
 
 
 
17
 
a5= 1
 
 
 
 
 
 
1
 
 
 
 
 
Ячейка а1,b2 становится свободной.
M = 4

b1= 7
b2= 12
b3= 3
b4= 11
b5= 8
b6= 20
a1= 14
7    4   3
a2= 7
  7     
a3= 22
  5 3 6 8  
a4= 17
      17
a5= 1
    1   

Итерация: 5
Рабочая матрица затрат с пересчитанными потенциалами и оценкам.
b1
b2
b3
b4
b5
b6
a1
1.1 2.12 2.42 1 4.02 0.5
u1= 0.5
a2
-0.37 2.15 2.9 -0.27 9.82 -0.57
u2= 2.77
a3
-1.42 1 0.75 2.12 0.1 1.18
u3= 1.62
a4
-0.1 0.72 1.77 3 2.32 0.2
u4= 0.2
a5
-0.1 1.12 1.37 0 2.02 0.5
u5= -0.5
v1= 0.6
v2= -0.62
v3= -0.87
v4= 0.5
v5= -1.52
v6= 0

Ячейка а3,b1, транспортной таблицы, должна загрузиться.

b1= 7
b2= 12
b3= 3
b4= 11
b5= 8
b6= 20
a1= 14
7
-
 
 
 
 
4
+
 
 
3
 
a2= 7
 
 
7
 
 
 
 
 
 
 
 
 
a3= 22
 
+
5
 
3
 
6
-
8
 
 
 
a4= 17
 
 
 
 
 
 
 
 
 
 
17
 
a5= 1
 
 
 
 
 
 
1
 
 
 
 
 
Ячейка а3,b4 становится свободной.
M = 6

b1= 7
b2= 12
b3= 3
b4= 11
b5= 8
b6= 20
a1= 14
1    10   3
a2= 7
  7     
a3= 22
6 5 3   8  
a4= 17
      17
a5= 1
    1   

Итерация: 6
Рабочая матрица затрат с пересчитанными потенциалами и оценкам.
b1
b2
b3
b4
b5
b6
a1
1.1 0.7 1 1 2.6 0.5
u1= 0.5
a2
1.05 2.15 2.9 1.15 9.82 0.85
u2= 1.35
a3
0.8 1 0.75 1.42 0.1 2.6
u3= 0.2
a4
-0.1 -0.7 0.35 3 0.9 0.2
u4= 0.2
a5
-0.1 -0.3 -0.05 0 0.6 0.5
u5= -0.5
v1= 0.6
v2= 0.8
v3= 0.55
v4= 0.5
v5= -0.1
v6= 0

Ячейка а4,b2, транспортной таблицы, должна загрузиться.

b1= 7
b2= 12
b3= 3
b4= 11
b5= 8
b6= 20
a1= 14
1
-
 
 
 
 
10
 
 
 
3
+
a2= 7
 
 
7
 
 
 
 
 
 
 
 
 
a3= 22
6
+
5
-
3
 
 
 
8
 
 
 
a4= 17
 
 
 
+
 
 
 
 
 
 
17
-
a5= 1
 
 
 
 
 
 
1
 
 
 
 
 
Ячейка а1,b1 становится свободной.
M = 1

b1= 7
b2= 12
b3= 3
b4= 11
b5= 8
b6= 20
a1= 14
    10   4
a2= 7
  7     
a3= 22
7 4 3   8  
a4= 17
  1     16
a5= 1
    1   

Итерация: 7
Рабочая матрица затрат с пересчитанными потенциалами и оценкам.
b1
b2
b3
b4
b5
b6
a1
0.7 1.4 1.7 1 3.3 0.5
u1= 0.5
a2
1.05 2.15 2.9 0.45 9.82 0.15
u2= 2.05
a3
0.8 1 0.75 0.72 0.1 1.9
u3= 0.9
a4
0.6 0.3 1.05 3 1.6 0.2
u4= 0.2
a5
0.6 0.4 0.65 0 1.3 0.5
u5= -0.5
v1= -0.1
v2= 0.1
v3= -0.15
v4= 0.5
v5= -0.8
v6= 0

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

b1= 7
b2= 12
b3= 3
b4= 11
b5= 8
b6= 20
a1= 14
 
 
 
 
 
 
10
1
 
 
4
0.5
a2= 7
 
 
7
2.15
 
 
 
 
 
 
 
 
a3= 22
7
0.8
4
1
3
0.75
 
 
8
0.1
 
 
a4= 17
 
 
1
0.3
 
 
 
 
 
 
16
0.2
a5= 1
 
 
 
 
 
 
1
0
 
 
 
 

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

Pопт= 43.2


см. пример с отысканием НР методом минимального элемента...

на ввод размеров...
решить мою задачу...

к списку решаемых задач...

Яндекс цитирования Ramblers Top100 Союз образовательных сайтов