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

УДК 62.505

О.В. СЕРАЯ, канд. техн. наук, НТУ "ХПИ"

ПРИМЕНЕНИЕ ПРОЦЕДУРЫ КЛАСТЕРИЗАЦИИ ПРИ РЕШЕНИИ

ЗАДАЧИ КОММИВОЯЖЕРА ВЫСОКОЙ РАЗМЕРНОСТИ С

ИСПОЛЬЗОВАНИЕМ ГЕНЕТИЧЕСКОГО АЛГОРИТМА

Проведено аналіз відомих методів розв’язання задачі комівояжера. Для ефективного вирішення цієї проблеми великої розмірності запропоновано використання генетичного алгоритму з попередньою кластеризацією пунктів призначення.

The analysis of the known methods decision of traveling salesman task is conducted. For the effective decision of this largeness task is suggested to use a genetic algorithm with preliminary procedure of cluster analysis of setting points.

Введение. Анализ методов решения задачи коммивояжера. Одной из важных задач транспортной логистики является так называемая задача коммивояжера. Суть задачи проста. Бродячий торговец должен посетить n пунктов назначения, переезжая из одного пункта назначения в другой. Маршрут должен быть составлен так, чтобы он охватывал все пункты назначения, но не проходил через один и тот же пункт дважды. Расстояния между пунктами считаются известными. Задача состоит в отыскании кратчайшего маршрута.

Проблема коммивояжера может быть успешно решена непосредственно, если количество пунктов назначения невелико. Принципиальной особенностью задачи коммивояжера является то, что при увеличении числа пунктов вычислительная сложность ее решения существенно и быстро возрастает, и для некоторой размерности задачи она уже не может быть решена за приемлемое время (или будет решена, но не оптимально). Известные методы решения: комбинаторный перебор, использование теории графов, метод ветвей и границ, аналитический.

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

Задача коммивояжера в терминах теории графов формулируется следующим образом [1]. Пунктам назначения соответствуют вершины графа, а его дугам приписываются расстояния между соответствующими вершинами.

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

Эта задача была впервые исследована Део и Хакими, давшими ее формулировку на языке линейного программирования. Для полного графа с п вершинами эта формулировка содержит п(п +1) переменных и п(п + 3) / 2 +1 ограничений. Кроме того, вводится большое число ограничений, обеспечивающих связность маршрута, которые затруднительно сформулировать явно. Этот метод, безусловно, более эффективен, чем полный перебор, однако и его применение реально лишь для задач очень небольшой размерности (п < 10-12).

Другой подход, использующий идеи линейного программирования [2, 3], реализуется следующим образом. Введем набор булевых переменных

1=1 ]=1

есть длина маршрута для выбранного плана переездов X. На матрицу X = (Хц) должны быть наложены ограничения

Система ограничений (2) обеспечивает построение маршрута, в котором въезд в каждый пункт осуществляется один раз. Система ограничений (3), в свою очередь, обеспечивает построение маршрута, в котором выезд из каждого пункта осуществляется один раз. К сожалению, эти ограничения оказываются недостаточными, так как среди допускаемых ими решений имеются маршруты, не образующие полный цикл, включающий все пункта. Можно показать, что устранение всех подциклов обеспечивается при добавлении системы ограничений

Таким образом, исходная задача сведена к задаче линейного целочисленного программирования. Для решения линейных целочисленных задач существуют специальные алгоритмы, в частности, алгоритм Гомори [4].

1, если коммивояжер из пункта I переезжает в пункт ] , 0 в противном случае.

Зададим матрицу (С ц) расстояний между пунктами. Тогда

П П

П

П

и і — и у + пХу < п -1, і = 2,3, у = 2,3, ...,п .

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

Одним из наиболее эффективных методов решения задачи коммивояжера является метод «ветвей и границ» [5 - 7]. Метод основан на итерационном отсечении бесперспективных вариантов построения маршрута. Вычислительную трудоемкость (продолжительность) решения задачи коммивояжера этим методом можно оценить в условных единицах (одна единица соответствует перебору 106 вариантов). Приведем экспериментально полученную таблицу трудоемкости решения задачи от ее размерности.

Таблица 1

Зависимость продолжительности решения от размерности задачи

Кол-во пунктов 3 4 5 6 7 8

Продолжительность, у.е. 0.14 0.19 0.26 0.34 0.73 1.41

Количество пунктов 9 10 11 12 13

Продолжительность, у.е. 6.67 24.24 167.88 774.25 2125.5

Экспоненциальный характер зависимости продолжительности решения задачи от ее размерности позволяет использовать для ее описания модель

Т = ао еа1П

Параметры модели (а0, а) легко отыскиваются. Логарифмируя (4) и переходя к новым переменным, получим

у = а0 + ап; у = 1пТ ; а0 = 1па0; а = а •

Теперь формируем функционал наименьших квадратов 3 = (ИЛ - У )Т (ИЛ - У);

( 1 п1 ^ ' 1п Т '

1 П2 ; а -(а;) ; у = 1п т2

1 п_ 1п Тт

V т ) V т)

минимизация которого дает вектор А оценок параметров уравнения регрессии (5):

А = (НТН)-1 НТУ •

- Г-6.76 |

Для исходных данных, помещенных в табл. 1, имеем / = I I, откуда

Т (п) = 0.0012 е107п.

Ясно, что и этот метод не может быть использован для задач реальной размерности.

Цель работы: исследовать возможность решения задачи коммивояжера с помощью интенсивно развивающейся технологии генетических алгоритмов [8 - 10].

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

Известные процедуры в результате применения стандартных операторов (рекомбинация, мутация и т.д.) приводят к получению особей, значительная часть которых - «инвалиды», соответствующие маршрутам, не удовлетворяют требованиям. В связи с этим существенная часть времени работы алгоритма расходуется непроизводительно. Тем не менее, генетические алгоритмы реализуют, по-видимому, наиболее эффективный подход к решению комбинаторных задач. В табл. 2 приведены экспериментально полученные данные относительно продолжительности решения задачи коммивояжера разной размерности.

Таблица 2

Зависимость продолжительности решения от размерности задачи

Количество пунктов 10 18 26 34

Продолжительность, у.е. 1,02 11,1 31,2 56,3

Количество пунктов 42 50 58 66

Продолжительность, у.е. 126,7 205,3 275,6 396,8

Для описания соответствующей зависимости введем степенную модель

Т

Логарифмируя (6) и переходя к новым переменным, получим

у = Р0 + Р12 ; у = 1пТ; 2 = 1пп ; р0 = 1пЪъ Рх = Ъх.

Формируем функционал наименьших квадратов

Ух =

^ 1 1п(п ) ) ' 1п Т '

н 1 = 1 1п(и2 ) ч 1 1п(пт )V ; в=& ) ; г = 1п Т2 ч 1п Тт V

Минимизация (8) дает вектор В оценок параметров регрессии (7):

5 = (ИИГ1 НТХУ .

Для исходных данных табл. 2 имеем

T (п) = 0.0014 х3025.

Таким образом, генетический алгоритм решения задачи коммивояжера на много порядков более эффективен, нежели любой другой известный алгоритм решения ИР -полных задач. Предельная размерность задачи для этого алгоритма 60-70 пунктов назначения. Вместе с тем, приближенное решение этой задачи очень хорошего качества возможно получить даже для случая существенно более высокой размерности в результате применения комбинации «кластеризация - генетический алгоритм». Предлагаемая при этом технология решения задачи коммивояжера является четырехэтапной.

На первом этапе все множество пунктов назначения с использованием какого-либо алгоритма кластеризации разделяется на совокупность кластеров

Е1 = {г11, г12, ...,г1и1}, Е2 = {г21, г22, ...,г2и2 } , •••, Ет = {г'т1> im2,...,imnm } . Для

каждого кластера отыскиваются координаты центров тяжести, определяющие в совокупности набор точек Мх = (Хц1 , Гщ), М2 = (ХЦ2, Гц2) , ...,

Мm = (Хцт, Гцт ).

На втором этапе для точек М15 М2,...,Мт с использованием генетического алгоритма строится кратчайший маршрут их обхода {М, ,М, ,...,М, }.

1 Л ’ Л ’ ’ ,т>

На следующем этапе для каждой пары «соседних» кластеров отыскивается пункт выхода из предыдущего кластера и пункт входа в последующий. Пусть, например, номер предыдущего кластера - кх, а номер

следующего за ним в порядке обхода - к2. Тогда пара «номер пункта I(вых) выхода их кластера к1 и номер пункта Iвхода в кластер к2» определяется из соотношения

(/?ых)’кхУ) = агётгп{^(/к1,1, 1к2*2)} ,

*2^Мк2

где Я^к5, ^ ) - расстояние между 51-м пунктом из кластера к1 и 5 2-м

пунктом из кластера к 2 .

Наконец, на последнем, четвертом этапе решается последовательность задач коммивояжера для каждого из кластеров Еъ Е2,...,Ет с учетом полученных на предыдущем этапе начального и конечного пунктов. В результате будет получена последовательность маршрутов

{/(вх), ь 1,.../вых)}, {/(вх). л 2..../вых)}, ..., {/(вх), л 2,..../(вь;х)}.

^Л.1’ ЛД’ ’ М * 1 /2.1 ’ Л.2’ ’ /212 1 /тД 'т,2’ ’ /т1т

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

T(n) = T (m) + ^T (nk ).

k=1

Оценку q порядка выигрыша в продолжительности работы, получаемого при использовании приближенного алгоритма, можно определить, если положить, что п пунктов назначения разбиты на 4п кластеров по 4п

пунктов в каждом. Тогда T (n) = (4n + 1)T(4n ).

„ t (n) n3025 (4nfm5

При этом q = -------= —;=-------;=------=-----T=-----» n.

T

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

Список литературы: 1. Берж К. Теория графов и ее применение. - М.: ИИЛ, 1962. - 319 с.

2. Корбут А.А., Финкельштейн Ю.Ю. Дискретное программирование. - М.: Наука, 1969. - 392 с.

3. Ковалев М.М. Дискретная оптимизация. - Минск: Изд. Бел. ун., 1977. - 238 с. 4. Гомори Р.Е. Бомоль У. Дж. Целочисленное программирование и оценки. - Новосибирск: СО АН СССР, 1962. -198 с. 5. Литтл Дж., Мурти К., Суинни Д., Кэрел К. Алгоритм для решения задачи о коммивояжере // Экономика и математические методы. - 1965. - Т. 1. - № 1. - С. 34 - 48. 6. Корбут А.А., Сигал И.Х., Финкельштейн Ю.Ю. Метод ветвей и границ // Math. Operat. аnd Statist. Set. Optim. - 1977. - Т. 8. - N° 2. - С. 283 - 290. 7. Михалевич В.С., Трубин В.А., Шор Н.З. Оптимизационные задачи производственно-транспортного планирования. - М.: Наука, 1986. -259 с. 8. Holland J.H. Adaptation in Natural and Artificial Syrtems. - University of Michigan Press, 1975. - 98 p. 9. Лысенко Ю.Г., Иванов Н.Н., Минц А.Ю. Нейронные сети и генетические алгоритмы. - Донецк: ООО «Юго-Восток», 2003. - 265 с. 10. Koza J.R. Genetic Programming. - MIT Press, 1994. - 134 p.

Поступила в редакцию 3.04.2006