Существуют ли счетные множества, которые не являются вычислимо перечислимыми?

15

Множество является счетным, если оно имеет биекцию с натуральными числами, и вычислимо перечислимо (ce), если существует алгоритм, который перечисляет его членов.

Любое не конечное вычислимо перечислимое множество должно быть счетным, поскольку мы можем построить биекцию из перечисления.

Есть ли примеры счетных множеств, которые не являются вычислимо перечислимыми? Таким образом, существует биекция между этим множеством и натуральными числами, но нет алгоритма, который мог бы вычислить эту биекцию.

Питер Олсон
источник
1
Установленная терминология вычислимо перечислима . Многие скажут, что «исчисляемый» и «перечислимый» являются синонимами. Я отредактировал вопрос соответственно.
Андрей Бауэр
@AndrejBauer, вычислимо и рекурсивно - синонимы, верно?
rus9384
1
@ rus9384 Да. Что касается словарного запаса, ясность должна царить, как пишет Роберт Ирвинг Соаре в « Релятивизированной вычислимости и интерактивных вычислениях Тьюринга-Поста» (2011) : К 1995 году путаница стала невыносимой. Я написал статью о вычислимости и рекурсии для быка. сим. Логика (1996) об истории и научных причинах того, почему мы должны использовать «вычислимый», а не «рекурсивный», чтобы означать «вычислимый». «Рекурсивный» должен означать «индуктивный», как это было для Дедекинда и Гильберта. Поначалу немногие были готовы сделать такое изменение ...
Дэвид Тонхофер

Ответы:

23

Есть ли примеры счетных множеств, которые не перечислимы?

Да. Все подмножества натуральных чисел являются счетными, но не все из них перечислимы. (Доказательство: существует бесчисленное множество различных подмножеств  но только счетное количество машин Тьюринга, которые могут выступать в качестве перечислителей.) Таким образом, любое подмножество  N, которое вы уже знаете, не является рекурсивно перечислимым, является примером - например, набор всех чисел, кодирующих Тьюринг. машины, которые останавливаются для каждого входа.NN

Дэвид Ричерби
источник
3
@JorgePerez Нет и нет .
Дэвид Ричерби
3
Это доказывает существование, но не дает пример ..
BlueRaja - Дэнни Пфлугхофт
2
@ BlueRaja-DannyPflughoeft, приведение примера аналогично перечислению. «Можете ли вы привести пример чего-то, чему вы не можете дать пример? Нет? Поэтому нет ничего, что вы не могли бы привести в качестве примера». Это математический конструктивизм в двух словах.
Wildcard
2
Будет ли изображение функции занятого бобра таким набором? Поскольку Σ строго возрастает, это тривиально образует биекцию с N , но нет машины Тьюринга, которая могла бы перечислять Σ . ΣΣNΣ
17
7
@ Wildcard Нет, приведение примера - это то же самое, что и определение , не так ли? Существуют наборы, которые могут быть определены, но не могут быть перечислены алгоритмом, например, набор всех машин Тьюринга, которые не останавливаются.
Таннер Светт,
17

Да, каждый неразрешимый (не полуразрешимый) язык обладает этим свойством.

Например, рассмотрим, что множество .L={(x,M)M does not halt on input x}

Предположим, у нас есть алгоритм, который может перечислять членов этого набора. Если бы такой алгоритм существовал, мы могли бы использовать его для решения проблемы остановки со входами , используя следующий алгоритм:x,M

  • Переключение между работает машина для п шагов по х и перечисления п - й член L .MnxnL

либо останавливается, либо не останавливается на x . Если оностановится, в конце концов мы найдем n, где мы достигнем состояния остановки. Если он не остановится, то в конечном итоге мы достигнем ( M , x ) в нашем перечислении.Mxn(M,x)

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

Обратите внимание, что такие перечисления могут существовать для полуразрешимых задач. Например, вы можете перечислить набор всех пар ввода остановки машины, перечислив все возможные трассировки всех выполнений машины Тьюринга после шагов, и отфильтровать те, которые не заканчиваются в состоянии остановки. n

jmite
источник
Разве нет языков с неисчислимой сложностью?
rus9384
@ rus9384 Я не уверен, что ты имеешь в виду. «Неисчислимый» является мерой размера; «сложность» - это показатель того, насколько сложно решить. Но не существует неисчислимых языков с конечными строками: если вы хотите, чтобы язык был неисчисляемым, вы должны разрешить бесконечные строки (или неисчислимый «алфавит», или оба).
Дэвид Ричерби
@DavidRicherby, ну, jmite утверждает, что каждая неразрешимая проблема работает с конечными строками? Я думаю, что это справедливо только для каждой неразличимой для Тьюринга неразрешимой проблемы.
rus9384
@ rus9384 Любой язык над конечным алфавитом исчисляется, и вычислимость обычно игнорирует бесконечные алфавиты. Смотрите также этот вопрос .
jmite
1
@ rus9384 да, язык - это набор конечных строк над конечным алфавитом. Любая такая вещь исчисляема. Если вы хотите получить несчетный язык, вам нужно удалить один или оба экземпляра «конечного» из этого определения. Но если кто-то просто говорит «язык», он подразумевает набор конечных строк в некотором конечном алфавите.
Дэвид Ричерби
7

ΣΣ={0,1}LΣΣ

fade2black
источник
Мы не обязательно имеем дело с двоичными строками. Есть много случаев, когда нас могут интересовать строки над другими алфавитами, и люди, которые называют вычислимость «теорией рекурсии», имеют тенденцию иметь дело непосредственно с наборами натуральных чисел. (То есть сами числа рассматриваются как примитивные, а не кодируются, например, как двоичные строки.)
Дэвид Ричерби,
@DavidRicherby пару недель назад вы заявили мне обратное в комментариях к ответу Ювальса. И это не первый подобный случай.
fade2black
Юваль публикует много ответов, а я публикую много комментариев, так что вам нужно быть более конкретным. Я, конечно, поддерживаю мой комментарий выше, поэтому, если я скажу обратное в какой-то момент, то либо я ошибаюсь, либо растерялся, либо вы меня неправильно поняли, либо я говорил о каком-то конкретном сценарии или о чем-то подобном. Извините, если я запутал вас, особенно если я сделал это, сказав что-то неясное или неправильное!
Дэвид Ричерби
2
@DavidRicherby, на самом деле каждый конечный алфавит может быть сведен к двоичному, поэтому я не понимаю, как это имеет значение. Или мы имеем счетно бесконечный алфавит в этом случае (где у каждого числа есть уникальный символ)?
rus9384
{0,1}