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

Автор работы: Пользователь скрыл имя, 12 Ноября 2012 в 12:22, лабораторная работа

Краткое описание

У поставщиков A1 , A2 , A3 , A4 , находится соответственно 100 , 170 , 140 , 180 единиц однотипной продукции, которая должна быть доставлена потребителям B1 , B2 , B3 , B4 , B5 в количестве 50 , 160 , 130 , 10 , 210 единиц соответственно.

Прикрепленные файлы: 1 файл

задача.doc

— 2.07 Мб (Скачать документ)

 

Среди ячеек  цикла A2B, A1B, A4B, номера которых четные, найдем ячейку, обладающую найменьшим значением.


min = { 10, 30, 50 } = 10


В данном случае, это ячейка A2B5.


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


Поставщик

Потребитель

Запас

1

2

3

4

5

6

1

-

 

13  


30

 

5  


-

 

13  


10

 

1  


60

 

5  


-

 

0  


100

2

-

-2

1  


-

 

15  


130

 

1  


-

 

6  


10

 

7  


30

 

0  


170

3

-

 

15  


-

 

6  


-

 

4  


-

 

10  


140

 

5  


-

 

0  


140

4

50

 

2  


130

 

6  


-

 

13  


-

 

3  


-

 

11  


-

 

0  


180

Потребность

50

160

130

10

210

30

 

 

От ячеек цикла с четными номерами отнимает 10. К ячейкам с нечетными номерами прибавляем 10.


Что мы делаем?


Мы вводим новый  маршрут доставки продукции от поставщика Aк потребителю B1. По данному маршруту доставим 10 единиц продукции, по цене доставки 1 за единицу продукции. Общие затраты увеличатся на 1 * 10 ден. ед.


По маршруту от поставщика Aк потребителю Bмы полностью перестаем доставлять продукцию. 
Общие затраты уменьшатся на 7 * 10 ден. ед.


От поставщика Aк потребителю Bдополнительно поставим 10 единиц продукции, по цене доставки 5 за единицу продукции. Общие затраты увеличатся на 5 * 10 ден. ед.


Сократим поставку от поставщика Aк потребителю Bна 10 единиц продукции, по цене доставки 5 за единицу продукции. Общие затраты уменьшатся на 5 * 10 ден. ед.


От поставщика Aк потребителю Bдополнительно поставим 10 единиц продукции, по цене доставки 6 за единицу продукции. Общие затраты увеличатся на 6 * 10 ден. ед.


Сократим поставку от поставщика Aк потребителю Bна 10 единиц продукции, по цене доставки 2 за единицу продукции. Общие затраты уменьшатся на 2 * 10 ден. ед.


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


Поставщик

Потребитель

Запас

1

2

3

4

5

6

1

-

 

13  


30 - 10

 

5  


-

 

13  


10

 

1  


60 + 10

 

5  


-

 

0  


100

2

+ 10

-2

1  


-

 

15  


130

 

1  


-

 

6  


10 - 10

 

7  


30

 

0  


170

3

-

 

15  


-

 

6  


-

 

4  


-

 

10  


140

 

5  


-

 

0  


140

4

50 - 10

 

2  


130 + 10

 

6  


-

 

13  


-

 

3  


-

 

11  


-

 

0  


180

Потребность

50

160

130

10

210

30

 

 

Что в итоге?


Общие расходы  на доставку продукции от поставщиков к потребителям изменятся на


1 * 10 - 7 * 10 + 5 * 10 - 5 * 10 + 6 * 10 - 2 * 10 = ( 1 - 7 + 5 - 5 + 6 - 2 ) * 10 = -2 * 10   ден. ед.


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


ГЛАВНОЕ : 
В тот момент, когда мы нашли ячейку с наименьшим значением (среди ячеек, номера которых четные в цикле), мы уже могли сказать, что общие затраты изменятся на 21 * 10 = -2 * 10 = -20 ден. ед.


Общие затраты  на доставку всей продукции, для данного решения, составляют S= 2240 + ( - 20 ) = 2220 ден. ед. .


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


Ячейка A2Bвыйдет из базиса, мы перестали доставлять продукцию от поставщика Aк потребителю B5


Ячейка A2Bстанет базисной, мы ввели новый маршрут доставки продукции от поставщика Aк потребителю B.


Поставщик

Потребитель

Запас

1

2

3

4

5

6

1

-

 

13  


20

 

5  


-

 

13  


10

 

1  


70

 

5  


-

 

0  


100

2

10

 

1  


-

 

15  


130

 

1  


-

 

6  


-

 

7  


30

 

0  


170

3

-

 

15  


-

 

6  


-

 

4  


-

 

10  


140

 

5  


-

 

0  


140

4

40

 

2  


140

 

6  


-

 

13  


-

 

3  


-

 

11  


-

 

0  


180

Потребность

50

160

130

10

210

30

 

Шаг 3

ПРОИЗВЕДЕМ ОЦЕНКУ ПОЛУЧЕННОГО РЕШЕНИЯ.


Каждому поставщику Aставим в соответствие некоторое число - ui, называемое потенциалом поставщика. 
Каждому потребителю Bставим в соответствие некоторое число - vj, называемое потенциалом потребителя. 
Для базисной ячеки (задействованного маршрута), сумма потенциалов поставщика и потребителя должна быть равна тарифу данного маршрута.  
(u+ v= cij, где cij - тариф клетки AiBj)  
Поскольку, число базисных клеток - 9, а общее количество потенциалов равно 10, то для однозначного определения потенциалов, значение одного из них можно выбрать произвольно.


Примем u= 0.


v+ u= c21

v+ u= 1

v= 1 - 0 = 1


v+ u= c23

v+ u= 1

v= 1 - 0 = 1


v+ u= c26

v+ u= 0

v= 0 - 0 = 0


v+ u= c41

v+ u= 2

u= 2 - 1 = 1


v+ u= c42

v+ u= 6

v= 6 - 1 = 5


v+ u= c12

v+ u= 5

u= 5 - 5 = 0


v+ u= c14

v+ u= 1

v= 1 - 0 = 1


v+ u= c15

v+ u= 5

v= 5 - 0 = 5


v+ u= c35

v+ u= 5

u= 5 - 5 = 0


Поставщик

Потребитель

j

1

2

3

4

5

6

1

-

 

13  


20

 

5  


-

 

13  


10

 

1  


70

 

5  


-

 

0  


= 0

2

10

 

1  


-

 

15  


130

 

1  


-

 

6  


-

 

7  


30

 

0  


= 0

3

-

 

15  


-

 

6  


-

 

4  


-

 

10  


140

 

5  


-

 

0  


= 0

4

40

 

2  


140

 

6  


-

 

13  


-

 

3  


-

 

11  


-

 

0  


= 1

i

= 1

= 5

= 1

= 1

= 5

= 0

 

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


11 = c11 - ( u+ v) = 13 - ( 0 + 1 ) = 12


13 = c13 - ( u+ v) = 13 - ( 0 + 1 ) = 12


16 = c16 - ( u+ v) = 0 - ( 0 + 0 ) = 0


22 = c22 - ( u+ v) = 15 - ( 0 + 5 ) = 10


24 = c24 - ( u+ v) = 6 - ( 0 + 1 ) = 5


25 = c25 - ( u+ v) = 7 - ( 0 + 5 ) = 2


31 = c31 - ( u+ v) = 15 - ( 0 + 1 ) = 14


32 = c32 - ( u+ v) = 6 - ( 0 + 5 ) = 1


33 = c33 - ( u+ v) = 4 - ( 0 + 1 ) = 3


34 = c34 - ( u+ v) = 10 - ( 0 + 1 ) = 9


36 = c36 - ( u+ v) = 0 - ( 0 + 0 ) = 0


43 = c43 - ( u+ v) = 13 - ( 1 + 1 ) = 11


44 = c44 - ( u+ v) = 3 - ( 1 + 1 ) = 1


45 = c45 - ( u+ v) = 11 - ( 1 + 5 ) = 5


46 = c46 - ( u+ v) = 0 - ( 1 + 0 ) = -1


Поставщик

Потребитель

j

1

2

3

4

5

6

1

-

12

13  


20

 

5  


-

12

13  


10

 

1  


70

 

5  


-

0

0  


= 0

2

10

 

1  


-

10

15  


130

 

1  


-

5

6  


-

2

7  


30

 

0  


= 0

3

-

14

15  


-

1

6  


-

3

4  


-

9

10  


140

 

5  


-

0

0  


= 0

4

40

 

2  


140

 

6  


-

11

13  


-

1

3  


-

5

11  


-

-1

0  


= 1

i

= 1

= 5

= 1

= 1

= 5

= 0

 


 

Оценка свободной  ячейки A4B(незадействованного маршрута) отрицательная (46 =-1) , следовательно решение не является оптимальным.


Построим цикл для выбранной ячейки A4B6:


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


Ячейки образующие цикл для свободной ячейки A4B:


A4B, A4B, A2B, A2B6


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


Поставщик

Потребитель

Запас

1

2

3

4

5

6

1

-

 

13  


20

 

5  


-

 

13  


10

 

1  


70

 

5  


-

 

0  


100

2

10

 

1  


-

 

15  


130

 

1  


-

 

6  


-

 

7  


30

 

0  


170

3

-

 

15  


-

 

6  


-

 

4  


-

 

10  


140

 

5  


-

 

0  


140

4

40

 

2  


140

 

6  


-

 

13  


-

 

3  


-

 

11  


-

-1

0  


180

Потребность

50

160

130

10

210

30

 

Информация о работе Транспортная задача