Введение
NP-трудная задача в комбинаторной оптимизации
Проблема коммивояжера, также известная как задача коммивояжера (TSP), ставит следующий вопрос: "Имея список городов и расстояния между каждой парой городов, каков кратчайший возможный маршрут, который посещает каждый город ровно один раз и возвращается в исходный город?" Это NP-трудная задача в комбинаторной оптимизации, важная в теоретической информатике и исследованиях операций. Проблема путешествующего покупателя и задача маршрутизации транспортных средств являются обобщениями TSP. В теории вычислительной сложности, версия TSP о разрешимости (где задана длина L, и требуется определить, существует ли в графе тур длиной не более L) принадлежит к классу NP-полных задач. Следовательно, возможно, что время работы в худшем случае для любого алгоритма для TSP растет суперполиномиально (но не более чем экспоненциально) с увеличением числа городов. Проблема была впервые сформулирована в 1930 году и является одной из наиболее интенсивно изучаемых задач в области оптимизации. Она используется в качестве эталона для многих методов оптимизации. Несмотря на вычислительную сложность задачи, известно множество эвристических и точных алгоритмов, позволяющих полностью решить некоторые экземпляры с десятками тысяч городов, и даже приближенно решить проблемы с миллионами городов с точностью до небольшой доли процента. TSP имеет несколько применений даже в своей чистейшей формулировке, например, в планировании, логистике и производстве микросхем. В слегка модифицированном виде она возникает как подзадача во многих областях, таких как секвенирование ДНК. В этих приложениях понятие "город" представляет, например, клиентов, точки пайки или фрагменты ДНК, а понятие "расстояние" – время или стоимость перемещения или меру сходства между фрагментами ДНК. TSP также встречается в астрономии, поскольку астрономы, наблюдающие множество источников, стремятся минимизировать время, затрачиваемое на перемещение телескопа между источниками; в таких задачах TSP может быть встроена в задачу оптимального управления. Во многих приложениях могут быть наложены дополнительные ограничения, такие как ограниченные ресурсы или временные окна.
История
Истоки проблемы коммивояжёра не ясны. В руководстве для путешествующих торговцев 1832 года упоминается проблема и приводятся примерные маршруты по Германии и Швейцарии, но отсутствует математическое рассмотрение. Математическая формулировка TSP была дана в XIX веке ирландским математиком Уильямом Роуэном Гамильтоном и британским математиком Томасом Киркманом. Икозианская игра Гамильтона представляла собой развлекательную головоломку, основанную на поиске гамильтонова цикла. Общая форма TSP, по-видимому, впервые была изучена математиками в 1930-х годах в Вене и Гарварде, в частности Карлом Менгером, который определяет проблему, рассматривает очевидный алгоритм полного перебора и отмечает неоптимальность эвристики ближайшего соседа: мы обозначаем «проблемой посыльного» (поскольку на практике этот вопрос должен решаться каждым почтальоном, а также многими путешественниками) задачу нахождения кратчайшего маршрута, соединяющего конечное множество точек, для которых известны попарные расстояния между ними. Конечно, эту проблему можно решить конечным числом попыток. Правила, позволяющие сократить число попыток по сравнению с числом перестановок заданных точек, неизвестны. Правило, согласно которому следует сначала двигаться от начальной точки к ближайшей к ней, затем к ближайшей к этой и так далее, как правило, не приводит к кратчайшему маршруту. Впервые математически проблема была рассмотрена в 1930-х годах Мерриллом М. Флаудом, который искал решение задачи маршрутизации школьных автобусов. Хасслер Уитни из Принстонского университета проявил интерес к проблеме, которую он назвал «проблемой 48 штатов». Самая ранняя публикация, использующая фразу «проблема коммивояжёра», — это отчёт RAND Corporation 1949 года Джулии Робинсон «Об игре Гамильтона (проблема коммивояжёра)». В 1950-х и 1960-х годах проблема приобрела всё большую популярность в научных кругах Европы и США после того, как корпорация RAND в Санта-Монике предложила призы за успехи в её решении. Алгоритм Кристофидеса-Сердюкова даёт решение, которое в худшем случае не более чем в 1,5 раза превышает оптимальное решение. Поскольку алгоритм был простым и быстрым, многие надеялись, что он уступит место почти оптимальному методу. Однако эта надежда на улучшение не реализовалась сразу, и алгоритм Кристофидеса-Сердюкова оставался методом с наилучшим худшим сценарием до 2011 года, когда был разработан (незначительно) улучшенный алгоритм аппроксимации для подмножества «графических» TSP. В 2020 году это незначительное улучшение было распространено на полный (метрический) TSP. Ричард М. Карп в 1972 году показал, что задача гамильтонова цикла является NP-полной, что подразумевает NP-трудность TSP. Это дало математическое объяснение кажущейся вычислительной сложности поиска оптимальных маршрутов. Значительный прогресс был достигнут в конце 1970-х и 1980-х годах, когда Гретшелю, Падбергу, Ринальди и другим удалось точно решить экземпляры с 2392 городами, используя методы отсечений и ветвей и границ. В 1990-х годах Апплегейт, Биксби, Чватал и Кук разработали программу Concorde, которая использовалась во многих недавних рекордных решениях. Герхард Райнельт опубликовал TSPLIB в 1991 году — сборник эталонных экземпляров различной сложности, который использовался многими исследовательскими группами для сравнения результатов. В 2006 году Кук и другие вычислили оптимальный маршрут для экземпляра в 85 900 городов, заданного задачей компоновки микросхем, что в настоящее время является самым крупным решённым экземпляром TSPLIB. Для многих других экземпляров с миллионами городов можно найти решения, гарантированно отличающиеся от оптимального маршрута не более чем на 2–3%.
We denote by messenger problem (since in practice this question should be solved by each postman, anyway also by many travelers) the task to find, for finitely many points whose pairwise distances are known, the shortest route connecting the points. Of course, this problem is solvable by finitely many trials. Rules which would push the number of trials below the number of permutations of the given points, are not known. The rule that one first should go from the starting point to the closest point, then to the point closest to this, etc., in general does not yield the shortest route. It was first considered mathematically in the 1930s by Merrill M. Flood who was looking to solve a school bus routing problem. Hassler Whitney at Princeton University generated interest in the problem, which he called the "48 states problem". The earliest publication using the phrase "travelling [or traveling] salesman problem" was the 1949 RAND Corporation report by Julia Robinson, "On the Hamiltonian game (a traveling salesman problem)." In the 1950s and 1960s, the problem became increasingly popular in scientific circles in Europe and the United States after the RAND Corporation in Santa Monica offered prizes for steps in solving the problem. the Christofides Serdyukov algorithm yields a solution that, in the worst case, is at most 1.5 times longer than the optimal solution. As the algorithm was simple and quick, many hoped it would give way to a near optimal solution method. However, this hope for improvement did not immediately materialize, and Christofides Serdyukov remained the method with the best worst case scenario until 2011, when a (very) slightly improved approximation algorithm was developed for the subset of "graphical" TSPs. In 2020 this tiny improvement was extended to the full (metric) TSP. Richard M. Karp showed in 1972 that the Hamiltonian cycle problem was NP complete, which implies the NP hardness of TSP. This supplied a mathematical explanation for the apparent computational difficulty of finding optimal tours. Great progress was made in the late 1970s and 1980, when Grötschel, Padberg, Rinaldi and others managed to exactly solve instances with up to 2,392 cities, using cutting planes and branch and bound. In the 1990s, Applegate, Bixby, Chvátal, and Cook developed the program Concorde that has been used in many recent record solutions. Gerhard Reinelt published the TSPLIB in 1991, a collection of benchmark instances of varying difficulty, which has been used by many research groups for comparing results. In 2006, Cook and others computed an optimal tour through an 85,900 city instance given by a microchip layout problem, currently the largest solved TSPLIB instance. For many other instances with millions of cities, solutions can be found that are guaranteed to be within 2–3% of an optimal tour.
В качестве задачи графа
TSP может быть смоделирована как неориентированный взвешенный граф, где города являются вершинами графа, маршруты – ребрами графа, а расстояние между городами – весом ребра. Это задача минимизации, начинающаяся и заканчивающаяся в заданной вершине после посещения каждой другой вершины ровно один раз. Часто модель представляет собой полный граф (то есть, каждая пара вершин соединена ребром). Если между двумя городами нет прямого пути, то добавление достаточно длинного ребра позволит построить полный граф, не изменив оптимальный маршрут.
Асимметричные и симметричные
В симметричной задаче коммивояжера (TSP) расстояние между двумя городами одинаково в обоих направлениях, что формирует неориентированный граф. Эта симметрия сокращает количество возможных решений вдвое. В асимметричной задаче коммивояжера (TSP) пути могут отсутствовать в одном или обоих направлениях, либо расстояния могут различаться, что формирует ориентированный граф. Факторы реального мира, такие как пробки, одностороннее движение и стоимость авиабилетов, зависящая от тарифов отправления и прибытия, могут привести к постановке задачи TSP в асимметричной форме.
Связанные проблемы
Эквивалентная формулировка с точки зрения теории графов: при заданном полном взвешенном графе (где вершины представляют города, ребра – дороги, а веса – стоимость или расстояние дороги), необходимо найти гамильтонов цикл с минимальным весом. Это более общая задача, чем задача о гамильтоновом пути, которая лишь спрашивает о существовании гамильтонова пути (или цикла) в неполном невзвешенном графе. Требование вернуться в исходный город не меняет вычислительную сложность задачи; см. задачу о гамильтоновом пути. Другая связанная задача – задача о путешествующем продавце с ограничением по пропускной способности: найти гамильтонов цикл во взвешенном графе с минимальным весом самого тяжелого ребра. Пример из реальной жизни – избежание узких улиц для больших автобусов. Задача имеет значительную практическую важность, помимо очевидных областей транспорта и логистики. Классический пример – производство печатных плат: планирование маршрута сверлильной машины для сверления отверстий в печатной плате. В робототехнических приложениях для обработки или сверления «городами» являются детали для обработки или отверстия (разных размеров) для сверления, а «стоимость перемещения» включает время на переналадку робота (задача последовательного выполнения работ на одном станке). Обобщенная задача о путешествующем продавце, также известная как «задача о путешествующем политике», рассматривает «штаты», которые имеют (один или несколько) «городов», и продавец должен посетить ровно один город из каждого штата. Одно из применений встречается при оптимизации раскроя материала для минимизации смены режущего инструмента. Другое связано с бурением в производстве полупроводников; например, Noon и Bean показали, что обобщенная задача о путешествующем продавце может быть преобразована в стандартную задачу TSP с тем же количеством городов, но с модифицированной матрицей расстояний. Задача последовательного упорядочения рассматривает проблему посещения набора городов, где существуют отношения предшествования между городами. Распространенный вопрос на собеседовании в Google – как маршрутизировать данные между узлами обработки данных; маршруты различаются по времени передачи данных, но узлы также отличаются вычислительной мощностью и объемом памяти, что усложняет проблему выбора места назначения данных. Задача о путешествующем покупателе рассматривает покупателя, которому поручено приобрести набор продуктов. Он может приобрести эти продукты в нескольких городах, но по разным ценам, и не во всех городах предлагаются одни и те же продукты. Цель состоит в том, чтобы найти маршрут между подмножеством городов, который минимизирует общую стоимость (стоимость проезда + стоимость покупки) и позволяет приобрести все необходимые продукты.
Формулировка Данциг Фулкерсон Джонсон
Пронумеруйте города числами 1, ..., n и определите: Пусть d<sub>ij</sub> обозначает расстояние от города i до города j. Тогда задачу коммивояжера можно записать в виде следующей задачи целочисленного линейного программирования:
Take to be the distance from city i to city j. Then TSP can be written as the following integer linear programming problem:
The last constraint of the DFJ formulation—called a subtour elimination constraint—ensures that no proper subset Q can form a sub tour, so the solution returned is a single tour and not the union of smaller tours. Because this leads to an exponential number of possible constraints, in practice it is solved with row generation.
Последнее ограничение формулировки DFJ, называемое ограничением устранения подтуров, гарантирует, что никакое собственное подмножество Q не может образовать подтур, таким образом, решение представляет собой единый тур, а не объединение меньших туров. Поскольку это приводит к экспоненциальному количеству возможных ограничений, на практике задача решается методом генерации строк.
Take to be the distance from city i to city j. Then TSP can be written as the following integer linear programming problem:
The last constraint of the DFJ formulation—called a subtour elimination constraint—ensures that no proper subset Q can form a sub tour, so the solution returned is a single tour and not the union of smaller tours. Because this leads to an exponential number of possible constraints, in practice it is solved with row generation.
Эвристические и приблизительные алгоритмы
Разработаны различные эвристические и приближенные алгоритмы, которые позволяют быстро получать хорошие решения. К ним относится многофрагментный алгоритм. Современные методы способны находить решения для чрезвычайно больших задач (миллионы городов) за разумное время, которые с высокой вероятностью отличаются от оптимального решения всего на 2–3%. Это справедливо как для асимметричных, так и для симметричных задач о коммивояжере (TSP). Розенкранц и др. показали, что алгоритм NN имеет фактор приближения для экземпляров, удовлетворяющих неравенству треугольника. Вариация алгоритма NN, называемая оператором ближайшего фрагмента (NF), который соединяет группу (фрагмент) ближайших непосещенных городов, может находить более короткие маршруты с каждой итерацией. Оператор NF также может быть применен к исходному решению, полученному алгоритмом NN, для дальнейшего улучшения в элитарной модели, где принимаются только лучшие решения. Битонический тур множества точек – это монотонный многоугольник минимального периметра, вершины которого совпадают с этими точками; его можно эффективно вычислить с помощью динамического программирования. Другая конструктивная эвристика, Match Twice and Stitch (MTS), выполняет два последовательных сопоставления, при этом второе сопоставление выполняется после удаления всех ребер первого сопоставления, что приводит к набору циклов. Затем циклы сшиваются для получения конечного тура.
Алгоритм Кристофида и Сердюкова
Алгоритм Кристофида и Сердюкова имеет схожую структуру, но сочетает в себе минимальное остовное дерево с решением другой задачи — нахождением совершенного соответствия минимального веса. Это позволяет получить TSP-тур, длина которого не более чем в 1,5 раза превышает оптимальную. Он был одним из первых алгоритмов аппроксимации и во многом способствовал привлечению внимания к алгоритмам аппроксимации как к практическому подходу к сложным задачам. Фактически, термин "алгоритм" не сразу стал общепринятым для обозначения алгоритмов аппроксимации; алгоритм Кристофида изначально назывался эвристикой Кристофида.
k-opt эвристика, или эвристика Линн-Кернигана
Эвристика Линна–Кернигана является частным случаем V-оптики или переменной оптики. Она включает следующие шаги:
Для заданного тура удалите k взаимно непересекающихся ребер. Соберите оставшиеся фрагменты в тур, не допуская образования разрозненных подтуров (то есть, не соединяйте конечные точки фрагмента друг с другом). Это фактически упрощает рассматриваемую задачу коммивояжера (TSP) до гораздо более простой задачи. Каждая конечная точка фрагмента может быть соединена с 2k − 2 другими возможными точками: из 2k общего числа доступных конечных точек фрагмента, две конечные точки рассматриваемого фрагмента исключаются. Такую ограниченную задачу TSP на 2k городов можно затем решить методами полного перебора, чтобы найти рекомбинацию исходных фрагментов с наименьшей стоимостью. Наиболее популярным из методов k-opt является 3-opt, предложенный Шеном Лином из Bell Labs в 1965 году. Частным случаем 3-opt является ситуация, когда ребра не являются непересекающимися (два ребра смежны друг с другом). На практике часто удается добиться существенного улучшения по сравнению с 2-opt без комбинаторных затрат общего 3-opt, ограничивая 3 изменения специальным подмножеством, в котором два удаленных ребра смежны. Этот так называемый «два с половиной opt» обычно находится примерно посередине между 2-opt и 3-opt как с точки зрения качества получаемых туров, так и с точки зрения времени, необходимого для их построения.
V-opt эвристический
Метод переменного опта связан с методом k-опт и является его обобщением. В то время как методы k-опт удаляют фиксированное количество (k) ребер из исходного тура, методы переменного опта не фиксируют размер набора ребер, которые необходимо удалить. Вместо этого они расширяют этот набор по мере продолжения процесса поиска. Наиболее известным методом в этом семействе является метод Линна — Кернигана (упомянутый выше как ошибочное название для 2-опт). Шэнь Линь и Брайан Керниган впервые опубликовали свой метод в 1972 году, и он был самой надежной эвристикой для решения задач коммивояжера почти два десятилетия. Более продвинутые методы переменного опта были разработаны в Bell Labs в конце 1980-х годов Дэвидом Джонсоном и его исследовательской группой. Эти методы (иногда называемые Линн — Керниган — Джонсон) основаны на методе Линна — Кернигана, дополняя его идеями из табу-поиска и эволюционных вычислений. Базовая техника Линна — Кернигана гарантирует результаты не хуже 3-опт. Методы Линна — Кернигана — Джонсона вычисляют тур Линна — Кернигана, а затем изменяют тур посредством того, что было описано как мутация, удаляющая по крайней мере четыре ребра и пересоединяющая тур другим способом, после чего применяется V-опт к новому туру. Мутации часто достаточно, чтобы вывести тур из локального минимума, найденного методом Линна — Кернигана. Методы V-опт широко считаются наиболее мощными эвристиками для этой задачи и способны решать специальные случаи, такие как задача о гамильтоновом цикле и другие неметрические задачи о коммивояжере, в которых другие эвристики терпят неудачу. На протяжении многих лет метод Линна — Кернигана — Джонсона находил оптимальные решения для всех задач о коммивояжере, для которых было известно оптимальное решение, и находил лучшие известные решения для всех остальных задач о коммивояжере, на которых он был опробован.
Рандомизированное улучшение
Оптимизированные алгоритмы цепей Маркова, использующие локальный поиск в качестве эвристических подзадач, способны находить маршрут, крайне близкий к оптимальному, для 700–800 городов. Задача коммивояжера (TSP) служит лакмусовой бумажкой для многих универсальных эвристик, разработанных для комбинаторной оптимизации, таких как генетические алгоритмы, имитация отжига, поиск с запретами, оптимизация муравьиной колонией, динамика формирования рек (см. роевой интеллект) и метод перекрестной энтропии.
Сжатие вставки эвристика
Это начинается с построения оболочки выпуклости, а затем добавляются другие вершины.
Оптимизация муравьиной колонии
Исследователь в области искусственного интеллекта Марко Дориго в 1993 году описал метод эвристического поиска "хороших решений" для задачи коммивояжера (TSP) с использованием симуляции колонии муравьев, известной как ACS (система колонии муравьев). Она моделирует поведение, наблюдаемое у реальных муравьев при поиске кратчайших путей между источниками пищи и муравейником – эмерджентное поведение, возникающее из-за предпочтения каждого муравья следовать по феромонным следам, оставленным другими муравьями. ACS отправляет большое количество виртуальных агентов-муравьев для исследования множества возможных маршрутов на карте. Каждый муравей с определенной вероятностью выбирает следующий город для посещения, основываясь на эвристике, сочетающей расстояние до города и количество виртуального феромона, отложенного на ребре, ведущем в этот город. Муравьи исследуют местность, оставляя феромон на каждом ребре, которое они проходят, пока не завершат полный маршрут. После этого муравей, прошедший самый короткий маршрут, оставляет виртуальный феромон вдоль всего своего пути (глобальное обновление следа). Количество оставленного феромона обратно пропорционально длине маршрута: чем короче маршрут, тем больше феромона он оставляет.
Асимметричный
В большинстве случаев расстояние между двумя узлами в сети TSP одинаково в обоих направлениях. Случай, когда расстояние от A до B не равно расстоянию от B до A, называется асимметричной задачей коммивояжера (TSP). Практическим применением асимметричной задачи коммивояжера является оптимизация маршрутов с использованием дорожной сети (которая становится асимметричной из-за одностороннего движения, съездов, автомагистралей и т.п.).
Проблема аналитиков
В теории геометрических мер существует аналогичная проблема, которая формулируется следующим образом: при каких условиях подмножество E евклидова пространства может быть заключено в ректифицируемую кривую (то есть, когда существует кривая конечной длины, проходящая через каждую точку в E)? Эта проблема известна как задача о странствующем продавце для аналитиков.
Длина пути для случайных наборов точек в квадрате
Предположим, что – независимые случайные величины с равномерным распределением в квадрате , и пусть – длина кратчайшего пути (т.е. решение задачи коммивояжера) для этого набора точек, вычисленная по стандартному евклидову расстоянию. Известно, что почти наверное,
где – положительная константа, значение которой явно не известно. Поскольку (см. ниже), из теоремы о мажорируемой сходимости следует, что , следовательно, верхние и нижние оценки для вытекают из оценок для . Почти наверняка предел при может не существовать, если независимые точки заменить наблюдениями от стационарного эргодического процесса с равномерными предельными распределениями.
The almost sure limit as may not exist if the independent locations are replaced with observations from a stationary ergodic process with uniform marginals.
Верхняя граница
Один из них, и, следовательно, используя наивный путь, монотонно посещающий точки внутри каждого из слоев шириной в квадрате. Несколько результатов были доказаны, а затем улучшены Карлоффом (1987): Фитчер показал верхнюю оценку .
Комплексность вычислений
Было показано, что задача является NP-трудной (точнее, она полна для класса сложности FPNP; см. задачу о функциях), а версия задачи принятия решения ("при заданных стоимостях и числе x, определить, существует ли маршрут в обе стороны стоимостью меньше x") является NP-полной. Задача о путешествующем продавце с ограничениями также является NP-трудной. Задача остаётся NP-трудной даже в случае, когда города расположены на плоскости с евклидовыми расстояниями, а также в ряде других ограничивающих случаев. Отказ от условия посещения каждого города "только один раз" не снимает NP-трудность, поскольку в случае плоскости существует оптимальный маршрут, посещающий каждый город ровно один раз (иначе, согласно неравенству треугольника, более коротный путь, исключающий повторное посещение, не увеличит длину маршрута).
Сложность приближения
В общем случае, поиск кратчайшего маршрута коммивояжера является NP-полной задачей. Если мера расстояния является метрикой (и, следовательно, симметричной), задача становится APX-полной, и алгоритм Кристофидеса и Сердюкова приближает решение с точностью до 1,5. Лучший на сегодняшний день алгоритм, разработанный Верой Трауб и де, достигает коэффициента аппроксимации 75/74. Наилучшая известная нижняя граница неаппроксимируемости составляет 75/74. Соответствующая задача максимизации – поиск самого длинного маршрута коммивояжера – аппроксимируема с точностью до 63/38. Если функция расстояния симметрична, то самый длинный маршрут может быть приближен с точностью до 4/3 детерминированным алгоритмом и с точностью до рандомизированным алгоритмом.
Уровень эффективности человека и животных
TSP, в частности, евклидова версия задачи, привлекла внимание исследователей в области когнитивной психологии. Было замечено, что люди способны быстро находить почти оптимальные решения, демонстрируя производительность, близкую к линейной, которая варьируется от 1% менее эффективной для графов с 10–20 вершинами до 11% менее эффективной для графов с 120 вершинами. Очевидная легкость, с которой люди точно генерируют решения, близкие к оптимальным, побудила исследователей предположить, что люди используют одну или несколько эвристик, среди которых наиболее популярными являются гипотеза выпуклой оболочки и эвристика избежания пересечений. Однако, дополнительные данные свидетельствуют о том, что человеческая производительность весьма разнообразна, и на результаты влияют как индивидуальные различия, так и геометрия графа. Тем не менее, результаты показывают, что понимание и эмуляция методов, используемых людьми для решения этой задачи, могут улучшить производительность компьютеров в TSP, а также привели к новым представлениям о механизмах человеческого мышления. Первый выпуск журнала "Journal of Problem Solving" был посвящен теме человеческой производительности в TSP, а обзор 2011 года содержал список десятков статей по этой теме. Эти результаты согласуются с другими экспериментами, проведенными на не-приматах, которые показали, что некоторые из них способны планировать сложные маршруты. Это позволяет предположить, что не-приматы могут обладать относительно развитыми пространственными когнитивными способностями.
Натуральные вычисления
Когда амебоидному Physarum polycephalum представлена пространственная конфигурация источников пищи, он адаптирует свою морфологию для создания эффективного пути между ними, что также можно рассматривать как приближенное решение задачи коммивояжера (TSP).
Сравнительные показатели
Для проведения сравнительного анализа алгоритмов решения задачи коммивояжера (TSP) поддерживается библиотека TSPLIB, содержащая примеры экземпляров задачи TSP и смежных задач; см. внешнюю ссылку TSPLIB. Многие из этих экземпляров представляют собой списки реальных городов и компоновки реальных печатных плат.
Популярная культура
"Путешествующий торговец" режиссера Тимоти Ланзона – это история о четырех математиках, нанятых правительством США для решения самой сложной проблемы в истории компьютерной науки: P против NP. Решения этой проблемы используются математиком Бобом Бошем в таком поджанре, как TSP-арт.