Эта проблема возникла из моего недавнего поста в блоге. Предположим, у вас есть тур по TSP. Является ли он совместным с NP, чтобы определить, является ли он минимальным?
Точнее следующая задача NP-полная:
Экземпляр: заданный полный граф G с ребрами, взвешенными с положительными целыми числами, и простой цикл C, который посещает все узлы G.
Вопрос: существует ли простой цикл D, который посещает все узлы группы G, так что общий вес всех ребер D в G строго меньше, чем общий вес всех ребер C в G?
Эскиз возможного сокращения, чтобы доказать, что оно NP-завершено.
Неофициально он начинается с модифицированной формулы 3SAT, используемой для демонстрации того, что 3SAT является ASP-завершенной (еще одна проблема решения), и «следует» стандартной цепочке сокращений 3SAT => DIRECTED HAMCYCLE => UNIRIRED HAMCYCLE => TSP
Начнем с 3SAT формулы с п переменных х 1 , . , , х п и м caluses C 1 , . , , , С м ;φnx1,...xnmC1,...,Cm
Trasform его к новой формуле , добавив новую переменную т ...;φ′t
... и расширяя каждый пункт к ( х я 1 ∨ х я 2 ∨ х я 3 ∨ т ) ;(xi1∨xi2∨xi3)(xi1∨xi2∨xi3∨t)
Из строят граф структуры алмазов G = { V , E }, используемый для доказательства того, что НАПРАВЛЕННЫЙ ГАМИЛЬТОНОВЫЙ ЦИКЛ является NP-полным; предположим, что каждое предложение C j соответствует узлу N j в G ;φ′G = { V, E}СJNJграмм
Измените на граф G ′ = { V ′ , E ′ }, заменив каждый узел u тремя связанными узлами u 1 , u 2 , u 3 и измените ребра в соответствии со стандартным сокращением, используемым для доказательства NP-полноты НЕПРАВИЛЬНОГО ГАМИЛЬТОНОВОГО ЦИКЛА из НАПРАВЛЕННОГО ГАМИЛЬТОНОВОГО ЦИКЛА, т.е. u 1 - узел, используемый для входящих ребер, u 3 - узел, используемый для исходящих ребер;граммграмм'= { V', E'}UU1, у2, у3U1U3
Преобразуйте экземпляр НЕПРАВИЛЬНОГО ГАМИЛЬТОНОВОГО ЦИКЛА на в экземпляр TSP T, в котором все ребра G ′ имеют вес w = 1 , кроме (уникального) ребра в ромбе, переходящего в «положительное» назначение t, имеющее вес w = 2 (красный край на рисунке ниже); наконец, ребра, добавленные для полноты G , имеют вес w = 3 .грамм'Tграмм'ш = 1Tш = 2грамм'ш = 3
Ясно, что экземпляр TSP имеет простой циклкоторый посещает все узлыкоторые соответствуют заданиюудовлетворяющему ф ' , в которой т = т т у е (и этот тур можно легко построить за полиномиальное время), но он имеет общий вес | V ′ | + 1 (поскольку он использует преимуществочто соответствует присваивания т = т т у д , который имеет вес 2). У T есть еще один простой цикл, который посещает все узлы с меньшим общим весом | V ′ |Tφ'т = т т у й| В'| +1т = т т у йT| В'|тогда и только тогда, когда ребро веса , соответствующее назначению t = t r u e , не используется; или эквивалентно тогда и только тогда, когда существует другое удовлетворяющее присвоение φ ′, в котором
t = f a l s e ; но это может быть правдой тогда и только тогда, когда исходная формула φ выполнима.2т = т т у йφ'т = фл ы еφ
Я подумаю об этом больше и напишу формальное доказательство (если оно не окажется неправильным :-). Дайте мне знать, если вам нужна дополнительная информация об одном или нескольких из приведенных выше отрывков.
Как отметил domotorp, интересным следствием является то, что следующая задача является NP-полной: если дан граф и гамильтонов путь в нем, имеет ли G гамильтонов цикл?граммграмм
Таким образом, вы, по сути, показываете, что с учетом графа и H-пути в нем NPC решает, имеет ли он H-цикл, верно?
domotorp
Выглядит отлично. Спасибо, что приложили усилия в написании. Несколько изменений для непосредственного решения моего вопроса: ребра графа должны быть взвешены 1, за исключением того специального ребра, которое должно быть взвешено 2, а не ребра должны быть взвешены 3.
Papadimitriou & Steiglitz (1977) показали NP-полноту этой проблемы.
источник