В теории вычислимости и теории сложности вычислений RE ( рекурсивно перечислимые ) — это класс задач принятия решений , для которых ответ «да» может быть проверен машиной Тьюринга за конечное время. [1] Неформально это означает, что если ответ на экземпляр задачи — «да», то существует некоторая процедура, которая требует конечного времени для определения этого, и эта процедура никогда не выдает ложный ответ «да», когда истинный ответ — «нет». Однако, когда истинный ответ — «нет», процедура не обязательно должна останавливаться; она может войти в « бесконечный цикл » для некоторых случаев «нет». Такая процедура иногда называется полуалгоритмом , чтобы отличить ее от алгоритма , определяемого как полное решение задачи принятия решений. [2]
Аналогично, co-RE — это множество всех языков, которые являются дополнениями языка в RE . В некотором смысле co-RE содержит языки, принадлежность к которым может быть опровергнута за конечное время, но доказательство принадлежности может занять вечность.
Эквивалентно, RE — это класс задач принятия решений, для которых машина Тьюринга может перечислить все примеры «да» один за другим (именно это означает «перечислимый»). Каждый член RE — это рекурсивно перечислимое множество и, следовательно, диофантово множество .
Чтобы показать, что это эквивалентно, обратите внимание, что если есть машина , которая перечисляет все принятые входы, другая машина, которая принимает строку, может запуститься и принять, если строка перечисляется. И наоборот, если машина принимает, когда вход находится на языке, другая машина может перечислить все строки на языке, чередуя симуляции на каждом входе и выводя строки, которые принимаются (существует порядок выполнения, который в конечном итоге доберется до каждого шага выполнения, потому что есть счетное число упорядоченных пар входов и шагов).
Множество рекурсивных языков ( R ) является подмножеством как RE , так и co-RE . [3] Фактически, это пересечение этих двух классов, поскольку мы можем решить любую задачу, для которой существует распознаватель и также со-распознаватель, просто чередуя их до тех пор, пока не получим результат. Следовательно:
Наоборот, множество языков, которые не являются ни RE , ни co-RE , известно как NRNC . Это множество языков, для которых ни членство, ни нечленство не могут быть доказаны за конечное время, и содержит все другие языки, которые не являются ни RE , ни co-RE . То есть:
Эти проблемы не только неразрешимы, но ни они сами, ни их дополнение не поддаются рекурсивному перечислению.
В январе 2020 года в препринте было объявлено доказательство того, что RE эквивалентно классу MIP* (классу, в котором классический верификатор взаимодействует с несколькими всемогущими квантовыми доказывающими, которые разделяют запутанность ); [4] пересмотренное, но еще не полностью пересмотренное доказательство было опубликовано в Communications of the ACM в ноябре 2021 года. Доказательство подразумевает, что проблема вложения Конна и проблема Цирельсона ложны. [5]
RE-complete — это набор задач принятия решений, которые являются полными для RE . В некотором смысле, это «самые сложные» рекурсивно перечислимые задачи. Как правило, на используемые сокращения не накладывается никаких ограничений, за исключением того, что они должны быть сокращениями типа «многие-один » .
Примеры RE-полных задач:
co-RE-complete — это набор задач принятия решений, которые являются полными для co-RE . В некотором смысле, это дополнения к самым сложным рекурсивно перечислимым задачам.
Примеры задач co-RE-complete:
Метод решения будет называться полуалгоритмом для [задачи] P на [устройстве] M , если решение P (если оно существует) появляется после выполнения конечного числа шагов. Полуалгоритм будет называться алгоритмом, если , кроме того, всякий раз, когда задача не имеет решения, метод позволяет устройству определить его после конечного числа шагов и останавливается.