Научная статья на тему 'Применение дополнений паросочетаниями для решения задачи Max TSP'

Применение дополнений паросочетаниями для решения задачи Max TSP Текст научной статьи по специальности «Математика»

CC BY
361
70
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ГАМИЛЬТОНОВ ЦИКЛ / ЗАДАЧА КОММИВОЯЖЕРА / ПРИБЛИЖЕННЫЙ АЛГОРИТМ / ПАРОСОЧЕТАНИЕ / ОЦЕНКИ ТОЧНОСТИ / ВЫЧИСЛИТЕЛЬНАЯ СЛОЖНОСТЬ / ВЫЧИСЛИТЕЛЬНЫЙ ЭКСПЕРИМЕНТ / HAMILTON CYCLE / TRAVELLING SALESMAN PROBLEM / APPROXIMATION ALGORITHM / APPROXIMATION RATIO / MATCHING / TIME COMPLEXITY / COMPUTATIONAL EXPERIMENT

Аннотация научной статьи по математике, автор научной работы — Панюков А. В., Тычинин С. А.

Изложен подход к приближенному решению задачи коммивояжера на максимум (MAX TSP), основанный на дополнении частичного тура просочетаниями подграфа открытых вершин. Проведено аналитическое исследование, показавшее, что алгоритм, основанный на непосредственном применении данного подхода, во-первых, имеет вычислительную сложность не более O(n3), n число городов, во-вторых, не улучшает гарантированные оценки точности известных алгоритмов. Предложена модификация алгоритма Сердюкова, имеющая оценку вычислительной сложности O(n3) и наилучшую гарантированную оценку точности. Представлены результаты вычислительного эксперимента, позволяющие выдвинуть гипотезу об асимптотической точности алгоритма для достаточно широкого класса задач.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Matching Supplement Application for Solving MAX TSP

An approach to approximation solving of MAX TSP based on supplementation of partial tours by matchings of the open vertexes subgraphs is presented in the paper. Analytical research demonstrates that this algorithm firstly have time complexity no more than O(n3), here n is the number of towns, and secondly does not improve the guaranteed accuracy ratio of the known algorithms. The modification of Serdukov algorithm with time complexity O(n3) and best known guaranteed accuracy ratio is presented. Computational experiment results cause to anticipate asymptotic accuracy of this algorithm for a broad spectrum of MAX TSP.

Текст научной работы на тему «Применение дополнений паросочетаниями для решения задачи Max TSP»

УДК 519.8

ПРИМЕНЕНИЕ ДОПОЛНЕНИЙ ПАРОСОЧЕТАНИЯМИ ДЛЯ РЕШЕНИЯ ЗАДАЧИ MAX TSP

A.B. Панюков, С.А. Тычинин

Изложен подход к приближенному решению задачи коммивояжера на максимум (MAX TSP), основанный на дополнении частичного тура просочетаниями подграфа открытых вершин. Проведено аналитическое исследование, показавшее, что алгоритм, основанный на непосредственном применении данного подхода, во-первых, имеет вычислительную сложность не более 0(ns), п - число городов, во-вторых, не улучшает гарантированные оценки точности известных алгоритмов. Предложена модификация алгоритма Сердюкова, имеющая оценку вычислительной сложности 0(п3) и наилучшую гарантированную оценку точности. Представлены результаты вычислительного эксперимента, позволяющие выдвинуть гипотезу об асимптотической точности алгоритма для достаточно широкого класса задач.

Ключевые слова: гамильтонов цикл, задача коммивояжера, приближенный алгоритм, паросо-четание, оценки точности, вычислительная сложность, вычислительный эксперимент

Введение

Пусть G = (V, Е) - полный неориентированный граф с множеством вершин V : | F| = п и множеством ребер Е. Пусть для каждого ребра е G Е задан его вес с(е). Для множества ребер Е' С Е будем обозначать с(Е') = YleeE' с(е)- Гамильтонов цикл - это цикл, проходящий через каждую вершину графа ровно один раз. Задача коммивояжера на максимум (MAX TSP) заключается в нахождении в графе G гамильтонового цикла максимального веса.

Подмножество ребер некоторого гамильтонова цикла называют частичным туром. Вершины частичного тура, инцидентные двум ребрам, называют закрытыми, остальные вершины называют открытыми. Подмножество Е' С Е ребер G называется паросочетанием (совершенным паросочетанием), если каждая вершина v € V инцидентна не более (соответственно ровно) одному ребру Е'. Подмножество Е' С Е ребер графа G называется 2-фактором, если каждая вершина v G V инцидентна ровно двум ребрам в Е'. Для отыскания обоих суграфов максимального веса известны алгоритмы с временной сложностью 0(п3) [6, 7].

Будем говорить, что алгоритм имеет оценку точности р, если отношение длины найденного гамильтонового тура к длине оптимального маршрута не меньше р. Рассматриваемая задача МАХ SNP-трудна [4], то есть из существования полиномиальной аппроксимационной схемы (PTAS) для ее решения следует, что Р = NP. Оценки точности лучших на сегодняшний момент алгоритмов для приближенного решения симметрической и метрической МАХ TSP приведены в таблице.

Точность алгоритмов для MAX TSP

Название алгоритма

Оценка точности

Симметрическая TSP

Алгоритм Сердюкова [1] Алгоритм HR1 [9] Алгоритм 61/81 [5]

3/4

25/33 * 61/81 **

Метрическая TSP

Алгоритм Косточки - Сердюкова [8] 5/6

Алгоритм HR2 [8] Алгоритм 17/20 [5]

7/8 ** 17/20 *

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

В данной работе для решения задачи MAX TSP представлены анонсированные ранее алгоритм [3] и модификация алгоритма Сердюкова [2]. Данные алгоритмы предварительно строят специальные частичные туры, а затем их дополняют до гамильтонового цикла паросочетаниями подграфов открытых вершин. Гарантированные оценки точности для алгоритма [3] - 2/3 для симметрической TSP, и 7/9 для метрической. Оценка точности модификации алгоритма Сердюкова - 3/4 для симметрической TSP, и 5/6 для метрической. Вычислительная сложность всех алгоритмов не превосходит величины 0(п3).

Алгоритм дополнения паросочетаниями

В основе разработанного алгоритма лежит идея дополнения частичного тура до гамильтонового цикла ребрами паросочетаний подграфа на открытых вершинах.

Поясним эту идею. Первым шагом алгоритма является построение 2-фактора максимального веса. После этого производится разрыв полученных циклов удалением ребра минимального веса. Далее выполняется процедура дополнения полученного частичного тура паросочетанием максимального веса на подграфе графа G индуцированным множеством открытых вершин этого частичного тура. В результате будет получен 2-фактор с числом компонент связности, по крайней мере, в 2 раза меньшим, чем у первоначального 2-фактора. Алгоритм выполняет указанную процедуру до тех пор, пока очередной 2-фактор не будет иметь одну компоненту связности. В этом случае полученный цикл будет гамильтоновым.

Дадим иллюстрацию применения данного алгоритма. Пусть даны граф G и его частичный тур перед выполнением процедуры такие, как показано на рис. 1 а. Толстыми линиями на рисунке изображен частичный тур, ребра графа не нарисованы, так как предполагается, что граф полный. Вершины, инцидентные менее чем двум ребрам частичного тура (открыты t вершины), изображены на рисунках без штриховой заливки. Теперь стоит задача дополнить текущий частичный тур до гамильтонового цикла, причем сделать это наиболее оптимальным образом.

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

Ь) Граф Н

с) Граф Н и паросочетание (1) Дополненный частичный тур

е) Частичный тур графа (7 после разрыва циклов

Рис. 1

с). Включим ребра, входящие в паросочетание в частичный тур графа (7 (рис. 1 ё), и, если в частичном туре возникнут циклы длины меньше |У((т)|, то удалим из каждого ребро наименьшего веса (рис. 1 е). В результате этой процедуры количество открытых вершин в графе (7 будет уменьшаться, по крайней мере, на величину, равную количеству компонент связности в частичном туре (следовательно, как минимум вдвое). Если в результате еще остались открытые вершины (частичный тур не является гамильтоновым циклом), то следует выполнить эту процедуру еще раз. Приведем формальное описание алгоритма.

Алгоритм А1 (Алгоритм дополнения паросочетаниями).

Вход: полный неориентированный граф О — (V, Е) с весовой функцией с.

Выход: гамильтонов цикл.

Шаг 1. Вычислим 2-фактор максимального веса С = С\,..., С8-

Шаг 2. Если в = 1 вернуть С\.

Шаг 3. Для каждого Сг : г = 1,..., в найти е* = {щ, V*} = а^ тшеес; с(е).

Положить -= Сг \ {вг}.

Шаг 4. Пусть множество 5 = Ц;=1 8{ииЬ{}.

Пусть Н подграф графа (7, образованный вершинами множества Б.

Положить Е(Н) = Е(Н) \ (Ц=1,...,в е*) •

Шаг 5. Найдем в графе Н паросочетание максимального веса М.

Шаг 6. Пусть С = CUM. Обозначить непересекающиеся циклы, образованные ребрами множества С, через С\,..., Cs. Перейти на Шаг 2.

Конец алгоритма.

Вычислительная сложность алгоритма

В наихудшем случае 2-фактор будет состоять из наибольшего возможного числа циклов длины 3, и после разрыва получится [2 • n/3j вершины, которым инцидентно только одно ребро частичного тура (так называемые открытые вершины). В этом случае количество компонент связности частичного тура равно ]_гг/3J. В наихудшем случае в результате одной процедуры построения дополнительного графа количество открытых вершин будет уменьшено лишь вдвое. Так как алгоритм заканчивает работу, когда не останется открытых вершин, то количество выполнения шагов 3 — 5 алгоритма будет не более [log2 [2 • n/3j ]. Поскольку при каждом последующем выполнении шагов 3-5 размерность задачи понижается как минимум в два раза, то время выполнения этих шагов не будет превосходить величины

Таким образом, алгоритм А1 является полиномиальным и при эффективной реализации подзадач нахождения максимальных паросочетаний и 2-фактора имеет вычислительную сложность 0(п3).

Оценка точности алгоритма

Теорема 1. Пусть opt - вес оптимального гамильтонового цикла в неориентированном взвешенном графе G при решении задачи на максимум, аТ - цикл, найденный с помощью алгоритма А1 дополнения подграфами. Тогда выполняются следующее неравенство:

Данная оценка неулучшаема.

Доказательство. Путь С - 2-фактор максимального веса, найденный на шаге 1 работы алгоритма. Тогда выполняется неравенство

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

Неравенство доказано.

Для доказательства неулучшаемости данной оценки рассмотрим граф, изображенный на рис. 2 а. Штриховыми линиями изображены ребра, имеющие вес 0, остальные ребра имеют вес 1. Найденный 2-фактор будет иметь вес 9, а вес,полученного из него частичного тура, равен 6 (рис. 2 Ь). Дальнейшее дополнение частичного тура будет производиться ребрами

flog2l2-n/3ll

k=1

с(С) > opt,

с(Т) > | • opt.

а) Граф G Ь) Частичный тур в G с) Оптимальное решение

Рис. 2

веса 0, следовательно, полученный гамильтонов цикл будет иметь вес 6. В то же время в графе G существует очевидный оптимальный гамильтонов цикл веса 9 (рис. 2 с).

Следовательно, использование алгоритма дополнения паросочетаниями для данного графа может привести к нахождению решения аппроксимирующего оптимальное с коэффициентом 2/3 (6 = 2/3 • 9), а, значит, гарантируемая оценка точности 2/3 неулучшаема. □

Теорема 2. Пусть opt - вес оптимального гамильтонового цикла в метрическом неориентированном взвешенном графе G при решении задачи на максимум, пусть Т - цикл, найденный с помощью алгоритма А1. Тогда выполняются следующее неравенство:

Доказательство. Пусть (иг,у^) - ребро, удаленное из цикла Сг на втором шаге алгоритма. Рассмотрим цикл длины 3, образованный вершинами иг, Vi и го, где го ф Сг. Из неравенства треугольника следует, что

Число вершин в графе Н равно 2з (в - это число циклов в 2-факторе С). Просуммировав по всем го, получим

где с(Н) - сумма весов всех ребер графа Н, а с = Х)г=і с(иг> уг)-

Так как граф Н получен из полного графа удалением в ребер, число ребер в нем равно:

В паросочетание М графа Н входит в ребер, и, следовательно, вес паросочетания будет ограничен снизу следующей величиной:

с(Т) > ^ • opt.

с(щ, w) +c(w,Vi) > c(ut,Vi).

(1)

(с(иг, w) + c(w, Vi)) > (2s - 2) • с(щ, Vi).

(2)

w£V(H),w^Ui,w^Vi

Теперь, просуммировав (2) по всем і, получим:

2 • с(Н) > (2з - 2) • с.

(3)

— s = 2 s(s — 1).

(4)

2

с

(5)

Неравенство (5) получено исходя из того, что граф Н является регулярным со степенями вершин 26' — 2, и, следовательно, множество его ребер может быть разбито на 25 — 2 попарно непересекающихся паросочетания. Значит, в результате выполнения одной процедуры дополнения вес частичного тура Тх до разрыва циклов станет равным

с{Т1)>с{С)-с+С-. (6)

Если образовались циклы, то их разрыв приведет к уменьшению частичного тура на величину не большую, чем с/4, так как даже в худшем случае вес удаленных ребер не будет превышать половины веса построенного паросочетания.

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

^ с с с с с , с с с

С( ) - с(С) ~С+2-4 + 8- -- -~ 2^=1 + 2^ “ с(С) ~ 2 ~ 8 _ “ 2^ (7)

В наихудшем случае 2-фактор С состоит из цепей длины 3 и, следовательно,

с < орЬ/3.

В результате, перейдя в неравенстве (7) к пределу, получим:

с с с с/2 2 2 7

с(Т) >о&-----...- — = о& - 1 _ = ор* - -с > орЬ - -орЬ = -орЬ. (8)

Данный алгоритм может быть эффективно использован вместе со многими другими алгоритмами для дополнения частичного тура до гамильтонового. Продемонстрируем данную технику на примере алгоритма Сердюкова. В оригинальном алгоритме Сердюкова способ дополнения частичных туров до гамильтоновых не регламентируется и, как правило, подразумевается использование жадного алгоритма. С целью сохранения целостности изложения приведем предварительно изложение алгоритма Сердюкова с использованием принятых в статье обозначений.

Алгоритм Сердюкова

Для симметрической задачи коммивояжера одним из лучших алгоритмов является алгоритм Сердюкова с оценкой точности 3/4 [6]. В этом алгоритме используется нахождение максимального паросочетания, и необходимо рассмотреть 2 случая: в графе четное число вершин, либо нечетное.

Алгоритм А2-0 (п - четно, в этом случае может быть найдено максимальное паросо-четание, которое будет покрывать все вершины графа).

Вход: полный неориентированный граф О = (У,Е) с весовой функцией с. |У| - четно.

Выход: Гамильтонов цикл.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Шаг 1. Вычислить максимальный 2-фактор С = Сх,..., С3. Если 5 = 1 вернуть С\.

Вычислить максимальное паросочетание М.

Шаг 2. Для каждого цикла С{, г = 1,...,в переместить из Сг в М ребро, которое сохранит М частичным туром.

Шаг 3. Дополнить С до гамильтонова цикла Т\.

Дополнить М до гамильтонова цикла Тч.

Верннуть больший по весу тур ИЗ Ti иТ2.

Конец алгоритма.

Алгоритм А2-1 (п - нечетно, в этом случае для графа не существует совершенного паросочетания, поэтому после нахождениея максимального 2-фактора и максимального паросочетания необходимо определенным образом изменить эти подграфы и использовать алгоритм, предназначенный для четного размера задачи).

Вход: полный неориентированный граф G = (V, Е) с весовой функцией с. | V| - нечетно.

Выход: Гамильтонов цикл.

Шаг 1. Вычислить максимальный 2-фактор С = Ci,..., Cs. Если s = 1 вернуть С\.

Вычислить максимальное паросочетание М.

Шаг 2. Пусть v° - вершина, не инцидентная никакому ребру из М.

Пусть v° € Ci. Найти ребро ео = {и0, v'} = argталееЕ\Е(С-} е(е).

Пусть ei,e2 € Ci - ребра, инцидентные вершине v°.

Если v1 € С\, то положить Со = С\ и j = 2.

Если v' £ С2, то положить Со — С\ U С2 и j = 3.

В Со \ М выбрать ребра е' € {61,62} и е", инцидентные вершине v'. В случае Со = С\

следует выбрать такое ребро е\ чтобы не образовался цикл через вершину v°.

Обозначить С = во U С \ {е', е"}, М = М U {е', е"}.

Шаг 3. Для i = j,... ,s: Переместить из Сг в М ребро, которое сохранит М частичным туром.

Шаг 4. Дополнить Си М до гамильтоновых циклов Т\ и Г2, соответственно.

Вернуть больший по весу тур между Т\ и Т2.

Конец алгоритма.

Как видно из изложенного в алгоритме Сердюкова, способ дополнения частичных туров до гамильтоновых не регламентируется. Здесь, как правило, подразумевается использование жадного алгоритма. Рассмотрим модификацию алгоритма Сердюкова [2], основанную на дополнении частичных туров до гамильтоновых с использованием паросочетаний подграфов открытых вершин.

Модификация алгоритма Сердюкова

Разработана модификация алгоритма Сердюкова [2], позволяющая получить на каждом графе цикл не меньшего веса, чем с помощью оригинального алгоритма [1].

Изменения по сравнению с алгоритмом Сердюкова следующие:

1. Вычисляется не два, а пять гамильтоновых циклов;

2. Один гамильтонов цикл вычисляется с помощью алгоритма А1;

3. Два цикла получаются дополнением текущих частичных туров Си М до гамильто-нового цикла с помощью жадного алгоритма;

4. Оставшиеся два цикла дополнением текущих частичных туров СиМ до гамильтоно-вого цикла паросочетаниями подграфов открытых вершин.

Алгоритм АЗ-0 (п - четно, в этом случае может быть найдено максимальное паросочетание, которое будет покрывать все вершины графа).

Вход: полный неориентированный граф G = (V,E) с весовой функцией с. |F| - четно.

Выход: Гамильтонов цикл.

Шаг 1. Вычислить максимальный 2-фактор С = С\,..., Cs. Если s = 1 вернуть С\.

Вычислить максимальное паросочетание М.

Шаг 2-1. Положить В — С. Из каждого цикла 2-фактора В удалить ребро минимального веса.

Шаг 2-2. Для каждого цикла С*, і = 1,..., в переместить из Сі в М ребро, которое сохранит М частичным туром.

Шаг 3-1. Дополнить частичные туры С, М и В паросочетаниями графов открытых вершин до гамильтоновых циклов Ті, и Тз соответственно.

Шаг 3-2. Дополнить алгоритмом координатного подъема частичные туры С и М до гамильтоновых циклов Т4 и Т5 соответственно.

Шаг 4. Верннуть больший по весу тур из Ті, Т2, Тз, Т4 и Т5.

Конец алгоритма.

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

Вход: полный неориентированный граф С = (V, Е) с весовой функцией с. |У| - нечетно.

Выход: Гамильтонов цикл.

Шаг 1. Вычислить максимальный 2-фактор С = С%,... ,СЯ. Если в = 1 вернуть С\.

Вычислить максимальное паросочетание М.

Шаг 2-1. Положить В = С. Из каждого цикла 2-фактора В удалить ребро минимального веса.

Шаг 2-2. Пусть г>° - вершина, не инцидентную никакому ребру из М.

Пусть у0 Є Сі. Найти ребро ео = {г>°,г/} = а^ ю.ах.е€Е\Е(С) с(е)-

Пусть еі,е2 Є Сі - ребра, инцидентные вершине г>°.

Если Vі Є Сі, то положить Со = Сі и = 2.

Если Vі € С2, то положить С0 = Сі и С2 и _?' = 3.

В Со \ М выбрать ребра е' Є {еі, е2} и е", инцидентные вершине г/.

В случае Со = Сі следует выбрать такое ребро е', чтобы не образовался цикл через вершину V0.

Обозначить С = ео и С \ {е', е"}, М = М и {е', е"}.

Шаг 2-3. Для і = ¿,... ,в: Переместить из Сг в М ребро, которое сохранит М частичным туром.

Шаг 3-1. Дополнить частичные туры С, М и В паросочетаниями графов открытых вершин до гамильтоновых циклов Ті, Т2 и Тз соответственно.

Шаг 3-2. Дополнить алгоритмом координатного подъема частичные туры С и М до гамильтоновых циклов Т4 и Т5 соответственно.

Шаг 4. Верннуть больший по весу тур из Ті, Т2, Тз, Т4 и Т5.

Конец алгоритма.

Результатом работы алгоритма АЗ является гамильтонов тур Т с длиной

с(Т) > ^орЬ.

Этот факт объясняется тем, что алгоритм основывается на алгоритме Сердюкова с такой оценкой точности и для любого графа находит решение не хуже исходного алгоритма.

Вычислительный эксперимент

Для оценки эффективности алгоритмов был проведен вычислительный эксперимент. Вычисления производились на полных графах со случайными весами, равномерно распределенными на промежутке [0,100] и с числом вершин 10, 20, 40, 80 и 160. Для каждого из указанных числа вершин генерировалось 40 случайных графов.В итоге алгоритм дополне-

-«-Алгоритм Сердюкова

Алгоритм НЯ1

Алгоритм дополнения подграфами

•^Модифицированный алгоритм Сердюкова

10 20 40 30 *60

Число вершин графа

Алгоритм Сердюкова -«-Алгоритм НЯ1

Алгоритм дополнения

Модифицированный алгоритм Сердкжоеа

а)

Ь)

яАпгоритм дополнения подграфами ■ Модифицированный апгоріш Седкжова □Алгоритм HR1

*о гг <0 п 1»

Числе вершин графа

с)

Рис. 3

ния паросочетаниями показал лучшие после алгоритма НШ результаты, опередив на практике алгоритмы с более высокими теоретическими оценками. Лучшие результаты показал модифицированный алгоритм Сердюкова.

На рис. 3 а приведен график средних отклонений от точного решения для каждого алгоритма. В качестве верхней оценки точного решения брался минимум из веса максимального 2-фактора и увдоенного веса максимального паросочетания. Как видно из рисунка, погрешности всех алгоритмов имеют тенденцию к уменьшению с ростом числа вершин, при этом лучшие результаты, в основном, дает модифицированный алгоритм Сердюкова. Только для 80-вершинных графов ему составляет конкуренцию алгоритм НШ.

На рис. 3 Ь приведен график логарифма дисперсии отклонений от точного решения. Из графика видно, что дисперсия погрешности модифицированного алгоритма Сердюкова ниже соответствующей дисперсии алгоритма НШ.

Количество решений максимального веса, найденных каждым из исследуемых алгоритмов представлено на рис. 3 с. Легко заметить, что с ростом размерности частоты нахождения максимального решения модифицированным алгоритмом Сердюкова и алгоритмом НШ примерно равны.

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

Заключение

Предложенный в статье алгоритм приближенного решения задачи коммивояжера на максимум, основанный на дополнении частичного тура паросочетаниями подграфа откры-

тых вершин, имеет вычислительную сложность 0(п3) и оценки точности 2/3 для симметрической MAX TSP и 7/9 для метрической. Несмотря на то, что известные гарантированные оценки не улучшены, вычислительный эксперимент показал, что получаемые данным алгоритмом решения являются одними из самых точных среди приближенных алгоритмов. В связи с этим достаточно эффективной оказалась связка разработанного алгоритма с алгоритмом, имеющим наиболее высокую из известных гарантированную оценку точности -алгоритмом Сердюкова. Предложенная в работе модификация алгоритма Сердюкова по результатам вычислительного эксперимента показала наилучшие результаты среди известных полиномиальных алгоритмов для MAX TSP. Представленью результаты вычислительного эксперимента, позволяют выдвинуть гипотезу об асимптотической точности алгоритма АЗ для достаточно широкого класса задач.

Литература

1. Гимади, Э.Х. О некоторых результатах для задачи коммивояжера на максимум / Э.Х. Гимади, А.И. Сердюков // Дискретный анализ и исследование операций. - 2001. -№ 1. - С. 22 - 39.

2. Панюков, А.В. Исследование реализаций алгоритма Сердюкова для задачи MAX TSP /А.В. Панюков, С.А. Тычинин // Российская конференция «Дискретная оптимизация и исследование операций»: материалы конф. (Владивосток, 7-14 сентября 2007). -Новосибирск, 2007. - С. 132.

3. Тычинин, С.А. Алгоритм дополнения подграфами для решения задачи MAX TSP /С.А. Тычинин // Информационный бюллетень ассоциации математического программирования № 11: Конференция «Математическое программирование и приложения (тезисы докладов)». - Екатеринбург, 2007. - С. 217 - 218.

4. The maximum traveling salesman problem under polyhedral norms /A.I. Barvinok, D.S. Johnson, G. Woeginger, R. Woodroofe // Integer Programming and Combinatorial Optimization. - Berlin, 1999. - P. 195 - 201.

5. Chen, Zh. Improved Deterministic Approximation Algo-rithms for Max TSP / Zh. Chen, Y. Okamoto, L. Wang // Inform. Process. Lett. - 2005. - № 95. - P. 333 - 342.

6. Gabow, H. An Efficient Implementation of Edmonds’ Algorithm for Maximum Matching on Graphs / H. Gabow // J. of the ACM. - 1976. - № 4. - P. 221 - 234.

7. Hartvigsen, D. Extensions of matching theory: PhD Thesis / D. Hartvigsen - Pittsburg, PA: Carnegie Mellon Univ, 1984. - 148 p.

8. Hassin, R.A 7/8 -approximation algorithm for metric Max TSP / R. Hassin, S. Rubinstein // Inform. Process. Lett. - 2002. - JVS 81. - P. 247 - 251.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

9. Hassin, R. Better approximations for Max TSP / R. Hassin, S. Rubinstein // Inform. Process. Lett. - 2000. - № 75. - P. 181 - 186.

Кафедра экономико-математических методов и статистики,

Южно-Уральский государственный университет pav@susu.ac.ru

Поступила в редакцию 27 февраля 2008 г.

i Надоели баннеры? Вы всегда можете отключить рекламу.