Все проблемы NP сводятся к проблемам NP-complete: так как же проблемы NP не могут быть NP-complete?

10

Моя книга утверждает это

  • Если задача решения B находится в P, а A сводится к B, то проблема решения A находится в P.
  • Решение задачи B является NP-полным, если B находится в NP, и для каждой задачи в A в NP, A сводится к B.
  • Решающая задача C является NP-полной, если C находится в NP, а для некоторой NP-полной задачи B B уменьшается до C.

Так что мои вопросы

  1. Если B или C находится в NP-полной ситуации, и все проблемы в NP сводятся к проблеме NP-полной, используя первое правило, как любая проблема NP не может быть NP-полной?
  2. Если A уменьшается до B, B уменьшает до A?
rubixibuc
источник
2
Интересный факт, связанный с вашей # 1: Если P не равен NP, мы знаем, что должны быть задачи NP, которые не являются NP-полными (это называется теоремой Ладнера. См. NP Intermediate ). Странно то, что мы не уверены в каких-либо распространенных проблемах вычислений, которые подходят для этой категории. Задача, используемая в теореме Ладнера, искусственно построена для доказательства теоремы, но практически не имеет значения.
Лукас Кук
4
@Lucas, Factoring и GraphIso предполагаются как NPI, также посмотрите это .
Каве
@Kaveh: Хороший список кандидатов NPI, спасибо! Чтобы уточнить, я говорил, что мы «не уверены» в естественной проблеме NPI с той же уверенностью, что и проблемы Ладнера. То есть, если , единственные известные проблемы NPI - это искусственные проблемы, связанные с иерархией Ладнера. PNP
Лукас Кук

Ответы:

13

Если A уменьшается до B, B уменьшает до A?

Нет. Для действительно надуманного примера любая возможная вычислимая проблема A сводится к проблеме останова: просто передайте в качестве входных данных алгоритм, который решает проблему A, но с while(true)привязкой в ​​конце после истинного или ложного случая. Тем не менее, мы знаем, что проблема Остановки не вычислима, поэтому она не может быть сведена к любому такому алгоритму А.

Основная идея состоит в том, что если есть сокращение от A до B, вы можете узнать, что B, по крайней мере, так же трудно решить, чем A, и требует алгоритм, который, по крайней мере, такой же мощный.

Таким образом, если задача A сводится к простой задаче B, то мы можем легко вывести A (поскольку сокращение дает нам эффективный алгоритм), а если сложная задача A сведена к проблеме B, мы можем сделать вывод, что B также сложна ( так как если бы B было легко, то и A тоже должно быть легко). Однако все еще есть возможность сделать глупое сокращение от простой проблемы до сложной проблемы, но в этом случае мы не можем сделать какие-либо выводы.

hugomg
источник
8

Если B или C находится в NP Complete, и все проблемы в NP сводятся к проблеме NP Complete, используя первое правило, как любая проблема NP не может быть NP-полной?

Первое правило касается проблем в P. Это не имеет никакого отношения к полноте NP. Если задача A является NP Complete, а проблема B сводится к A, это не означает, что B NP NP Complete.

Если A уменьшается до B, B уменьшается до A?

Нет, вообще нет.

sepp2k
источник
«Нет, вообще нет». Почему? Небольшое объяснение также может быть полезным для новичков. Также должно быть предоставлено объяснение вашего первого ответа.
nbro
-1

У меня есть только основная идея относительно проблем NPC и NP. Но все, что я хочу прокомментировать, - это: «Если A уменьшается до B, то B уменьшается до A?»

Просто рассмотрим множество A, содержащее {2,3,4,5} элементов, и множество B, содержащее {3,4}. Таким образом, A можно уменьшить до B. Но B нельзя уменьшить до A. Вместо этого B можно расширить до A, если B получает {2,5} элементов.

Но если A и B имеют одинаковые. тогда A можно уменьшить до B или B можно уменьшить до A.

Навин CS
источник
Это совсем не правильная идея сокращения. Сокращение не о наборе набирающих или теряющих элементов. Скорее, речь идет о возможности преобразования экземпляра одной проблемы в другую с использованием машины / алгоритма Тьюринга.
13
Хорошо. Таким образом, если какая-либо проблема сводится к другой с использованием какого-либо алгоритма, то невозможно восстановить проблему из сокращенного вывода, используя тот же алгоритм снова.
Naveen CS
1
Я не совсем уверен, что вы имеете в виду, но я думаю, что это невозможно. Если я не ошибаюсь, этих сокращений может быть много к одному. A сводится к B, если полиномиальное число вызовов подпрограммы, решающей B, позволяет решить A за полиномиальное время. Различные экземпляры A могут вызывать вызов одного и того же экземпляра B.
jmite
2
Речь идет о решении проблем, а не о наборах. Как полезно смотреть на наборы? Использование слова «сокращенный» означает, что набор является надмножеством другого, даже не является общей терминологией.
Жиль "ТАК - перестань быть злым"