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

Программное обеспечение для решения обобщенной задачи коммивояжера с ограничениями предшествования Текст научной статьи по специальности «Математика»

CC BY
122
21
i Надоели баннеры? Вы всегда можете отключить рекламу.
Область наук
Ключевые слова
GTSP / ограничения предшествования / метод ветвей и границ / динамическое программирование / схема Хелда-Карпа / GTSP / precedence constraint / branch and bound / dynamic programming / Held-Karp algorithm

Аннотация научной статьи по математике, автор научной работы — А.А. Петунин, С.С. Уколов, М.Ю. Хачай

В статье рассматривается обобщенная задача коммивояжера с ограничениями предшествования (PCGTSP), в которой подобно классической задаче коммивояжера (TSP) ищется замкнутый цикл минимальной стоимости, при этом множество вершин разбито на непустые попарно непересекающиеся подмножества кластеры и каждый допустимый маршрут обязан посетить каждый из кластеров в единственной вершине. Кроме того, множество допустимых маршрутов стеснено дополнительным ограничением на порядок посещения кластеров, то есть некоторые кластеры должны посещаться раньше других. Такая задача в отличие от TSP и обобщенной задачи коммивояжера (GTSP) является слабо исследованной как теоретически, так и с точки зрения проектирования и реализации алгоритмов. В данной работе предлагаются первые специализированные алгоритмы ветвей и границ, использующие в качестве начального приближения решения, полученные при помощи недавно разработанной эвристики PCGLNS. Исходная задача PCGTSP подвергается нескольким релаксациям, в результате чего получаются несколько нижних оценок на решение исходной задачи, наибольшая из которых используется для отсечения ветвей дерева поиска и сокращения тем самым перебора. Алгоритмы реализованы в виде открытого ПО на языке программирования Python 3 с использованием специализированной библиотеки NetworkX. Производительность предложенных алгоритмов оценивается на тестовых примерах из общедоступной библиотеки PCGTSPLIB в сравнении с общеизвестным солвером Gurobi, использующим недавно предложенную авторами модель MILP, и представляется вполне конкурентоспособной даже в текущей реализации. Разработанные алгоритмы могут применяться в широком классе практических задач, например, для оптимальной маршрутизации инструмента машин листовой резки с ЧПУ, а также для оценки качества решений, получаемых другими методами.

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

Похожие темы научных работ по математике , автор научной работы — А.А. Петунин, С.С. Уколов, М.Ю. Хачай

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

Software for solving the precedence constrained generalized traveling salesman problem

The paper considers the generalized problem of the precedence constraint traveling salesman (PCGTSP). Like the classical traveling salesman problem (TSP), the authors search a minimum cost closed cycle in this problem, while the set of vertices is divided into nonempty pairwise disjoint subsets that are clusters; each feasible route must visit each cluster in a single vertex. In addition, the set of valid routes is constrained by an additional restriction on the order of visiting clusters, that is, some clusters must be visited earlier than others. In contrast to the TSP and the generalized traveling salesman problem (GTSP), this problem is poorly studied both theoretically and from the point of view of algorithm design and implementation. The paper proposes the first specialized branch-and-bound algorithms using the solutions obtained using the recently developed PCGLNS heuristic as an initial guess. The original PCGTSP problem undergoes several relaxations, therefore there are several lower bounds for the original problem; the largest of them is used to cut off the branches of the search tree and thereby reduce the enumeration. The algorithms are implemented as open source software in the Python 3 programming language using the specialized NetworkX library. The performance of the proposed algorithms is evaluated on test examples from the PCGTSPLIB public library in comparison with the state-of-the-art Gurobi solver using the MILP model recently proposed by the authors, and seems to be quite competitive even in the current implementation. The developed algorithms can be used in a wide class of practical problems, for example, for optimal tool routing for CNC sheet cutting machines, as well as for assessing the quality of solutions obtained using other methods.

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

УДК 519.854 Дата подачи статьи: 04.10.21, после доработки: 18.11.21

DOI: 10.15827/0236-235X.137.054-064 2022. Т. 35. № 1. С. 054-064

Программное обеспечение для решения обобщенной задачи коммивояжера с ограничениями предшествования

А.А. Петунин 1, д.т.н, профессор, a.a.petunin@)urfu.ru, aapetunin@gm.ail.com С.С. Уколов 1, мн.с, s.s.ukolov@urfu.ru

М.Ю. Хачай 2, д.ф.-м.н, профессор, зав. отделом, mkhachay@j.mmuran.ru

1 Уральский федеральный университет им. первого Президента России Б.Н. Ельцина, г. Екатеринбург, 620002, Россия

2 Институт математики и механики им. Н.Н. Красовского УрО РАН, г. Екатеринбург, 620108, Россия

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

В данной работе предлагаются первые специализированные алгоритмы ветвей и границ, использующие в качестве начального приближения решения, полученные при помощи недавно разработанной эвристики PCGLNS. Исходная задача PCGTSP подвергается нескольким релаксациям, в результате чего получаются несколько нижних оценок на решение исходной задачи, наибольшая из которых используется для отсечения ветвей дерева поиска и сокращения тем самым перебора. Алгоритмы реализованы в виде открытого ПО на языке программирования Python 3 с использованием специализированной библиотеки NetworkX. Производительность предложенных алгоритмов оценивается на тестовых примерах из общедоступной библиотеки PCGTSPLIB в сравнении с общеизвестным солвером Gurobi, использующим недавно предложенную авторами модель MILP, и представляется вполне конкурентоспособной даже в текущей реализации.

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

Ключевые слова: GTSP, ограничения предшествования, метод ветвей и границ, динамическое программирование, схема Хелда-Карпа.

Программное обеспечение для решения многих задач дискретной оптимизации основано на математической модели обобщенной задачи коммивояжера (Generalized Traveling Salesman Problem, GTSP), одной из самых известных задач комбинаторной оптимизации, впервые сформулированной в [1] и заинтересовавшей многих исследователей (например [2]). В GTSP для заданного взвешенного орграфа G = (V, E, с) и разбиения Vi и ... и Vm набора узлов V графа G на непустые взаимно непересекающиеся кластеры требуется найти замкнутый тур с минимальной стоимостью, который посещает каждый кластер Vi точно один раз.

В данной статье рассматривается обобщенная задача коммивояжера с ограничениями предшествования (Precedence Constrained Generalized Traveling Salesman Problem, PCGTSP),

каждому допустимому маршруту которой необходимо посещать кластеры в соответствии с заданным частичным порядком. Эта модификация задачи GTSP имеет множество практических применений, среди которых следующие: оптимизация траектории инструмента для станков с ЧПУ [3], минимизация времени и стоимости резки в процессе раскроя листового металла [4, 5], настройка координатно-измери-тельного оборудования [6], оптимизация траектории при множественном сверлении отверстий [7].

Обзор текущего состояния исследований

Задача GTSP является обобщением классической задачи коммивояжера (Traveling Sales-

man Problem, TSP). Как следствие, она остается NP-трудной даже на евклидовой плоскости всякий раз, когда число кластеров m является частью ее условия [8]. С другой стороны, хорошо известная схема динамического программирования Хелда-Карпа [9], адаптированная к GTSP, имеет трудоемкость O(n3m22m). Таким образом, задача принадлежит классу FPT (Fixed Parameter Tractability) относительно параметризации количеством кластеров. Более того, при m = O(logn) оптимальное решение GTSP может быть найдено за полиномиальное время. Как следует из приведенного далее обзора литературы, исследования в области алгоритмического анализа задачи GTSP развивались по нескольким основным направлениям.

Первый подход основан на сведении исходной задачи к подходящей постановке асимметричной задачи коммивояжера (Asymmetric Traveling Salesman Problem, ATSP) и к последующему решению полученной вспомогательной задачи [10, 11]. Несмотря на математическое изящество, этот подход не свободен от недостатков:

- получаемые задачи ATSP обладают специфической структурой, затрудняющей их численное решение и на современных MIP-решателях, таких как Gurobi и CPLEX;

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

Другой известный подход связан с разработкой точных алгоритмов для частных случаев задачи GTSP и приближенных алгоритмов с теоретическими оценками, включая алгоритмы ветвей и границ [13, 14] и полиномиальные приближенные схемы (Polynomial-time Approximation Scheme, PTAS) [15, 16].

Третий подход заключается в разработке новых и адаптации известных эвристик и метаэв-ристик. В этом направлении среди известных результатов выделяются гибридный алгоритм Гутина и Карапетяна [17], адаптация известного солвера Лина-Кернигана-Хельсгауна [18] и метаэвристика адаптивного поиска в больших окрестностях (Adaptive Large Neighborhood Search, ALNS) [19], обладающая рекордной на сегодняшний день практической производительностью.

Однако алгоритмические результаты для рассматриваемой в статье задачи PCGTSP до сих пор остаются немногочисленными и, по мнению авторов, исчерпываются следующими:

- эффективные алгоритмы для специальных ограничений предшествования типа Ба-ласа [20-22] и ограничений предшествования, приводящих к квази- и псевдопирамидальным оптимальным маршрутам [23, 24];

- общий подход к выводу нижних оценок в методе ветвей и границ [25];

- метаэвристический солвер PCGLNS, развивающий результаты [26, 27], полученные в [19] для GTSP.

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

Постановка задачи

Рассмотрим общую постановку задачи PCGTSP. Условие ее определяется тройкой (G, C, П), где G = (V, E, c) - взвешенный ориентированный граф, вес произвольной дуги (u, v) е E которого задается соотношением c(u, v); C = {Vi, ..., Vm} - разбиение множества V вершин графа G на m непустых попарно непересекающихся кластеров; П = (C, A) - ориентированный ациклический граф, задающий частичный порядок (ограничения предшествования) на множестве кластеров C.

Каждой вершине v е V графа G сопоставим (единственный) кластер V(v), содержащий данную вершину Далее без ограничения общности полагаем орграф П транзитивно замкнутым (в котором соотношения (Vi, Vj) е A и (V, Vk) е A влекут (Vi, Vk) е A для произвольных индексов i, j и k) и верным включение (Vi, Vp) е A для каждогоp е {2, ..., m}.

Замкнутый маршрут T = vi, v2, ..., vm будет допустимым решением задачи PCGTSP при следующих условиях:

- маршрут T начинается и заканчивается в произвольной вершине v1 е Vi;

- произвольный кластер Vp е C посещается маршрутом T точно один раз;

- маршрут T соответствует частичному порядку П, то есть любой кластер Vq посещается маршрутом T только после всех кластеров, предшествующих ему в П.

Стоимость решения T определяется соотно-

m-1

шением cost(T) = c(vm, vj + ^ c(v¡, v¡+i).

i=1

Цель задачи состоит в построении допустимого решения T минимальной стоимости.

Предлагаемые в данной статье алгоритмы опираются на следующие общие основные идеи.

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

- рассмотрим подмножество C с C, такое что VI £ С, зафиксируем некоторый кластер VI £ С и вершины v £ VI и u £ VI соответственно;

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

- исключая из С все внутренние кластеры и соединяя VI с VI непосредственно ребром нулевого (0) веса, тем самым создаем подзадачу P, наследующую у исходной задачи веса остальных дуг, разбиение на кластеры и ограничения предшествования;

- используя соотношение

¿Я = Стп+ОРТ (Гге1) (1)

в качестве нижней границы, отсекаем текущий узел всякий раз, когда LB > иВ; здесь ОРТ(Рге0 - вес некоторого эффективно найденного решения релаксации Ре задачи Р, иВ -стоимость наилучшего найденного допустимого решения исходной задачи.

Нижние границы. Сравним нижние оценки, получаемые применением различных релаксаций вспомогательной задачи P. Для построения релаксации P используем двухэтап-ный подход, предложенный в [25]. На первом этапе сведем задачу P к подходящей постановке задачи ATSP одним из следующих способов.

1. Ослабляя исходные ограничения предшествования, исключаем ребра У, v") £ E, для которых УУ), V(vr)) £ A. Затем сведем полученную задачу к ATSP, используя классическое преобразование Нуна и Бина [11].

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

Нх=(С,\,сх\ где С' = С\С'У{У1,У1},

А, ={(У1,У1)}^{(У^)\1>2,{У^}^С\

Э(У е Упу" е У ) : (у', у") е Е},

c1(V1,V1 ) = 0, cl(Vi,Vj) =

= min{c(v ', v " ) : V eVt, v " e Vj, (v ', v " ) e E}.

3. Сведем исходную задачу к ATSP, определенной на ориентированном графе

Н2 =(С',4,с2), где

A,={(Vl,Vl)}yj{(Vi,Vk)\i>2,3(j>\):

Vi,VJ,VtŒC'A((Vj.,Vi),(vt,VJ),(Vt,Vi)nA = 0)A лЭ(v' е У,У eVj,vm eVk): ({(v',v"),(v",v")}c=£)}u ^{(yi,yk)\i>2,({yi,yk}^C')A((Vk,Vi)<iA)A a3(v' e Упу, e У,У e Vk) : {(v',v1),(v1,v')} с E}, то есть для любого Vt еС'\{^} упорядоченная пара (У, Vk) е А, если существует V; g С' и вершин^! v e Vi, v" e Vj, v' " e Vk такие, что путь п = v, v", v" согласован с исходными ограничениями предшествования.

Далее c2(Vi, V) = 0, c2(Vi, V) = min{c(v', v") + + c(v", v'")}: путь п = v', v", v'" - допустимый}.

На втором этапе повторно релаксируем полученную задачу ATSP путем либо нахождения минимального остовного дерева (Minimum Spanning Arborescence Problem, MSAP), либо решения подходящей задачи о назначениях (Assignment Problem, AP). Тем самым находим искомую нижнюю границу по формуле (1). Кроме того, в некоторых случаях для уточнения нижних оценок находим оптимальное значение вспомогательной задачи ATSP, применяя сол-вер Gurobi. Для удобства все способы получения нижних оценок приведены в таблице 1, столбцы которой соответствуют способам релаксации исходной задачи на первом этапе предлагаемой процедуры, а строки - способам построения оценок на втором.

Таблица 1

Нижние границы

Table 1

Lower bouillis

Метод релаксации Нун и Бин Hi H2

Цикловое покрытие АР Ei Li Li

Минимальное остов-ное дерево MSAP E2 Ез Е4

Прямое решение при помощи Gurobi Es L3 Еб

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

ниям, оценки L1-L3 оказывались наиболее точными с доверительной вероятностью 95 %. На тестовых задачах L1 в среднем оказывается в интервале 0.91±0.02 по отношению к оценке L3, оценка L2 соответственно 0.97±0.02, а оценки E1-E4 систематически ниже: Ei 0.48±0.03, E2 и E3 0.54±0.01, E4 0.60±0.002. Кроме того, не используются оценки E5 и E6 в силу повышенной трудоемкости их вычисления. Таким образом, далее ограничиваемся оценками LBi = Cmm + Li, i e {1, 2, 3}.

Алгоритм ветвей и границ

Для обхода дерева поиска в процессе решения задачи PCGTSP (G, C, П) используем метод поиска в ширину (алгоритм 1). Каждый узел этого дерева связан с префиксом о = (Vi 1, Vi2, ..., Vir), где Vij e C, Vi 1 = Vi и r e {1, ..., m}. Кластеры Vij посещаются в порядке, задаваемом последовательностью о, все остальные - произвольно (с соблюдением ограничений предшествования П), тем самым образуя вспомогательную задачу P.

Алгоритм 1. BnB :: Главная процедура

Вход: орграф G, кластеры G, частичный порядок

П

Выход: маршрут и его стоимость

1. Инициализация Q = empty queue

2. Начинаем с Root = V1

3. Q.push(Root)

4. while not Q.empty()

5. Берем следующий префикс для обработки о = Q.pop()

6. process=Bound(o)

7. if not process then

8. Префикс отсекается; continue

9. end if

10. UpdateLowerBound(o)

11. for all child e Branch(o) do

12. Помещаем префикс в очередь на обработку Q.push(child)

13. end for

14. end while

К каждому узлу дерева поиска применяем процедуру построения нижней оценки Bound (алгоритм 2), заключающуюся в выполнении следующих действий:

- для префикса о сопоставляем кортеж T(o) = (Vii, {Vii, Vi2, ..., Vir}, Vir);

- на шаге 4 вычисляем матрицу D(o) минимальных попарных расстояний по формуле

D(CTL = min{cos tPu): v e Vk, и e V^, Pvu - частичный путь в порядке ст}

(эта матрица легко вычисляется инкремен-тально с использованием матрицы D(o') родительского узла дерева поиска);

- если для некоторого 01, T(o) = T(oi) и D(o)uv > D(oi)uv, v e Vii, u e Vir, то префикс о доминируется префиксом о1 и подлежит отсечению;

- на шаге 11 вычисляем оценки L1 и L2 (табл. 1) и сохраняем их в глобальной переменной Opf, используя формулу

Optr{a) =ma x(L15L2);

- для текущего узла 0 на шаге 13 рассчитываем нижнюю границу по формуле

LB(a) = min D(a)m +Optr(a);

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

vu

- наконец, узел 0 отсекается, если LB > UB; префиксы, избежавшие отсечения, обрабатываются процедурой ветвления Branch (алгоритм 3), которая пытается удлинить префикс о на один кластер с соблюдением ограничений предшествования.

Алгоритм 2. BnB :: Bound Вход: префикс о

Выход: признак того, что префикс подлежит обработке

1. global DTj

2. global OptT

3. вычисляем кортеж T = (Vi 1, {Vi 1, V'2, ..., Vir}, Vir)

4. Dj=MinCosfc(o)

5. if Dj > DTP [T], Vi, j then

6. return false

7. end if

8. обновляем веса маршрутов DTij [T] =

= min(DTj [T], Dj), Vi, j

9. Cmm = minj Dij

10. if T g OptT then

11. вычисляем нижнюю границу OptT[T] = max(Z1(o), ¿2(0))

12. end if

13. LB = Cmin + OptT[T]

14. if LB > UB then

15. return false

16. end if

17. return true

Динамическое программирование

Основная идея алгоритма ветвей и границ представляется близкой к классической схеме динамического программирования (Dynamic Programming, DP) Хелда-Карпа [9], адаптированной к учету ограничений предшествования и дополненной стратегией оценивания, представленной в [28].

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

1. Строится таблица динамического программирования в прямом направлении инкре-ментально, слой за слоем. Оптимальное значение решаемой задачи находится после построения последнего, m-го слоя.

2. Оптимальный маршрут восстанавливается обратным ходом по таблице, построенной на первом этапе.

Каждое состояние DP соответствует частичному v-u-пути и индексируется кортежем (C, Vi, v, u), где C с C представляет собой идеал частично упорядоченного множества кластеров C, то есть V (V e C', V e C, (V, V) e A) ^ ^ (V ' e C) очевидно, в предлагаемых условиях Vi принадлежит произвольному идеалу C' с C; Vi с C', для которого нет такого V e C', что (Vi, V) e A; v e V1, u e Vi.

Значение каждой ячейки DP S содержит ссылку S[pred] на предшествующее состояние, локальное значение нижней оценки S[LB] и стоимость S[cost] соответствующего частичного v-u-пути.

Пусть 3k - подмножество идеалов размера k e {1, ..., m}. Очевидно, что З1 = {{V1}}, поэтому первый слой L1 таблицы динамического программирования строится тривиально. Индуктивное построение остальных слоев описано в алгоритме 4.

Алгоритм 3. BnB :: Branch Вход: префикс о

Выход: список потомков префикса для обработки

1. Инициализация R = empty queue

2. for all V e C do

3. valid = true

4. for all We C do

5. if W=Vor (V W) e П then

6. valid = false

7. break

8. end if

9. end for

10. if valid then

11. добавляем новый префикс R.push(o+V)

12. end if

13. end for

14. return R

Замечания. Оптимум для решаемой задачи дается классическим уравнением Беллмана:

OPT = min min{5[cos t] + c(u, v) :

v£V1

S = (C',Vl,v,u)&.Cm.

По построению таблица DP имеет размер O(n2m|3|), значит, время работы алгоритма O(n3m2|3|), в частности, для частичного порядка фиксированной ширины w |3| = O(mw) [29]. Следовательно, оптимальное решение PCGTSP может быть найдено за полиномиальное время даже без применения нижних оценок на шагах 10-12.

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

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

Алгоритм 4. DP :: индуктивное построение таблицы динамического программирования Вход: орграф G, частичный порядок П, слой таблицы DP Lk, верхняя граница UB Выход: (к+1)-й слой Lk+i

1. Инициализация Lk+i = 0

2. for all C' £ 3k do

3. for all кластер Vi eC\ C s.t. C u{Vi} e 3k+1 do

4. for all v e V1 и u e Vi do

5. if есть состояние

S = (C , U, v, w) e Lk s.t. (w, u) e E then

6. создаем новое состояние S ' = (C'и {Vi}, Vi, v, u)

7. S' [cost] = min{S[cost] + c(w, u): S = (CU, v, w) e Lk}

8. S' [pred] = argmin{S[cost] +

+ c(w, u): S = (C , U, v, w) e Lk}

9. S' [LB] = S' [cost] + + max{L1, L2, L3}

10. if S'[LB] < UB then

11. Добавляем S' к Lk+1

12. end if

13. end if

14. end for

15. end for

16. end for

17. return Lk+1

Численные эксперименты

Все алгоритмы тестировались на общедоступной библиотеке PCGTSPLIB [25]. В качестве начального приближения им задавалось

одно и то же допустимое решение, полученное эвристикой PCGLNS [27]. Вычисления проводились на одном и том же оборудовании (16-ядерный Intel Xeon, 128G RAM) с предельным временем счета 10 часов. Для оценки точности вычислений использовалась верхняя оценка относительной погрешности, вычисляемая по формуле

UB -LB ...

gaP = —тъ— ■ (2)

LB

Критерием остановки является условие gap < 5 %. Разработанные в данном исследовании алгоритмы реализованы на кроссплатфор-менном языке Python и могут исполняться на всех современных операционных системах, включая Linux, MacOS и Microsoft Windows. Код оптимизирован за счет использования биб-

лиотек NumPy и SciPy для обработки матриц и NetworkX для работы с графами, для параллельного исполнения использован модуль multiprocessing стандартной библиотеки Python. Исходный код доступен в [30].

Обсуждение

Результаты экспериментов иллюстрирует таблица 2, которая организована следующим образом: первая группа столбцов описывает задачу, включая ее обозначение ID, количество вершин n и кластеров m, а также стоимость стартового решения UB0, полученного эвристикой PCGLNS. Затем следуют три группы столбцов для решателя Gurobi и двух предлагаемых алгоритмов. Каждая группа содержит время

Результаты экспериментов Experimental results

Таблица 2 Table 2

Задача Gurobi Метод ветвей и границ DP

№ ID n m UBo Время, с LB gap, % Время, с LB gap, % Время, с LB gap, %

1 br17.12 92 17 43 82 43 0 11.2 43 0 27.3 43 0

4 ESC25 133 26 1418 10.61 1383 0 32 1383 0 60.69 1383 0

5 ESC47 244 48 1399 3773 1064 4.93 36000 980 42.76 36000 981 42.61

6 ESC63 349 64 62 25.35 62 0 1.3 62 0 0.52 62 0

7 ESC78 414 79 14872 1278.45 14630 1.66 1.3 14594 1.63 0.68 14594 1.63

10 ft53.3 281 53 8446 36000 6354 32.92 36000 5465 54.55 36000 5465 54.55

11 ft53.4 275 53 11822 20635 11259 5 35865 11274 4.86 2225 11290 4.71

14 ft70.3 347 70 35309 36000 32775 7.73 36000 32180 9.72 36000 32180 9.72

15 ft70.4 353 70 44497 36000 41160 8.11 36000 38989 14.13 36000 41640 6.86

20 p43.1 203 43 22545 4691 21677 4 36000 738 2954.88 36000 788 2761.04

21 p43.2 198 43 22841 36000 21357 6.94 36000 749 2949.53 36000 877 2504.45

22 p43.3 211 43 23122 36000 15884 45.57 36000 898 2474.83 36000 906 2452.1

23 p43.4 204 43 66857 36000 45198 47.92 4470 66846 0 333.02 66846 0

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

26 rbg048a 255 49 282 24.22 282 0 0.9 272 3.68 0.25 272 3.68

27 rbg050c 259 51 378 13.83 378 0 0.2 372 1.61 0.25 372 1.61

28 rbg109a 573 110 848 6 848 0 2407 812 4.43 682 809 4.82

29 rbg150a 871 151 1415 15 1382 2.38 0.4 1353 4.58 0.53 1353 4.58

30 rbg174a 962 175 1644 27 1605 2.43 0.4 1568 4.85 0.67 1568 4.85

31 rbg253a 1389 254 2376 61 2307 2.99 0.8 2269 4.72 1.42 2269 4.72

32 rbg323a 1825 324 2547 416 2490 2.29 2 2448 4.04 3.59 2448 4.04

33 rbg341a 1822 342 2101 18470 2033 4.97 36000 1840 14.18 36000 1840 14.18

34 rbg358a 1967 359 2080 17807 1982 4.95 36000 1933 7.6 36000 1933 7.6

38 ry48p.3 254 48 16540 36000 13085 26.4 36000 11732 40.98 36000 11822 39.91

39 ry48p.4 249 48 25977 36000 22084 17.62 18677 25037 3.75 14001 25043 3.73

счета в секундах, наилучшее значение нижней границы LB и оценку погрешности, заданную в процентах. Задачи, в которых один из предлагаемых алгоритмов превосходит ОишЫ по производительности, выделены жирным шрифтом. Следует отметить, что для 13 из 39 задач (33 %) один из построенных авторами алгоритмов показал рекордную производительность, в том числе в 12 случаях по быстродействию и в 7 по точности.

Предложенные алгоритмы смогли найти оптимальное решение в 6 из 39 случаев (хотя такая цель не ставилась). Для 10 (15) постановок, включая одни из самых больших - rbg323a и rbg358a (1 825 и 1 967 вершин соответственно), было получено решение с точностью 5 % (10 %). С другой стороны, для некоторых задач (например, р43.1, р43.2 и р43.3) результаты предлагаемых алгоритмов значительно уступают ОишЫ, что, по-видимому, объясняется недостаточно точными нижними оценками. В то же время для задач р43.4 и гу48р.4 алгоритмы значительно превзошли ОишЫ. В целом, хотя ОишЫ демонстрирует в среднем чуть лучшую производительность, почти все предложенные алгоритмы показывают вполне сопоставимые результаты. Необходимо добавить, что в проводимых экспериментах солверу ОишЫ, как и тестируемым алгоритмам, было предоставлено хорошее стартовое решение, полученное эвристикой, что не является обязательным при организации подобных сравнительных экспериментов.

Заключение

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

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

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

В настоящее время разработанное ПО интегрируется с САПР СИРИУС [31], предназначенной для оптимизации раскроя листового материала на фигурные заготовки и подготовки управляющих программ для машин листовой резки с ЧПУ.

Численные эксперименты проводились на суперкомпьютере «Уран» Института математики и механики им. Н.Н. Красовского Уральского отделения Российской академии наук.

Работа выполнена при финансовой поддержке Министерства науки и высшего образования РФ, соглашение № 075-02-2021-1383.

Литература

1. Srivastava S., Kumar S., Garg R., Sen P. Generalized traveling salesman problem through n sets of nodes. CORS J., 1969, vol. 7, no. 2, pp. 97-101.

2. Gutin G., Punnen A.P. The Traveling Salesman Problem and Its Variations. Boston, MA: Springer US, 2007, 38 p.

3. Castelino K., D'Souza R., Wright P.K. Toolpath optimization for minimizing airtime during machining. J. of Manufacturing Systems, 2003, vol. 22, no. 3, pp. 173-180. DOI: 10.1016/S0278-6125(03)90018-5.

4. Chentsov A.G., Chentsov P.A., Petunin A.A., Sesekin A.N. Model of megalopolises in the tool path optimisation for CNC plate cutting machines. Int. J. of Production Research, 2018, vol. 56, no. 14, pp. 4819-4830. DOI: 10.1080/00207543.2017.1421784.

5. Makarovskikh T., Panyukov A., Savitskiy E. Mathematical models and routing algorithms for economical cutting tool paths. Int. J. of Production Research, 2018, vol. 56, no. 3, pp. 1171-1188. DOI: 10.1080/ 00207543.2017.1401746.

6. Salman R., Carlson J.S., Ekstedt F., Spensieri D., Torstensson J., Soderberg R. An industrially validated CMM inspection process with sequence constraints. Procedia CIRP, 2016, vol. 44, pp. 138-143. DOI: 10.1016/j.procir.2016.02.136.

7. Dewil R., Kügükoglu I., Luteyn C., Cattrysse D. A critical review of multi-hole drilling path optimization. Archives of Computational Methods in Engineering, 2019, vol. 26, no. 2, pp. 449-459. DOI: 10.1007/ s11831-018-9251-x.

8. Papadimitriou C. The Euclidean travelling salesman problem is NP-complete. Theoretical Computer Science, 1977, vol. 4, no. 3, pp. 237-244. DOI: 10.1016/0304-3975(77)90012-3.

9. Held M., Karp R.M. A dynamic programming approach to sequencing problems. J. Soc. Indust. Appl. Math., 1962, vol. 10, no. 1, pp. 196-210. URL: http://www.jstor.org/stable/2098806 (дата обращения: 16.09.2021).

10. Laporte G., Semet F. Computational evaluation of a transformation procedure for the symmetric generalized traveling salesman problem. INFOR: Information Systems and Operational Research, 1999, vol. 37, no. 2, pp. 114-120. DOI: 10.1080/03155986.1999.11732374.

11. Noon C.E., Bean J.C. An efficient transformation of the generalized traveling salesman problem. INFOR: Information Systems and Operational Research, 1993, vol. 31, no. 1, pp. 39-44. DOI: 10.1080/ 03155986.1993.11732212.

12. Karapetyan D., Gutin G. Efficient local search algorithms for known and new neighborhoods for the generalized traveling salesman problem. EJOR, 2012, vol. 219, no. 2, pp. 234-251. DOI: 10.1016/j.ejor. 2012.01.011.

13. Fischetti M., González J.J.S., Toth P. A branch-and-cut algorithm for the symmetric generalized traveling salesman problem. Operations Research, 1997, vol. 45, no. 3, pp. 378-394. DOI: 10.1287/opre.45.3.378.

14. Yuan Y., Cattaruzza D., Ogier M., Semet F. A branch-and-cut algorithm for the generalized traveling salesman problem with time windows. EJOR, 2020, vol. 286, no. 3, pp. 849-866. DOI: 10.1016/ j.ejor.2020.04.024.

15. Feremans C., Grigoriev A., Sitters R. The geometric generalized minimum spanning tree problem with grid clustering. 4OR, 2006, vol. 4, no. 4, pp. 319-329. DOI: 10.1007/s10288-006-0012-6.

16. Khachai M.Y., Neznakhina E.D. Approximation schemes for the generalized traveling salesman problem. Proc. Steklov Inst. Math, 2017, vol. 299, no. 1, pp. 97-105. DOI: 10.1134/S0081543817090127.

17. Gutin G., Karapetyan D. A memetic algorithm for the generalized traveling salesman problem. Natural Computing, 2010, vol. 9, no. 1, pp. 47-60. DOI: 10.1007/s11047-009-9111-6.

18. Helsgaun K. Solving the equality generalized traveling salesman problem using the Lin-Kernighan-Helsgaun algorithm. Mathematical Programming Computation, 2015, vol. 7, no. 3, pp. 269-287. DOI: 10.1007/s12532-015-0080-8.

19. Smith S.L., Imeson F. GLNS: An effective large neighborhood search heuristic for the generalized traveling salesman problem. Computers and Operations Research, 2017, vol. 87, pp. 1-19. DOI: 10.1016/ j.cor.2017.05.010.

20. Balas E., Simonetti N. Linear time dynamic-programming algorithms for new classes of restricted TSPs: A computational study. INFORMS J. on Computing, 2001, vol. 13, no. 1, pp. 56-75. DOI: 10.1287/ijoc. 13.1.56.9748.

21. Chentsov A.G., Khachai M.Y., Khachai D.M. An exact algorithm with linear complexity for a problem of visiting megalopolises. Proc. Steklov Inst. Math, 2016, vol. 295, no. 1, pp. 38-46. DOI: 10.1134/ S0081543816090054.

22. Chentsov A., Khachay M., Khachay D. Linear time algorithm for precedence constrained asymmetric generalized traveling salesman problem. IFAC-PapersOnLine, 2016, vol. 49, no. 12, pp. 651-655. DOI: 10.1016/j.ifacol.2016.07.767.

23. Khachay M., Neznakhina K. Towards tractability of the Euclidean generalized traveling salesman problem in grid clusters defined by a grid of bounded height. In: Communications in Computer and Information Science, 2018, vol. 871, pp. 68-77. DOI: 10.1007/978-3-319-93800-4_6.

24. Khachay M., Neznakhina K. Complexity and approximability of the euclidean generalized traveling salesman problem in grid clusters. Annals of Mathematics and Artificial Intelligence, 2020, vol. 88, no. 1, pp. 53-69. DOI: 10.1007/s10472-019-09626-w.

25. Salman R., Ekstedt F., Damaschke P. Branch-and-bound for the precedence constrained generalized traveling salesman problem. Operations Research Letters, 2020, vol. 48, no. 2, pp. 163-166. DOI: 10.1016/ j.orl.2020.01.009.

26. Khachay M., Kudriavtsev A., Petunin A. PCGLNS: A heuristic solver for the precedence constrained generalized traveling salesman problem. In: Optimization and Applications, 2020, pp. 196-208. DOI: 10.1007/978-3-030-62867-3_15.

27. GitHub. AndreiKud. PCGLNS. URL: https://github.com/AndreiKud/PCGLNS/ (дата обращения: 16.09.2021).

28. Morin T.L., Marsten R.E. Branch-and-bound strategies for dynamic programming. Operations Research, 1976, vol. 24, no. 4, pp. 611-627. URL: http://www.jstor.org/stable/169764 (дата обращения: 16.09.2021).

29. Steiner G. On the complexity of dynamic programming for sequencing problems with precedence constraints. Annals of Operations Research, 1990, vol. 26, no. 1-4, pp. 103-123. DOI: 10.1007/BF02248587.

30. GitHub. Ukoloff. PCGTSP-BnB. URL: https://github.com/ukoloff/PCGTSP-BnB (дата обращения: 16.09.2021).

31. Tavaeva A., Petunin A., Ukolov S., Krotov V. A cost minimizing at laser cutting of sheet parts on CNC machines. In: Mathematical Optimization Theory and Operations Research, pp. 422-437. DOI: 10.1007/9783-030-33394-2 33.

Software & Systems Received 04.10.21, Revised 18.11.21

DOI: 10.15827/0236-235X.137.054-064 2022, vol. 35, no. 1, pp. 054-064

Software for solving the precedence constrained generalized traveling salesman problem

A.A. Petunin 1, Dr.Sc. (Engineering), Professor, a.a.petunin@urfu.ru, aapetunin@gmail.com S.S. Ukolov 1, Junior Researcher, s.s.ukolov@urfu.ru

M. Yu. Khachay 2, Dr.Sc. (Physics and Mathematics), Professor, Head of Department, mkhachay@imm.uran.ru

1 Ural Federal University named after the First President of Russia B.N. Yeltsin, Ekaterinburg, 620002, Russian Federation

2 N.N. Krasovskii Institute of Mathematics and Mechanics of the Ural Branch of the Russian Federation Academy of Sciences, Ekaterinburg, 620108, Russian Federation

Abstract. The paper considers the generalized problem of the precedence constraint traveling salesman (PCGTSP). Like the classical traveling salesman problem (TSP), the authors search a minimum cost closed cycle in this problem, while the set of vertices is divided into nonempty pairwise disjoint subsets that are clusters; each feasible route must visit each cluster in a single vertex. In addition, the set of valid routes is constrained by an additional restriction on the order of visiting clusters, that is, some clusters must be visited earlier than others. In contrast to the TSP and the generalized traveling salesman problem (GTSP), this problem is poorly studied both theoretically and from the point of view of algorithm design and implementation.

The paper proposes the first specialized branch-and-bound algorithms using the solutions obtained using the recently developed PCGLNS heuristic as an initial guess. The original PCGTSP problem undergoes several relaxations, therefore there are several lower bounds for the original problem; the largest of them is used to cut off the branches of the search tree and thereby reduce the enumeration. The algorithms are implemented as open source software in the Python 3 programming language using the specialized NetworkX library. The performance of the proposed algorithms is evaluated on test examples from the PCGTSPLIB public library in comparison with the state-of-the-art Gurobi solver using the MILP model recently proposed by the authors, and seems to be quite competitive even in the current implementation.

The developed algorithms can be used in a wide class of practical problems, for example, for optimal tool routing for CNC sheet cutting machines, as well as for assessing the quality of solutions obtained using other methods.

Keywords: GTSP, precedence constraint, branch and bound, dynamic programming, Held-Karp algorithm.

Acknowledgements. The work was financially supported performed by the Ministry of Science and Higher Education of the Russian Federation (Agreement no. 075-02-2021-1383).

References

1. Srivastava S., Kumar S., Garg R., Sen P. Generalized traveling salesman problem through n sets of nodes. CORS J.., 1969, vol. 7, no. 2, pp. 97-101.

2. Gutin G., Punnen A.P. The Traveling Salesman Problem and Its Variations. Boston, MA: Springer US, 2007, 38 p.

3. Castelino K., D'Souza R., Wright P.K. Toolpath optimization for minimizing airtime during machining. J. of Manufacturing Systems, 2003, vol. 22, no. 3, pp. 173-180. DOI: 10.1016/S0278-6125(03)90018-5.

4. Chentsov A.G., Chentsov P.A., Petunin A.A., Sesekin A.N. Model of megalopolises in the tool path optimisation for CNC plate cutting machines. Int. J. of Production Research, 2018, vol. 56, no. 14, pp. 4819-4830. DOI: 10.1080/00207543.2017.1421784.

5. Makarovskikh T., Panyukov A., Savitskiy E. Mathematical models and routing algorithms for economical cutting tool paths. Int. J. of Production Research, 2018, vol. 56, no. 3, pp. 1171-1188. DOI: 10.1080/ 00207543.2017.1401746.

6. Salman R., Carlson J.S., Ekstedt F., Spensieri D., Torstensson J., Soderberg R. An industrially validated CMM inspection process with sequence constraints. Procedía CIRP, 2016, vol. 44, pp. 138-143. DOI: 10.1016/j.procir.2016.02.136.

7. Dewil R., Kûçûkoglu I., Luteyn C., Cattrysse D. A critical review of multi-hole drilling path optimization. Archives of Computational Methods in Engineering, 2019, vol. 26, no. 2, pp. 449-459. DOI: 10.1007/s11831-018-9251-x.

8. Papadimitriou C. The Euclidean travelling salesman problem is NP-complete. Theoretical Computer Science, 1977, vol. 4, no. 3, pp. 237-244. DOI: 10.1016/0304-3975(77)90012-3.

9. Held M., Karp R.M. A dynamic programming approach to sequencing problems. J. Soc. Indust. Appl. Math., 1962, vol. 10, no. 1, pp. 196-210. Available at: http://www.jstor.org/stable/2098806 (accessed September 16, 2021).

10. Laporte G., Semet F. Computational evaluation of a transformation procedure for the symmetric generalized traveling salesman problem. INFOR: Information Systems and Operational Research, 1999, vol. 37, no. 2, pp. 114-120. DOI: 10.1080/03155986.1999.11732374.

11. Noon C.E., Bean J.C. An efficient transformation of the generalized traveling salesman problem. INFOR: Information Systems and Operational Research, 1993, vol. 31, no. 1, pp. 39-44. DOI: 10.1080/ 03155986.1993.11732212.

12. Karapetyan D., Gutin G. Efficient local search algorithms for known and new neighborhoods for the generalized traveling salesman problem. EJOR, 2012, vol. 219, no. 2, pp. 234-251. DOI: 10.1016/j.ejor. 2012.01.011.

13. Fischetti M., González J.J.S., Toth P. A branch-and-cut algorithm for the symmetric generalized traveling salesman problem. Operations Research, 1997, vol. 45, no. 3, pp. 378-394. DOI: 10.1287/opre.45.3.378.

14. Yuan Y., Cattaruzza D., Ogier M., Semet F. A branch-and-cut algorithm for the generalized traveling salesman problem with time windows. EJOR, 2020, vol. 286, no. 3, pp. 849-866. DOI: 10.1016/j.ejor. 2020.04.024.

15. Feremans C., Grigoriev A., Sitters R. The geometric generalized minimum spanning tree problem with grid clustering. 4OR, 2006, vol. 4, no. 4, pp. 319-329. DOI: 10.1007/s10288-006-0012-6.

16. Khachai M.Y., Neznakhina E.D. Approximation schemes for the generalized traveling salesman problem. Proc. Steklov Inst. Math., 2017, vol. 299, no. 1, pp. 97-105. DOI: 10.1134/S0081543817090127.

17. Gutin G., Karapetyan D. A memetic algorithm for the generalized traveling salesman problem. Natural Computing, 2010, vol. 9, no. 1, pp. 47-60. DOI: 10.1007/s11047-009-9111-6.

18. Helsgaun K. Solving the equality generalized traveling salesman problem using the Lin-Kernighan-Helsgaun algorithm. Mathematical Programming Computation, 2015, vol. 7, no. 3, pp. 269-287. DOI: 10.1007/s12532-015-0080-8.

19. Smith S.L., Imeson F. GLNS: An effective large neighborhood search heuristic for the generalized traveling salesman problem. Computers and Operations Research, 2017, vol. 87, pp. 1-19. DOI: 10.1016/ j.cor.2017.05.010.

20. Balas E., Simonetti N. Linear time dynamic-programming algorithms for new classes of restricted TSPs: A computational study. INFORMS J. on Computing, 2001, vol. 13, no. 1, pp. 56-75. DOI: 10.1287/ijoc. 13.1.56.9748.

21. Chentsov A.G., Khachai M.Y., Khachai D.M. An exact algorithm with linear complexity for a problem of visiting megalopolises. Proc. Steklov Inst. Math., 2016, vol. 295, no. 1, pp. 38-46. DOI: 10.1134/ S0081543816090054.

22. Chentsov A., Khachay M., Khachay D. Linear time algorithm for precedence constrained asymmetric generalized traveling salesman problem. IFAC-PapersOnLine, 2016, vol. 49, no. 12, pp. 651-655. DOI: 10.1016/j.ifacol.2016.07.767.

23. Khachay M., Neznakhina K. Towards tractability of the Euclidean generalized traveling salesman problem in grid clusters defined by a grid of bounded height. In: Communications in Computer and Information Science, 2018, vol. 871, pp. 68-77. DOI: 10.1007/978-3-319-93800-4_6.

24. Khachay M., Neznakhina K. Complexity and approximability of the Euclidean generalized traveling salesman problem in grid clusters. Annals of Mathematics and Artificial Intelligence, 2020, vol. 88, no. 1, pp. 53-69. DOI: 10.1007/s10472-019-09626-w.

25. Salman R., Ekstedt F., Damaschke P. Branch-and-bound for the precedence constrained generalized traveling salesman problem. Operations Research Letters, 2020, vol. 48, no. 2, pp. 163-166. DOI: 10.1016/ j.orl.2020.01.009.

26. Khachay M., Kudriavtsev A., Petunin A. PCGLNS: A heuristic solver for the precedence constrained generalized traveling salesman problem. In: Optimization and Applications, 2020, pp. 196-208. DOI: 10.1007/978-3-030-62867-3_15.

27. GitHub. AndreiKud. PCGLNS. Available at: https://github.com/AndreiKud/PCGLNS/ (accessed September 16, 2021).

28. Morin T.L., Marsten R.E. Branch-and-bound strategies for dynamic programming. Operations Research, 1976, vol. 24, no. 4, pp. 611-627. Available at: http://www.jstor.org/stable/169764 (accessed September 16, 2021).

29. Steiner G. On the complexity of dynamic programming for sequencing problems with precedence constraints. Annals of Operations Research, 1990, vol. 26, no. 1-4, pp. 103-123. DOI: 10.1007/BF02248587.

30. GitHub. Ukoloff. PCGTSP-BnB. Available at: https://github.com/ukoloff/PCGTSP-BnB (accessed September 16, 2021).

31. Tavaeva A., Petunin A., Ukolov S., Krotov V. A cost minimizing at laser cutting of sheet parts on CNC machines. In: Mathematical Optimization Theory and Operations Research, pp. 422-437. DOI: 10.1007/978-3-030-33394-2_33.

Для цитирования

Петунин А.А., Уколов С.С., Хачай М.Ю. Программное обеспечение для решения обобщенной задачи коммивояжера с ограничениями предшествования // Программные продукты и системы. 2022. Т. 35. № 1. С. 054-064. DOI: 10.15827/0236-235X.137.054-064.

For citation

Petunin A.A., Ukolov S.S., Khachay M.Yu. Software for solving the precedence constrained generalized traveling salesman problem. Software & Systems, 2022, vol. 35, no. 1, pp. 054-064 (in Russ.). DOI: 10.15827/0236-235X. 137.054-064.

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