Особый случай
Предположим , мы хотим показать относительно некоторого понятия редукции R . Если L 1 представляет собой частный случай из L 2 , что вполне тривиально: мы можем существенно использовать тождественную функцию. Интуиция за этим ясна: общий случай, по крайней мере, такой же сложный, как и особый случай.L1≤RL2RL1L2
В «практике» нам дают и мы сталкиваемся с проблемой выбора хорошего партнера по восстановлению L 1 , то есть находим особый случай L 2 , который оказался R- трудным.L2L1L2R
Простой пример
Предположим, мы хотим показать, что KNAPSACK NP- сложен . К счастью, мы знаем, что SUBSET-SUM является NP-полной, и это действительно особый случай KNAPSACK. Снижение
е( A , k ) = ( A , ( 1 , … , 1 ) , k , | A | )
хватает; - это экземпляр KNAPSACK, который спрашивает, можем ли мы достичь хотя бы значения v со значениями элементов в V, чтобы соответствующие веса из W оставались ниже w в целом. Нам не нужны ограничения по весу для симуляции SUBSET-SUM, поэтому мы просто устанавливаем для них тавтологические значения.( V, Вт, v , w )vВWвес
Простая задача упражнений
Рассмотрим задачу MAX-3SAT: учитывая пропозициональную формулу и целое число k , решите, существует ли интерпретация φ, которая удовлетворяет хотя бы k пунктам. Покажите, что это NP-хард.φКφК
3SAT - это особый случай; с m достаточно числа предложений в φ .е( φ ) = ( φ , м )мφ
пример
Предположим, что мы исследуем проблему SUBSET-SUM и хотим показать, что она NP-трудная.
Нам повезло, и мы знаем, что проблема PARTITION является NP-полной. Мы подтверждаем, что это действительно частный случай SUBSET-SUM и формулируем
е( А ) = { ( А , 12Σa ∈ Aа )( А , 1 + ∑a ∈ A| а | ), Σa ∈ Aaмодификация2=0,else
где - входной набор PARTITION, а ( A , k ) - экземпляр для SUBSET-SUM, который запрашивает после подмножества A суммирования к k . Здесь мы должны позаботиться о том, чтобы не было подходящего k ; в этом случае мы даем произвольный невозможный случай.A( А , К )AКК
Упражнение Проблема
Рассмотрим задачу LONGEST-PATH: учитывая направленный граф , узлы s , t из G и целое число k , решите, существует ли простой путь из s в t в G длиной не менее k .гс , тгКsTгК
Покажите, что самый длинный путь - NP-сложный.
HAMILTON-CYCLE является хорошо известной NP-полной проблемой и частным случаем LONGEST-PATH; для произвольного узла v в G достаточно.
Обратите внимание, в частности, как сокращение от HAMILTON-PATH требует больше работы.е( G ) = ( G , v , v , n )vг