Упростите свой рабочий процесс: найдите miniwebtool.
Добавить
Домашняя страница > Математика > Продвинутые математические операции > Решатель задачи коммивояжёра (TSP)

Решатель задачи коммивояжёра (TSP)

Найдите кратчайший маршрут, который посещает каждый город ровно один раз и возвращается в начало. Точное динамическое программирование (алгоритм Хелда–Карпа) для небольших наборов данных и эвристика ближайшего соседа + 2-opt для крупных задач. Поддерживает координаты или матрицу расстояний и генерирует анимированный SVG-маршрут.

Решатель задачи коммивояжёра (TSP)
Строки координат: A, 10, 20 или 10 20. Строки матрицы: 0 10 15 20 — по одной строке на линию, квадратная, неотрицательная. Макс. 40 городов.
Разделенные запятой или пробелом метки, по одной на строку матрицы. По умолчанию: A, B, C…

Embed Решатель задачи коммивояжёра (TSP) Widget

О Решатель задачи коммивояжёра (TSP)

Решатель задачи коммивояжёра — это практический обучающий калькулятор для классической Задачи коммивояжёра (TSP): имея набор городов и расстояний между ними, необходимо найти кратчайший маршрут, проходящий через каждый город ровно один раз с возвратом в начало. Этот решатель принимает координаты на плоскости или пользовательскую матрицу расстояний, автоматически выбирает лучший алгоритм в зависимости от масштаба задачи и визуализирует результат в виде анимированной SVG-карты.

Что такое задача коммивояжёра?

Формально, имея полный взвешенный граф G = (V, E) с множеством вершин V = {1, 2, ..., n} и весами рёбер d(i, j), TSP ищет перестановку π вершин, которая минимизирует сумму:

minimize Σi=1n-1 d(π(i), π(i+1)) + d(π(n), π(1))

Последнее слагаемое замыкает цикл. TSP — одна из старейших и наиболее изученных задач комбинаторной оптимизации. Она является NP-трудной, что означает отсутствие известных алгоритмов для решения любого экземпляра за полиномиальное время. Несмотря на это, она встречается в бесчисленных реальных приложениях: логистике, сверлении печатных плат, секвенировании ДНК, маршрутах на складах и даже в астрономических наблюдениях.

Как работает этот решатель

Динамическое программирование Хелда-Карпа (Точное)

Для небольших задач (до 12 городов) решатель вычисляет гарантированно оптимальный маршрут с помощью алгоритма Хелда-Карпа, опубликованного Ричардом Беллманом, а также Майклом Хелдом и Ричардом Карпом в 1962 году. Ключевое рекуррентное соотношение, где C(S, j) — кратчайший путь из вершины 1 в вершину j, посещающий подмножество S:

C(S, j) = mink ∈ S \ {j} [ C(S \ {j}, k) + d(k, j) ]

Стоимость оптимального тура составит minj [C({1,...,n}, j) + d(j, 1)]. Алгоритм работает за время O(2n · n²) и требует O(2n · n) памяти. Это огромный прорыв по сравнению с полным перебором n!, но все же экспоненциальный рост делает его неприменимым для более чем 20 городов из-за нехватки памяти.

Ближайший сосед + 2-opt (Эвристика)

Для более крупных задач решатель использует двухэтапную эвристику. Сначала метод Ближайшего соседа строит быстрый маршрут, жадно переходя к ближайшему не посещенному городу. Решатель пробует разные начальные точки и сохраняет лучший вариант. Затем локальный поиск 2-opt улучшает путь, последовательно удаляя два ребра и пересоединяя их иным способом:

До: ... a — b ... c — d ... После 2-opt перестановки: ... a — c ... b — d ... Если d(a,c) + d(b,d) < d(a,b) + d(c,d) → принимаем замену, инвертируем подмаршрут b..c

Геометрически 2-opt устраняет самопересечения в маршруте. Алгоритм останавливается в локальном оптимуме, называемом 2-оптимальным. На реалистичных евклидовых данных 2-opt находит решение в пределах 2–5% от истинного оптимума за миллисекунды.

Форматы ввода

Режим координат (x, y)

Один город на строку. Каждая строка содержит название, x, y (название необязательно). Решатель автоматически вычисляет евклидовы расстояния и визуализирует города на их реальных позициях.

A, 10, 20 B, 40, 70 C, 75, 30 Paris: 2.35, 48.86 10 20 ← авто-метка C1

Режим матрицы расстояний

Квадратная матрица n × n неотрицательных расстояний, значения разделены пробелами или запятыми. Матрицы могут быть симметричными или асимметричными (для моделирования дорог с односторонним движением или влияния ветра). Метки можно указать в поле «Метки матрицы».

0 10 15 20 10 0 35 25 15 35 0 30 20 25 30 0

Сравнение алгоритмов

Алгоритм Временная сложность Память Качество результата Практичный размер
Полный перебор O(n!) O(n) Оптимально n ≤ 10
ДП Хелда-Карпа O(2n · n²) O(2n · n) Оптимально n ≤ 20
Ближайший сосед O(n²) O(n) ~25% хуже оптимума n ≤ тысячи
БС + 2-opt O(n² · проходы) O(n) ~2–5% хуже оптимума n ≤ сотни

Как использовать решатель

  1. Выберите режим ввода. Используйте координаты, если позиции (x, y) имеют смысл; выберите матрицу расстояний, если ваши данные не евклидовы или асимметричны.
  2. Вставьте или введите данные. По одному городу или строке матрицы на линию. Можно нажать кнопку быстрого примера над формой.
  3. Выберите алгоритм. Оставьте Авто для оптимального выбора: Хелд-Карп для малых задач и БС + 2-opt для крупных.
  4. Выберите тип маршрута. Замкнутый маршрут возвращается в начало — это классическая TSP. Режим открытого пути решает родственную задачу о Гамильтоновом пути.
  5. Нажмите «Решить». На странице результатов отобразится общая длина, анимированная SVG-карта (нажмите «Повторить анимацию»), последовательность городов и детальная разбивка по рёбрам.

Пример работы

Рассмотрим пять городов — прямоугольник и вершину: A (0, 0), B (4, 0), C (4, 3), D (0, 3), E (2, 5). Решатель выдаст:

Применение в реальном мире

Часто задаваемые вопросы

Что такое задача коммивояжёра?

Задача коммивояжёра (TSP) заключается в поиске самого короткого маршрута, который проходит через каждый заданный город один раз и возвращается в исходную точку.

Что такое алгоритм Хелда-Карпа?

Это метод точного решения задачи на основе динамического программирования. Он эффективнее перебора, но ограничен количеством городов (обычно до 20) из-за экспоненциального роста требований к памяти.

Что такое 2-opt и почему он популярен?

Это эвристический алгоритм, который быстро находит очень хорошие (хотя и не всегда идеальные) решения, исправляя пересечения путей. Он является стандартом для решения крупных практических задач TSP.

Когда использовать координаты, а когда матрицу?

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

Является ли решение 2-opt самым лучшим?

Не гарантированно. Оно является локальным оптимумом. В большинстве случаев оно очень близко к идеалу, но для 100% уверенности в кратчайшем пути на малых данных лучше использовать метод Хелда-Карпа.

Поддерживает ли этот инструмент асимметричные расстояния?

Да, в режиме матрицы расстояний. Вы можете указать разные веса для переходов A→B и B→A.

Дополнительные материалы

Ссылайтесь на этот контент, страницу или инструмент так:

"Решатель задачи коммивояжёра (TSP)" на сайте https://ru.miniWebtool.com/решатель-задачи-коммивояжёра-tsp/ от MiniWebtool, https://MiniWebtool.com/

от команды miniwebtool. Обновлено: 21 апр. 2026 г.

Вы также можете попробовать наш AI Решатель Математических Задач GPT, чтобы решить ваши математические проблемы с помощью вопросов и ответов на естественном языке.

Другие сопутствующие инструменты:

Продвинутые математические операции:

Избранные инструменты:

Калькулятор знака ВенерыКалькулятор ангельских чиселКалькулятор совместимости в любвиКалькулятор Фаренгейта в ЦельсияКалькулятор Солнечного, Лунного и Асцендентного Знаков 🌞🌙✨Извлечение Изображений из ВидеоОбъединить видеоКонвертер FPSКонвертер см в футы и дюймыАудио РазделительКалькулятор лунного знакаКонвертер футов и дюймов в сантиметрыКалькулятор числа жизненного путиВидео КомпрессорУдалить аудио из видеоКалькулятор числа судьбыИзменить скорость видеоДобавить текст к изображениюАудио ЭкстракторКалькулятор знака МарсаДобавить или заменить аудио в видеоРазделитель видеоРазделитель изображенийГенератор случайных цветовКалькулятор совместимости лунных знаковГенератор штрих-кодовГенератор маленького текста ⁽ᶜᵒᵖʸ ⁿ ᵖᵃˢᵗᵉ⁾Поиск идентификатора пользователя Instagram⏱️ Калькулятор часовКалькулятор угла срезаПовернуть видеоMP3-луперОбрезка ВидеоГенератор филвордовУдалить строки, содержащие строкуКалькулятор рабочего времениКалькулятор Рекомпозиции ТелаКалькулятор FIPКалькулятор числа имениКалькулятор баланса астрологических стихийГенератор случайных английских словКалькулятор калорий при беременностиКалькулятор нумерологииСоздатель GIFБросок кубиковКалькулятор возвращения СатурнаКалькулятор дня года - какой сегодня день года?Калькулятор гипотенузыКалькулятор продолжительности времениКонвертер MP4 в GIFКалькулятор знака МеркурияГенератор случайных животныхГенератор случайных предметовКалькулятор Площади Неправильного МногоугольникаРешатель Карты Карно (K-Map)Шестнадцатеричный калькуляторГенератор случайных фиктивных адресовЗациклить видеоКалькулятор теоремы ПифагораПреобразователь двоичного кода в десятичныйПродвинутый анализатор совместимости знаков зодиакаГенератор случайных кредитных картВыбор Случайного ИмениКалькулятор процента жира в телеКалькулятор Относительного Стандартного Отклоненияконвертер десятичной системы в двоичнуюПроверка имени пользователя в социальных сетяхКонвертер кг в фунты⏰ Калькулятор табеля рабочего времениПобитовый калькуляторКонвертер ГМС в десятичные градусыГенератор кроссвордовКакое у меня счастливое число?Калькулятор жима лежаКалькулятор цены за тысячу показовКалькулятор коэффициентов и процентовКонвертер дробного времениЦифровой калькулятор душиДобавить линию к изображениюГенератор случайного IMEIКонвертер фунтов в килограммыКалькулятор числа личностиГенератор случайных суперспособностейКалькулятор калорий при грудном вскармливанииКалькулятор TDEEКрутить колесоСчётчик токенов ИИКалькулятор уклона и классаКонвертер HEIC в JPGСлучайный выбор📊 Создатель столбчатых диаграммКонвертер десятичного числа в шестнадцатеричный⏱️ Таймер обратного отсчётаКалькулятор прямоугольного треугольникаГенератор невидимого текстаУдаление Невидимых СимволовГенератор случайных блюдКалькулятор сухой массы телагенератор-нонограмм-пикроссКалькулятор области определения и значенийКалькулятор среднего отклоненияКалькулятор теста Краскела-УоллисаКалькулятор усечённого конусаКонвертер сантиметров в дюймыКалькулятор функции ошибкиКонвертер HTML в текстГенератор случайной турнирной сеткиПреобразователь сахара в кровиКалькулятор двойных интеграловКалькулятор количества цифрПоиск ID пользователя FacebookЭкранирование и снятие экранирования строк JSONГенератор случайного времениКалькулятор дозировки лекарствКалькулятор дефицита калорийГенератор случайных строкДобавить водяной знак на видеоКалькулятор передаточного отношения велосипедаКалькулятор ANOVAКалькулятор Модульного Возведения в СтепеньОбратить ВидеоСтатистика канала YouTubeКалькулятор модуляГенератор случайных эмодзиДвоичный в шестнадцатеричный конвертерГенератор лабиринтовГенератор «Соедини точки»Калькулятор коэффициента корреляцииКалькулятор снаГенератор случайных дней рождения📅 Калькулятор датыКалькулятор процентного уменьшенияСимулятор шифрования RSA пошаговыйКалькулятор дробейКонвертер дюймов в сантиметрыОбратный текстКалькулятор конвертации масштаба моделиКалькулятор скорости езды на велосипедеКалькулятор числа выражения📈 Создатель линейных графиковШестнадцатеричный преобразователь в десятичныйГенератор случайных координатКалендарь ретроградного МеркурияПреобразователь Обычного Времени в Десятичное ВремяФорматировщик текстаГенератор и решатель судокуГенератор карточек бингоГенератор красивого текстаКонвертер размера файлаСортировка чиселСоздатель гистограммHEX-конвертерИнвертор цветаКалькулятор квадратного корняКалькулятор кубического корняКалькулятор U-критерия Манна-Уитни🖱️ Счётчик кликовГенератор случайных буквКалькулятор перевода дроби в десятичное числоКалькулятор биномиального распределенияКалькулятор одного повторного максимума (1ПМ)Калькулятор Суммы🌐 Конвертер часовых поясовКалькулятор подпорной стеныКонвертер GIF в MP4Декодер азбуки МорзеИзвлекатель чиселКалендарь новолуния и полнолунияКалькулятор вероятности броска кубиковКалькулятор комплексных чисел⬛ Калькулятор соотношения сторонКалькулятор уравнений с модулемТранспонировщик музыкальной тональности🎰 Калькулятор гарантии гачаКалькулятор инфляции в СШАКалькулятор типа телосложенияДвоичный калькуляторКалькулятор шагов в расстояниеГенератор случайных стран🔊 Генератор тоновКалькулятор беременности собакиКалькулятор движения снарядаКалькулятор корней многочленов с подробными шагамиКалькулятор линейной регрессииКалькулятор распределения ПуассонаКонвертер римских цифрРешатель НеравенствСоздатель диаграмм рассеянияГенератор диаграмм размаха (ящик с усами)Тестер APIИнструмент для пикселизации изображенийКалькулятор Процентного ИзмененияКалькулятор среднего, медианы и модыКонвертер частоты и длины волныПалитра цветов изображения🔍 Проверка на плагиатРандомизатор именГенератор азбуки МорзеГенератор анаграммИнтерактивный визуализатор единичной окружностиКалькулятор аренды Section 8Калькулятор метода BRRRRКалькулятор денежной доходности Cash on CashКалькулятор доходности арендыКалькулятор обмена 1031Визуализатор роста капиталаКалькулятор Стоимости ОбедаКалькулятор стоимости: спортзал против домашних тренировокКалькулятор расходов на кофеКалькулятор экономии на удалённой работеКалькулятор ROI ПодработкиТрекер расходов на подпискиКалькулятор цен SaaSКалькулятор стоимости фриланс-проектовГид по сочетанию древесины для копченияКалькулятор времени броженияКалькулятор времени маринованияФильтр рецептов по диетическим ограничениямПоиск Заменителей СпецийТрекер периода полураспада кофеинаКалькулятор стандартных порций алкоголяПодбор вина к блюдамКонвертер Категорий СкалолазанияКалькулятор Прочности Рыболовных УзловТаймер Удержания Поз ЙогиКалькулятор SWOLF для плаванияКалькулятор прогноза времени забегаКалькулятор силы удара в боксеКалькулятор очков регбиКалькулятор Run Rate в КрикетеКалькулятор xG (ожидаемых голов) в футболеСчётчик очков в теннисеКалькулятор шкалы Уэллса (ТГВ/ТЭЛА)Калькулятор шкалы комы ГлазгоКалькулятор шкалы АпгарКалькулятор FFMIКалькулятор 12-минутного бега КупераКалькулятор теста ходьбы на одну милю РокпортКалькулятор силы по сухой массе телаКалькулятор углеводно-инсулинового коэффициентаКалькулятор коэффициента чувствительности к инсулинуКонвертер еврейского календаряКонвертер календаря ХиджрыКонвертер лунного календаряКалькулятор возраста по культурамКалькулятор сколько лет назадКалькулятор сколько осталось доГенератор шаблонов датКалькулятор средней датыДобавить рабочие дни к датеКалькулятор рабочих днейАнализатор частотности словАнализатор вариативности длины предложенийРедактор Читаемости в Стиле ХемингуэяКонвертер произношения IPAИнструмент шифра ВиженераИнструмент шифра АтбашКодировщик и декодировщик ROT13Просмотр и удаление EXIF данныхПереводчик Свинячьей ЛатыниГенератор БэкронимовГенератор акронимовПроверка ПанграммПроверка липограммыТрассировщик изображения в SVGКонвертер изображения в ASCII артГенератор JSON схемПесочница TypeScriptКомпилятор Less в CSSКомпилятор SCSS в CSSКонвертер SVG в React/JSXКонструктор строки запросаПарсер URLВалидатор и декодер UUIDСправочник кодов состояния HTTPКонструктор команд cURLГенератор треугольника СерпинскогоПостроитель 3D-поверхностейПостроитель полярных уравненийГенератор множества ЖюлиаИсследователь множества МандельбротаГенератор фракталов L-SystemГенератор триангуляции ДелонеГенератор диаграмм ВороногоГенератор спирографаГенератор мозаикиКалькулятор возможностей процесса Шести СигмГенератор диаграмм ПаретоКалькулятор NPS (индекс потребительской лояльности)Калькулятор удержания по когортамКалькулятор оттока клиентовКалькулятор стоимости привлечения клиента (CAC)Калькулятор пожизненной ценности клиента CLVКалькулятор коэффициента конверсииКалькулятор размера выборки A/B тестаКалькулятор Значимости A/B ТестаКалькулятор уравнения линзыКалькулятор магнитного поля проводаКалькулятор Электрического ПоляКалькулятор Закона КулонаКалькулятор закона СнеллаКалькулятор момента инерцииКалькулятор угловой скоростиКалькулятор центростремительной силыКалькулятор периода маятникаКалькулятор жёсткости пружиныКалькулятор Эффекта ДоплераКалькулятор коэффициента СортиноКалькулятор коэффициента ТрейнораКалькулятор бета акцииКалькулятор казначейских облигаций с защитой от инфляции (TIPS)Калькулятор перерасчета ипотекиКалькулятор форвардной ставкиКалькулятор дюрации облигаций (Маколея и модифицированной)Калькулятор выпуклости облигацийКалькулятор Фиксированного Индексируемого АннуитетаКалькулятор переменной рентыКалькулятор обратной ипотекиКалькулятор аннуитетных выплатСимулятор Соробан — Японские СчётыУмножение Русских КрестьянКалькулятор Ведической МатематикиКалькулятор египетского умноженияКалькулятор математики с римскими цифрамиТренажёр Устного СчётаТест на таблицу умноженияВизуализатор переноса и заёмаГенератор разложений чиселРешатель задач с монетамиКалькулятор треугольника расстояние-скорость-времяРешатель задач на совместную работуРешатель задач на смесиРешатель задач на возрастРешатель задач о встрече поездовКалькулятор гидратацииКалькулятор Калорий по ТемпуКалькулятор калорий алкоголяГенератор случайных тем для дебатовГенератор случайных имен для кошек и собакГенератор случайных библейских стиховГенератор Случайных Математических ЗадачГенератор Случайных АбзацевГенератор случайных английских предложенийКалькулятор гравия, песка и грунтаКалькулятор веса сталиКалькулятор Момента Затяжки БолтовКалькулятор Потока в ТрубахКалькулятор нагрузки балкиКонвертер Доллар ЗолотоКалькулятор Вероятности ОпционовКалькулятор сплита акцийКалькулятор ESPPКалькулятор Пени за Просрочку СчетаКалькулятор часовой ставки фрилансераКалькулятор Лизинг против ПокупкиРасширенный калькулятор разделения чаевыхГенератор Списка ВещейКалькулятор джетлагаКалькулятор Бюджета ПоездкиКалькулятор расстояния полетаКалькулятор теплопотерьКалькулятор Стоимости Выработки ЭлектроэнергииКалькулятор расхода водыКалькулятор стоимости энергии бытовых приборовКалькулятор домашнего энергоаудитаКалькулятор ROI солнечной энергииКалькулятор солнечных панелейКалькулятор компоста C:NКалькулятор Удобрения для ГазонаКалькулятор дат заморозковКалькулятор грунта для высокой грядкиКалькулятор NPK удобренияКалькулятор процента всхожести семянКалькулятор битрейта видеоBPM Тэппер для МузыкиКалькулятор размера файла фотографииКалькулятор Мегапикселей в Размер ПечатиКалькулятор кроп-фактораКалькулятор треугольника экспозицииКалькулятор буксировочной способности автомобиляКалькулятор автолизингаКалькулятор 0–60 и четверти милиКалькулятор времени зарядки электромобиляКалькулятор Запаса Хода ЭлектромобиляКалькулятор Расстояния 3DКалькулятор тораКалькулятор правильного многоугольникаОпределитель конического сеченияКалькулятор гиперболыКалькулятор деления столбикомСчётчик Символов Twitter/XСлучайный выбор комментариев YouTubeИзвлечение тегов YouTubeЗагрузчик миниатюр YouTubeКалькулятор доходов YouTubeГенератор случайных персонажей RPG