Упростите свой рабочий процесс: найдите miniwebtool.
Добавить
Домашняя страница > Математика > Продвинутые математические операции > Проверка Гамильтонова Пути

Проверка Гамильтонова Пути

Проверьте, содержит ли граф гамильтонов путь или гамильтонов цикл. Выполняет поиск с возвратом с отсечением Варнсдорфа, проверяет условия связности и степеней вершин, тестирует достаточные условия Дирака и Оре, и показывает найденный путь на анимированной SVG-визуализации.

Проверка Гамильтонова Пути
Принимает A-B, A->B, A B, A,B или строки матрицы, например 0 1 1 0. Используйте буквы, цифры или подчеркивание для меток.
Метки через запятую или пробел, по одной на строку. По умолчанию используются A, B, C…, если поле пустое.

Embed Проверка Гамильтонова Пути Widget

О Проверка Гамильтонова Пути

Проверка гамильтонова пути определяет, содержит ли граф гамильтонов путь — последовательность, посещающую каждую вершину ровно один раз — или гамильтонов цикл, который дополнительно возвращается в исходную вершину. Инструмент сочетает быстрые структурные проверки (связность, требования к степеням, теоремы Дирака и Оре) с поиском с возвратом, оптимизированным эвристикой Варнсдорфа, и визуализирует найденный путь с помощью пошаговой анимации.

Что такое гамильтонов путь?

Для заданного графа G = (V, E) с n вершинами гамильтонов путь — это упорядоченная последовательность v1, v2, …, vn всех вершин такая, что каждая последовательная пара (vi, vi+1) является ребром G, и каждая вершина встречается ровно один раз. Если дополнительно (vn, v1) является ребром, последовательность называется гамильтоновым циклом.

Гамильтонов путь: v1 — v2 — v3 — … — vn (все разные, каждая пара — ребро) Гамильтонов цикл: v1 — v2 — v3 — … — vn — v1 (замыкается в начало)

Задача названа в честь Уильяма Роуэна Гамильтона, который в 1857 году изобрел икосианскую игру — головоломку, в которой требовалось найти цикл, посещающий каждую вершину правильного додекаэдра ровно один раз.

Почему это сложно: NP-полнота

Задачи определения существования гамильтонова пути и гамильтонова цикла являются NP-полными (Карп, 1972). Если только P не равно NP, не существует алгоритма с полиномиальным временем работы, решающего любой экземпляр задачи. В худшем случае поиск с возвратом исследует дерево поиска размером до (n−1)! для цикла. Вот почему калькулятор ограничивает ввод 20 вершинами — небольшое полиномиальное увеличение n приводит к взрывному росту времени выполнения.

На практике эвристика Варнсдорфа (первоначально разработанная Генрихом Варнсдорфом в 1823 году для задачи о ходе коня) значительно ускоряет поиск на структурированных графах: на каждом шаге алгоритм продлевает текущий путь в ту непосещенную соседнюю вершину, которая имеет наименьшее количество собственных непосещенных соседей. Это жадное правило предотвращает попадание поиска в тупик и часто находит гамильтонов обход без единого возврата на «хороших» графах.

Необходимые условия — Быстрая отбраковка

Прежде чем запускать ресурсоемкий поиск, калькулятор отбраковывает графы, которые заведомо не могут содержать гамильтонов путь:

Эти правила позволяют за линейное время отсеять множество безнадежных вариантов, избегая напрасных усилий по поиску с возвратом.

Достаточные условия — Классические теоремы

Несколько классических теорем дают достаточные (но не необходимые) условия, гарантирующие наличие гамильтонова цикла в неориентированных простых графах. Если любое из них выполняется, калькулятор помечает результат как «ГАРАНТИРУЕТ» даже без запуска поиска (хотя цикл-свидетель всё равно будет показан).

Теорема Дирака (1952)

Если G — простой неориентированный граф с n ≥ 3 вершинами, и каждая вершина имеет степень не менее n / 2, то G имеет гамильтонов цикл.

δ(G) ≥ n / 2 ⟹ G гамильтонов

Теорема Оре (1960)

Если для каждой пары несмежных вершин u и v выполняется deg(u) + deg(v) ≥ n, то G имеет гамильтонов цикл. Условие Оре строго слабее условия Дирака, поэтому из условия Оре следует условие Дирака.

∀ несмежных u, v: deg(u) + deg(v) ≥ n ⟹ G гамильтонов

Невыполнение условий Дирака или Оре не означает, что в графе нет гамильтонова цикла — многие графы не удовлетворяют ни одному из них, но всё же содержат цикл (например, простой n-цикл имеет минимальную степень 2, что намного меньше n/2 для больших n).

Алгоритм поиска внутри

Когда предварительные проверки не дают ответа, калькулятор запускает поиск с возвратом на представлении смежности графа. Ключевые тактики:

  1. Битовая маска посещенных вершин. Посещенные вершины хранятся в виде битовой маски (быстрая проверка принадлежности O(1) для графов до 20 вершин).
  2. Эвристика Варнсдорфа. При каждом расширении пути соседи перебираются в порядке их оставшейся степени посещаемости (сначала меньшие), имитируя порядок с низким ветвлением.
  3. Выбор корня. Для гамильтонова цикла достаточно начать с одной любой вершины (циклы инвариантны относительно вращения). Для гамильтонова пути начальные вершины пробуются в порядке возрастания исходящей степени — сначала наиболее редкие позиции.
  4. Лимит шагов. Жесткое ограничение предотвращает бесконечную работу на патологических случаях; в интерфейсе такой результат отображается как «тайм-аут».

Гамильтоновы задачи против Эйлеровых

Гамильтоновы и эйлеровы задачи часто путают — они звучат похоже, но фундаментально различаются:

Свойство Гамильтонов путь / цикл Эйлерова цепь / цикл
Посещает каждую… Вершину ровно один раз Ребро ровно один раз
Сложность NP-полная Полиномиальная (O(n+m))
Условие Нет простой характеристики Связность + все степени четные (для цикла); макс. 2 нечетных для цепи
Названо в честь У. Р. Гамильтон (1857) Л. Эйлер (1736, мосты Кёнигсберга)
Классический пример Задача коммивояжера, икосианская игра Инспекция дорог, задача почтальона

Поддерживаемые форматы ввода

Список ребер

Одно ребро на строку или через запятую. Поддерживаемые разделители: A-B, A B, A,B, A--B, A->B, A<-B. Используйте -> для принудительного указания ориентации.

A-B, B-C, C-D, D-A, A-C (неориентированный граф с 5 ребрами) A->B, B->C, C->D, D->A (ориентированный 4-цикл)

Матрица смежности

Квадратная матрица значений 0/1, одна строка на линию, разделенная пробелами или запятыми. Можно указать метки в соответствующем поле, иначе автоматически будут использованы A, B, C…

0 1 1 0 1 0 1 1 1 1 0 1 0 1 1 0

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

  1. Выберите формат ввода — Список ребер для небольших графов, написанных от руки, или матрица смежности для вставки из кода или учебников.
  2. Вставьте ваш граф в текстовое поле. Для ввода матрицы можно дополнительно указать метки вершин.
  3. Выберите, что проверять: Только путь, Только цикл или Оба сразу.
  4. Выберите тип графа — Автоопределение определит ориентированность по стилю стрелок (->) или симметрии матрицы.
  5. Нажмите «Проверить гамильтонов путь». Страница результатов покажет вердикт, проверку необходимых условий, тесты Дирака / Оре, путь-свидетель (если он существует) и интерактивную визуализацию.
  6. Воспроизведите путь с помощью кнопок Пуск / Шаг. Наблюдайте, как путь подсвечивается на графе ребро за ребром.

Пример — Граф Петерсена

Знаменитый граф Петерсена (10 вершин, 15 ребер, 3-регулярный) — классический пример графа, имеющего гамильтонов путь, но не имеющего гамильтонова цикла. Вставьте это в поле списка ребер и нажмите «Проверить»:

1-2, 2-3, 3-4, 4-5, 5-1, 6-8, 8-10, 10-7, 7-9, 9-6, 1-6, 2-7, 3-8, 4-9, 5-10

Проверка подтвердит: гамильтонов путь найден (например, 1 — 2 — 7 — 10 — 5 — 4 — 9 — 6 — 8 — 3), но полный перебор показывает отсутствие возможности замкнуть цикл — результат, впервые доказанный в 1890-х годах.

Области применения

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

Что такое гамильтонов путь?

Гамильтонов путь — это путь в графе, который проходит через каждую вершину ровно один раз. Он назван в честь Уильяма Роуэна Гамильтона, который изучал эту задачу на графе додекаэдра в 1857 году. Определение существования такого пути является NP-полной задачей, поэтому не существует известного алгоритма, решающего её за полиномиальное время для всех графов.

Чем гамильтонов цикл отличается от гамильтонова пути?

Гамильтонов цикл — это гамильтонов путь, который возвращается в исходную вершину, образуя замкнутую петлю, посещающую каждую вершину ровно один раз. Каждый гамильтонов цикл содержит гамильтонов путь (если убрать замыкающее ребро), но обратное неверно: многие графы имеют гамильтонов путь, но не имеют гамильтонова цикла.

О чем говорит теорема Дирака?

Теорема Дирака (1952) утверждает, что любой простой неориентированный граф с n ≥ 3 вершинами, в котором каждая вершина имеет степень не менее n/2, содержит гамильтонов цикл. Это достаточное, но не необходимое условие: многие графы, не проходящие порог Дирака, всё равно имеют гамильтоновы циклы.

О чем говорит теорема Оре?

Теорема Оре (1960) утверждает, что если для каждой пары несмежных вершин u и v в простом графе с n ≥ 3 вершинами сумма их степеней составляет не менее n, то граф имеет гамильтонов цикл. Условие Оре слабее условия Дирака, поэтому теорема Оре применима всегда, когда применима теорема Дирака.

Почему поиск ограничен 20 вершинами?

Задачи определения гамильтонова пути и цикла являются NP-полными. Время работы в худшем случае растет экспоненциально с числом вершин. Благодаря отсечению и эвристике Варнсдорфа калькулятор быстро обрабатывает многие небольшие графы до 20 вершин, но более сложные случаи могут привести к тайм-ауту. Для графов более 20 вершин следует использовать специализированные решатели, такие как Concorde, или формулировки целочисленного программирования.

Что такое эвристика Варнсдорфа?

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

Находит ли этот инструмент все гамильтоновы пути?

Нет — он находит один путь или цикл-свидетель, если они существуют. Подсчет общего количества гамильтоновых путей сам по себе является #P-полной задачей и гораздо сложнее задачи распознавания. Для перечисления лучше использовать специализированные инструменты или решатели целочисленного программирования.

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

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

"Проверка Гамильтонова Пути" на сайте https://ru.miniWebtool.com/проверка-гамильтонова-пути/ от MiniWebtool, https://MiniWebtool.com/

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

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

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

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

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

Калькулятор знака ВенерыКалькулятор совместимости в любвиКалькулятор ангельских чиселКалькулятор Фаренгейта в ЦельсияКалькулятор Солнечного, Лунного и Асцендентного Знаков 🌞🌙✨Извлечение Изображений из ВидеоОбъединить видеоКонвертер FPSКонвертер см в футы и дюймыАудио РазделительКалькулятор лунного знакаКалькулятор числа жизненного путиКонвертер футов и дюймов в сантиметрыВидео КомпрессорУдалить аудио из видеоКалькулятор числа судьбыИзменить скорость видеоДобавить текст к изображениюАудио ЭкстракторДобавить или заменить аудио в видеоКалькулятор знака МарсаРазделитель видеоРазделитель изображенийГенератор случайных цветовГенератор штрих-кодовГенератор маленького текста ⁽ᶜᵒᵖʸ ⁿ ᵖᵃˢᵗᵉ⁾Калькулятор совместимости лунных знаков⏱️ Калькулятор часовУдалить строки, содержащие строкуПовернуть видеоПоиск идентификатора пользователя InstagramMP3-луперКалькулятор угла срезаОбрезка ВидеоГенератор филвордовКалькулятор рабочего времениКалькулятор Рекомпозиции ТелаГенератор случайных английских словКалькулятор FIPКалькулятор баланса астрологических стихийКалькулятор дня года - какой сегодня день года?Бросок кубиковКалькулятор гипотенузыКалькулятор продолжительности времениРешатель Карты Карно (K-Map)Создатель GIFШестнадцатеричный калькуляторКалькулятор знака МеркурияКалькулятор Площади Неправильного МногоугольникаГенератор случайных предметовГенератор случайных фиктивных адресовКалькулятор калорий при беременностиКалькулятор числа имениКалькулятор возвращения СатурнаКалькулятор цены за тысячу показовКалькулятор Относительного Стандартного ОтклоненияКалькулятор теоремы ПифагораЗациклить видеоКонвертер MP4 в GIFКалькулятор процента жира в теле⏰ Калькулятор табеля рабочего времениПродвинутый анализатор совместимости знаков зодиакаКонвертер кг в фунтыВыбор Случайного ИмениГенератор кроссвордовГенератор случайных кредитных картГенератор случайного IMEIПобитовый калькуляторКалькулятор TDEEКонвертер дробного времениПроверка имени пользователя в социальных сетяхЦифровой калькулятор душиКалькулятор нумерологииКалькулятор коэффициентов и процентовПреобразователь двоичного кода в десятичныйКонвертер ГМС в десятичные градусыКакое у меня счастливое число?Генератор случайных животныхКалькулятор числа личностиКалькулятор калорий при грудном вскармливанииДобавить линию к изображениюКалькулятор прямоугольного треугольника⏱️ Таймер обратного отсчётаконвертер десятичной системы в двоичнуюКонвертер фунтов в килограммыКрутить колесоГенератор случайных суперспособностейКалькулятор сухой массы телаКонвертер десятичного числа в шестнадцатеричный📊 Создатель столбчатых диаграммУдаление Невидимых СимволовСлучайный выборСчётчик токенов ИИКалькулятор жима лежаКалькулятор уклона и классаГенератор невидимого текстаКонвертер HTML в текстГенератор случайной турнирной сеткиКалькулятор среднего отклоненияКалькулятор функции ошибкиСтатистика канала YouTubeКалькулятор количества цифрКонвертер HEIC в JPGДобавить водяной знак на видеоГенератор случайных строкОбратный текстГенератор случайных дней рожденияГенератор «Соедини точки»Двоичный в шестнадцатеричный конвертерКалькулятор теста Краскела-УоллисаГенератор случайного времениКалькулятор дефицита калорийКалькулятор дозировки лекарствКалькулятор области определения и значенийПоиск ID пользователя Facebookгенератор-нонограмм-пикроссКалькулятор дробейПреобразователь сахара в кровиЭкранирование и снятие экранирования строк JSONГенератор случайных эмодзи📅 Калькулятор датыГенератор случайных блюдКалькулятор коэффициента корреляцииГенератор карточек бингоКалькулятор Модульного Возведения в СтепеньКалькулятор числа выраженияКалькулятор ANOVAКалькулятор снаКалькулятор передаточного отношения велосипедаКалькулятор процентного уменьшенияКалькулятор СуммыКалькулятор уравнений с модулемГенератор лабиринтовГенератор случайных координатКалькулятор конвертации масштаба моделиСимулятор шифрования RSA пошаговыйСортировка чиселКонвертер сантиметров в дюймыПреобразователь Обычного Времени в Десятичное ВремяФорматировщик текстаКалькулятор модуляКалькулятор скорости езды на велосипедеКалькулятор усечённого конуса📈 Создатель линейных графиковГенератор красивого текстаИзвлекатель чиселКалькулятор одного повторного максимума (1ПМ)Калькулятор Процентного ИзмененияКалькулятор U-критерия Манна-УитниГенератор и решатель судокуИнвертор цвета🖱️ Счётчик кликовКалендарь ретроградного МеркурияКалькулятор двойных интеграловКалькулятор инфляции в СШАКалькулятор квадратного корня⬛ Калькулятор соотношения сторонКонвертер размера файлаСоздатель гистограммHEX-конвертерШестнадцатеричный преобразователь в десятичныйКалькулятор кубического корняКонвертер дюймов в сантиметрыОбратить ВидеоРешатель НеравенствКалькулятор перевода дроби в десятичное числоКалькулятор шагов в расстояниеТранспонировщик музыкальной тональности🌐 Конвертер часовых поясовГенератор случайных буквКалендарь новолуния и полнолунияКалькулятор подпорной стеныГенератор случайных стран🔊 Генератор тонов🎰 Калькулятор гарантии гачаКалькулятор Жордановой Нормальной ФормыДвоичный преобразовательИнтерактивный визуализатор единичной окружностиКалькулятор биномиального распределенияКалькулятор распределения ПуассонаКалькулятор типа телосложенияРандомизатор именГенератор диаграмм размаха (ящик с усами)Декодер азбуки МорзеКалькулятор вероятности броска кубиковКалькулятор среднего, медианы и модыКонвертер римских цифрКонвертер частоты и длины волныДвоичный калькуляторИнструмент для пикселизации изображенийКалькулятор минимального остовного дереваТестер вебхуковГенератор азбуки МорзеГенератор анаграммГенератор Случайных Математических ЗадачКалькулятор Итоговой ОценкиКалькулятор Стандартной ОшибкиКонвертер Метров в ФутыРандомизатор спискаТестер APIВизуализатор роста капиталаКалькулятор Стоимости ОбедаКалькулятор стоимости: спортзал против домашних тренировокКалькулятор расходов на кофеКалькулятор экономии на удалённой работеКалькулятор 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