Фон
Задача коммивояжера (TSP) требует кратчайшего маршрута, который посещает данную коллекцию городов. Для целей этого вопроса города будут точками на плоскости, а расстояния между ними будут обычными евклидовыми расстояниями (с округлением до ближайшего целого числа). Цепь должна быть "круговой", то есть она должна вернуться в стартовый город.
Решатель Concorde TSP может решить экземпляры евклидовой задачи коммивояжера, точно и гораздо быстрее , чем можно было бы ожидать. Например, Concorde смог точно решить экземпляр на 85 900 пунктов , части которого выглядят так:
Однако некоторые экземпляры TSP занимают слишком много времени даже для Concorde. Например, никто не смог решить этот экземпляр на 100 000 пунктов на основе Моны Лизы . (Предлагается приз в размере 1000 долларов, если вы можете его решить!)
Concorde доступен для скачивания в виде исходного кода или исполняемого файла. По умолчанию он использует встроенный решатель линейных программ (LP) QSopt , но он также может использовать лучшие решатели LP, такие как CPLEX.
Соревнование
Какой самый маленький экземпляр TSP, который вы можете сгенерировать, требует Concorde более пяти минут ?
Вы можете написать программу для вывода экземпляра или использовать любой другой метод, который пожелаете.
счет
Чем меньше очков в инстансе, тем лучше. Связи будут нарушены размером файла экземпляра (см. Ниже).
Стандартизация
Различные компьютеры работают быстрее или медленнее, поэтому мы будем использовать NEOS Server for Concorde в качестве стандарта измерения времени выполнения. Вы можете отправить список точек в следующей простой 2-й форме координат:
#cities
x_0 y_0
x_1 y_1
.
.
.
x_n-1 y_n-1
Настройки, которые должны использоваться в NEOS: «Конкордные данные (файл xy-списка, норма L2)», «Алгоритм: Конкорд (QSopt)» и «Случайное начальное число: исправлено».
базисный
Экземпляр rl1889.tsp
с 1889 точками из TSPLIB занимает «Общее время выполнения: 871,18 (секунд)», что составляет более пяти минут. Это выглядит так: