Скачать .docx  

Реферат: Решение задач транспортного типа методом потенциалов

МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

ВОРОНЕЖСКИЙ ИНСТИТУТ ВЫСОКИХ ТЕХНОЛОГИЙ

Факультет заочно-послевузовского обучения

КУРСОВАЯ РАБОТА

По дисциплине: "Методы оптимизации"

На тему: " Решение задач транспортного типа методом потенциалов "

Воронеж 2003 г.

СОДЕРЖАНИЕ

1. Линейная транспортная задача. 3

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

3. Составление опорного плана. 5

4. Распределительный метод достижения оптимального плана. 8

5. Решение транспортной задачи методом потенциалов. 11

Список использованной литературы .. 16

1. Линейная транспортная задача.

Линейные транспортные задачи составляют особый класс задач линейного программирования. Задача заключается в отыскании такого плана перевозок продукции с m складов в пункт назначения n который, потребовал бы минимальных затрат. Если потребитель j получает единицу продукции (по прямой дороге) со склада i , то возникают издержки С ij . Предполагается, что транспортные расходы пропорциональны перевозимому количеству продукции, т.е. перевозка k единиц продукции вызывает расходы k С i j .

Далее, предполагается, что

где ai есть количество продукции, находящееся на складе i , и bj – потребность потребителя j .

Замечание.

1. Если сумма запасов в пунктах отправления превышает сумму поданных заявок то количество продукции, равное остается на складах. В этом случае мы введем "фиктивного" потребителя n +1 с потребностью и положим транспортные расходы pi , n +1 равными 0 для всех i .

2. Если сумма поданных заявок превышает наличные запасы то потребность не может быть покрыта. Эту задачу можно свести к обычной транспортной задаче с правильным балансом, если ввести фиктивный пункт отправления m + 1 с запасом и стоимость перевозок из фиктивного пункта отправления во все пункты назначения принять равным нулю.

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

где xij количество продукции, поставляемое со склада i потребителю j , а С i j издержки (стоимость перевозок со склада i потребителю j ).

3. Составление опорного плана.

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

Рассмотрим простейший, так называемый способ северо-западного угла. Пояснить его проще всего будет на конкретном примере:

Условия транспортной задачи заданы транспортной таблицей.

Таблица № 1

ПН

ПО

В1

В2

В3

В4

В5

Запасы

а i

А1

10

8

5

6

9

48

А2

6

7

8

6

5

30

А3

8

7

10

8

7

27

А4

7

5

4

6

8

20

Заявки

bj

18

27

42

12

26

125

Будем заполнять таблицу перевозками постепенно начиная с левой верхней ячейки ("северо-западного угла" таблицы). Будем рассуждать при этом следующим образом. Пункт В1 подал заявку на 18 единиц груза. Удовлетворим эту заявку за счёт запаса 48, имеющегося в пункте А1 , и запишем перевозку 18 в клетке (1,1). После этого заявка пункта В1 удовлетворена, а в пункте А1 осталось ещё 30 единиц груза. Удовлетворим за счёт них заявку пункта В2 (27 единиц), запишем 27 в клетке (1,2); оставшиеся 3 единицы пункта А1 назначим пункту В3 . В составе заявки пункта В3 остались неудовлетворёнными 39 единиц. Из них 30 покроем за счёт пункта А2 , чем его запас будет исчерпан, и ещё 9 возьмём из пункта А3 . Из оставшихся 18 единиц пункта А3 12 выделим пункту В4 ; оставшиеся 6 единиц назначим пункту В5 , что вместе со всеми 20 единицами пункта А4 покроет его заявку. На этом распределение запасов закончено; каждый пункт назначения получил груз, согласно своей заявки. Это выражается в том, что сумма перевозок в каждой строке равна соответствующему запасу, а в столбце - заявке. Таким образом, нами сразу же составлен план перевозок, удовлетворяющий балансовым условиям. Полученное решение является опорным решением транспортной задачи:

Таблица № 2

ПН

ПО

В1

В2

В3

В4

В5

Запасы

а i

А1

10

18

8

27

5

3

6

9

48

А2

6

7

8

30

6

5

30

А3

8

7

10

9

8

12

7

6

27

А4

7

5

4

6

8

20

20

Заявки

bj

18

27

42

12

26

125

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

Другой способ - способ минимальной стоимости по строке - основан на том, что мы распределяем продукцию от пункта Ai не в любой из пунктов Bj , а в тот, к которому стоимость перевозки минимальна. Если в этом пункте заявка полностью удовлетворена, то мы убираем его из расчетов и находим минимальную стоимость перевозки из оставшихся пунктов Bj . Во всем остальном этот метод схож с методом северо-западного угла. В результате, опорный план, составленный способом минимальной стоимости по строке выглядит, так как показано в таблице № 3.

При этом методе может получиться, что стоимости перевозок Cij и Cik от пункта Ai к пунктам Bj и Bk равны. В этом случае, с экономической точки зрения, выгоднее распределить продукцию в тот пункт, в котором заявка больше. Так, например, в строке 2: C21 = C24 , но заявка b1 больше заявки b4 , поэтому 4 единицы продукции мы распределим в клетку (2,1).


Таблица № 3

ПН

ПО

В1

В2

В3

В4

В5

Запасы

а i

А1

10

8

5

42

6

6

9

48

А2

6

4

7

8

6

5

26

30

А3

8

7

27

10

8

7

0

27

А4

7

14

5

4

6

6

8

20

Заявки

bj

18

27

42

12

26

125

Способ минимальной стоимости по столбцу аналогичен предыдущему способу. Их отличие состоит в том, что во втором способе мы распределяем продукцию от пунктов Bi к пунктам Aj по минимальной стоимости Cji .

Опорный план, составленный способами минимальных стоимостей, обычно более близок к оптимальному решению. Так в нашем примере общие затраты на транспортировку по плану, составленному первым способом F0 = 1039, а по второму F0 = 723.

Клетки таблицы, в которых стоят ненулевые перевозки, являются базисными . Их число должно равняться m + n - 1. Необходимо отметить также, что встречаются такие ситуации, когда количество базисных клеток меньше чем m + n - 1. В этом случае распределительная задача называется вырожденной. И следует в одной из свободных клеток поставить количество перевозок равное нулю. Так, например, в таблице № 3:

m + n - 1 = 4 + 5 - 1 = 8,

а базисных клеток 7, поэтому нужно в одну из клеток строки 3 или столбца 2 поставить значение “0”. Например в клетку (3,5).

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

4. Распределительный метод достижения оптимального плана.

Теперь попробуем улучшить план, составленный способом северо-западного угла. Перенесем, например, 18 единиц из клетки (1,1) в клетку (2,1) и чтобы не нарушить баланса перенесём те же 18 единиц из клетки (2,3) в клетку (1,3). Получим новый план. Подсчитав стоимость опорного плана (она ровняется 1039) и стоимость нового плана (она ровняется 913) нетрудно убедиться, что стоимость нового плана на 126 единиц меньше. Таким образом, за счёт циклической перестановки 18 единиц груза из одних клеток в другие нам удалось понизить стоимость плана:

Таблица №4

ПН

ПО

В1

В2

В3

В4

В5

Запасы

а i

А1

10

8

27

5

21

6

9

48

А2

6

18

7

8

12

6

5

30

А3

8

7

10

9

8

12

7

6

27

А4

7

5

4

6

8

20

20

Заявки

bj

18

27

42

12

26

125

На этом способе уменьшения стоимости в дальнейшем и будет основан алгоритм оптимизации плана перевозок. Циклом в транспортной задаче мы будем называть несколько занятых клеток, соединённых замкнутой, ломанной линией, которая в каждой клетке совершает поворот на 90°.

Существует несколько вариантов цикла:

1.) 2.) 3.)


Нетрудно убедиться, что каждый цикл имеет чётное число вершин и значит, чётное число звеньев (стрелок). Условимся отмечать знаком + те вершины цикла, в которых перевозки необходимо увеличить, а знаком - , те вершины , в которых перевозки необходимо уменьшить. Цикл с отмеченными вершинами будем называть означенным. Перенести какое-то количество единиц груза по означенному циклу, это значит увеличить перевозки, стоящие в положительных вершинах цикла, на это количество единиц, а перевозки, стоящие в отрицательных вершинах уменьшить на то же количество. Очевидно, при переносе любого числа единиц по циклу равновесие между запасами и заявками не меняется: по прежнему сумма перевозок в каждой строке равна запасам этой строки, а сумма перевозок в каждом столбце - заявке этого столбца. Таким образом, при любом циклическом переносе, оставляющем перевозки неотрицательными допустимый план остаётся допустимым. Стоимость же плана при этом может меняться: увеличиваться или уменьшатся. Назовём ценой цикла увеличение стоимости перевозок при перемещении одной единицы груза по означенному циклу. Очевидно, цена цикла ровна алгебраической сумме стоимостей, стоящих в вершинах цикла, причём стоящие в положительных вершинах берутся со знаком + , а в отрицательных со знаком - . Обозначим цену цикла через g . При перемещении одной единицы груза по циклу стоимость перевозок увеличивается на величину g . При перемещении по нему k единиц груза стоимость перевозок увеличиться на k g . Очевидно, для улучшения плана имеет смысл перемещать перевозки только по тем циклам, цена которых отрицательна. Каждый раз, когда нам удаётся совершить такое перемещение, стоимость плана уменьшается на соответствующую величину k g . Так как перевозки не могут быть отрицательными, мы будем пользоваться только такими циклами, отрицательные вершины которых лежат в базисных клетках таблицы, где стоят положительные перевозки. Если циклов с отрицательной ценой в таблице больше не осталось, это означает, что дальнейшее улучшение плана невозможно, то есть оптимальный план достигнут.

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

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

Применённый выше метод отыскания оптимального решения транспортной задачи называется распределённым; он состоит в непосредственном отыскании свободных клеток с отрицательной ценой цикла и в перемещении перевозок по этому циклу.

Распределительный метод решения транспортной задачи, с которым мы познакомились, обладает одним недостатком: нужно отыскивать циклы для всех свободных клеток и находить их цены. От этой трудоёмкой работы нас избавляет специальный метод решения транспортной задачи, который называется методом потенциалов.

5. Решение транспортной задачи методом потенциалов.

Этот метод позволяет автоматически выделять циклы с отрицательной ценой и определять их цены.

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

Стоимость перевозки единицы груза из Ai в Bj равна C ij ; таблица стоимостей задана. Требуется найти план перевозок xij , который удовлетворял бы балансовым условиям и при этом стоимость всех перевозок бала минимальна.

Идея метода потенциалов для решения транспортной задачи сводиться к следующему. Представим себе что каждый из пунктов отправления Ai вносит за перевозку единицы груза (всё равно куда) какую-то сумму a i ; в свою очередь каждый из пунктов назначения Bj также вносит за перевозку груза (куда угодно) сумму b j . Эти платежи передаются некоторому третьему лицу (“перевозчику“). Обозначим a i + b j = č ij ( i =1.. m ; j =1.. n ) и будем называть величину č ij “псевдостоимостью” перевозки единицы груза из Ai в Bj . Заметим, что платежи a i и b j не обязательно должны быть положительными; не исключено, что “перевозчик” сам платит тому или другому пункту какую-то премию за перевозку. Также надо отметить, что суммарная псевдостоимость любого допустимого плана перевозок при заданных платежах (a i и b j ) одна и та же и от плана к плану не меняется.

До сих пор мы никак не связывали платежи (a i и b j ) и псевдостоимости č ij с истинными стоимостями перевозок C ij . Теперь мы установим между ними связь. Предположим, что план xij невырожденный (число базисных клеток в таблице перевозок ровно m + n -1). Для всех этих клеток xij >0 . Определим платежи (a i и b j ) так, чтобы во всех базисных клетках псевдостоимости были ровны стоимостям:

č ij = a i + b j = с ij , при xij >0.

Что касается свободных клеток (где xij = 0), то в них соотношение между псевдостоимостями и стоимостями может быть, какое угодно.

Оказывается соотношение между псевдостоимостями и стоимостями в свободных клетках показывает, является ли план оптимальным или же он может быть улучшен. Существует специальная теорема: Если для всех базисных клеток плана xij > 0,

a i + b j = č ij = с ij ,

а для всех свободных клеток xij =0 ,

a i + b j = č ij с ij ,

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

č ij = с ij (для всех базисных клеток ) (1)

č ij с ij ( для всех свободных клеток ) (2)

называется потенциальным планом, а соответствующие ему платежи (a i и b j ) — потенциалами пунктов Ai и Bj ( i =1,..., m ; j =1,..., n ). Пользуясь этой терминологией вышеупомянутую теорему можно сформулировать так:

Всякий потенциальный план является оптимальным.

Итак, для решения транспортной задачи нам нужно одно - построить потенциальный план. Оказывается его можно построить методом последовательных приближений, задаваясь сначала какой-то произвольной системой платежей, удовлетворяющей условию (1). При этом в каждой базисной клетке получиться сумма платежей, равная стоимости перевозок в данной клетке; затем, улучшая план следует одновременно менять систему платежей. Так, что они приближаются к потенциалам. При улучшении плана нам помогает следующее свойство платежей и псевдостоимостей: какова бы ни была система платежей (a i и b j ) удовлетворяющая условию (1), для каждой свободной клетки цена цикла пересчёта равна разности между стоимостью и псевдостоимостью в данной клетке : g i , j = с i , j - č i , j .

Таким образом, при пользовании методом потенциалов для решения транспортной задачи отпадает наиболее трудоёмкий элемент распределительного метода: поиски циклов с отрицательной ценой.

Процедура построения потенциального (оптимального) плана состоит в следующем.

В качестве первого приближения к оптимальному плану берётся любой допустимый план (например, построенный способом минимальной стоимости по строке). В этом плане m + n - 1 базисных клеток, где m - число строк, n - число столбцов транспортной таблицы. Для этого плана можно определить платежи (a i и b j ), так, чтобы в каждой базисной клетке выполнялось условие :

a i + b j = с ij (3)

Уравнений (3) всего m + n - 1 , а число неизвестных равно m + n . Следовательно, одну из этих неизвестных можно задать произвольно (например, равной нулю). После этого из m + n - 1 уравнений (3) можно найти остальные платежи a i , b j , а по ним вычислить псевдостоимости, č i , j = a i + b j для каждой свободной клетки.

Таблица №5

ПН

ПО

В1

В2

В3

В4

В5

a i

А 1

10

č = 7

8

č = 6

5

42

6

6

9

č = 6

a 1 = 0

А2

6

4

7

č = 5

8

č = 4

6

č = 5

5

26

a 2 = -1

А3

8

č = 8

7

27

10

č = 6

8

č = 7

7

0

a 3 = 1

А4

7

14

5

č = 6

4

č = 5

6

6

8

č = 6

a 4 = 0

b j

b 1 = 7

b 2 = 6

b 3 = 5

b 4 = 6

b 5 = 6

a 4 = 0, ®

b 4 = 6, так как a 4 + b 4 = С44 = 6, ®

a 1 = 0, так как a 1 + b 4 = С14 = 6, ®

b 3 = 5, так как a 1 + b 3 = С13 = 5, ®

b 1 = 7, так как a 4 + b 1 = С41 = 7, ®

a 2 = -1, так как a 2 + b 1 = С21 = 6, ®

b 5 = 6, так как a 2 + b 5 = С25 = 5, ®

a 3 = 1, так как a 3 + b 5 = С35 = 7, ®

b 2 = 6, так как a 3 + b 2 = С25 = 7.

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

č ij £ с ij , £ ³

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

В таблице № 5 мы получили в двух клетках č ij ³ с ij , теперь можно построить цикл в любой из этих двух клеток. Выгоднее всего строить цикл в той клетке, в которой разность č ij - с ij максимальна. В нашем случае в обоих клетках разность одинакова (равна 1), поэтому, для построения цикла выберем, например, клетку (4,2):

Таблица №6

ПН

ПО

В1

В2

В3

В4

В5

a i

А1

10

8

5

42

6

6

9

0

А2

6 +

4

7

8

6

5 -

26

-1

А3

8

7 -

27

10

8

7 +

0

1

А4

7 -

14

5 +

-

4

6

6

8

0

b j

7

6

5

6

6

Теперь будем перемещать по циклу число 14, так как оно является минимальным из чисел, стоящих в клетках, помеченных знаком - . При перемещении мы будем вычитать 14 из клеток со знаком - и прибавлять к клеткам со знаком + .

После этого необходимо подсчитать потенциалы a i и b j и цикл расчетов повторяется.

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

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

2. Определить для этого плана платежи (a i и b j ) исходя из условия, чтобы в любой базисной клетке псевдостоимости были равны стоимостям. Один из платежей можно назначить произвольно, например, положить равным нулю.

3. Подсчитать псевдостоимости č i , j = a i + b j для всех свободных клеток. Если окажется, что все они не превышают стоимостей, то план оптимален.

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

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

Так в нашем примере после 2 циклов расчетов получим оптимальный план. При этом стоимость всей перевозки изменялась следующим образом: F0 = 723, F1 = 709, F2 = Fmin = 703.

Следует отметить так же, что оптимальный план может иметь и другой вид, но его стоимость останется такой же Fmin = 703.

Список использованной литературы

1. Еремин И.И., Астафьев Н.Н. Введение в теорию линейного и выпуклого программирования М.; Наука, 1976г.

2. Карманов В.Г. Математическое программирование. – М.; Наука, 1986г.

3. Моисеев Н.Н., Иванов Ю.П., Столярова Е.М. Методы оптимизации. – М.; Наука, 1978г.

4. Иванов Ю.П., Лотов А.В. Математические модели в экономике. – М.; Наука, 1979г.

5. Бронштейн И.Н., Семендяев К.А. Справочник по математике. – М.; Наука, 1986г