Задача коммивояжёра

Материал из Systems analysis wiki
Перейти к навигации Перейти к поиску

Задача коммивояжёра (ЗК) — классическая NP-трудная задача комбинаторной оптимизации, заключающаяся в поиске кратчайшего замкнутого маршрута (гамильтонова цикла), который проходит через каждый из заданного набора городов (вершин полного графа) ровно один раз и возвращается в исходную точку. Формально задача сводится к нахождению гамильтонова цикла минимальной стоимости в полном взвешенном графе Kn с неотрицательными весами на рёбрах. Задача принадлежит к области теории графов, исследования операций и теории вычислительной сложности и служит эталонным тестом для алгоритмов оптимизации.[1][2][3]

Оптимизационная версия задачи является NP-трудной, а версия принятия решения (существует ли тур стоимости не более L) — NP-полной. Точные алгоритмы позволяют находить оптимальные решения для экземпляров с десятками тысяч городов, эвристики дают близкие к оптимальным результаты для миллионов городов. Задача применяется в логистике, производстве микросхем, секвенировании ДНК и других областях.[2][4]

История и предпосылки

Ранние упоминания (XIX век)

Практические аспекты задачи упоминались ещё в 1832 году в немецком справочнике для коммивояжёров Der Handlungsreisende, содержавшем примеры туров по Германии и Швейцарии без математической формализации. В XIX веке ирландский математик Уильям Роуэн Гамильтон и британский математик Томас Киркман изучали гамильтоновы циклы — в частности, в связи с icosian game Гамильтона, представлявшей собой задачу обхода вершин додекаэдра.[2][5]

Математическая формализация (1930-е годы)

Математическая формулировка появилась в 1930-е годы. Карл Менгер в Вене и Гарварде определил задачу как «проблему посыльного» (Botenproblem), рассмотрел алгоритм полного перебора и отметил неоптимальность эвристики ближайшего соседа. В тот же период Меррилл Флад изучал её применительно к маршрутизации школьных автобусов, а Хасслер Уитни в Принстоне назвал её «проблемой 48 штатов».[2][5]

Термин «traveling salesman problem» впервые появился в 1949 году в отчёте Джулии Робинсон (RAND).[5]

Ключевые прорывы (1954–1976)

В 1954 году Джордж Данциг, Рей Фалкерсон и Селмер Джонсон предложили формулировку задачи в виде целочисленного линейного программирования с отсекающими плоскостями и решили экземпляр с 49 городами США (по одному в каждом из 48 штатов плюс Вашингтон; оптимальный тур — 12 345 миль).[1]

В 1962 году Майкл Хелд и Ричард Карп разработали алгоритм динамического программирования со сложностью O(n22n).[6]

В 1972 году Ричард Карп доказал NP-полноту версии принятия решения путём сведения от задачи о гамильтоновом цикле.[3]

В 1976 году Никос Христофидис (независимо Анатолий Сердюков) разработал алгоритм с гарантией аппроксимации 3/2 для метрического случая — результат, остававшийся лучшим более 40 лет.[7]

Эпоха вычислительных рекордов (1991 — настоящее время)

В 1991 году Герхард Райнельт опубликовал библиотеку тестовых экземпляров TSPLIB, ставшую стандартом для сравнения алгоритмов.[8]

С 1990-х годов развитие метода ветвей и отсечений (branch-and-cut) в решателе Concorde (Дэвид Эпплгейт, Роберт Биксби, Вацлав Хватал, Уильям Кук) позволило решать крупные экземпляры оптимально. Крупнейший оптимально решённый экземпляр — pla85900 (85 900 точек микросхемы, 2006 год, эквивалент ~136 CPU-лет на оборудовании того времени).[2][9]

Сводная хронология

Год Событие
1832 Немецкий справочник Der Handlungsreisende с практическими примерами туров
XIX в. Изучение гамильтоновых циклов (Гамильтон, Киркман)
1930-е Математическая формализация (Менгер, Уитни, Флад)
1949 Термин «traveling salesman problem» (Джулия Робинсон, RAND)
1954 Решение 49-городского экземпляра методом отсекающих плоскостей (Данциг, Фалкерсон, Джонсон)
1962 Алгоритм динамического программирования (Хелд, Карп)
1972 Доказательство NP-полноты (Карп)
1976 3/2-аппроксимация для метрического случая (Христофидис; Сердюков)
1991 Публикация библиотеки TSPLIB (Райнельт)
1998 PTAS для евклидова TSP (Арора)
2001 Оптимальное решение для 15 112 городов Германии (Concorde)
2006 Оптимальное решение для 85 900 точек микросхемы (Concorde)
2021 Улучшение аппроксимации до 3/2ε (Karlin et al.)

Источники: Applegate et al. (2006); University of Waterloo TSP project.[2][5]

Теоретические основы

Формальная постановка задачи

Задача формулируется на полном графе G=(V,E) с |V|=n вершинами и весами c:E0. Цель — найти гамильтонов цикл минимальной суммарной стоимости:[1][2]

minπΠi=1ncπ(i),π(i+1)

где Π — множество всех гамильтоновых циклов, π(n+1)=π(1).

Различают несколько важных вариантов задачи:

  • Симметричная ЗКcij=cji (неориентированный граф).
  • Асимметричная ЗК — веса произвольны (ориентированный граф).
  • Метрическая ЗК — выполняется неравенство треугольника: cij+cjkcik.
  • Евклидова ЗК — города представлены точками в плоскости, расстояния — евклидовы.

Формулировка целочисленного линейного программирования

Стандартная формулировка DFJ (Данциг–Фалкерсон–Джонсон, 1954):[1]

minijcijxij

при ограничениях:

jixij=1,ijxij=1(iV)(степенные ограничения)
i,jS,ijxij|S|1(SV,2|S|n2)(устранение подтуров)
xij{0,1}

Число ограничений устранения подтуров экспоненциально (2n), поэтому на практике они генерируются динамически в ходе решения LP-релаксации.[2]

Альтернативная формулировка MTZ (Миллер–Такер–Землин) использует переменные порядка посещения и имеет полиномиальное число ограничений, но более слабую LP-релаксацию.[4]

Одной из классических постановок задачи коммивояжёра является формулировка Данцига—Фалкерсона—Джонсона (DFJ), предложенная в 1954 году.[1] В этой постановке для каждой пары городов вводится бинарная переменная, показывающая, включён ли переход между ними в искомый маршрут. Целевая функция минимизирует суммарную стоимость выбранных переходов, где в качестве стоимости обычно рассматриваются расстояние, время или иные затраты на перемещение.

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

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

Существенным недостатком данной постановки является очень большое число ограничений на устранение подтуров: их количество растёт экспоненциально с увеличением числа городов. По этой причине на практике такие ограничения обычно не задаются заранее полностью, а добавляются по мере необходимости в ходе решения LP-релаксации.[2]

Альтернативой является формулировка Миллера—Такера—Землина (MTZ), в которой вместо явного перечисления ограничений на подтуры используются дополнительные переменные, задающие порядок посещения городов. Это позволяет получить полиномиальное число ограничений и сделать модель более компактной. Однако такая формулировка обычно даёт более слабую LP-релаксацию по сравнению с DFJ.[4]

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

  • Версия принятия решения принадлежит классу NP-полных задач (Карп, 1972).[3]
  • Оптимизационная версия NP-трудна даже для евклидовых расстояний (Papadimitriou, 1977).[10]
  • Метрический TSP является APX-полным: для него не существует PTAS, если P ≠ NP.[11]
  • Для евклидова TSP существует полиномиальная схема приближённого решения (PTAS) с гарантией 1+ε для произвольного ε>0 (Арора, 1998).[12]

Асимптотические результаты

Для n случайных точек, равномерно распределённых в единичном квадрате, асимптотическая длина оптимального тура описывается теоремой Бирдвуда–Халтон–Хаммерсли (1959):[13]

Lnβn

где β — константа Бирдвуда–Халтон–Хаммерсли; по численным оценкам, β0,7124.

Методы решения

Методы решения ЗК делятся на три класса: точные, приближённые (с гарантированной оценкой качества) и эвристические (без строгих гарантий).[2][4]

Точные алгоритмы

Полный перебор. Простейший метод — перечисление всех (n1)! возможных туров. Сложность O(n!) делает его непрактичным уже при n>15.[2]

Динамическое программирование Хелда–Карпа (1962). Использует принцип оптимальности Беллмана: для каждого подмножества SV и конечной вершины jS вычисляется стоимость кратчайшего пути, посещающего все вершины S и оканчивающегося в j. Сложность по времени и памяти — O(n22n), что практично до n2030.[6]

Ветвление и отсечения (Branch-and-cut). Основной метод для крупных экземпляров. Сочетает ветвление и границы с динамической генерацией отсекающих неравенств (subtour elimination, comb inequalities, clique-tree inequalities и др.) для усиления LP-релаксации DFJ-формулировки. Решатель Concorde является наиболее известной реализацией этого подхода.[2][9]

Приближённые алгоритмы

Удвоение минимального остовного дерева. Построение MST, удвоение его рёбер, нахождение эйлерова цикла и сокращение (shortcutting) повторных вершин. Даёт 2-аппроксимацию для метрического TSP.[4]

Алгоритм Христофидиса–Сердюкова (1976). Улучшает предыдущий подход: после построения MST находится минимальное совершенное паросочетание на вершинах нечётной степени, затем строится эйлеров тур и выполняется сокращение. Гарантия — не более 3/2OPT для метрического TSP:[7]

Cалг32Copt

Этот результат оставался лучшим более 40 лет. В 2021 году Karlin, Klein и Oveis Gharan улучшили гарантию до 3/2ε с очень малым ε>1036.[11]

PTAS для евклидова случая. Алгоритм Ароры (1998) и Митчелла обеспечивает гарантию (1+ε)OPT за время, полиномиальное по n при фиксированном ε.[12]

Эвристики и метаэвристики

Алгоритм ближайшего соседа. Жадная конструктивная эвристика: из текущего города переход к ближайшему непосещённому. Сложность O(n2), аппроксимация — Θ(logn) в худшем случае для метрического TSP.[4]

k-opt. Локальный поиск путём замены k рёбер тура: 2-opt удаляет два ребра и переподключает фрагменты, 3-opt — три ребра.[2]

Алгоритм Лина–Кернигана (1973) и LKH. Переменный k-opt с адаптивным выбором числа заменяемых рёбер. Модификация Хельсгауна (LKH) является одним из наиболее эффективных эвристических решателей: для экземпляров с миллионами городов решения отклоняются от оптимума в пределах 1–3 %.[14]

Метаэвристики. К ним относятся:

  • Имитированный отжиг — стохастический поиск с убывающей «температурой».
  • Генетические алгоритмы — эволюционный подход с операторами скрещивания и мутации.
  • Оптимизация муравьиных колоний (Dorigo, 1992) — моделирование поведения муравьёв с феромонными следами.[4][14]

Сравнение подходов

Метод Сложность Гарантия качества Практический размер
Полный перебор O(n!) Точный n15
Динамическое программирование (Хелд–Карп) O(n22n) Точный n2530
Branch-and-cut (Concorde) Экспоненциальная (в худшем случае) Точный n85900 (рекорд)
Удвоение MST Полиномиальная 2OPT Неограниченно
Христофидис–Сердюков Полиномиальная 1,5OPT Неограниченно
PTAS (Арора) Полиномиальная при фикс. ε (1+ε)OPT Евклидов случай
LKH O(n2,2) (эмпирич.) Нет гарантии Миллионы городов

Источники: Applegate et al. (2006); Laporte (1992); Cook (2012).[2][4][14]

Ключевые результаты и вычислительные рекорды

Библиотека TSPLIB

Библиотека TSPLIB содержит более 100 экземпляров различной сложности — от десятков до 85 900 городов, включая геометрические, VLSI и реальные экземпляры. Все экземпляры TSPLIB решены оптимально.[8][2]

Примечание: TSPLIB (Traveling Salesman Problem Library, часто называемая TSPLIB95) — это одна из самых авторитетных и широко используемых в мире библиотек стандартных тестовых экземпляров для Задачи коммивояжёра (TSP) и близких к ней комбинаторных задач оптимизации. Она служит де-факто золотым стандартом benchmarking’а в этой области уже более 35 лет (с 1991 года) и позволяет объективно сравнивать алгоритмы, обеспечивать воспроизводимость результатов и отслеживать научный прогресс.

Рекорды оптимальных решений

Год Экземпляр Число городов/точек Метод Длина тура Источник
1954 49 штатов США 49 Отсекающие плоскости (DFJ) 12 345 миль Dantzig et al.[1]
~1987 2 392 Branch-and-cut Padberg, Rinaldi
2001 Города Германии 15 112 Branch-and-cut (Concorde) Applegate et al.[2]
2004 Города Швеции 24 978 Concorde ~72 500 км Applegate et al.[2]
2005 Печатная плата 33 810 Concorde 66 048 945 Applegate et al.[2]
2006 Микросхема (pla85900) 85 900 Concorde 142 382 641 Applegate et al.[9]

Решение экземпляра pla85900 потребовало эквивалента ~136 CPU-лет на оборудовании 2006 года. Для случайных евклидовых экземпляров время работы Concorde растёт экспоненциально с n, однако реальные структурированные экземпляры часто оказываются значительно легче.[9]

Эвристические рекорды

Эвристики LKH (Хельсгаун) решают экземпляры с миллионами городов за приемлемое время с отклонением от оптимума в пределах 1–3 %. Для стандартных экземпляров TSPLIB эвристики часто находят оптимальные или близкие к оптимальным решения.[14]

Применение

Задача коммивояжёра возникает как модель или подзадача в широком спектре практических областей.[2][4][15]

Логистика и транспорт

ЗК является ядром задачи маршрутизации транспортных средств (Vehicle Routing Problem, VRP). Оптимизация маршрутов доставки, курьерских служб и почтовых отправлений непосредственно сводится к вариантам ЗК. Многочисленные реальные логистические системы используют эвристики для ЗК в качестве компонентов маршрутизации.[4]

Производство микросхем и печатных плат

В производстве печатных плат задача моделирует минимизацию перемещений сверлильной головки: города — отверстия, стоимость — время перемещения. Аналогичная задача возникает при укладке проводов и проектировании СБИС (VLSI). Именно экземпляр из этой области (pla85900) является крупнейшим оптимально решённым.[2][9]

Геномика и биоинформатика

В геномике упорядочивание фрагментов ДНК по перекрытиям (задача кратчайшей надстроки, shortest superstring problem) редуцируется к ЗК. Фрагменты выступают в роли городов, а перекрытия — в роли расстояний.[2][15]

Другие области

  • Астрономия — минимизация перемещений телескопа между объектами наблюдения.
  • Складская логистика — маршруты комплектации заказов.
  • Кристаллография — определение структуры кристаллов методом рентгеновской дифракции.
  • Робототехника — планирование траекторий.[15][14]

Варианты и обобщения

Классическая ЗК породила ряд обобщений и вариантов, каждый из которых имеет собственные приложения и теоретические результаты:[4][11]

  • Множественная ЗК (mTSP) — несколько коммивояжёров обслуживают общее множество городов.
  • Обобщённая ЗК (GTSP) — города разбиты на кластеры; требуется посетить хотя бы один город из каждого кластера.
  • ЗК с временными окнами — каждый город должен быть посещён в определённый временной интервал.
  • Prize-collecting TSP — за посещение городов начисляется выигрыш; штраф за пропуск.
  • Асимметричная ЗК — стоимость проезда зависит от направления.

Ограничения и открытые проблемы

  • NP-трудность. Точные алгоритмы имеют экспоненциальную сложность в худшем случае. Решение экземпляров с n>105 требует значительных вычислительных ресурсов и специализированных методов, хотя Concorde демонстрирует масштабируемость до n105 для структурированных данных.[2]
  • Аппроксимационный барьер. Для общего метрического TSP отсутствует PTAS; лучшая известная постоянная аппроксимации — около 3/2 с малыми улучшениями (до 123/122 в нижней границе сложности аппроксимации). Для неметрического TSP не существует полиномиального аппроксимационного алгоритма с постоянным коэффициентом (если P ≠ NP).[11]
  • Отсутствие гарантий у эвристик. Эвристики LKH и метаэвристики эмпирически эффективны, но не дают строгих гарантий качества решения.[14]
  • Память и масштабируемость. Динамическое программирование Хелда–Карпа ограничено памятью (O(n2n)). Branch-and-cut требует хранения proof-файлов для сертификации оптимальности крупных экземпляров.[6][9]

Ключевые открытые проблемы включают: возможность существенного улучшения аппроксимационных констант для метрического TSP, связь с проблемой P vs NP, а также эффективность квантовых алгоритмов для ЗК.[11]

Этические и регуляторные аспекты

Прямые этические или регуляторные аспекты для абстрактной задачи отсутствуют. В приложениях (логистика, транспорт) оптимизация маршрутов влияет на затраты энергии и выбросы, но специального регулирования для ЗК не существует. Воспроизводимость результатов обеспечивается открытыми библиотеками: TSPLIB свободно доступна для исследований, решатель Concorde распространяется для академического использования. Стандарты воспроизводимости в вычислительной математике поддерживаются хранением proof-файлов оптимальности (как в случае pla85900).[9][8]

Перспективы и направления исследований

Направления дальнейших исследований включают:[11][14]

  • Гибридные методы — интеграция машинного обучения с классическими эвристиками для ускорения генерации отсекающих плоскостей и улучшения начальных решений.
  • Квантовые алгоритмы — предварительные оценки (Ambainis et al., сложность O(1,728n)) и квантовые приближённые методы (QAOA).
  • Улучшение аппроксимаций — поиск лучших постоянных для метрического TSP и специальных метрик (графическая, планарная).
  • Параллельные и распределённые вычисления — масштабирование точных и эвристических методов.
  • Нейросетевые подходы — end-to-end обучение решателей для больших экземпляров (обзоры 2024–2025 годов отмечают прогресс, но пока без гарантий качества).
  • Варианты и обобщения — mTSP, ЗК с временными окнами, интеграция с реальными ограничениями в логистических системах.

См. также

Литература

  • Dantzig G. B., Fulkerson R., Johnson S. M. Solution of a Large-Scale Traveling-Salesman Problem // Operations Research. 1954. Vol. 2, No. 4. P. 393–410.
  • Karp R. M. Reducibility Among Combinatorial Problems // Complexity of Computer Computations. 1972. P. 85–103.
  • Christofides N. Worst-case analysis of a new heuristic for the travelling salesman problem // Management Sciences Research Report No. 388. Carnegie Mellon University, 1976.
  • Held M., Karp R. M. A dynamic programming approach to sequencing problems // Journal of the SIAM. 1962. Vol. 10, No. 1. P. 196–210.
  • Reinelt G. TSPLIB — A Traveling Salesman Problem Library // ORSA Journal on Computing. 1991. Vol. 3, No. 4. P. 376–384.
  • Beardwood J., Halton J. H., Hammersley J. M. The Shortest Path Through Many Points // Proc. Cambridge Phil. Soc. 1959. Vol. 55, No. 4. P. 299–327.
  • Arora S. Polynomial time approximation schemes for Euclidean traveling salesman and other geometric problems // Journal of the ACM. 1998. Vol. 45, No. 5. P. 753–782.
  • Laporte G. The traveling salesman problem: An overview of exact and approximate algorithms // European Journal of Operational Research. 1992. Vol. 59, No. 2. P. 231–247.
  • Applegate D. L., Bixby R. E., Chvátal V., Cook W. J. The Traveling Salesman Problem: A Computational Study. Princeton University Press, 2006.
  • Cook W. J. In Pursuit of the Traveling Salesman: Mathematics at the Limits of Computation. Princeton University Press, 2012.
  • Saller S. et al. A survey on approximability of traveling salesman problems using the TSP-T3CO definition scheme // arXiv:2311.00604, 2023.

Ссылки

Примечания

  1. 1,0 1,1 1,2 1,3 1,4 1,5 Dantzig G. B., Fulkerson R., Johnson S. M. Solution of a Large-Scale Traveling-Salesman Problem // Operations Research. 1954. Vol. 2, No. 4. P. 393–410. https://doi.org/10.1287/opre.2.4.393
  2. 2,00 2,01 2,02 2,03 2,04 2,05 2,06 2,07 2,08 2,09 2,10 2,11 2,12 2,13 2,14 2,15 2,16 2,17 2,18 2,19 2,20 2,21 Applegate D. L., Bixby R. E., Chvátal V., Cook W. J. The Traveling Salesman Problem: A Computational Study. Princeton: Princeton University Press, 2006.
  3. 3,0 3,1 3,2 Karp R. M. Reducibility Among Combinatorial Problems // Complexity of Computer Computations / Eds. R. E. Miller, J. W. Thatcher. New York: Plenum Press, 1972. P. 85–103.
  4. 4,00 4,01 4,02 4,03 4,04 4,05 4,06 4,07 4,08 4,09 4,10 Laporte G. The traveling salesman problem: An overview of exact and approximate algorithms // European Journal of Operational Research. 1992. Vol. 59, No. 2. P. 231–247.
  5. 5,0 5,1 5,2 5,3 University of Waterloo. TSP History. https://www.math.uwaterloo.ca/tsp/ (дата обращения: 03.03.2026).
  6. 6,0 6,1 6,2 Held M., Karp R. M. A dynamic programming approach to sequencing problems // Journal of the Society for Industrial and Applied Mathematics. 1962. Vol. 10, No. 1. P. 196–210.
  7. 7,0 7,1 Christofides N. Worst-case analysis of a new heuristic for the travelling salesman problem // Management Sciences Research Report No. 388. Carnegie Mellon University, 1976.
  8. 8,0 8,1 8,2 Reinelt G. TSPLIB — A Traveling Salesman Problem Library // ORSA Journal on Computing. 1991. Vol. 3, No. 4. P. 376–384. https://doi.org/10.1287/ijoc.3.4.376
  9. 9,0 9,1 9,2 9,3 9,4 9,5 9,6 Applegate D. L. et al. Certification of an optimal TSP tour through 85,900 cities // Operations Research Letters. 2009. Vol. 37, No. 1. P. 11–15.
  10. Papadimitriou C. H. The Euclidean travelling salesman problem is NP-complete // Theoretical Computer Science. 1977. Vol. 4, No. 3. P. 237–244.
  11. 11,0 11,1 11,2 11,3 11,4 11,5 Saller S. et al. A survey on approximability of traveling salesman problems using the TSP-T3CO definition scheme // arXiv:2311.00604, 2023 (updated 2025).
  12. 12,0 12,1 Arora S. Polynomial time approximation schemes for Euclidean traveling salesman and other geometric problems // Journal of the ACM. 1998. Vol. 45, No. 5. P. 753–782.
  13. Beardwood J., Halton J. H., Hammersley J. M. The Shortest Path Through Many Points // Proceedings of the Cambridge Philosophical Society. 1959. Vol. 55, No. 4. P. 299–327. https://doi.org/10.1017/S0305004100034095
  14. 14,0 14,1 14,2 14,3 14,4 14,5 14,6 Cook W. J. In Pursuit of the Traveling Salesman: Mathematics at the Limits of Computation. Princeton: Princeton University Press, 2012.
  15. 15,0 15,1 15,2 University of Waterloo. TSP Applications. https://www.math.uwaterloo.ca/tsp/ (дата обращения: 03.03.2026).