Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Исследование алгоритмов оптимизации.doc
Скачиваний:
12
Добавлен:
01.05.2014
Размер:
331.26 Кб
Скачать

Краткие общие сведения

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

1. Поиск начального решения, т.е. набора { Xij }, удовлет-воряющего ограничениям (5.3).

2. Если{Xij} -оптимальное решение,токонец.

3. Модификация решения, не увеличивающая его стоимости, и пе­реход на 2.

Задача (5.2), (5.3) является частным случаем задачи линейного программирования, а вышеприведенный алгоритм укладывается в общую схему решения этой задачи.

Выделим специфические черты, отличающие метод потенциалов.

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

2. Транспортная задача допускает несколько простых способов поиска начального базисного решения. Один из возможных алгоритмов реализован в лабораторной работе:

а) выбрать: в табл.5.1 незаполненную и непомеченную клетку с минимальной стоимостью (пусть, для определенности, это клетка с индексами (k, l));

б) заполнить выбранную клетку числом

Xkl = min { αk, Bl },

т.е. максимально загрузить соответствующий путь;

в) модифицировать величины спроса и предложения:

1) αkk-Xkl

Bl = BlXkl.

2) еслиαk= 0,

топометить все незаполненные и непомеченные клеткиk-й строки,

иначепометить все незаполненные и непомеченные клеткиl-го столбца;

д) еслиостались незаполненные или непомеченные клетки,

идтина а).

Заполненные клетки будем называть базисными (некоторые из них могут содержать нули).

- 21 -

Заполненные клетки будем называть базисными (некоторые из них могут содержать нули).

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

а) найти "потенциалы" и, такие, что

Ui + Vj = Cij (5.5)

для всех пар (i, j), выделяющих базисные клетки. Легко видеть, что одну из переменныхUiилиVj(по нашему выбору) можно поло-жить равной чему угодно, после чего система (5.5) решается одно­значно;

б) для всех небазисных клеток вычислить так называемые "ха­рактеристические разности"

Xij = Ui + Vj - Cij

в) есливсеXijнеотрицательны,

торешение оптимально,

иначесм. следующий пункт.

При решении задачи вручную проверку оптимальности удобно произво­дить с использованием табл.5.2.

Таблица 5.2

C11

...

C1n

Ui

X11

X1n

...

...

...

...

Cm1

...

Cmn

Um

Xm1

Xmn

V1

...

Vn

4. В случае, если полученное решение неоптимально, можно от-носительно просто улучшить его:

а) выбрать какую-либо клетку, для которой Xij < 0;

б) найти последовательность клеток (цикл)

(i1=i, j1=j), (i2,j1), (i2,j2), ..., (ip,jp-1), (ip,jp), (ip+1=i1,jp), в которой все клетки, кроме клеток(i1,j1),являются базисными;

в) перераспределить грузопоток по найденному циклу:

пропустить дополнительно Xединиц груза по каждому из пу- тей(ik, jk),

уменьшить на Xколичество груза, перевозимого по путям

(ik+1, jk).

- 22 -

Здесь

(5.6)

г) включить в базис клетку (i, j)и исключить из базиса одну из клеток, поток в которой после модификации, проведенной в п. в), оказывается равным 0.

Вообще говоря, п. в) вышеприведенного алгоритма следует сводить к задаче поиска цикла в ориентированном графе (связанном с модифици­руемым решением), однако при небольших размерах задач, решаемых в ходе лабораторной работы, цикл можно найти путем простого направ- ленного перебора в глубину. Следует запомнить, что величина Х, вычисляемая в (5.6), может оказаться равной 0. При использовании такого цикла меняется не грузопоток, а лишь набор базисных пере­менных.