ПАРАЛЛЕЛЬНЫЙ АЛГОРИТМ РЕШЕНИЯ ЗАДАЧИ КОММИВОЯЖЕРА C ИСПОЛЬЗОВАНИЕМ РЕКУРРЕНТНОЙ НЕЙРОННОЙ СЕТИ
М. С. Тарков, Г. А. Дугаров Институт физики полупроводников СО РАН им. А. В. Ржанова, 630090, Новосибирск, Россия
УДК 004.032.26(06)
Предложен параллельный алгоритм решения задачи коммивояжера, основанный на применении рекуррентной сети Вана с использованием принципа WTA (winner takes all). Данный алгоритм существенно превосходит метод ветвей и границ по быстродействию и предпочтителен при решении задачи коммивояжера с требуемой точностью в реальном масштабе времени.
Ключевые слова: задача коммивояжера, рекуррентная нейронная сеть, метод ветвей и границ, параллельные алгоритмы.
A parallel algorithm for solving the traveling salesman problem by the recurrent Wang neural network in conjunction with WTA ("Winner Takes All") principle is proposed. This algorithm is essentially better in speed than the branch-and-bound method and preferable when it is necessary to solve the problem in undertime with sufficient accuracy.
Key words: traveling salesman problem, recurrent neural network, branch-and-bound method, parallel algorithms.
Введение. Традиционно используемые последовательные вычислительные технологии не позволяют найти решение задачи дискретной оптимизации большой размерности. Одним из основных методов, применяемых при решении задач дискретной оптимизации, является метод ветвей и границ (метод Литтла) [1, 2]. Древовидная структура этого алгоритма предполагает его параллельную реализацию, поскольку вычисления по различным ветвям дерева могут выполняться независимо. Однако при распараллеливании алгоритма могут возникать различные проблемы, обусловленные большим объемом используемой памяти и необходимостью выравнивания вычислительной нагрузки между процессорами [3]. В то же время массовый параллелизм обработки информации в нейронных сетях [4-12] позволяет рассматривать их как перспективное высокопроизводительное и надежное средство для решения сложных, в том числе оптимизационных, задач. При решении задач дискретной оптимизации наибольший интерес представляют рекуррентные нейронные сети.
Нейропостановка задачи коммивояжера. Задача коммивояжера может быть сформулирована как задача о назначении [10]
n
Cij xij (1)
i=1 j = i
при ограничениях
xij e {0,1},
n
= 1 j = 1 (2)
i=1 n
^ ^ xij 1, i 1, 2,..., j=i
Здесь С- (г = ) - стоимость назначения элемента г в позицию ^, что соответствует перемещению коммивояжера из города г в город ]; х- - переменная решения (если элемент г назначается в позицию ], то х- = 1, иначе х- = 0).
В работе [10] для решения задачи (1), (2) предложена рекуррентная нейронная сеть, описываемая дифференциальным уравнением
- = ^ ^(г) + £ х-(*) - ^ - ехр (- ^ , (3)
где х- = f(и-(г)); f (и) = 1/[1 + ехр(-/Зи)]. Для решения задачи используется матрица нейронов размером п х п, в которой нейроны взаимодействуют по строкам и столбцам. Разностный вариант уравнения (3) имеет вид
uj = uj - At
п Xik (t) + ^ xij (t) - 2^ - XCij exp ^- T^j
(4)
где At - шаг по времени. Параметры At, п, X, т, в, подбираемые экспериментальным путем, оказывают существенное влияние на скорость достижения решения задачи и качество этого решения.
В работе [12] предложен вариант метода [11] ускорения решения системы уравнений (3) с использованием принципа WTA (winner takes all):
1. Порождается матрица \xij(0)|| случайных значений xij(0) £ [0,1]. Итерации (4) продолжаются до тех пор, пока не будет выполнено неравенство
nn
J>ifc(t) + J] xij(t) - 2 < е, (5)
k=i i=i
где е - заданная точность выполнения ограничений (2).
2. Выполняется преобразование полученной матрицы решения \xij\\:
2.1. i istart.
2.2. В i-й строке матрицы отыскивается максимальный элемент xijmax (jmax - номер столбца с максимальным элементом).
2.3. Выполняется преобразование xi,jmax = 1. Все остальные элементы i-й строки и столбца с номером jmax обращаются в нуль:
xij 0, j = jmax, xk, jmax 0, k = i.
Далее происходит переход к строке jmax.
Действия, описанные в пп. 2.2, 2.3, повторяются до тех пор, пока не произойдет возврат к строке istart, что будет означать завершение построения цикла.
3. Если возврат к строке istart произошел до того, как в матрице \xij|| значение, равное единице, получили п элементов, то это означает, что длина построенного цикла меньше п. В этом случае шаги 1 и 2 повторяются.
Результаты экспериментов по решению задачи коммивояжера. В работе [12] предложено штрафовать нежелательные переходы. Для того чтобы уменьшить вероятность преждевременного возврата к исходной строке istart, полагаем
„ _ I plij, j — i start, -I
Cij — 1 l A — i i — 1, ■■■n, ij start
где lij - расстояние между городами i и j; p > 1 - коэффициент штрафа. Согласно [9]
Л — 2(1 - а)п lmin exp—t/т)
(imin - n-е по возрастанию значение в матрице \lij\\; параметр a e (0,1), но близок к единице). Для обеспечения эффективной работы алгоритма экспериментальным путем подобраны значения параметров a — 0,9, в — 0,01, п — 1. Увеличение в приводит к увеличению длины полученного цикла, уменьшение - к увеличению числа итераций. Отклонения параметра a от указанной величины при фиксированном значении п — 1 приводят к ухудшению качества решения. Применение принципа 2-opt [13], который заключается в разрыве пары несмежных связей в цикле и образовании новых, позволило существенно уменьшить отклонение е полученного решения от оптимального.
В табл. 1 приведены отклонение полученных решений от оптимального е — [(l-lcpt)/lcpi\ х 100 % (l - длина полученного цикла; lp - длина оптимального цикла); число итераций сети Вана T; время выполнения одной итерации алгоритма (время с момента запуска алгоритма с одного произвольно выбранного города до момента запуска с другого города) на процессоре AMD Sempron 3000+ (1,81 ГГц).
Анализ данных, приведенных в табл. 2, показывает, что метод Литтла дает более точные решения по сравнению с решениями, полученными с использованием сети Вана, но с увеличением размерности задачи разрыв сокращается.
Из табл. 3 следует, что с использованием сети Вана + WTA задачу коммивояжера можно решить значительно быстрее, чем с помощью метода Литтла.
Таблица 1
Результаты тестирования сети Вана + WTA
n Р £ t, с T
без 2-opt с 2-opt
51 100 7,40 2,14 0,36 57
100 1000 8,07 4,27 2,44 62
262 1000 15,21 5,06 52,40 61
575 1000 19,29 7,11 121,78 12
Таблица 2 Таблица 3
Отклонения полученных решений _
Время ъ решения задачи коммивояжера
от оптимального
Количество городов £, % Количество городов t, с
Сеть Вана + WTA Метод Литтла Сеть Вана + WTA Метод Литтла
51 3,84 0,8 51 0,16 0,649
100 13,18 9,1 100 0,97 7,610
262 11,44 9,4 262 14,83 501,660
Распараллеливание решения задачи коммивояжера. Параллельное решение задачи коммивояжера с использованием рекуррентной нейронной сети основано на распределении строк матрицы нейронов полосами по процессорам кластера. По процессорам распределяются строки матриц \\Cij|| и \\xij(0)||. Далее параллельно решаются уравнения рекуррентной сети Вана, до тех пор пока не будет выполнено условие (5). По завершении функционирования сети Вана производится сборка строк матрицы \\xij\\ в корневом процессоре кластера. Алгоритмы WTA и 2-opt выполняются последовательно.
При параллельном решении задачи коммивояжера методом Литтла один из процессоров объявляется "мастером", назначающим задачи "рабочим" процессорам. "Мастер" хранит набор задач, варианты путей обхода городов с нижними оценками. Если имеется свободный "рабочий" процессор, то "мастер" пересылает ему задачу с наименьшей нижней оценкой из имеющихся в наборе. "Рабочий" процессор производит ветвление присланной задачи на две подзадачи и вычисляет нижние оценки для них. Если оценка какой-либо подзадачи больше или равна текущему рекорду, то подзадача с этой оценкой отбрасывается, если меньше, то выбирается подзадача с наименьшей нижней оценкой, другая подзадача возвращается "мастеру".
Параллельные алгоритмы, реализованные на языке C+—+ с использованием библиотеки MPI, тестировались на примерах задачи коммивояжера из библиотеки TSTLIB [14] на кластере из двух 4-ядерных процессоров Intel Core 2 Quad Q6600 2.4 ГГц с оперативной памятью 4 Гб и межпроцессорной сетью связи Gigabit Ethernet. Результаты тестирования представлены на рисунке. Диагональная линия обозначает линейное ускорение, которое имеет место в идеальном случае, когда задача может быть разбита на независимые фрагменты и память вычислительной системы однородна и распределена по процессорам. Сверхлинейное ускоре-
а б в
Количество процессоров
Ускорение решения задачи коммивояжера на кластерной системе: а - п = 51, б - п = 100, в - п =262; 1 - сеть Вана, 2 - метод Литтла
ние (точки реальной кривой лежат выше диагонали) обусловлено перераспределением данных между различными уровнями иерархической памяти (между оперативной памятью и кешем). Расположение точек реальной кривой ниже диагонали обусловлено дополнительными расходами, вызванными необходимостью обмена данными между ветвями параллельной программы и конфликтами процессоров системы по доступу к общим данным.
Заключение. Рассмотрен новый эффективный подход к решению задачи коммивояжера, основанный на применении рекуррентной сети Вана в совокупности с алгоритмами WTA и 2-opt. На основе этого подхода разработан, реализован с использованием библиотеки MPI и протестирован на кластере с помощью тестовых примеров библиотеки TSTLIB параллельный алгоритм решения задачи коммивояжера. Выполнено экспериментальное сравнение этого алгоритма с параллельным алгоритмом, построенным на основе метода Литтла.
Результаты экспериментов позволяют сделать следующие выводы:
1. Несмотря на то что теоретически метод ветвей и границ (метод Литтла) способен найти оптимальный маршрут, при реализации этого метода требуется сохранять большое количество вариантов путей обхода городов, что приводит к большим затратам памяти. Необходимо вводить некоторые ограничения на число сохраняемых путей, что приводит к снижению точности полученных решений.
2. Рекуррентная сеть Вана уступает методу Литтла по точности, но с увеличением размерности задачи разрыв существенно сокращается.
3. С использованием рекуррентной сети Вана задача решается значительно быстрее, чем с помощью метода Литтла.
4. При решении задач большой размерности на многопроцессорной системе использование сети Вана позволяет получить существенно большие значения ускорения вычислений, чем использование метода Литтла.
Таким образом, при больших размерностях задачи коммивояжера более предпочтительным является метод, построенный на основе рекуррентной нейронной сети (в том числе при реализации на параллельных вычислительных системах), если достигаемая сетью точность решения удовлетворительна. Это требование, называемое принципом рациональной строгости и предполагающее отказ от абсолютно точного решения задачи, характерно для применения нейросетевых средств обработки бортовых данных в космической технике в случае, когда решение задачи необходимо получить в максимально сжатые сроки [15].
Список литературы
1. Романовский И. В. Алгоритмы решения экстремальных задач. М.: Наука, 1977. 352 с.
2. Little J., Mürty K., Sweeney D., Karel C. An algorithm for the traveling salesman problem // Oper. Res. 1963. V. 11. P. 972.
3. Посыпкин М. А. Параллельные алгоритмы в задачах дискретной оптимизации: вычислительные модели, библиотека, результаты экспериментов / М. А. Посыпкин, И. Х. Сигал, Н. Н. Галимьянова. М.: ВЦ им. А. А. Дородницына РАН, 2006. 52 с.
4. Осовский С. Нейронные сети для обработки информации. М.: Финансы и статистика, 2002. 344 с.
5. ХАЙкин С. Нейронные сети: Полный курс. М.: Вильямс, 2006. 1104 с.
6. Тарков М. С. Нейрокомпьютерные системы. М.: Интернет ун-т информ. технологий: Бином: Лаб. знаний, 2006. 142 с.
7. Меламед И. И. Нейронные сети и комбинаторная оптимизация // Автоматика и телемеханика. 1994. № 4. С. 3-40.
8. Smith K. A. Neural networks for combinatorial optimization: a review of more than a decade of research // Informs J. Comput. 1999. V. 11, N 1. P. 15-34.
9. Feng G., Douligeris C. The convergence and parameter relationship for discrete-time continuous-state hopfield networks // Proc. of the Intern. joint conf. on neural networks, Washington, USA, July 15-19, 2001. N. Y.: IEEE, 2001. V. 1. P. 376-381.
10. Hung D. L., Wang J. Digital hardware realization of a recurrent neural network for solving the assignment problem // Neurocomputing. 2003. N 51. P. 447-461.
11. Siqueira P. H., Steiner M. T. A., Scheer S. A new approach to solve the traveling salesman problem // Neurocomputing. 2007. N 70. P. 1013-1021.
12. Тарков М. С. О построении гамильтоновых циклов в графах распределенных вычислительных систем рекуррентной нейронной сетью // Тр. 10-й Всерос. науч.-техн. конф. "Нейроинформатика-2008". Москва, 22-25 янв. 2008. М.: Изд-во МИФИ, 2008. Ч. 2. С. 76-85.
13. Bianchi L., Knowles J., Bowler J. Local search for the probabilistic traveling salesman problem: Correction to the 2-opt and 1-shift algorithms // Eur. J. Oper. Res. 2005. V. 162, N 1. P. 206-219.
14. Reinelt G. TSPLIB - a traveling salesman problem library // ORSA J. Comput. 1991. V. 3, N 4. P. 376-384.
15. Нейрокомпьютеры в космической технике / Под ред. В. В. Ефимова. М.: Радиотехника, 2004. Кн. 17. 320 с. (Сер. "Нейрокомпьютеры и их применение").
Тарков Михаил Сергеевич - канд. техн. наук, доц., ст. науч. сотр.
Института физики полупроводников СО РАН; тел.: (383)333-36-89, e-mail: [email protected] Дугаров Гэсэр Александрович - асп. Новосибирского государственного
университета; e-mail: [email protected] Дата поступления - 12.10.09