Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
Класс сложности, используемый для классификации задач принятия решений.
Complexity class used to classify decision problems
В теории вычислительной сложности NP (недетерминированное полиномиальное время) — это класс сложности, используемый для классификации задач принятия решений. NP — это множество задач, для которых экземпляры, имеющие ответ "да", обладают полиномиально верифицируемыми доказательствами с помощью детерминированной машины Тьюринга, или, альтернативно, множество задач, разрешимых в полиномиальное время недетерминированной машиной Тьюринга. NP — это множество задач, разрешимых в полиномиальное время недетерминированной машиной Тьюринга. NP — это множество задач, для которых решения могут быть проверены в полиномиальное время детерминированной машиной Тьюринга. Первое определение является основой для аббревиатуры NP: "недетерминированное, полиномиальное время". Эти два определения эквивалентны, поскольку алгоритм, основанный на машине Тьюринга, состоит из двух фаз: первая — это выдвижение гипотезы о решении, генерируемой недетерминированным образом, а вторая — детерминированный алгоритм, проверяющий, является ли эта гипотеза решением задачи. Очевидно, что класс сложности P (все задачи, разрешимые детерминированно в полиномиальное время) содержится в NP (задачи, решения которых могут быть проверены в полиномиальное время), поскольку если задача разрешима в полиномиальное время, то и её решение можно проверить в полиномиальное время, просто решив задачу. Однако NP содержит гораздо больше задач, самые сложные из которых называются NP-полными задачами. Алгоритм, решающий такую задачу в полиномиальное время, способен решить любую другую задачу из NP также в полиномиальное время. Наиболее важная проблема "P против NP" (P = NP?) ставит вопрос о существовании полиномиальных алгоритмов для решения NP-полных задач и, как следствие, всех задач NP. Широко распространено мнение, что это не так. Класс сложности NP связан с классом сложности co-NP, для которого ответ "нет" может быть проверен в полиномиальное время. Вопрос о равенстве этих классов остаётся открытым в теории сложности.
In computational complexity theory, NP (nondeterministic polynomial time) is a complexity class used to classify decision problems. NP is the set of decision problems for which the problem instances, where the answer is "yes", have proofs verifiable in polynomial time by a deterministic Turing machine, or alternatively the set of problems that can be solved in polynomial time by a nondeterministic Turing machine. NP is the set of decision problems solvable in polynomial time by a nondeterministic Turing machine. NP is the set of decision problems verifiable in polynomial time by a deterministic Turing machine. The first definition is the basis for the abbreviation NP; "nondeterministic, polynomial time". These two definitions are equivalent because the algorithm based on the Turing machine consists of two phases, the first of which consists of a guess about the solution, which is generated in a nondeterministic way, while the second phase consists of a deterministic algorithm that verifies whether the guess is a solution to the problem. It is easy to see that the complexity class P (all problems solvable, deterministically, in polynomial time) is contained in NP (problems where solutions can be verified in polynomial time), because if a problem is solvable in polynomial time, then a solution is also verifiable in polynomial time by simply solving the problem. But NP contains many more problems, the hardest of which are called NP complete problems. An algorithm solving such a problem in polynomial time is also able to solve any other NP problem in polynomial time. The most important P versus NP (“P = NP?”) problem, asks whether polynomial time algorithms exist for solving NP complete, and by corollary, all NP problems. It is widely believed that this is not the case. The complexity class NP is related to the complexity class co NP, for which the answer "no" can be verified in polynomial time. Whether or not is another outstanding question in complexity theory.
Предыстория
Многие задачи в области компьютерных наук находятся в классе NP, как и децизионные версии многих задач поиска и оптимизации.
Many computer science problems are contained in NP, like decision versions of many search and optimization problems.
Другие характеристики
С точки зрения описательной теории сложности, NP точно соответствует множеству языков, определяемых экзистенциальной логикой второго порядка (теорема Фагина). NP можно рассматривать как очень простой тип интерактивной системы доказательств, где доказывающий предоставляет сертификат доказательства, а верификатор — это детерминированная машина времени, работающая за полиномиальное время, которая его проверяет. Система является полной, поскольку правильная строка доказательства приведёт к принятию, если она существует, и надёжной, поскольку верификатор не может принять, если допустимой строки доказательства нет. Важный результат теории сложности заключается в том, что NP может быть охарактеризована как класс задач, разрешимых с помощью вероятностно проверяемых доказательств, где верификатор использует O(log n) случайных битов и проверяет лишь постоянное число битов строки доказательства (класс PCP(log n, 1)). Неформально это означает, что верификатор NP, описанный выше, можно заменить на тот, который лишь выборочно проверяет несколько позиций в строке доказательства, и, используя ограниченное число случайных выборов, может с высокой вероятностью определить правильный ответ. Это позволяет доказать ряд результатов о сложности аппроксимации.
In terms of descriptive complexity theory, NP corresponds precisely to the set of languages definable by existential second order logic (Fagin's theorem). NP can be seen as a very simple type of interactive proof system, where the prover comes up with the proof certificate and the verifier is a deterministic polynomial time machine that checks it. It is complete because the right proof string will make it accept if there is one, and it is sound because the verifier cannot accept if there is no acceptable proof string. A major result of complexity theory is that NP can be characterized as the problems solvable by probabilistically checkable proofs where the verifier uses O(log n) random bits and examines only a constant number of bits of the proof string (the class PCP(log n, 1)). More informally, this means that the NP verifier described above can be replaced with one that just "spot checks" a few places in the proof string, and using a limited number of coin flips can determine the correct answer with high probability. This allows several results about the hardness of approximation algorithms to be proven.
П.
Все задачи в классе P, обозначенные как... Для любой задачи из P, имея сертификат её решения, мы можем игнорировать этот сертификат и решить задачу за полиномиальное время.
All problems in P, denoted Given a certificate for a problem in P, we can ignore the certificate and just solve the problem in polynomial time.
Изоморфизм подграфа
Проблема изоморфизма подграфов заключается в определении, содержит ли граф G подграф, изоморфный графу H.
The subgraph isomorphism problem of determining whether graph G contains a subgraph that is isomorphic to graph H.