Использование сокращений NP

У меня возникли некоторые трудности с пониманием сокращений с использованием задач NP, и я хотел бы получить разъяснения. Рассмотрим следующую проблему:

Show that the following problem is NP-Complete by designing
a polynomial-time reduction algorithm from an already known
NP-Complete problem.

Problem: Given an undirected graph G=(V,E) and integer k,
         test whether G has a cycle of length k.

Я знаю, что есть другие темы, касающиеся этого предмета, но я все еще не уверен, что понимаю, как можно было бы сделать такие сокращения.

Насколько я понимаю, именно так вы бы подошли к такой проблеме.

  1. Предположим, что данная задача может быть решена за полиномиальное время.
  2. Используйте данную задачу, чтобы решить задачу, которая, как мы знаем, является NP-сложной за полиномиальное время.
  3. Это создает противоречие, поэтому предположение должно быть неверным
  4. Таким образом, данная задача не должна решаться за полиномиальное время

Итак, для такой проблемы, будет ли это правильным подходом?

  1. Если мы выберем k как длину гамильтонова цикла в графе (при условии, что он есть), это означает, что эту задачу можно использовать для нахождения гамильтонова цикла в графе.
  2. Поскольку мы можем найти гамильтонов цикл только за NP-время, эта задача также должна быть разрешима только за NP-время.

person Dan Brenner    schedule 13.05.2013    source источник


Ответы (1)


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

person zw324    schedule 13.05.2013
comment
Это отзыв к экзамену по темам, которые никогда не обсуждались в классе (преподаватель был болен). Нахождение этого цикла было бы эквивалентно нахождению гамильтонова цикла, не так ли? Как я сказал в своем подходе? - person Dan Brenner; 14.05.2013
comment
Да в принципе так. Моя версия только что переформулирована и (я думаю) будет чище, но вы можете написать свою собственную версию (конечно) и, возможно, опубликовать ее как часть вопроса. - person zw324; 14.05.2013