2006
Доклады БГУИР
январь- март
№ 1 (13)
УДК 519.8
ГРАФОВЫЙ АЛГОРИТМ РЕШЕНИЯ ТРАНСПОРТНЫХ ЗАДАЧ
Ж.А. ЧЕРНЯК, А.А. ЧЕРНЯК
Белорусский государственный университет информатики и радиоэлектроники ул. П. Бровки, 6, 220013, Минск, Беларусь
Международный институт трудовых и социальных отношений ул. Казинца, 21, к.3, 220099, Минск, Беларусь
Поступила в редакцию 20 марта 2005
Описан графовый алгоритм решения транспортных задач по критерию стоимости. Благодаря графовой природе алгоритма преодолено традиционное разделение траснпортной задачи на вырожденный и невырожденный случаи, а также значительно упрощены математические доказательства сопутствующих результатов. Предложенный подход может быть также использован в учебных программах по математическому программированию.
Ключевые слова: транспортная задача, орграф, дерево, вырожденность.
Введение
Транспортная задача — задача о наиболее экономном плане перевозок однородного или взаимозаменяемого продукта из пунктов производства в пункты потребления — является важнейшей частной задачей линейного программирования, имеющей обширные практические приложения не только к проблемам транспорта. Транспортная задача выделяется в линейном программировании определенностью экономической характеристики, особенностями математической модели, наличием специфических методов решения.
В данной статье описан графовый алгоритм решения транспортных задач по критерию стоимости. Благодаря графовой природе алгоритма удалось: а) преодолеть традиционное разделение транспортной задачи на вырожденный и невырожденный случаи; б) значительно упростить математические доказательства сопутствующих результатов. Предложенный в статье подход может быть также использован в учебных программах по математическому программированию (именно сложность обоснования вырожденного случая в известных алгоритмах решения транспортных задач служила главным препятствием для включения их в учебные пособия [1-6]).
Предварительные сведения
Предположим, что матрица А системы линейных уравнений АХТ = С имеет ранг г , а множество решений этой системы не пусто. Тогда существует равносильная система вида
X = b10—(b11Xh + - + b1kXlkX
X2 = Ь20 - (b21X;i + ••• + b2kXjt X (1)
X, = Ъг0 - (br1XJl + ••• + brkXjt X
где множество переменных {,•••,xn} разбито на два непересекающихся подмножества { xt xt •••, xi } и { Xj , Xj •, Xj }, называемых соответственно базисом переменных и набором свободных переменные Решение а = (а1за2,•••,аn) системы AXT = C (и любой равносильной ей системы), в котором аi = b10, a¿2 = b20, ...,а, = br0, а . = а . = ••• = аjt = 0, называется базисным, а его координаты аi — базисными Любая система линейных уравнений имеет только конечное число базисных решений [6] •
Базисные решения удобно выражать в матричном виде^ Рассмотрим систему AXT = C и предположим, что ранг r матрицы A равен числу ее строк m• Положим
B = {{; im } N Jk } h < i2 < • < im, j1 < • < Jk, XB =(xi \ ) XN X]k l
AB и AN — подматрицы матрицы, составленные из столбцов с номерами B и N соответствен-но^ Систему AXT = C можно теперь записать в виде ABXB = C — AnXN • Так как AB — квадратная матрица, то при нулевых значениях переменных XN система AXT = C имеет единственное (и потому базисное) решение, если и только если существует обратная матрица Aв • При этом в случае существования AB :
XTB = ABlC — A— ANXN , (2)
а соответствующая матрица базисных координат базисного решения имеет вид аB = AB C •
Рассмотрим теперь следующую задачу линейного программирования (сокращенно задачу ЛП), относящуюся к каноническому типу: f (x) = d1 x1 + ••• + dnXn = D ■ XT ^ max
\ AXT = C,
на множестве планов < (3)
[ X > 0,
где D = (d1, d2,•••, dn )•
Очевидно, любое решение системы AXT = C с неотрицательными координатами является планом задачи (3) Поэтому базисное решение системы AXT = C с неотрицательными координатами получило название "базисного плана" задачи ЛП (3)
Утверждение 1 [6] Если задача (3) имеет оптимальный план, то она имеет и оптимальный базисный план. Если множество планов задачи (3) ограничено, то она имеет оптимальный базисный план.
По аналогии с формулой (2) можно в матричном виде представить и целевую функцию f (X), выразив ее только через свободные переменные:
f (X ) = DbXtb + DnXN = Db (A-1C — Ab1 AnXN )+ DnXN = DbAb1C + (Dn—DbAb1 An )xtn
Таким образом, если П = DBAB , то f (X) = DXT = nC + (Dn — nAN )XN • (4)
Рассмотрим систему уравнений (1). Для упрощения индексации переобозначим свобод-
ные переменные х,
, х.
1к
— через z1,..., 1к, а базисные переменные х^,...,хг — через
У1з...,уг. Опишем процедуру жордановой перестановки пары переменных у1 и ys, предварительно записав систему (1) в новых обозначениях и в виде таблицы:
1 - ^ . . - ^ . . - zs
У1 = Ъ10 Ъ„ . . Ъ, . . Ъ1к
Уг = Ъг 0 Ъг1 . . Ъ, . . Ъгк
(5)
От этой табличной записи можно легко перейти к обычной — для этого надо скалярно умножить верхнюю строку свободных переменных на каждую из строк таблицы, приравняв к соответствующим переменным у1з...,Уг. Преобразование таблицы (5) в другую таблицу, при котором у1 выводится из базиса переменных, а переходит в него, называется жордановой перестановкой переменных у1 и или жордановой перестановкой с разрешающим элементом Ъь . При этом строка и столбец, содержащие разрешающий элемент, также называются разрешающими.
Лемма 1 [6]. Если Ъъ Ф 0, то результатом жордановой перестановки переменных у1 и zs, примененной к таблице (5), является таблица, которая получается из (5) следующим образом: переменные у1 и zs меняются местами; элементы разрешающей строки, кроме разрешающего элемента, делятся на него; элементы разрешающего столбца, кроме разрешающего элемента, делятся на него и меняют знак на противоположный; прочие элементы Ъ', где
ъгк
I Ф I, г Ф 5 , рассчитываются по формуле Ъ' = ЪГ--.
К
Рассмотрим теперь задачу ЛП (3) и предположим, что каким-то образом уже получена система (1), равносильная системе уравнений АХТ = С , при этом целевая функция / имеет вид / = /0 - (/х;1 + ... + /кх, ) и все базисные координаты Ъ10,...,Ъг0 неотрицательны, т.е. решение х^ = Ъ10,...,х^ = Ъг0,х, =... = х, = 0 является базисным планом а задачи (2.3), В этом случае задача (3) эквивалентна таблице
1 - хл . . - хк
х = г1 Ъ10 ъ„ . . Ъа
х = Ъ 0 ЪГ1 . . Ъгк
/ = /0 / . . /
(6)
(если при этом не забывать, что все переменные должны принимать только неотрицательные значения). Таблицу (6) назовем 5-таблицей с соответствующим ей базисным планом а. Ее первый столбец, содержащий базисные координаты, будем называть ^-столбцом, а ее последнюю строку — /-строкой.
Если предположить, что г = т, то, принимая во внимание матричные выражения (2) и (4), 5-таблицу (6) можно представить в компактном таблично-матричном виде:
1 ~XN
ABC AB An
f = ПС nAN-DN
Лемма 2 [6]. 1. Если в f-строке s-таблицы (6) все элементы, не считая f0, неотрицательны, то а — оптимальный план задачи (3).
2. Если некоторый столбец в s-таблице (6), отличный от p-столбца, содержит в f-строке отрицательный элемент, а все остальные его элементы не положительны, то целевая функция задачи (3) неограниченно возрастает на множестве планов.
3. Если некоторый столбец в s-таблице (6), отличный от f-столбца, содержит в f-строке отрицательный элемент, а среди остальных его элементов имеется положительный, то с помощью жордановой перестановки, примененной к (2.6), можно перейти к базисному плану а', отличному от а такому, что f (а') > f (а).
Из этой леммы можно заключить, что при наличии s-таблицы, которой соответствует некоторый базисный план а0 задачи (3), можно либо определить оптимальность этого плана, либо установить неограниченность целевой функции на множестве планов, либо жордановой перестановкой перейти к плану а1 такому, что f (а1 )> f (а0). Таким образом, можно построить последовательность а0, а1,..., а',... базисных планов задачи (3), для которой f (а0)< f (а1 )< ... < f (а')< ...
Следующий алгоритм формализует процедуру построения такой последовательности.
Алгоритм SimpAnticycle.
Цикл 0. Задать начальную s-таблицу, которой соответствует некоторый базисный план а0 задачи (3). Объявить эту s-таблицу активной и перейти к следующему циклу.
Цикл k (k > 1). Рассмотреть элементы f-строки активной s-таблицы. Если все они, не считая первого, неотрицательны, то соответствующий базисный план оптимален, и алгоритм завершает свою работу.
Если в f-строке, не считая ее первого элемента, есть отрицательный элемент, то рассмотреть столбец, содержащий этот элемент. В случае наличия нескольких таких отрицательных элементов следует выбрать тот из них, который соответствует переменной xs с минимально возможным индексом s (правило «антизацикливания» Блэнда при выборе разрешающего столбца). Пусть b1s, b2s, . . , brs, fs — элементы выбранного столбца. Если все они не положительны, то целевая функция задачи (3) неограниченно возрастает на множестве планов и алгоритм завершает свою работу.
Если в рассматриваемом столбце найдется положительный элемент, то произвести жор-данову перестановку. В качестве разрешающего выбрать элемент bls, для которого выполняется
равенство: b— = minj —: при bis > 01, где b10,b20,...,br0,f0 — элементы p-столбца активной
К l b's J
s-таблицы. Другими словами, для всех положительных элементов bis разрешающего столбца
bl0 Г b 0 Т,
составить отношения — и выбрать среди них наименьшее отношение . В случае неодно-
b's К
значности выбора (наличие нескольких строк, для которых достигается минимум
min< : при bis > 0 >, следует выбрать ту из них, которая соответствует переменной xl с ми-
l b's J
нимально возможным индексом l (правило "антизацикливания" Блэнда при выборе разрешающей строки). Перейти к следующему циклу, объявив активной s-таблицу, полученную в результате жордановой перестановки.
Теорема 1 [7, 8]. Алгоритм БтрЛпИсус1е за конечное число циклов либо находит оптимальный план задачи (3), либо устанавливает неограниченность целевой функции на множестве планов.
Известны различные доказательства конечности алгоритмов симплекс-метода, использующих правило антизацикливания Блэнда. Здесь мы приведем элементарное обоснование этого результата, не прибегая к дополнительным сведениям или утверждениям.
Доказательство теоремы 1. Вначале докажем, что ни одна 5-таблица в ходе алгоритма БтрЛпИсус1е не может повториться. Предположим противное: в ходе этого алгоритма порождается такая последовательность 5-таблиц Тт, Тт+1,..., Та , в которой Тт = Та . Если теперь
ат,ат1,..., аа — соответствующие им базисные планы, то ат=аа . По лемме 2 А(ат)<А(ат+1)< ...<Ааа). ПоэтомуАсГ)=Ла"+')= -=Аа\
Удалим из 5-таблиц Тт, Тт+1,..., Та все строки и столбцы с переменными,
не участвующими в жордановых перестановках при переходе от Ti к Тт, 7=т, т+1, ..., а—1. Получим последовательность Мт, Мт+1, ..., Ма модифицированных таблиц, в которой Мт =МЛ . Из вида жордановой перестановки переменных х\ и х^ (лемма 1) следует, что элемент
на пересечении р-столбца и А-строки остается неизменным, если и только если элемент на пересечении р-столбца и разрешающей строки (с переменной х) равен нулю; при этом неизменными остаются также и все другие элементы р-столбца. Поскольку в модифицированных таблицах присутствуют только строки с переменными, участвующими в жордановых перестановках при
переходе от Т к Т7+1 , 7=т, т+1,
1 , то все элементы р-столбцов этих таблиц, не считая
элементов А-строки, равны нулю.
Пусть хд — переменная с наибольшим индексом q среди всех переменных, содержа-
щихся в строках и столбцах Мт, Мт
. Пусть Ма — первая из этих таблиц,
чья свободная переменная xq переходит в базис переменных следующей за Ма таблицы Ма+1. Пусть Мс — первая после М а+1 таблица, которая преобразуется в таблицу Мс+1 жордановой перестановкой переменных хС1 и хр, причем хС1 становится свободной переменной в таблице Мс+1. Таблицы Ма иМс удобно представить в следующем виде:
Ма:
1 - ■ ■ х II
У1= 0 аи . . а1} . . а11
У5= 0
Ао А . . 5 . . 51
Мс: 1 - . . Xp=-Vt . . -VI
М = 0 сп . . c1í ■ ■ си
^ = М = 0 с 71 . . Cit . . Cil
М = 0 с51
А= А0 & . . 81
Поскольку в таблице Ma в качестве разрешающего выбирается столбец с переменной хд, то, согласно правилу "антизацикливания",/<0,/1>0,...,/_1>0,/:+1>0,...,/>0 (иначе был бы выбран столбец с переменной, имеющей меньший индекс, чем д). Поскольку в таблице Мс в качестве разрешающей выбирается строка с переменной хд, то, согласно правилу "антизацикливания", с,>0, си < 0,...,< 0,сМ1 < 0,..., < 0, gt<0 (иначе была бы выбрана строка с переменной,
имеющей меньший индекс, чем д).
Зафиксируем теперь одно очевидное решение системы линейных уравнений:
W1 = 0 - спУ{ -... - сиу( -... - сиу1,
Ws = 0 - CsiVi - ••• - CstVt - ••• - CslVl / f = f0 -givi -•••-gtvt -•••-8ivi которое соответствует таблице Mc:
vi = ••• = vt-i = vt+i = ••• = v = 0 xp = vt = 1> f = f0 - gtVt = fo - gt, = -cktvt = ckt, k = S
k *s x = w = -cit •
Точку, координаты которой совпадают с этим решением, обозначим а*. Отметим, что все координаты в а*, кроме координаты — си, соответствующей переменной хд, и, возможно, координаты /0 — gt, соответствующей переменной/ неотрицательны.
Точка а* является так же решением равносильной системы линейных уравнений, соответствующей таблице Ма (не забываем, что в таблицах Ма и Мс одни и те же наборы переменных, но обозначенные разными буквами):
у = 0-ад -...-а -...-,
Л = 0 - asiZi - ••• - j - ••• - aüh , f = f0 - fizi - ••• - fjzj - ••• - flZl •
В частности, точка а* удовлетворяет уравнению
/ = /0 - (/^ +... + /]-\2]-\ + /}+12}+1 +... + /1г\) - /]2] из этой системы. Обозначим через ак
координату точки а*, соответствующую переменной zk, к=1, ... ,1. Тогда Zj=xq=Wi и, следова-
*
тельно, а^ =—си. Отсюда имеем:
Л- gt = А - С/а +...+/^а*)-1 + /^а*)+1+...+/1а*)+/J с,< ^ Ла* +... + -а]-{+ /+{а*+{+... + А а* = gt + .
Левая часть последнего равенства неотрицательна, в то время как правая часть отрицательна ввиду gt < 0, /■ < 0, си > 0 . Получено противоречие.
Теперь отметим, что базисные планы, соответствующие разным 5 -таблицам, могут совпадать. Однако при этом будут различны множества номеров их базисных координат. Выше доказано, что в ходе алгоритма БтрЛШ!сус1е ни одна из 5-таблиц не может повториться. Это означает, что все базисные планы, получаемые в процессе этого алгоритма, различаются множествами номеров своих базисных координат. Но поскольку число таких множеств конечно и конечно число базисных планов, то алгоритм завершит свою работу через конечное число циклов. Остальное следует из леммы 2. Теорема доказана.
Теперь приведем необходимые сведения из теории графов. Пусть заданы конечное множество V и множество Е, состоящее из некоторых различных упорядоченных пар элементов
из V. Тогда пара (У,Е) называется ориентированным графом или орграфом; при этом элементы множества V называются вершинами, а элементы множества Е — дугами этого орграфа.
Если пара вершин и и м составляет дугу, то и и м называются концевыми вершинами этой дуги. В дуге (у,м>) вершина V называется началом, а вершина м — концом этой дуги. Иногда удобно говорить, что дуга ^,м>) выходит из V и входит в м. Концевые вершины дуги называются смежными. Смежными будут также называться дуги, имеющие общие концевые вершины.
Пусть дан граф 0=^,Е). Последовательность Р=е1, е2,..., егразличных дуг из Е называются путем длины г в G, если каждая дуга е7 е Р, отличная от первой е1 и последней ег , имеет общие концевые вершины с соседними дугами е7-1 и е7+1 , причем одну с е7-1 , а другую — с е7+1 . Путь Р называется простым, если каждая его дуга е7, отличная от первой и последней, смежна только с двумя дугами этого пути, а именно с соседними е7-1 и е7+1.
Обозначим через 5 концевую вершину первой дуги е1 пути Р, не принадлежащей соседней дуге е2, а через ^ — концевую вершину последней дуги ег пути Р, не принадлежащей соседней дуге ег-1. В этом случае говорят, что путь Р соединяет вершины 5 и ^ или является (5,0-путем. Если вершины 5 и ^ совпадают, то путь Р называют циклом.
Если начало дуги е7, где 7/1,г, принадлежит предшествующей дуге е7-1, а конец — последующей дуге е7+1, то дуга е7 называется прямой в Р, в противном случае е7 называется обратной в Р; прямыми также называются: е1, если 5 — ее начало, и дуга ег , если ^ — ее конец; в противном случае е1 и ег называются обратными в Р. Итак, все дуги пути Р в орграфе G можно разбить на два множества Р и Р - прямых и обратных дуг соответственно. Путь Р, состоящий только из прямых дуг, называется орпутем. В этом случае удобно называть Р орпутем из 5 в Если вершины 5 и ^ совпадают, то орпуть называется орциклом. Орграф, не содержащий орцик-лов, называется бесконтурным.
Пусть дан орграф G=(V,E) с множеством вершин V= } и множеством дуг
Е= {е1,..., ет}. Матрицей инцидентностей графа G называется матрица Л/(0) размера п х т, определяемая следующим образом: в этой матрице на позиции (¡,к) находится элемент а7к , равный
1, если ек выходит из вершины v¡; <¡-1, если дуга ек входит в вершину v¡; 0, в противном случае.
Очевидно, вектор-строки матрицы Л/(0) линейно зависимы, поскольку их сумма равна нулевому вектору. В ряде случаев нам придется удалять строки из Л/(0) с тем, чтобы результирующая матрица имела ранг, равный числу ее строк (такие матрицы будем называть приведенными).
Одновершинный граф называется тривиальным. Граф называется связным, если он либо тривиальный, либо любые две его вершины могут быть соединены путем. Граф Т называется подграфом графа G, если вершины и дуги графа Т являются также вершинами и дугами графа G■ Если при этом множество вершин подграфа Т совпадает с множеством вершин графа G, то Т называется остовным подграфом графа G■
Всякий максимальный связный подграф графа G называется его компонентой связности. Слово "максимальный" означает максимальный относительно включения, т.е. не содержащийся в связном подграфе с большим числом вершин или дуг.
Связный граф без циклов называется деревом, несвязный граф без циклов называется лесом. Если остовный подграф Т графа G является деревом, то Т называется остовным деревом графа G■ Вершина в графе называется листом, если она является концевой вершиной только одной дуги.
Лемма 4 [6]. Любое нетривиальное дерево содержит, по крайней мере, два листа.
Лемма 5 [6]. Пусть Т=^,Е) — дерево; С — единственный цикл графа Т+е, где е — некоторая дуга. Тогда при удалении любой дуги цикла С в Т+е вновь получится дерево с множеством вершин V.
Лемма 6 [6]. Для графа G, имеющего п вершин и т дуг, следующие утверждения эквивалентны: 82
1. G — дерево;
2. G — связный граф и т=п-1;
3. G не содержит циклов и т=п-1;
4. любые две вершины графа G соединены единственным простым путем;
5. G не содержит циклов, и после соединения дугой двух его несмежных вершин вновь полученный граф будет содержать ровно один цикл.
Граф называется двудольным, если множество его вершин можно так разбить на два непересекающихся подмножества, называемых долями, что любые две смежные вершины будут находится в разных долях.
Лемма 7 [6]. Граф является двудольным, если и только если он либо является лесом, либо все его циклы состоят из четного числа дуг.
Основные результаты
Пусть имеется р пунктов щ,...,ир производства однородной продукции, причем объем производства в пункте и7 равен а7, / =1,., р. Вся произведенная продукция потребляется в q пунктах , причем спрос в пункте мк составляет Ьк , к = 1,., q. Предполагается выпол-
нимость балансового соотношения: а1+...+ар = Ь1+.+Ьч. Известны стоимости - тарифы - й7к перевозок единицы продукции из пункта и7 в пункт мк . Транспортная задача по критерию стоимости состоит в нахождении такого плана перевозок из пунктов производства в пункты потребления, который не допускает затоваривания, удовлетворяет весь спрос и при этом минимизирует суммарную стоимость перевозок. Транспортная задача является частным случаем задачи об оптимальном потоке. Однако ее специфические особенности открывают более эффективный и наглядный путь к решению задачи с помощью графовой модификации симплекс-метода. Запишем теперь транспортную задачу по критерию стоимости, как задачу ЛП:
А(х) = -ВХ1 ^ тах
на множестве планов (8)
< Лф )ХТ = С, [X > 0,
где Х = Х12 , ^ , Х21 , Х2д ,■■■, xpl,■■■, х„ К В = О^ , ^21 , ..., ^ ^dp1,■■■, ^ ),
СТ = (а1,...,ар, —Ь1,..., -Ь,) , а1 +... + ар = Ь1 +... + Ьч, т = р + q — 1, Л/(0) — матрица инцидентно-стей двудольного орграфа G=(UЖ, Е) с долями и= {^1,...,ир } и Ж= \м1,...,мч } и с множеством дуг Е={(и/,мк), ¡=1,.,р, к=1,.,q}.
Условимся, что столбцы и строки матрицы инцидентностей Л/(0) расположены в соответствии со следующим порядком дуг в Е и вершин в и^ Ж:
Е = {(1,1), (1,2),..., (1, q), (2,1),..., (2, q),..., (р,1),..., (р, q )},и = {ц^и }
(всюду под записью (/,к) подразумевается дуга (им)).
Столбец или строка произвольной матрицы М, соответствующей переменной х/к , будут соответственно называться </,к>-столбцом или </,к>-строкой и обозначатся М<1,к> или М<г>к> соответственно. Индексом или номером переменной х/к считается пара (^к).
При использовании двойной индексации, например, в переменных х/к или координатах ак , фраза "индекс (/,к) меньше индекса (г,/)" будет означать либо /<г, либо /=г, к</.
Лемма 8 [6]. Ранг матрицы Л/(0) в задаче (8) равен т, причем любые т строк этой матрицы линейно независимы.
Известно, что множество планов в задаче (8) не пусто. Поэтому ранг расширенной матрицы (Л/(О) , С) равен рангу т матрицы Л/(0). Следовательно, одно из уравнений в системе уравнений Л/ [&)-ХТ = С избыточно, т.е. является следствием других. По лемме 8 любые т
строк матрицы Лг(О) линейно независимы. Поэтому в качестве избыточной можно взять любую строку в (Лг(О) , С). Условимся, что это будет последняя строка, соответствующая вершине wq.
Через Л и С будем обозначать матрицы, полученные из Л=Лг^) и С соответственно удалением последней строки. Таким образом, вместо задачи (8) можно рассматривать эквивалентную с тем же многогранником планов задачу
/(х) = -ВХТ ^ тах
на множестве планов (9)
Г лхт = С,
[ X > 0
(здесь ранг т матрицы Л равен числу ее строк).
Пусть В — некоторый набор двойных индексов. Через Мв обозначим подматрицу матрицы М, составленную из всех таких столбцов М<'к>, для которых (г,к) е В. Графом ТВ, индуцированным набором В, назовем двудольный орграф с долями и={и1,...,ир} и содержащий дугу (г,к), если и только если (г,к) е В.
Лемма 9. Пусть а — план задачи (9) с не более, чем т положительными координатами, В(а) — некоторый набор из двойных индексов, содержащий номера всех положительных координат плана а . Тогда а — базисный план с множеством номеров базисных координат В(а) , если и только если ТВ(а) — дерево.
Доказательство. Предположим, что ТВ(а) не является деревом. Тогда по лемме 6 орграф ТВа содержит цикл, поскольку число дуг в нем на 1 меньше числа вершин. Пусть это будет цикл (г,/),(/ +1,/),(/ +1,г + 1),...,(к,к -1), (к, к),(/, к). Из строения столбцов матрицы
л л 4<1 ,г> л<л+\л> , л<Л+\л+\> , 4<к,к> 4<1 ,к>
Л = Лг{и) следует, что сумма Л - Л + Л -... + Л - Л равна нулевому столбцу. А это означает линейную зависимость этих столбцов. Но тогда линейно зависимы все столбцы матрицы ЛВ(а) и, следовательно, столбцы матрицы ЛВ(а) . Поэтому матрица ЛВ(а)
необратима и ввиду этого В(а) не может быть множеством номеров базисных координат какого-либо плана задачи (9).
Предположим теперь, что ТВ(а) — дерево, но столбцы матрицы ЛВ(а) линейно зависимы. Тогда найдутся ненулевые числа Я^ ,., Ягк такие, что
0 = ЯгАЛ 11 +...+ЯаЛ г г , (10)
где В' ={( г1,к1),...,(гг,кг)} ^ В(а), г < т . Так как ТВ, — подграф дереваТВ(а) , то ТВ, - лес. Поэтому в силу леммы 4 в ТВ, найдется лист, отличный от вершины wq . Пусть это будет вершина и^ . Тогда в ЛВ, только <г1,кх>-столбец содержит ненулевой элемент в г1-й строке. Следовательно, (10) может выполняться только при Я^ =0. Противоречие. Таким образом, столбцы в матрице ЛВ(а) линейно независимы. Отсюда В(а) — множество номеров базисных
координат базисного плана а . Лемма доказана.
На лемме 9 основано несколько известных алгоритмов построения базисного плана задачи (9). Приведем один из них.
Алгоритм МтТап/.
Шаг 0. Положить а = (а11,а12,..., а п ) = (0,0,...,0)е ААМ. Задать двудольный граф Н без дуг с долями и = |и15..., ир}, Ж = } Вершинам и/ и мк приписать числа а/ и Ьк
соответственно, обозначив их через d (и/) и d (мк ) и назвав d (и/) и d (мк) весами вершин ui и мк , / = 1,..., р, к = 1,..., q . Перейти к следующему шагу.
Шаг г (г > 1).
1. Если не все вершины имеют нулевые веса, то среди всех таких вершин выбрать пару (и/, мк), которой соответствует минимально возможный тариф dik . Добавить дугу к), положив ее вес равным числу 5 = тт{(и/), d(мк )}. Изменить (/, к) -ю нулевую координату а/к точки а, положив ее равной 5 . Изменить также веса вершин и/ и мк, положив их соответственно равными d (и/) — 5 и d (мк ) — 5. Перейти к следующему шагу.
2. Если все вершины имеют нулевые веса и г < т +1, то добавить к Н ту дугу к), для которой вершины ui и мк принадлежат разным компонентам связности. Присвоить дуге (/, к)
вес 0 и перейти к следующему шагу.
3. Если все вершины имеют нулевые веса и г = т +1, то алгоритм завершает работу и точка а является искомым базисным планом задачи (8).
Теорема 2. Точка а, построенная алгоритмом МтТапА к моменту завершения его работы, является базисным планом задачи (8).
Доказательство. Первоначально суммы весов вершин долей и и Ж равны между сор q
бой, поскольку ^ а/ = ^ Ьк . Затем на каждом шаге эти суммы уменьшаются на одинаковую
/=1 к=1
величину, причем по меньшей мере на одну вершину с нулевым весом становится больше. По завершению алгоритма сумма весов вершин хотя бы одной из долей должна стать нулевой. Следовательно, таковой будет и сумма весов вершин другой доли. Это означает выполнимость ограничений по предложению и спросу для построенной алгоритмом точки а. Таким образом, а — план задачи (9).
Докажем, что в процессе работы алгоритма не могут появляться циклы. Предположим, что еще до того момента, когда веса всех вершин станут нулевыми, на каком-то шаге алгоритма граф Н содержит простой цикл (/,/), (/ + 1,/), (/ + 1,/ + 1), ..., (к,к), (/,к). Так как в цикле все дуги равноправны, то не теряя общности можно считать, что именно дуга (/, /) появилась в Н раньше других дуг этого цикла. Сразу после появления дуги (/, /) вес по крайней мере одной из вершин и/, станет нулевым. А это означает, что на последующих шагах ни одна из добавляемых дуг цикла уже не может иметь концевой эту вершину, т. е. появление хотя бы одной из дуг (/ + 1,/), к) невозможно.
Противоречие.
Не могут появиться циклы и после обнуления весов всех вершин, поскольку на каждом последующем шаге (если таковые будут) добавляется дуга с концевыми вершинами из разных компонент связности.
Таким образом, по завершению алгоритма граф Н не содержит циклов и имеет т дуг и т +1 вершин, т.е. по лемме 6 является деревом. Если обозначить теперь через множе-
ство номеров координат а/к плана а , соответствующих дугам (/, к) построенного алгоритмом дерева Н , то Н = ТБ(а.). Отсюда в силу леммы 9 а — базисный план. Теорема доказана.
Предположим, что построен начальный базисный план а задачи (9) с множеством В номеров базисных координат. Запишем в матричном виде (см. (9)) начальную 8-таблицу, которой соответствует план а:
1 - XN
- АвС ЛвЛN
I - - П С DN - ПЛN
(11)
где N — множество номеров свободных переменных, ав = Лв- С, П = Ов ■ Лв .
Рассмотрим теперь двудольный орграф Тв, который в силу леммы 9 является деревом.
Согласно лемме 6, любые две вершины в ui, wk в дереве Тв можно соединить единственным
простым (, wk )-путем, который обозначим Рк.. Зададим некоторый порядок дуг в дереве Тв и определим матрицу Р размера т х (рд), строки которой соответствуют дугам дерева Тв , а столбцы — путям Р к : элемент на пересечении (/, г) -строки и (/, к) -столбца равен 1, если дуга ((, г) — прямая в Рк , равен — 1, если дуга (/, г) - обратная в Рк ,и равен 0, если Рк не содержит дуги ((, г).
Возьмем, к примеру, произвольную свободную переменную х к , т. е. к) е N и, следовательно, к) не является дугой в Тв . Не теряя общности, можно считать, что
Рк = I), ( +1,1), ( +1,1 +1),...,(к,к -1), (к,к)
Тогда (/, к) -столбец Р^ к) в матрице (при соответствующей перестановке строк) имеет вид
(Ь ^
Р
к >
Ь
2 + 1,2
к ,к-1
к ,к
0 0
ч у
Лемма 10.
Р - Л Л
1 N ^в ^LN ■
(1 ^ - 1 1
-1 1
0
V0 У
(12)
Доказательтво. Матрица инцидентностей Л/(Рк) пути Рк имеет следующий вид (нулевые строки здесь опускаются):
/)(/ +1, /)(/ +1,1 +1)................(к, к - 1)(к, к)
Ь
Г1 0 -1 -1 011
0 ^ ut w.
г
u..,,
-1 -1 0 11 0 -1
w
k-1 Uk
w
k
Так как Ai(Pik) составлена из столбцов матрицы AB, соответствующих дугам пути P.k
то ввиду (12)
ABP<<а > = A.( Pk) PN
Г1 ^
0 -1 0
w.
w,,
=A
<.,k > N •
V0 у •
откуда АВРМ = Ам ^ АВРМ = Ам ^ Рм = Ав1А. Лемма доказана.
Приведем теперь графовое описание всех тех процедур, которые встречаются в ходе выполнения алгоритма БтрАпИсус1е. Предположим, что в /-строке ¿-таблицы (11) имеется отрицательный элемент, расположенный в столбце с переменной хк , (/, к) е N. По лемме 3 этот
столбец совпадает с Р^'к > (считаем, что он имеет вид (11)). Таким образом, можно выделить
1 - Xk
Хгг = a.. 1 1 1
Хг +1,. = a i+1,i -1
Хг+1,г+1 = a г+1,г+1 1
Xk ,k-1 = a k ,k-1 -1
Xkk = a kk 1
0
0
f =
0
0
0
0
0
u
0
u
k
Согласно алгоритму SimpAnticycle, необходимо выбрать наименьшее из отношений:
ait ai+i i+i а
b
Ki+1,i+1
— = а ,-= а
b n b
i+1,i +1'
— = а . Пусть, к примеру, наименьшим будет aii . В этом случае
i+1,i+1
kk
kk
в качестве разрешающего берется элемент Ьи = 1 и производится жорданова перестановка переменных хг и хгк. В результате получится новая --таблица, которой соответствует новый базисный план а'. Фрагмент этой ¿--таблицы будет выглядеть так:
1 — Xik
xik = a ii 1
xi+1,i = a i+1,i + a ii 1
Xi+1,i+1 = a i+1,i+1 — a ii -1
Xk ,k-1 = a k, k—1+a ii -1
Xkk = a kk — a ii 1
0
0
f =
Так как новое множество номеров В' базисных переменных совпадает с множеством (В и (г, к))\ {(г, 1)}, то ТВ = ТВ + (,к)-(/,г). По лемме 6 граф ТВ + (г, к) содержит единственный цикл (г,г), (г +1,г), (г +1,г +1).., (к,к -1), (к,к), (г, к). Поэтому по лемме 5 ТВ' — дерево.
Суммируя сказанное, получаем следующий графовый аналог перехода от базисного плана а к новому базисному плану а' (выбор свободной переменной хгк будет описан ниже):
пусть каждой дуге (г,]') дерева ТВ приписан вес, равный координате а ' плана а; среди всех прямых дуг (, wk )-пути Рк выбрать дугу (г') наименьшего веса а ] ; изменить вес дуг (, wk )-пути, прибавив а ' к весам обратных дуг и отняв а ' от весов прямых дуг; удалить дугу (г') и добавить дугу (,к), положив ее вес равным аг].; вновь полученное взвешенное дерево Тв. будет соответствовать новому базисному плану а' . Описанный переход от дерева ТВ к дереву ТВ' назовем жордановым переходом с добавляемой дугой (г,к) и исключаемой дугой
(г' ).
Теперь остается описать процедуру выбора добавляемой дуги (г,к), что соответствует выбору свободной переменной х к в ¿--таблице (11). Согласно алгоритму трАпНсус1е, в ¿--таблице (11) выбирается столбец, отличный от --столбца, с отрицательным элементом в матрице-строке - П Аы , где П = РВ АВ1. Можно избежать обращения матрицы АВ для определения П , решив вместо этого систему
{yl,■■■, ур, , ^ )ав = ВВ (13)
т линейных уравнений с т + 1 переменными при условии, что г = 0, поскольку
(yl'...'Ур,г^...,гд_1,0)Ав = ° ^(Уl'...'Ур,)ав = ° о^...,Ур,zl'...'^_1,0) = Ов Ав1 (здесь А = А1(о)). Систему (з.б) можно записать так:
Г у _ г. = ё ,
I "'г } Г]>
[индекс (г,. )пробегает все дуги дерева Тв. (14)
Известен простой алгоритм ее решения, называемый методом потенциалов.
Алгоритм М&РМеп.
Шаг 0. Вершине м присвоить потенциал г, положив его равным нулю. Перейти к следующему шагу.
Шаг г (г > 1). Если г = т + 1, то алгоритм завершает работу. Если г < т , то выбрать дугу (г.) в Тв такую, что ровно одной из ее концевых вершин присвоен потенциал. Если именно вершине присвоен потенциал г., то присвоить вершине иг потенциал уг, равный г ■ + ё.; если именно вершине иг присвоен потенциал уг, то присвоить вершине г. потенциал м ., равный уг _ ё. . Перейти к следующему шагу.
Лемма 11. После завершения алгоритма Ме1Ро1еп всем вершинам дерева Тв будут присвоены потенциалы, которые будут составлять решение системы (14).
Доказательство. Условимся удалять в конце каждого шага ту дугу дерева Тв , которая выбиралась в его начале. Тогда к концу (г +1) -го шага будет удалено г дуг и образуется лес с г +1 компонентами связности, поскольку удаление дуги из леса увеличивает число компонент связности на 1. Кроме того, все компоненты связности будут содержать ровно по одной вершине, которым уже присвоены потенциалы (это утверждение непосредственно проверяется индуктивно). Таким образом, к началу (т +1) -го шага будем иметь граф без дуг, состоящий из одновершинных компонент связности с присвоенными этим вершинам потенциалами. По построению эти потенциалы будут составлять решение системы (14).
Итогом приведенных выше рассуждений является графовый алгоритм решения транспортной задачи по критерию стоимости - модификация алгоритма 81трАпасус!е.
Алгоритм SimpMainTrans.
Шаг 0. С помощью алгоритма МтТап/ построить дерево Тв , веса дуг которого составляют базисные координаты начального базисного плана задачи (8). Перейти к следующему шагу.
Шаг г (г > 1).
1. С помощью алгоритма Ме1Ро1еп найти решение П системы уравнений (9). Вычислить матрицу-строку DN _ П AN .
2. Если в DN _ П • AN нет отрицательных элементов, то алгоритм завершает работу и план а — оптимальный. Если в DN _ П • AN имеются отрицательные элементы, то выбрать среди них элемент ак с наименьшим индексом (г,к).
3. Произвести жордановый переход от дерева Тв к дереву Тв, с добавляемой дугой (,к) и исключаемой дугой (г,.). Если имеется несколько дуг, которые могут быть выбраны в качестве исключаемых, то предпочтение отдать той, у которой индекс наименьший. Веса дуг дерева Тв, составят базисные координаты нового базисного плана а'.
4. Переобозначить дерево Тв, через Тв, а план а' — через а и перейти к следующему
шагу.
GRAPH ALGORITHM FOR SOLVING TRANSPORT PROBLEMS
Z.A. CHERNIAK, A.A. CHERNIAK Abstract
A graph algorithm for solving transport problems of cost criterion is described. Owing to graph nature of the algorithm the traditional division of transport problems into degenerate and nonde-generate cases are overcame and mathematical proofs are simplified. The offered approach can be used in teaching mathematical programming.
Литература
1. Костевич Л.С. Информационные технологии оптимальных решений. Мн., 1999.
2. Исследование операций в экономике / Под ред. проф. Кремера Н.Ш. М., 2000.
3. Кузнецов А.В., Холод Н.И. Математическое программирование. Мн., 1984.
4. Ашманов С.А. Линейное программирование. М., 1981.
5. Кузнецов А.В., Сакович В.А., Холод Н.И. Высшая математика: математическое программирование. Мн., 1994.
6. Черняк А.А., Новиков В.А., Мельников О.И., Кузнецов А.В. Математика для экономистов на базе matched. СПб., 2003.
7. Схрейвер А. Теория линейного и целочисленного программирования. 1. М., 1991.
8. Пападимитриу Х., Стайглиц К. Комбинаторная оптимизация. Алгоритмы и сложность. М., 1985.