Алгоритм Кристофидеса-Сердюкова: приближенное решение задачи коммивояжера

Алгоритм Кристофидеса-Сердюкова, несмотря на гарантированную оценку решения не хуже 3/2 от оптимального, на практике демонстрирует хорошие результаты, что делает его полезным для практического применения. Он часто используется в качестве эталона для сравнения эффективности других алгоритмов решения задачи коммивояжера, в частности, в контексте применения нейронных сетей. Алгоритм основан на теории графов и использует минимальное остовное дерево, что является его первым шагом.
Алгоритм Кристофидеса-Сердюкова: приближенное решение задачи коммивояжера
Изображение носит иллюстративный характер

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

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

Тестирование показало, что алгоритм Кристофидеса-Сердюкова демонстрирует хорошую точность, уверенно превосходя многие другие эвристические алгоритмы, за исключением алгоритма Concorde и метода 2-opt. При этом он занимает второе место по скорости вычислений после эвристики ближайшего соседа. Это делает алгоритм Кристофидеса-Сердюкова применимым в ситуациях, где важна скорость и приемлемая точность решения, например при планировании маршрутов.


Новое на сайте

19729Веб-шеллы на PHP, управляемые через куки: как злоумышленники закрепляются на серверах... 19728Как учёным впервые удалось составить полную карту нервов клитора? 19727Homo habilis: самый древний «человек», который, возможно, им не является 19726Как северокорейские хакеры взломали одну из самых популярных библиотек JavaScript 19725Почему риски от подрядчиков стали главной дырой в кибербезопасности 19724Как выживший во второй мировой придумал нападение гигантского кальмара 19723Что если вселенная никогда не начиналась с точки бесконечной плотности? 19722Доживёт ли комета MAPS до субботы? 19721Квантовый процессор IBM побил сразу два рекорда — что это меняет? 19720Как северная Корея похитила $285 миллионов у Drift через предподписанные транзакции? 19719Как хакеры через одну дыру в Next.js украли ключи от 766 серверов? 19718Artemis II покинул земную орбиту и летит к луне 19717NASA показало невиданные снимки кометы 3I/ATLAS и запечатлело старт лунной миссии Artemis... 19716Сифилис появился 4000 лет назад — или его находили не там, где искали? 19715Энергетический дисбаланс земли зашкаливает, и учёные не могут это объяснить
Ссылка