Полиномиальное сведение в теории сложности вычислений
Polynomial-time reduction
Полиномиальное сведение в теории сложности: решение задач через другие задачи. Доказательство, что одна задача не сложнее другой. Оптимизация алгоритмов.
Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
Метод решения одной задачи с помощью другой
Method for solving one problem using another
В теории вычислительной сложности, полиномиальное сведение по времени — это метод решения одной задачи, используя другую. Доказывается, что если существует гипотетическая подпрограмма для решения второй задачи, то первую задачу можно решить, преобразовав её во входные данные для второй задачи и вызвав эту подпрограмму один или несколько раз. Если время, необходимое для преобразования первой задачи во вторую, и количество вызовов подпрограммы являются полиномиальными, то первая задача полиномиально сводится ко второй. Полиномиальное сведение по времени доказывает, что первая задача не сложнее второй, поскольку при наличии эффективного алгоритма для второй задачи, эффективный алгоритм существует и для первой. От противного, если для первой задачи не существует эффективного алгоритма, то не существует и для второй. Наиболее общими сведениями являются сведения Тьюринга, а наиболее строгими — сведения «многие к одному», при этом сведения по таблице истинности занимают промежуточное положение.
In computational complexity theory, a polynomial time reduction is a method for solving one problem using another. One shows that if a hypothetical subroutine solving the second problem exists, then the first problem can be solved by transforming or reducing it to inputs for the second problem and calling the subroutine one or more times. If both the time required to transform the first problem to the second, and the number of times the subroutine is called is polynomial, then the first problem is polynomial time reducible to the second. A polynomial time reduction proves that the first problem is no more difficult than the second one, because whenever an efficient algorithm exists for the second problem, one exists for the first problem as well. By contraposition, if no efficient algorithm exists for the first problem, none exists for the second either. The most general reductions are the Turing reductions and the most restrictive are the many one reductions with truth table reductions occupying the space in between.
Снижение на множественном
Многочленное по времени сведение от задачи А к задаче В (обе задачи, как правило, должны быть задачами принятия решений) — это алгоритм, работающий за полиномиальное время, для преобразования входных данных задачи А во входные данные задачи В таким образом, что преобразованная задача имеет тот же результат, что и исходная задача. Экземпляр x задачи А можно решить, применив это сведение для получения экземпляра y задачи В, передав y на вход алгоритму для задачи В и вернув его результат. Сведения многочленного времени также могут быть известны как полиномиальные преобразования или сведение Карпа, названное в честь Ричарда Карпа. Такое сведение обозначается ≤m или ≼m.
A polynomial time many one reduction from a problem A to a problem B (both of which are usually required to be decision problems) is a polynomial time algorithm for transforming inputs to problem A into inputs to problem B, such that the transformed problem has the same output as the original problem. An instance x of problem A can be solved by applying this transformation to produce an instance y of problem B, giving y as the input to an algorithm for problem B, and returning its output. Polynomial time many one reductions may also be known as polynomial transformations or Karp reductions, named after Richard Karp. A reduction of this type is denoted by or .
Снижение по Тьюрингу
Полиномиальное по времени редуцирование Тьюринга от задачи A к задаче B — это алгоритм, решающий задачу A, используя полиномиальное количество вызовов подпрограммы для задачи B и полиномиальное время вне этих вызовов подпрограммы. Полиномиальные по времени редуцирования также известны как редуцирования Кука, названные в честь Стивена Кука. Редуцирование такого типа может быть обозначено выражением "полиномиальное по времени". Многие-к-одному редуцирования в полиномиальное время используются для определения полных задач для других классов сложности, включая полные языки PSPACE и полные языки EXPTIME. Каждая задача принятия решения в P (классе задач принятия решения в полиномиальное время) может быть сведена к каждой другой нетривиальной задаче принятия решения (где нетривиальность означает, что не для каждого входа выход одинаков), посредством редуцирования многие-к-одному в полиномиальное время. Чтобы преобразовать экземпляр задачи A в экземпляр задачи B, решите A в полиномиальное время, а затем используйте решение для выбора одного из двух экземпляров задачи B с разными ответами. Следовательно, для классов сложности, содержащихся в P, таких как L, NL, NC и сам P, полиномиальные по времени редуцирования не могут быть использованы для определения полных языков: если бы они использовались таким образом, каждая нетривиальная задача в P была бы полной. Вместо этого для определения классов полных задач для этих классов используются более слабые редуцирования, такие как логарифмические по пространству редуцирования или NC-редуцирования, например, полные задачи P.
A polynomial time Turing reduction from a problem A to a problem B is an algorithm that solves problem A using a polynomial number of calls to a subroutine for problem B, and polynomial time outside of those subroutine calls. Polynomial time Turing reductions are also known as Cook reductions, named after Stephen Cook. A reduction of this type may be denoted by the expression Polynomial time many one reductions have been used to define complete problems for other complexity classes, including the PSPACE complete languages and EXPTIME complete languages. Every decision problem in P (the class of polynomial time decision problems) may be reduced to every other nontrivial decision problem (where nontrivial means that not every input has the same output), by a polynomial time many one reduction. To transform an instance of problem A to B, solve A in polynomial time, and then use the solution to choose one of two instances of problem B with different answers. Therefore, for complexity classes within P such as L, NL, NC, and P itself, polynomial time reductions cannot be used to define complete languages: if they were used in this way, every nontrivial problem in P would be complete. Instead, weaker reductions such as log space reductions or NC reductions are used for defining classes of complete problems for these classes, such as the P complete problems.
Определение классов сложности
Определения классов сложности NP, PSPACE и EXPTIME не включают в себя редукции: редукции начинают изучаться только при определении полных языков для этих классов. Однако в некоторых случаях класс сложности может быть определен с помощью редукций. Если C – это любая задача принятия решения, то можно определить класс сложности C, состоящий из языков A, для которых в этом случае C автоматически будет полным для C, но C может иметь и другие полные задачи. Примером этого является класс сложности, определенный на основе экзистенциальной теории вещественных чисел – вычислительная задача, известная как NP-трудная и принадлежащая классу PSPACE, но не являющаяся полной для NP, PSPACE или какого-либо языка в полиномиальной иерархии. Это множество задач, имеющих полиномиальную редукцию к экзистенциальной теории вещественных чисел; оно содержит несколько других полных задач, таких как определение числа пересечений на плоскости для неориентированного графа. Каждая задача из этого множества наследует свойство принадлежности к PSPACE, и каждая полная задача является NP-трудной. Аналогично, класс сложности GI состоит из задач, которые могут быть сведены к задаче об изоморфизме графов. Поскольку задача об изоморфизме графов принадлежит как NP, так и co AM, то же самое верно для каждой задачи в этом классе. Задача является GI-полной, если она полна для этого класса; сама задача об изоморфизме графов является GI-полной, как и несколько других связанных задач.
The definitions of the complexity classes NP, PSPACE, and EXPTIME do not involve reductions: reductions come into their study only in the definition of complete languages for these classes. However, in some cases a complexity class may be defined by reductions. If C is any decision problem, then one can define a complexity class C consisting of the languages A for which In this case, C will automatically be complete for C, but C may have other complete problems as well. An example of this is the complexity class defined from the existential theory of the reals, a computational problem that is known to be NP hard and in PSPACE, but is not known to be complete for NP, PSPACE, or any language in the polynomial hierarchy. is the set of problems having a polynomial time many one reduction to the existential theory of the reals; it has several other complete problems such as determining the rectilinear crossing number of an undirected graph. Each problem in inherits the property of belonging to PSPACE, and each complete problem is NP hard. Similarly, the complexity class GI consists of the problems that can be reduced to the graph isomorphism problem. Since graph isomorphism is known to belong both to NP and co AM, the same is true for every problem in this class. A problem is GI complete if it is complete for this class; the graph isomorphism problem itself is GI complete, as are several other related problems.