Введение

Тип редукции Тьюринга
В теории вычислимости и теории вычислительной сложности редукция "многие к одному" (также называемая редукцией отображением) — это редукция, которая преобразует экземпляры одной задачи принятия решения (принадлежит ли экземпляр языку) в экземпляры другой задачи принятия решения (принадлежит ли экземпляр языку) с помощью вычислимой функции. Редуцированный экземпляр принадлежит языку тогда и только тогда, когда исходный экземпляр принадлежит его языку. Таким образом, если мы можем решить, принадлежат ли экземпляры языку , мы можем решить, принадлежат ли экземпляры языку , применив редукцию и решив для . Следовательно, редукции могут быть использованы для измерения относительной вычислительной сложности двух задач. Говорят, что редуцируется к , если, простыми словами, по крайней мере настолько же сложна для решения, как . Это означает, что любой алгоритм, решающий , также может быть использован как часть (в противном случае относительно простой) программы, решающей . Редукции "многие к одному" являются частным случаем и более сильной формой редукций Тьюринга. Позже Норман Шапиро использовал ту же концепцию в 1956 году под названием сильная редуцируемость.

Много-одно полнота (m-полная)

Множество называется полным по Тьюрингу, или просто m-полным, если оно рекурсивно перечислимо и каждое рекурсивно перечислимое множество m-приводимо к нему.

Степень

Отношение действительно является отношением эквивалентности, его классы эквивалентности называются m-степенями и образуют частично упорядоченное множество с порядком, индуцированным .

Уменьшение карпа

Многочленное по времени сведение от задачи А к задаче В (обе задачи, как правило, должны быть задачами принятия решений) — это алгоритм, работающий за полиномиальное время, для преобразования входных данных задачи А во входные данные задачи В таким образом, что преобразованная задача имеет тот же результат, что и исходная задача. Экземпляр x задачи А можно решить, применив это сведение для получения экземпляра y задачи В, передав y на вход алгоритму для задачи В и вернув его результат. Сведения многочленного времени также могут быть известны как полиномиальные преобразования или сведение Карпа, названное в честь Ричарда Карпа. Такое сведение обозначается ≤m или ≼m.