Математическая модель транспортной задачи

Контрольная работа, 20 Марта 2012, автор: пользователь скрыл имя

Описание работы


Однородный груз сосредоточен у m поставщиков в объемах a1, a2, ... am.
Данный груз необходимо доставить n потребителям в объемах b1, b2 ... bn.
Известны Cij , i=1,2,...m; j=1,2,...n — стоимости перевозки единиц груза от каждого i-го поставщика каждому j-му потребителю.
Требуется составить такой план перевозок, при котором запасы всех поставщиков вывозятся полностью, запросы всех потребителей удовлетворяются полностью, и суммарные затраты на перевозку всех грузов являются минимальными.

Работа содержит 1 файл

Документ Microsoft Word (2).docx

— 338.77 Кб (Скачать)

 

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


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


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


Мы нашли начальное  решение, т.е израсходовали все запасы поставщиков и удовлетворили все потребности потребителей.


S0 = 1 * 30 + 4 * 20 + 4 * 5 + 3 * 5 + 5 * 10 = 195 ден. ед.


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


Дальнейшие наши действия будут состоять из шагов, каждый из которых состоит в следующем:


·  Находим потенциалы поставщиков и потребителей для имеющегося решения.


·  Находим оценки свободных ячеек. Если все оценки окажутся неотрицательными - задача решена.


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


·  Находим новое решение, как минимум, не хуже предыдущего.


·  Вычисляем общую стоимость доставки всей продукции для нового решения.


Шаг 1

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


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


Примем v3 = 0.


v3 + u2 = c23

v3 + u2 = 4

u2 = 4 - 0 = 4


v3 + u3 = c33

v3 + u3 = 5

u3 = 5 - 0 = 5


v1 + u2 = c21

v1 + u2 = 4

v1 = 4 - 4 = 0


v2 + u3 = c32

v2 + u3 = 3

v2 = 3 - 5 = -2


v2 + u1 = c12

v2 + u1 = 1

u1 = 1 - ( -2 ) = 3


Поставщик

Потребитель

U j

B 1

B 2

B 3

A 1

-

 

5  


30

 

1  


-

 

3  


u 1 = 3

A 2

20

 

4  


-

 

5  


5

 

4  


u 2 = 4

A 3

-

 

4  


5

 

3  


10

 

5  


u 3 = 5

V i

v 1 = 0

v 2 = -2

v 3 = 0

 

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


11 = c11 - ( u1 + v1 ) = 5 - ( 3 + 0 ) = 2


13 = c13 - ( u1 + v3 ) = 3 - ( 3 + 0 ) = 0


22 = c22 - ( u2 + v2 ) = 5 - ( 4 + ( -2 ) ) = 3


31 = c31 - ( u3 + v1 ) = 4 - ( 5 + 0 ) = -1


Поставщик

Потребитель

U j

B 1

B 2

B 3

A 1

-

2

5  


30

 

1  


-

0

3  


u 1 = 3

A 2

20

 

4  


-

3

5  


5

 

4  


u 2 = 4

A 3

-

-1

4  


5

 

3  


10

 

5  


u 3 = 5

V i

v 1 = 0

v 2 = -2

v 3 = 0

 


 

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


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


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


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


A3B1 , A3B3 , A2B3 , A2B1


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


Поставщик

Потребитель

Запас

B 1

B 2

B 3

A 1

-

 

5  


30

 

1  


-

 

3  


30

A 2

20

 

4  


-

 

5  


5

 

4  


25

A 3

-

-1

4  


5

 

3  


10

 

5  


15

Потребность

20

35

15

 

 

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


min = { 10, 20 } = 10


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


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


Поставщик

Потребитель

Запас

B 1

B 2

B 3

A 1

-

 

5  


30

 

1  


-

 

3  


30

A 2

20

 

4  


-

 

5  


5

 

4  


25

A 3

-

-1

4  


5

 

3  


10

 

5  


15

Потребность

20

35

15

 

 

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


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


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


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


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


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


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


Поставщик

Потребитель

Запас

B 1

B 2

B 3

A 1

-

 

5  


30

 

1  


-

 

3  


30

A 2

20 - 10

 

4  


-

 

5  


5 + 10

 

4  


25

A 3

+ 10

-1

4  


5

 

3  


10 - 10

 

5  


15

Потребность

20

35

15

 

 

Что в итоге?


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


4 * 10 - 5 * 10 + 4 * 10 - 4 * 10 = ( 4 - 5 + 4 - 4 ) * 10 = -1 * 10   ден. ед.


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


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


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


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


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


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


Поставщик

Потребитель

Запас

B 1

B 2

B 3

A 1

-

 

5  


30

 

1  


-

 

3  


30

A 2

10

 

4  


-

 

5  


15

 

4  


25

A 3

10

 

4  


5

 

3  


-

 

5  


15

Потребность

20

35

15

 

Информация о работе Математическая модель транспортной задачи