Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Л10.doc
Скачиваний:
3
Добавлен:
15.11.2019
Размер:
862.21 Кб
Скачать

1.15.2.3. Специальный алгоритм поиска оптимального решения т-задачи (метод потенциалов)

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

Прежде чем изложить сам алгоритм, укажем на те его вычислительные особенности, которые отличают его от ранее рассмотренных алгоритмов симплекс-таблиц:

1) Алгоритм работает со структурой данных, не являющейся симплекс-таблицей. Основными компонентами этой структуры являются матрица перевозок x[i,j], базисное множество N(Bk), значения рассчитанных симплекс-разностей ∆сij для небазисных переменных, а также значения потенциалов , , являющихся аналогами двойственных переменных и использующихся для расчета ∆сij;

2) Специальным способом рассчитываются значения симплекс-разностей для небазисных компонент. При этом используется особая структура ограничений двойственной задачи (1.153). Известно (1.104), что симплекс-разности исходной задачи могут быть определены как разность правой и левой частей ограничений двойственной задачи для ее базисного решения, т.е. в данном случае:

. (1.158)

Известно также что:

для . (1.159)

Исходя из этих соотношений, можно составить следующую систему линейных уравнений для двойственных переменных:

. (1.160)

Число двойственных переменных равно числу ограничений двойственной задачи, т.е. m+n, а число уравнений системы (1.160) равно размерности базиса (m+n-1), т.е. на единицу меньше, чем число неизвестных. Такая система решается путем задания одной из переменных произвольного значения и вычисления остальных переменных. Система уравнений (1.160) обладает таким математическим свойством, что какую бы двойственную переменную ни выбрать и какое бы значение ей ни присвоить, ее решение удовлетворяет следующему условию:

. (1.161)

Поэтому v[i] и w[j] называют потенциалами соответствующих пунктов производства и потребления (по аналогии с понятием потенциалов в электрическом поле), а сам рассматриваемый метод – методом потенциалов. Используя (1.161) и соотношение (1.158), можно после определения потенциалов следующим образом рассчитать симплекс-разности для небазисных пар (i, j):

для . (1.162)

Система (1.160), учитывая особую ее структуру, решается алгоритмически довольно просто. Для определенности первоначально полагают v[1]=0. Исходя из этого, находят те w[j], которые входят в уравнения системы (1.160) вместе с v[1]. Затем по найденным w[j] аналогичным образом находят соответствующие v[i] и т.д. до тех пор, пока все и не будут определены.

3) Решаемая Т-задача не преобразуется к направлению оптимизации на максимум. Следовательно, учитывая сущность симплекс-разностей (1.74), следующим образом изменяются условия оптимальности базисного решения Т-задачи:

для (1.163)

и правила выбора столбца (il, jl), вводимого в базис:

(il, jl) – первая по порядку расположения в матрице перевозок пара, для которой , где . (1.164)

Сравните с соответствующими условиями и правилами обычного алгоритма (1.78 и 1.82).

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

После добавления к базисным элементам матрицы перевозок пары (il, jl) в соответствии со свойством 8 из некоторых базисных элементов сразу же образуется цепочка, замкнутая на элемент (il, jl).

Алгоритм определения этой цепочки аналогичен приведенному выше. Отличие заключается лишь в том, что в п.1 алгоритма никогда не вычеркивается строка il, а в п.2 – столбец jl. После завершения процедуры вычеркивания строк и столбцов матрицы перевозок выявление последовательности базисных элементов в этой цепочке осуществляется следующим образом:

-начинают с просмотра строки il, находят не вычеркнутый элемент (il , j) (il, jl); затем меняют направление поиска, ищут не вычеркнутый элемент в столбце j (пусть это будет элемент (j,k)); снова изменив направление поиска, ищут не вычеркнутый элемент в строке k, и т.д. до тех пор, пока для очередного из найденных таким образом не вычеркнутых элементов номер столбца совпадет с jl..

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

Пример реализации соответствующей процедуры приведен на рис. 1.31, где базисные элементы отмечены знаком «+».

При введении (il, jl) в базисное множество соответствующая перевозка x[il, jl] в соответствии с правилом перебора допустимых базисных решений должна увеличиваться. Тогда, чтобы не выйти из области допустимых решений (см. свойство 3 Т-задачи) необходимо перевозки, стоящие на нечетных местах в цепочке, уменьшать на ту же величину, а перевозки на четных местах – увеличивать. Такое изменение будет, как и раньше, соответствовать перемещению по ребру, исходящему из крайней угловой точки прежнего базисного решения. Ограничением на перемещение, соответствующим переходу в соседнюю по ребру крайнюю точку, будет первый выход на ноль одной из уменьшающихся перевозок (т.е. одной из перевозок, входящих в подмножество ). Соответствующая пара (ir, jr) и будет той парой, которая из базиса выводится.

Если выходят на ноль сразу несколько перевозок, то одна из них определяется как пара

(ir, jr), а другие остаются в базисном множестве: базисное решение при этом будет вырожденным.

Формальные соотношения для определения (ir, jr) имеют следующий вид:

, (1.165)

(ir, jr) – первая в множестве пара, для которой x[ir,jr]=u.

Корректировка прежнего базисного решения осуществляется в соответствии со следующими соотношениями:

; (1.166)

(1.167)

. (1.168)

Алгоритм

Шаг 1. k=1.

Шаг 2. Расчет симплекс-разностей , :

- в соответствии с N(Bk) и C[ij] формируется и решается система уравнений (1.160);

- рассчитываются , ,(1.162).

Шаг 3. Проверка условия оптимальности (1.163).

Если условие выполняется, то выводится оптимальное решение , и алгоритм завершает свою работу.

Шаг 4. Определение пары (il, jl) в соответствии с (1.164).

Шаг 5. Определение цепочки и подмножеств и .

Шаг 6. Определение пары (ir, jr) в соответствии с (1.165).

Шаг 7. Корректировка базисного решения в соответствии с (1.166)÷(1.168).

Шаг 8. k:=k+1, переход на шаг 2.

Еще раз необходимо отметить, что исхода в соответствии со свойством 2 Т-задачи алгоритм не предусматривает.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]