Упростите свой рабочий процесс: найдите 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, чтобы решить ваши математические проблемы с помощью вопросов и ответов на естественном языке.

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

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

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

Генератор множества ЖюлиаИсследователь множества МандельбротаГенератор фракталов L-SystemГенератор триангуляции ДелонеГенератор диаграмм ВороногоГенератор спирографаГенератор мозаикиКалькулятор возможностей процесса Шести СигмГенератор диаграмм ПаретоКалькулятор NPS (индекс потребительской лояльности)Калькулятор удержания по когортамКалькулятор оттока клиентовКалькулятор стоимости привлечения клиента (CAC)Калькулятор пожизненной ценности клиента CLVКалькулятор коэффициента конверсииКалькулятор размера выборки A/B тестаКалькулятор Значимости A/B ТестаКалькулятор уравнения линзыКалькулятор магнитного поля проводаКалькулятор Электрического ПоляКалькулятор Закона КулонаКалькулятор закона СнеллаКалькулятор момента инерцииКалькулятор угловой скоростиКалькулятор центростремительной силыКалькулятор периода маятникаКалькулятор жёсткости пружиныКалькулятор Эффекта ДоплераКалькулятор коэффициента СортиноКалькулятор коэффициента ТрейнораКалькулятор бета акцииКалькулятор казначейских облигаций с защитой от инфляции (TIPS)Калькулятор перерасчета ипотекиКалькулятор форвардной ставкиКалькулятор дюрации облигаций (Маколея и модифицированной)Калькулятор выпуклости облигацийКалькулятор Фиксированного Индексируемого АннуитетаКалькулятор переменной рентыКалькулятор обратной ипотекиКалькулятор аннуитетных выплатСимулятор Соробан — Японские СчётыУмножение Русских КрестьянКалькулятор Ведической МатематикиКалькулятор египетского умноженияКалькулятор математики с римскими цифрамиТренажёр Устного СчётаТест на таблицу умноженияВизуализатор переноса и заёмаГенератор разложений чиселРешатель задач с монетамиКалькулятор треугольника расстояние-скорость-времяРешатель задач на совместную работуРешатель задач на смесиРешатель задач на возрастРешатель задач о встрече поездовКалькулятор гидратацииКалькулятор Калорий по ТемпуКалькулятор дозировки лекарствКалькулятор калорий алкоголяКалькулятор Рекомпозиции ТелаГенератор случайных тем для дебатовГенератор случайных имен для кошек и собакГенератор случайных библейских стиховГенератор Случайных Математических ЗадачГенератор Случайных АбзацевГенератор случайных английских предложенийКалькулятор гравия, песка и грунтаКалькулятор веса сталиКалькулятор Момента Затяжки БолтовКалькулятор Потока в ТрубахКалькулятор нагрузки балкиКонвертер Доллар ЗолотоКалькулятор Вероятности ОпционовКалькулятор сплита акцийКалькулятор ESPPКалькулятор Пени за Просрочку СчетаКалькулятор часовой ставки фрилансераКалькулятор Лизинг против ПокупкиРасширенный калькулятор разделения чаевыхГенератор Списка ВещейКалькулятор джетлагаКалькулятор Бюджета ПоездкиКалькулятор расстояния полетаКалькулятор теплопотерьКалькулятор Стоимости Выработки ЭлектроэнергииКалькулятор расхода водыКалькулятор стоимости энергии бытовых приборовКалькулятор домашнего энергоаудитаКалькулятор ROI солнечной энергииКалькулятор солнечных панелейКалькулятор компоста C:NКалькулятор Удобрения для ГазонаКалькулятор дат заморозковКалькулятор грунта для высокой грядкиКалькулятор NPK удобренияКалькулятор процента всхожести семянКалькулятор битрейта видеоТранспонировщик музыкальной тональностиBPM Тэппер для МузыкиКалькулятор размера файла фотографииКалькулятор Мегапикселей в Размер ПечатиКалькулятор кроп-фактораКалькулятор треугольника экспозицииКалькулятор буксировочной способности автомобиляКалькулятор автолизингаКалькулятор 0–60 и четверти милиКалькулятор времени зарядки электромобиляКалькулятор Запаса Хода ЭлектромобиляКалькулятор расхода топливаКонвертер Размеров ОдеждыСправочник Форматов БумагиКонвертер размера кольцаКонвертер Астрономической ЕдиницыКонвертер расхода топливаКонвертер скорости передачи данныхКонвертер крутящего момента (N·m, ft-lb, kgf-cm)Генератор зачёркнутого текстаВизуализатор пробельных символовКалькулятор Времени ЧтенияКалькулятор времени речиСчётчик абзацевСчетчик ПредложенийСчетчик СлоговКонвертер Текста в Двоичный/Hex/ASCIIГенератор изображений-заглушек Lorem PicsumГенератор файла .envГенератор команд GitКонвертер Цветовых Кодов (Все Форматы)Генератор и Проверка Bcrypt ХешейГенератор JWTГенератор CSS GridКалькулятор Численного ИнтегрированияКалькулятор Z-преобразованияКалькулятор быстрого преобразования Фурье FFTКалькулятор Тензорного ПроизведенияКалькулятор Матричной ЭкспонентыКалькулятор Жордановой Нормальной ФормыКалькулятор Колец и ПолейКалькулятор Порядка в Теории ГруппРешатель систем ОДУРешатель уравнения БернуллиКалькулятор метода ЭйлераПостроитель Поля Направлений и НаклоновРешатель ОДУ второго порядкаРешатель ОДУ первого порядкаРешатель задачи о стабильных бракахКалькулятор сетевого потока (Максимальный поток)Проверка планарного графаПроверка Гамильтонова ПутиРешатель задачи коммивояжёра (TSP)Решатель Линейного ПрограммированияКалькулятор формулы включений-исключенийРешатель Рекуррентных СоотношенийКалькулятор матрицы смежностиКалькулятор топологической сортировкиКалькулятор раскраски графовСимулятор Логических ВентилейРешатель Карты Карно (K-Map)Упроститель Булевой АлгебрыКалькулятор Функции РазбиенияКалькулятор Цифрового КорняПроверка числа ФибоначчиКалькулятор египетских дробейКалькулятор функции МёбиусаВерификатор гипотезы ГольдбахаПроверка Простого Числа МерсеннаПоиск Простых БлизнецовПроверка Дружественных ЧиселПроверка Совершенных ЧиселКалькулятор Модульного Возведения в СтепеньКалькулятор перестановок с повторениямиКалькулятор размера эффектаКалькулятор относительного рискаКалькулятор Отношения ШансовКалькулятор таблицы сопряжённостиКалькулятор Точного Теста ФишераКалькулятор ранговой корреляции СпирменаКалькулятор бета-распределенияКалькулятор распределения ВейбуллаКалькулятор Экспоненциального РаспределенияКалькулятор Геометрического РаспределенияКалькулятор отрицательного биномиального распределенияКалькулятор Гипергеометрического РаспределенияКалькулятор F-теста и F-распределенияКалькулятор теоремы БайесаКалькулятор Характеристического ПолиномаКалькулятор степени матрицыКалькулятор разложения ХолецкогоКалькулятор QR-разложенияКалькулятор диагонализации матрицыКалькулятор правила КрамераКалькулятор Столбцового ПространстваКалькулятор Нулевого ПространстваКалькулятор угла между векторамиКалькулятор Единичного ВектораКалькулятор модуля вектораКалькулятор векторного произведенияКалькулятор Скалярного ПроизведенияКалькулятор Умножения МатрицКалькулятор Обратной МатрицыКалькулятор RREF (Ступенчатая форма)Калькулятор метода НьютонаКалькулятор Матрицы ЯкобиКалькулятор Поверхностного ИнтегралаКалькулятор Криволинейного ИнтегралаКалькулятор ротораКалькулятор дивергенцииКалькулятор градиента многомерныйКалькулятор Оптимизации ИсчислениеКалькулятор Связанных СкоростейКалькулятор Мгновенной Скорости ИзмененияКалькулятор средней скорости измененияКалькулятор суммы бесконечных рядовКалькулятор Теста Сходимости РядовКалькулятор степенных рядовКалькулятор ряда МаклоренаКалькулятор правила ЛопиталяКалькулятор Несобственного ИнтегралаКалькулятор правила СимпсонаКалькулятор метода трапецийКалькулятор суммы РиманаПостроитель параметрических кривыхКалькулятор поверхности вращенияКалькулятор объёма тела вращенияКалькулятор Расстояния: Координатная ГеометрияКалькулятор формулы ГеронаКалькулятор касательной к окружностиКалькулятор Биссектрисы УглаКалькулятор Вписанной ОкружностиКалькулятор Описанной ОкружностиКалькулятор Расстояния по Дуге Большого КругаКалькулятор Расстояния 3DКалькулятор тораКалькулятор усечённого конусаКалькулятор Площади Неправильного МногоугольникаКалькулятор правильного многоугольникаОпределитель конического сеченияКалькулятор гиперболыКалькулятор параболыКалькулятор Разложения Бинома НьютонаГенератор Треугольника ПаскаляКалькулятор произведений (Пи-нотация)Калькулятор сигма нотации (суммирование)Калькулятор Теоремы о Рациональных КорняхКалькулятор правила знаков ДекартаКалькулятор Параллельных и Перпендикулярных ПрямыхКалькулятор Уравнения ПрямойКонвертер Стандартной Формы в Форму Наклон-ПересечениеКалькулятор Уравнения Прямой по Точке и НаклонуРешатель Системы Нелинейных УравненийРешение рациональных уравненийРешатель буквенных уравненийРешатель тригонометрических уравненийРешение показательных уравненийРешатель логарифмических уравненийКалькулятор уравнения четвертой степениРешатель кубического уравненияКалькулятор ОценкиКонвертер Числа в ДробьГенератор Счёта с ПропускомКалькулятор цены за единицуКалькулятор функций потолка и полаКалькулятор абсолютного значенияПоиск Числовых ЗакономерностейГенератор таблицы разрядных значенийКалькулятор порядка операций PEMDASКалькулятор сложения и вычитания столбикомКалькулятор Умножения в СтолбикГенератор таблицы умножения🎮 Конвертер игровой валюты🎲 Калькулятор вероятности дропа🎰 Калькулятор гарантии гача⚔️ Калькулятор DPS🎮 Конвертер чувствительности игр❄️ Калькулятор Снежного Дня🚚 Калькулятор стоимости переезда🔍 Проверка на плагиат📷 OCR / Текст из изображения📈 Создатель линейных графиков🥧 Создатель Круговой Диаграммы📊 Создатель столбчатых диаграмм🔊 Генератор тонов🖱️ Счётчик кликовОнлайн Блокнот⬛ Калькулятор соотношения сторон🌍 Калькулятор углеродного следа👙 Калькулятор размера бюстгальтераКалькулятор Размера ШинКалькулятор стоимости топлива💧 Калькулятор точки росы🌡️ Калькулятор индекса жары🌬️ Калькулятор ветрового охлаждения⏰ Онлайн будильник⏰ Калькулятор табеля рабочего времени📅 Калькулятор разницы дат🕐 Конвертер военного времени⏱️ Калькулятор часов⏱️ Онлайн секундомер⏱️ Таймер обратного отсчёта🌐 Конвертер часовых поясовКалькулятор ковролинаКалькулятор подпорной стеныКалькулятор мощности HVACКалькулятор утепленияКалькулятор тротуарной плиткиКалькулятор арматурыКалькулятор пиломатериаловКалькулятор площадиКалькулятор перекрёстного умноженияКалькулятор сводки пяти чиселКалькулятор перцентиляКалькулятор нормального распределенияКалькулятор p-значенияКалькулятор пропорцийКалькулятор выделения полного квадратаКалькулятор округленияКалькулятор деления столбикомСчётчик Символов Twitter/XСлучайный выбор комментариев YouTubeИзвлечение тегов YouTubeЗагрузчик миниатюр YouTubeКалькулятор доходов YouTubeГенератор случайных персонажей RPG