Math-Net.Ru
Общероссийский математический портал
В. А. Бондаренко, Неполиномиальная нижняя оценка сложности задачи коммивояжера в одном классе алго- ритмов, Автомат. и телемех. , 1983, выпуск 9, 45–50
Использование Общероссийского математического портала Math-Net.Ru под- разумевает, что вы прочитали и согласны с пользовательским соглашением http://www.mathnet.ru/rus/agreement
Параметры загрузки:
IP: 118.70.116.132
6 ноября 2022 г., 06:25:35
У Д К 519.6
НЕПОЛИНОМИАЛЬНАЯ НИЖНЯЯ ОЦЕНКА СЛОЖНОСТИ З А Д А Ч И КОММИВОЯЖЕРА В О Д Н О М КЛАССЕ АЛГОРИТМОВ
БОНДАРЕНКО В. А.
(Ярославль)
Предлагаются эффективные нижние оценки трудоемкости д л я широ
к и х классов алгоритмов решения дискретных задач оптимизации типа задачи коммивояжера.
1. Введение
При управлении дискретными объектами часто возникают задачи оптимизации комбинаторного типа. Для одних задач дискретной оптими
зации получены эффективные алгоритмы решения, для других же, к числу которых относится и задача коммивояжера, все известные алгоритмы х а рактеризуются значительной трудоемкостью их реализации. Так, например, время реализации алгоритма Беллмана [1] для задачи коммивояжера
растет экспоненциально по числу городов. Можно считать установленным, что возможность построения эффективного алгоритма для той или иной задачи дискретной оптимизации зависит от свойств многогранника, опре
деляемого задачей (см., например, [2, 3 ] ) .
В статье определяется класс прямых линейных алгоритмов решения дискретных экстремальных задач, представителями которого являются симплекс-метод, варианты метода динамического программирования, раз
нообразные реализации метода ветвей и границ, «жадный» алгоритм, алго
ритмы сортировки, целочисленного программирования и другие. У с т а н а в ливается зависимость трудоемкости алгоритма этого класса от плотности
графа многогранника задачи. Показывается, что трудоемкость любого пря
мого алгоритма решения несимметричной задачи коммивояжера оцени
вается снизу величиной k2°>
5l/n, где п — количество городов, / c ^ c o n s t X ) .
2. Линейные алгоритмы
Широкий класс задач дискретной оптимизации допускает следующую общую постановку. '
В пространстве R
mзадан конечный набор векторов X. Требуется для произвольного вектора c^R
mисходных данных найти х*^Х\ для которого
линейная форма (х, с) принимает минимальное значение.
Подчеркнем, что для вектора* c^R
mне предполагается никаких дополни
тельных ограничений. Рассматривая всевозможные векторы c^R
m, получим набор однотипных задач, имеющих общее множество X допустимых векторов. Совокупность всех таких частных задач вполне определяется множеством X. Всю эту совокупность будем называть задачей X. Частную же задачу с вектором с исходных данных обозначим [X, с].
К описанному виду сводятся задача выбора из т чисел наименьшего;
задача сортировки; задача о назначениях; задача о кратчайшей связываю
щей сети; задача коммивояжера; задача линейного программирования с ограниченным множеством планов; задача целочисленного программиро
вания с конечным множеством планов. В различных случаях характер задания множества X оказывается в разной степени явным. В задаче о на
значениях роль множества X играет множество всех матриц перестановок
одного порядка, в задаче линейного программирования — множество вер
шин многогранника планов и т. д.
«Линейный» характер сформулированной задачи, а также простой ана
лиз известных алгоритмов для конкретных задач позволяют дать описание достаточно общей процедуры, направленной на решение задачи. Сначала приведем «грубое» описанце этой процедуры.
Пусть [ X , с] — некоторая частная задача. На первом шаге выбирается некоторый линейный функционал (вектор) f^R
mи вычисляется знак формы (Д, с). На втором шаге выбирается новый функционал /
2(выбор, вообще говоря, зависит от исхода первого шага), вычисляется sgn ( /
2, с ) и т. д. Выбор функционала f
kна &-м шаге зависит от исходов предыдущих шагов. Процесс заканчивается, если по полученной информации о знаках
значений форм удается указать минимизирующий вектор
Формализация описанной грубой схемы приводит к следующему опре
делению класса алгоритмов, которые назовем линейными (см. также [ 4 ] ) . Определение 1. Линейным алгоритмом (решения) задачи X называется направленное дерево, обладающее следующими свойствами:
а) полустепень захода каждой вершины (за исключением одной — кор
ня) равна единице, полустепень захода корня равна нулю;
б) полустепень исхода каждой вершины равна либо двум (в этом слу
чае вершина называется внутренней), либо нулю (для концевой вер
шины) ;
vв) каждой внутренней вершине соответствует некоторый линейный функционал в R
m;
г) каждой концевой вершине соответствует некоторый вектор из мно
жества X;
д) для каждой внутренней вершины одна из исходящих дуг помечена символом 1 (sgn d = l ) , другая символом—1 ( s g n d = — 1 ) ;
е) для каждого пути Д й
4. . . fid
tx, начинающегося в корне и оканчи
вающегося в концевой вершине, для любого c^R
mиз неравенств (Д, c)sgnd
h>0 ( U = 1 , . . . , Z )
следуют неравенства
(х-у, с)<0 (у^Х).
Линейный алгоритм задачи X служит для решения любой частной за
дачи [ X , с ] , при этом каждому вектору исходных данных соответствует некоторый путь, ведущий из корня в концевую вершину. Работа линей
ного алгоритма заключается в последовательном прохождении этого пути вплоть до искомого вектора х^Х. Переход в новую вершину происходит по дуге, помеченной 1, если значение последней вычисленной формы по
ложительно, и по дуге, помеченной — 1 , если это значение отрицательно.
Если же вычисленное значение равно нулю, то можно переходить к .новой вершине по любой из двух исходящих дуг.
Естественно рассчитывать, что методы решения задачи X должны быть связаны с характером взаимного расположения точек множества X.
Обозначим через Р(Х) выпуклую оболочку множества X:
Р(Х)=соХ.
Множество X вершин (крайних точек) многогранника Р(Х) является подмножеством множества X. При любом c^R
mхотя бы одно решение частной задачи [ X , с] принадлежит X, Поэтому в дальнейшем предпола
гается, что Ж=Х. Последнее равенство выполняется, например, если все векторы множества X имеют одинаковые нормы.
Определение 2. Две точки х, у^Х назовем соседними, если соединяю
щий их отрезок является ребром (одномерной гранью) многогранника Р ( Х ) , т . е.
со{я, у}Г\со(Х\{х, z/}) = ф.
Пусть А — линейный алгоритм, а / — линейный функционал. Б у д е м
писать f^A, если соответствующий некоторой внутренней вершине алго
ритма А функционал g удовлетворяет равенству f=kg при к¥=0.
Теорема 1. Пусть х
±и х
2~ соседние точки множества X. Тогда для лю
бого линейного алгоритма А задачи X справедливо включение
(1) (xt-x
2)e=A
(здесь функционал отождествляется с порождающим его вектором).
Доказательство теоремы дано в приложении.
3. Прямые алгоритмы
Определенный выше класс линейных алгоритмов широк по сравнению с множеством реальных (т. е. используемых на практике) алгоритмов, осуществляющих линейные сравнения. Действительно, обеспечение в ы полнения условия е) в определении 1 может быть связано с принципиаль
ными вычислительными трудностями и трудоемкость реализации алгорит
ма из-за этого окажется неприемлемо высокой. Анализ известных алго
ритмов, применяющихся для решения дискретных задач оптимизации, позволяет указать условие, которому удовлетворяют реальные линейные
алгоритмы, и выделить соответствующий класс прямых алгоритмов.
Определение 3. Прямым алгоритмом задачи X назовем такой линей
ный алгоритм, у которого условие е) заменено более жестким:
e i ) для любого пути Д й
4- . . . /Дж, начинающегося в корне и оканчиваю
щегося в концевой вершине, и для любого соседнего с х, найдется такой функционал Д (Kk^l), для которого условия (Д, с) sgnd
k>0 и (у—z, с ) < 0 (z^X) несовместны.
Условие €i) означает, что допустимый вектор у^Х исключается из числа претендентов в результате одного из проведенных в ходе работы алгоритма сравнений. Алгоритмы, перечисленные во введении, являются прямыми.
4..Нижние оценки сложности задачи в классе прямых алгоритмов
Пусть X — некоторая задача, А — линейный алгоритм этой задачи.
Естественной мерой сложности алгоритма А служит величина S(A)
iрав
ная длине наибольшего пути в алгоритме, где под длиной пути понимается число содержащихся в нем дуг, т. е. число сравнений, используемых на этом пути. Сложность задачи S„(X) в классе прямых алгоритмов опреде
лим равенством
S
a(X)=mmS(A),
где минимум берется по всем прямым алгоритмам задачи X.
Рассмотрим множества К{х), где х^Х, определенные равенством K(x)={ce=R": (
х-у,с)<0, уе-Х}. '
Каждое множество К(х) является многогранным конусом и представ
ляет собой совокупность таких исходных данных с, для которых данный х является решением частной задачи [ X , с ] . (Подробное изложение теории конусов можно найти в монографии [ 5 ] . )
Следующая теорема устанавливает оценку снизу величины S
n(X).
Теорема 2. Пусть подмножество Y попарно соседних точек множест
ва X удовлетворяет условию: для некоторого y^Y конус
(2) * Ы П ( П со {K(y)UK(z}})
у> е У 1
телесен, т. е. содержит внутреннюю точку. Тогда (3) S4X)>\Y\-1,
где | Г | — число элементов множества Г .
47
Доказательство теоремы дано в приложении.
Обратимся к задаче коммивояжера. Приведем формальную постановку задачи, т. е. определим множество Х=Х
Щгде п — число городов. Для этого рассмотрим полный ориентированный граф g
nс вершинами (городами) 1, 2 , . . . , п. Для каждого гамильтонова цикла в этом графе определим век
тор х^11
п{п-
1)(x=(xij); i, 7 = 1 , . . . , гг; положив # « = 1 , если дуга {£, / } , входит в этот цикл, и хъ=0 в противном случае. Сам цикл также обозначим через х. Множество Х
ппредставляет собой совокупность
(п— 1 ) ! векторов х, заданных описанным способом для всевозможных га- мильтоновых циклов графа g
n. Нормы всех этих векторов равны: ||а:|| =Утг, поэтому Х
псовпадает с множеством вершин многогранника Р(Х
п).
Теорема 3. Множество Х
псодержит подмножество Г , удовлетворяющее условиям теоремы 2, для которого
( 4 ) | У | > 2 ° '
5 ( /« -
9 ).
Доказательство теоремы 3 дано в приложении.
Теорема 4. Сложность несимметричной задачи коммивояжера для тг городов в классе прямых алгоритмов удовлетворяет неравенству
& ( Х
я) > 2 ! '
в ( Л-
в> . .
Эта теорема непосредственно следует из теорем 2 и 3.
ПРИЛОЖЕНИЕ
Доказательство теоремы 1. Т а к как точки х± и х2 — соседние, то найдется такой вектор c0^Rm, для которого при любом х^Х, отличном от xt и х2,
(П.1) (#1, Со) = (х2, с0) < ( я , с0) .
Предполагая, что для некоторого! линейного алгоритма А включение (1) не в ы полнено, можно считать (/, с0)=^0 при любом f^A. П у с т ь W=fidif2d2... - п у т ь в Аг
определяемый вектором с0. Тогда с,0 лежит в открытом конусе (*] {c'(fhc)sgiidi > 0 } .
По условию (П.1) каждое из пересечений Ki(]K(xi) и Kif]K(x2) непусто, что противоречит определению линейного алгоритма.
Доказательство теоремы 2. П у с т ь А - прямой алгоритм задачи X. Обозначим че
рез с0 внутреннюю точку конуса ( 2 ) , д л я которой (/, с0) ^ 0 при любом f^A; через W обозначим п у т ь в А, определяемый вектором с0. Очевидно, концевая вершина п у т и W помечена вектором у0. Покажем, что длина W не меныпе,'чем | Г | — 1.
П у с т ь y^Y, у^уо и пусть / - ф у н к ц и о н а л , соответствующий внутренней вер
шине п у т и И7, д л я которого условия (/, c ) s g n d > 0 и с^К(у) несовместны. Это озна
чает, что / разделяет с0 и К (у); существование такого функционала следует из опре
деления 3. Из формулы, определяющей конус ( 2 ) , и из того, что с0 принадлежит этому конусу, вытекает, что функционал с0 не разделяет с0 и K(z), где z — любой вектор из У, отличный от у и у0. Т а к и м образом, указанное соответствие функциона
лов f^W векторам ye=Y инъективно и, следовательно, S(A)>\Y\—l. Отсюда в с и л у произвольности выбора прямого алгоритма А вытекает оценка ( 3 ) .
Теорема доказана.
Доказательство теоремы 3. Приведем сначала достаточное условие соседства век
торов х, у^Хп.
К а к следует из определения 3, векторы ж, у^Хп не я в л я ю т с я соседними в том и только том случае, когда возможно равенство
(П.2) a s + f c^ y1 l(z)z,
где а , (3, %(z)X), a+$=2X(z)=l и суммирование проводится по всем z^Xn, отлич
ным от х ж у.
П у с т ь выполнено равенство (П.2) и пусть X(z)>0 д л я некоторого z^Xn. Тогда цикл z содержит лишь те дуги, которые входят х о т я бы в один из циклов х либо у;
последнее условие будем обозначать так: z^x\]y. Е с л и дополнительно потребовать, чтобы циклы х ж у имели общую д у г у {&,'/}? т° о на входит и в цикл z; соответствую
щее обозначение: z=>xfly. Е с л и же цикл х имеет д у г у •.{&,./}'• а цикл у — обратную д у г у { / , i } , то одна и только одна из этих дуг входит в цикл z; обозначение: z^x{]y.
Т а к и м образом, справедливо следующее утверждение.
П у с т ь х, у^Хп. Е с л и д л я любого z^Xn, отличного от х и г/, нарушается х о т я бы одно из включений
48
(П.З)
(П.4) z=>x(]y,
(П.5) z=*nfc
то x и у - соседние.
Перейдем теперь к построению множества У, считая вначале, что ra=2(2s+.l)s;, где 5 нечетно.
Вершины графа gn разобьем на четыре группы: {£7ij} ( £ = 0 , 1 , , s ) , {г;^}, (г=1, . . . , s ) ; / может принимать любые целые значения, будем считать прш этом, что Uij(Uij, vn, Vij) совпадает с uit (соответственно с Uu, vit или Vu), если
( m o d s ) .
Введем несколько определений.
Определение 4. Прямым витком Q назовем п у т ь вида ttojo^Ojo^lZi^lZltflji^lji • • • VslsVslsU>83sU8js, где \jr~i—lr I = | / r- * M =1' (г=1, 2 , 5 ) ; обозначение:
&== ( / о , / i , . . . , / « ; J i , . . . , £ « ) •
Определение 5. Обратным витком Q назовем путь, полученный из некоторого*
прямого витка Q заменой всех д у г на обратные; обозначение: Q = - Q .
Определение 6. Виток Q (прямой или обратный) назовем простым, если /o=/i— . . • . . . =/«; обозначение: Q = ± ( /0; Z i , . . . , ls) (знак определяется ориентацией в и т к а ) .
Определение 7. Два витка
'Q=±(/o, / 1 , . . . , / * ; ^ , . . . , Ze) , (fo, fu.. м J * ; ^» • • •»
(знаки перед скобками выбираются независимо) назовем параллельными, если J-j=fi-ji= . . . =fs-js=li-h= ... =ls-ls=q;
обозначение: Q=Qq, если оба витка прямые или оба обратные, и Q=-Qqi если один виток прямой, а другой обратный.
Определение 8. Две последовательности (длины s) | = ( £ o, | i ,. . . , | s- i ) и r j =
= (т]о, T ] i ,. . . , HS- i ) , членами которых служат 1 и —1, назовем существенно различными,, если
(§
2:, Is,.-.., 1.-1,-6о, 10
и (Ч 2, т}з,. • . , ч * - ь Щ,чО^б-
Нетрудно показать, что существует множество М попарно существенно различ
ных последовательностей указанного вида, д л я которого \М\>28~1.
Д л я каждой последовательности определим сначала прямой простой виток Q0= O = ( 0 ; go, . . . , | s- i ) . Рассмотрим далее последовательность витков ioQo,.
61Q1,...,
|s_ i Qs_ i . Замыкая эту последовательность витков, добавив дуги вида {выход витка 6*Йг-, вход витка g2-+ 1Q i+- i } , получим некоторый гамильтонов цикл. Совокупность циклов, определенных таким образом д л я всевозможных |еМ , обозначим через;;
У, Y<=Xn. Докажем, что циклы (векторы) множества У являются взаимно соседними.
Пусть х, y^Y и пусть х определяется последовательностью | , а у- последова
тельностью т]. П у с т ь д л я некоторого г е !п выполняются условия ( П . З ) - ( П . 5 ) . Пока
жем, что z в таком случае совпадает либо с х, либо с у.
Рассуждения проведем в несколько этапов.
а. Докажем, что цикл z составлен из s параллельных витков. Начнем с вершины
&oo. В силу условий (П.4) и (П.5) д у г а цикла ъ соединяет и00 с Uoo. Вершина U00
соединяется с одной из вершин vi-i или 1?ц, и т. д. Переходя по дугам цикла zr. получим таким образом путь, соединяющий вершину и00 с некоторой вершиной USjs..
Из построения видно, что полученный путь я в л я е т с я витком - прямым или обрат
ным; этот виток обозначим (О, / Ч , . . . , /в; h,..., 18) (знаки витков сейчас несуществен
ны, и их опускаем).
Проведем аналогичное построение, начав теперь с вершины и02. В результате получим новый виток вида (2, /4, . . . , /s; f i , ...ДО- Разность q=h—li равна, как нетрудно проверить, двум. Действительно, q является четным числом, удовлетворяю
щим неравенствам 0 < # < 4 . Но значения 0 и 4 невозможны, так как в первом случае степень вершины vih в цикле z равнялась бы трем, а во втором случае вершина v 2 имела бы степень, равную единице.
Рассуждая по индукции, получим равенства
/ i= • • • •— js— js==ti~li=,.. =Г8—Zs=2, которые означают, что построенные два витка параллельны.
Проводя далее рассуждения, начиная с вершин и04 , Ще и т. д., и используя нечет
ность 5 , получим, что цикл z составлен из s параллельных витков.
б. Докажем, что витки, составляющие цикл z, являются простыми. Рассмотрим виток, проходящий через вершину и0о'. (О, / i , . . . , /в; h,..., 18). Предположим против
ное, т. е. предположим, что этот виток не простой. Это означает, что х о т я бы одно из значений /4, . . . , /в отлично от н у л я . П у с т ь /V^O, но ;r_ i = 0 . Возможными значения
ми для jr являются, очевидно, 2 и - 2 . П у с т ь д л я определенности /г= 2 (второй слу- 49
чай рассматривается аналогично). Тогда цикл z содержит либо д у г и {Ur-i,o] vr-i,i}
и {Vr-u иг2), либо обратные к ним. Из1 условия (П.З) и из построения циклов х и у вытекает, что в каждом из этих двух случаев одна д у г а входит в цикл х, а другая -- в у. Пусть, например, {Ur-iXr * > r - i , i }e* и {Vr-i,t; игг}^у. Тогда 1о=ц2. В силу того, что циклы х, у и z составлены из параллельных витков, выполняются равенства
§ 1 = м з , 62=44, • • • , ё 8-1=Л о» |в-1=Л1» которые означают, что последовательности | и ц не являются существенно различными. Полученное противоречие означает, что витки цикла z простые.
в. Докажем, что витки, образующие цикл z, являются витками только одного из циклов х или у. Рассмотрим /, д л я которого 1^Ц]. В и т к и циклов х и у, проходящие через вершину B0J , имеют противоположные ориентации - один из них прямой, дру
гой обратный. Поэтому виток цикла z, проходящий через э т у вершину, содержит д у г и лишь одного из указанных витков. По доказанному в этаце «а» отсюда следует сде
ланное утверждение.
г. Д л я завершения доказательства остается заметить, что дуги, соединяющие витки цикла я, связывают соседние витки и, следовательно, однозначно определя
ются ориентацией витков. Таким образом, цикл z совпадает либо с циклом х, либо с у.
Докажем теперь, что д л я произвольного у о е Y конус (2) телесен. Д л я этого рас
смотрим подграф | графа gn, включив в него все д у г и вида {щ-3, и1д), {иц, 7г 7} . {Uij, i>i+i,j±i}, {Vij, Ui,j±i} и обратные к ним. Обозначим через с характеристический вектор графа g. Легко установить, что д л я любых у, z e 7 имеем с^К(у) и c=y+z, где у и z — внутренние точки соответственно К(у) и K(z). Отсюда следует справед
ливость утверждения.
Итак, при 7 2= 2 ( 2 s + l ) s , где s нечетно, существует множество Y<=Xn, удовлетво
ряющее условиям теоремы 2, д л я которого | 7 | ^ 2S~1. П у с т ь теперь п — произвольное натуральное число. Рассмотрим максимальное нечетное s, д л я которого 2(2sH-l)s<rc.
«Склеив» т г — 2 ( 2 s + l ) s + l вершину графа • gn, получим граф с 2 ( 2 5 + 1) 5 вершинами, д л я которого проведем описанные выше построения. Полученную конструкцию пере
несем н а исходный граф gn и таким образом установим оценку ( 4 ) . Теорема 3 доказана.
Л И Т Е Р А Т У Р А
1. Беллман Р. Применение динамического программирования к задаче о коммивоя
ж е р е . - В кн.: Кибернетический сб. В ы п . 9 (старая серия). М.: Мир, 1964, с. 219-222.
2. Леонтьев В. К. Дискретные экстремальные з а д а ч и . - В кн.: Теория вероятностей.
Математическая статистика. Теоретическая кибернетика (Итоги н а у к и ) . М.:
В И Н И Т И , 1979, с. 39-101.
3. Емеличев В. А., Ковалев М. М., Кравцев М. К. Многогранники, графы, оптимиза
ция. М.: Н а у к а , 1981.
4. Mordvek J. On the complexity of discrete programming problems.—Aplikace Mat., 1969, v. 14, № 6, p. 442-474.
5. Красносельский M: А. Положительные решения операторных уравнений. М.: Физ- матгиз, 1962.
Поступила в редакцию- 14.VI.1982
N O N P O L Y N O M I A L L O W E R B O U N D O F T H E T R A V E L I N G S A L E S M A N P R O B L E M C O M P L E X I T Y I N O N E C L A S S O F A L G O R I T H M S
B O N D A R E N K O V . A .
Effective lowerbounds are proposed of labor consumption for wide r a n es of algo
rithms whereby digital optimization problems of the traveling salesman type are solved.
.50