Гамильтонова проблема пути - Hamiltonian path problem

в математический поле теория графов то Гамильтонова проблема пути и Проблема гамильтонова цикла проблемы с определением того, Гамильтонов путь (путь в неориентированном или ориентированном графе, который посещает каждую вершину ровно один раз) или гамильтонов цикл существует в данном график (будь то направленный или ненаправленный ). Обе проблемы НП-полный.[1]

Проблема гамильтонова цикла является частным случаем задача коммивояжера, полученный установкой расстояния между двумя городами равным одному, если они смежные, и двум в противном случае, и проверке того, что общее пройденное расстояние равно п (в этом случае маршрут представляет собой гамильтонову цепь; если гамильтонова цепь отсутствует, кратчайший маршрут будет длиннее).

Сведение между проблемой пути и проблемой цикла

Между задачами поиска гамильтонова траектории и гамильтонова цикла существует простая связь:

  • В одном направлении проблема гамильтонова пути для графа G эквивалентна проблеме гамильтонова цикла в графе H, полученном из G путем добавления новой вершины Икс и подключение Икс ко всем вершинам графа G. Таким образом, поиск гамильтонова пути не может быть значительно медленнее (в худшем случае, в зависимости от числа вершин), чем поиск гамильтонова цикла.
  • С другой стороны, проблема гамильтонова цикла для графа G эквивалентна задаче гамильтонова пути в графе H, полученном копированием одной вершины v графа G, v ', то есть позволяя v' иметь ту же окрестность, что и v, и добавив две фиктивные вершины первой степени и соединив их с вершинами v и v 'соответственно.[2]

Алгоритмы

Есть п! различные последовательности вершин, которые мощь быть гамильтоновыми путями в заданном п-вершинный граф (и находятся в полный график ), так что поиск грубой силы Алгоритм, который проверяет все возможные последовательности, будет очень медленным. Ранним точным алгоритмом для поиска гамильтонова цикла на ориентированном графе был алгоритм перечисления Мартелло.[3] Процедура обыска Фрэнка Рубина[4] делит ребра графа на три класса: те, которые должны быть на пути, те, которые не могут быть на пути, и не определившиеся. По мере продолжения поиска набор правил принятия решений классифицирует нерешенные ребра и определяет, следует ли остановить или продолжить поиск. Алгоритм делит граф на компоненты, которые можно решить отдельно. Также динамическое программирование алгоритм Беллман, Хельд и Карп можно использовать для решения задачи за время O (п2 2п). В этом методе определяется для каждого набора S вершин и каждой вершины v в S, существует ли путь, который точно охватывает вершины в S и заканчивается в v. Для каждого выбора S и v, путь существует для (S,v) если и только если v есть сосед ш такой, что существует путь для (S − v,ш), который можно найти на основе уже вычисленной информации в динамической программе.[5][6]

Андреас Бьёрклунд предложил альтернативный подход, используя принцип включения-исключения свести проблему подсчета количества гамильтоновых циклов к более простой задаче подсчета, подсчета покрытий циклов, которая может быть решена путем вычисления определенных матричных определителей. Используя этот метод, он показал, как решить проблему гамильтонова цикла в произвольной п-вершинных графов Алгоритм Монте-Карло за время O (1.657п); для двудольные графы этот алгоритм может быть улучшен со временем о (1.415п).[7]

Для графов максимальной степени три тщательный поиск с возвратом может найти гамильтонов цикл (если он существует) за время O (1,251п).[8]

Гамильтоновы пути и циклы можно найти с помощью SAT решатель.

Из-за сложности решения гамильтоновых задач о путях и циклах на обычных компьютерах они также изучались в нетрадиционных моделях вычислений. Например, Леонард Адлеман показал, что проблема гамильтонова пути может быть решена с помощью ДНК-компьютер. Используя параллелизм, присущий химическим реакциям, проблема может быть решена с помощью ряда шагов химической реакции, линейных по количеству вершин графа; однако для участия в реакции требуется определенное количество молекул ДНК.[9]

Было предложено также оптическое решение гамильтоновой проблемы.[10] Идея состоит в том, чтобы создать графоподобную структуру, состоящую из оптических кабелей и светоделителей, через которые проходит свет, чтобы найти решение проблемы. Слабым местом этого подхода является требуемое количество энергии, которое экспоненциально зависит от количества узлов.

Сложность

Проблема поиска гамильтонова цикла или пути заключается в ФНП; аналогичный проблема решения состоит в том, чтобы проверить, существует ли гамильтонов цикл или путь. Задачи направленного и неориентированного гамильтонова цикла были двумя из 21 NP-полная задача Карпа. Они остаются NP-полными даже для особых видов графов, таких как:

Однако для некоторых специальных классов графов проблема может быть решена за полиномиальное время:

  • 4-связный планарные графы всегда гамильтоновы по результату из-за Тутте, а вычислительная задача нахождения гамильтонова цикла в этих графах может быть выполнена за линейное время[17] путем вычисления так называемого Путь Тутте.
  • Тутте доказал этот результат, показав, что каждый 2-связный плоский граф содержит путь Тутте. Пути Tutte, в свою очередь, могут быть вычислены за квадратичное время даже для двухсвязных плоских графов,[18] которые можно использовать для нахождения гамильтоновых циклов и длинных циклов в обобщениях плоских графов.

Собирая все эти условия вместе, остается открытым, всегда ли 3-связные 3-регулярные двудольные плоские графы должны содержать гамильтонов цикл, и в этом случае проблема, ограниченная этими графами, не может быть NP-полной; увидеть Гипотеза Барнетта.

В графах, в которых все вершины имеют нечетную степень, аргумент, связанный с лемма о рукопожатии показывает, что количество гамильтоновых циклов через любое фиксированное ребро всегда четно, поэтому, если задан один гамильтонов цикл, то должен существовать и второй.[19] Однако поиск этого второго цикла не кажется легкой вычислительной задачей. Пападимитриу определил класс сложности PPA чтобы инкапсулировать проблемы, подобные этой.[20]

использованная литература

СМИ, связанные с Гамильтонова проблема пути в Wikimedia Commons

  1. ^ Майкл Р. Гарей и Дэвид С. Джонсон (1979), Компьютеры и непреодолимость: руководство по теории NP-полноты, W.H. Фриман, ISBN  978-0-7167-1045-5 A1.3: GT37–39, стр. 199–200.
  2. ^ Сведение от гамильтонова цикла к гамильтонову пути
  3. ^ Мартелло, Сильвано (1983), "Перечислительный алгоритм для поиска гамильтоновых схем в ориентированном графе", Транзакции ACM на математическом ПО, 9 (1): 131–138, Дои:10.1145/356022.356030
  4. ^ Рубин, Франк (1974), "Процедура поиска путей и цепей Гамильтона", Журнал ACM, 21 (4): 576–80, Дои:10.1145/321850.321854
  5. ^ Беллман, Р. (1962), "Динамическое программирование решения задачи коммивояжера", Журнал ACM, 9: 61–63, Дои:10.1145/321105.321111.
  6. ^ Held, M .; Карп, Р.М. (1962), «Подход динамического программирования к задаче определения последовательности» (PDF), J. SIAM, 10 (1): 196–210, Дои:10.1137/0110015, HDL:10338.dmlcz / 103900.
  7. ^ Björklund, Андреас (2010), "Детерминантные суммы для неориентированной гамильтоничности", Proc. 51-й симпозиум IEEE по основам компьютерных наук (FOCS '10), стр. 173–182, arXiv:1008.0541, Дои:10.1109 / FOCS.2010.24, ISBN  978-1-4244-8525-3.
  8. ^ Ивама, Кадзуо; Накашима, Такуя (2007), "Улучшенный точный алгоритм для кубического графа TSP", Proc. 13-я ежегодная международная конференция по вычислениям и комбинаторике (COCOON 2007), Конспект лекций по информатике, 4598, стр. 108–117, CiteSeerX  10.1.1.219.1672, Дои:10.1007/978-3-540-73545-8_13, ISBN  978-3-540-73544-1.
  9. ^ Адлеман, Леонард (Ноябрь 1994 г.), «Молекулярное вычисление решений комбинаторных задач», Наука, 266 (5187): 1021–1024, Bibcode:1994Научный ... 266.1021A, CiteSeerX  10.1.1.54.2565, Дои:10.1126 / science.7973651, JSTOR  2885489, PMID  7973651.
  10. ^ Михай Олтеан (2006). Световое устройство для решения задачи о гамильтоновой траектории. Нетрадиционные вычисления. Springer LNCS 4135. С. 217–227. arXiv:0708.1496. Дои:10.1007/11839132_18.
  11. ^ «Доказательство того, что существование пути Гамильтона в двудольном графе NP-полно». Обмен стеками информатики. Получено 2019-03-18.
  12. ^ Гарей, М.; Джонсон, Д.С.; Штокмейер, Л. (1974), "Некоторые упрощенные NP-полные задачи", Proc. 6-й симпозиум ACM по теории вычислений (STOC '74), стр. 47–63, Дои:10.1145/800119.803884.
  13. ^ Плешник, J. (1979), «NP-полнота проблемы гамильтонова цикла в плоских орграфах со степенью два» (PDF), Письма об обработке информации, 8 (4): 199–201, Дои:10.1016/0020-0190(79)90023-1.
  14. ^ Акияма, Таканори; Нисизэки, Такао; Сайто, Нобуджи (1980–1981), "NP-полнота проблемы гамильтонова цикла для двудольных графов", Журнал обработки информации, 3 (2): 73–76, Г-Н  0596313.
  15. ^ Итаи, Алон; Пападимитриу, Христос; Szwarcfiter, Jayme (1982), "Пути Гамильтона в сеточных графах", SIAM Журнал по вычислениям, 4 (11): 676–686, CiteSeerX  10.1.1.383.1078, Дои:10.1137/0211056.
  16. ^ Бюро, Майкл (2000), «Простые эндшпиль амазонок и их связь со схемами Гамильтона в кубических подсеточных графах» (PDF), Конференция по компьютерам и играм, Конспект лекций по информатике, 2063, стр. 250–261, CiteSeerX  10.1.1.40.9731, Дои:10.1007/3-540-45579-5_17, ISBN  978-3-540-43080-3.
  17. ^ Чиба, Норишиге; Нишизеки, Такао (1989), "Проблема гамильтонова цикла линейно разрешима для четырехсвязных плоских графов", Журнал алгоритмов, 10 (2): 187–211, Дои:10.1016/0196-6774(89)90012-6
  18. ^ Шмид, Андреас; Шмидт, Йенс М. (2018), «Вычисление всех путей», Труды 45-го Международного коллоквиума по автоматам, языкам и программированию (ICALP'18), чтобы появиться.
  19. ^ Томасон, А. Г. (1978), "Гамильтоновы циклы и однозначно раскрашиваемые ребра графы", Достижения в теории графов (Кембриджская комбинаторная конференция, Тринити-колледж, Кембридж, 1977), Анналы дискретной математики, 3, стр.259–268, Дои:10.1016 / S0167-5060 (08) 70511-9, ISBN  9780720408430, Г-Н  0499124.
  20. ^ Пападимитриу, Христос Х. (1994), "О сложности аргумента четности и других неэффективных доказательствах существования", Журнал компьютерных и системных наук, 48 (3): 498–532, CiteSeerX  10.1.1.321.7008, Дои:10.1016 / S0022-0000 (05) 80063-7, Г-Н  1279412.