Может ли машина Тьюринга выбрать язык машин с пустым языком?


11

Пусть Есть ли машина Тьюринга R, которая решает (я не имею в виду, распознает) язык ?L

L={MM is a Turing Machine and L(M)=}.

L

Похоже, тот же метод, который использовался, чтобы показать, что должен работать здесь.{AA is a DFA and L(A)=}


1
Что вы пробовали? Например, вы можете думать о DFA для пустого языка? Помните, что DFA можно рассматривать как очень ограниченные TM.
Шаул

1
Конечно. Из начального состояния перейдите в состояние «Отклонение отказа», независимо от того, что находится на входной ленте. Это явно принимает каждую строку в языке и отклоняет каждую строку не в языке.
Patrick87

8
@mahdisaeedi: Последний вопрос совершенно другой! Вы спрашиваете, можно ли решить, распознает ли данный TM пустой язык - и ответ - нет, см . Теорему Райс
Shaull

Ответы:


9

Под маркировкой вы, вероятно, подразумеваете анализ достижимости - поиск пути от исходного состояния к принимающему состоянию. Действительно, язык DFA пуст, если такого пути нет.

Давайте начнем с примера того, почему это не удается в TM. Рассмотрим ТМ , что в , игнорирует это вход, но пишет на это ленты, перемещает право голову и переходит в состояние , то в он снова игнорирует вход, пишет , перемещает голову влево и идет к . В , если он читает , то он пишет перемещает право голову и возвращается к . a q 1 q 1 a q 2 q 2 a a q 1q0aq1q1aq2q2aaq1

То есть, машина просто пишет и чередуется между двумя состояниями ( и ) и всегда имеет два смежных «S на ленте.q 1 q 2 aaq1q2a

Теперь мы добавим переход от который при чтении переходит в принимающее состояние и останавливается. Bq2b

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

Что ж, интуитивно, «состояние» ТМ недостаточно информативно, чтобы описать продолжение прогона. Чтобы получить всю информацию, вам нужна конфигурация ТМ, которая включает в себя состояние, положение головки и содержимое ленты. Если вы найдете путь к конфигурации (который называется прогоном ) к принимающей конфигурации, то на самом деле язык не пустой, и это условие iff.

Проблема с использованием анализа достижимости на графе конфигурации состоит в том, что он может быть бесконечным. Вот почему решение о пустоте языка неразрешимо.

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


Функция перехода ТМ выглядит так: F (Q T) -> (Q T * {L, R}). Не могли бы вы написать функцию игнорирования ввода?
MSN

Да. В этом случае , , и (но последнее никогда не достигается). Р ( д 1 , ) = Р ( д 1 , б ) = ( д 2 , , L ) F ( д 2 , ) = ( д 1 ,F(q0,a)=F(q0,b)=(q1,a,R)F(q1,a)=F(q1,b)=(q2,a,L)F ( q 2 , b ) = ( q a c c , a , L )F(q2,a)=(q1,a,R)F(q2,b)=(qacc,a,L)
Шаул

9

A неразрешима из-за теоремы Райса , которая утверждает, что нетривиальные свойства частичных функций не разрешимы.

  1. Есть ТМ, который не принимает ни одной строки. (Который напрямую переходит в состояние отказа).
  2. Существует МТ, который принимает каждую строку. (Который непосредственно переходит в состояние принимаю).

Это означает , что функции , вычисленные с помощью элементов имеют нетривиальное свойство. Поэтому не разрешимы.AAA

EE разрешима только в предположении, что DFA кодируются особым образом, таким как таблица перехода состояний или т. Д. (Мы не можем решить, принимает ли ТМ только обычные языки, из-за теоремы Райса!). В этом случае теорема Райса не применяется , поскольку конкретное кодирование элемента необходимо решить на . Поэтому мы не просто выбираем частичные функции.E

(То есть, если бы проблема заключалась в том, чтобы решить, является ли конкретный TM DFA - или DFA вычислимым - и язык, принятый им, является пустым, будет неразрешимым по теореме Райса. Обратите внимание, что в этом случае .)A = EEA=E


6

Еще один совет: попробуйте уменьшить проблему остановки до .L

(Первоначальный совет - использовать теорему Райса, но в этом случае прямое доказательство также довольно просто.)


@Yuval_Filmus Правильно ли говорить, что этот язык даже не распознается по Тьюрингу?
Саш

1
Что вы думаете? Можете ли вы доказать свою претензию? Если это так, нет необходимости задавать вопрос.
Юваль Фильмус

1

Лемма 1. Если L неразрешима, то и дополнение L.

Мы знаем, что проблема остановки неразрешима. Следовательно, согласно дополнению леммы 1 к задаче остановки, также неразрешима.HTM Н с Т МHTMc

HTM ={M,x M is a TM and M halts on input x }

HTMc ={M,x M is a TM and M loops on input x }

ETM ={M M is a TM and L(M) = }

Предположим, что разрешимо. Мы уменьшим до - другими словами, мы покажем, как построить машину Тьюринга которая решает используя TM, который решает . Это дает нам противоречие, потому что мы знаем, что неразрешима, и поэтому не может существовать. Слово «уменьшить» просто означает решение данной проблемы путем преобразования ее в другую проблему, которую мы уже знаем для решения. Таким образом, машина Тьюринга для может быть построена следующим образом:ETMHTMcETMMHTMcHTMcMETMETMHTMcMHTMcHTMc

MHTMc = «на входеM,x

1. Создайте код для TM, который выполняет следующие действия:M1

M1 = "на входеw

1. Имитируйте на .Mx

2. Принять, если остановится. "M

2. Запустите наMETMM1

3. Принять, если принимает, отклонить в противном случае. "METM

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

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

1. принимает все входы если останавливается на . отклонит как .M1wMxMETMM1L(M1)

2. Если зацикливается на , также будет зацикливаться для каждого входного данного ему. В любом случае, поскольку является решателем он отклонит и остановит вход как .MxM1wMETMM1L(M1)=

Correctness : поскольку всегда останавливается (по нашему предположению), также всегда останавливается. принимает, если принимает, то есть если что происходит, если зацикливается на . отклоняет, если отклоняет это что происходит, если останавливается на . Таким образом, решает, что противоречит, поскольку неразрешима.METMMHTMcMHTMcMETML(M1)=Mx
MHTMcMETML(M1)MxMHTMcHTMcHTMc


Nb:

Пусть R будет сокращением от до .HTMcETM

Снижение дает:

i)M,xHTMcR(M,x)ETM

M зацикливается на вводе x, если язык, распознаваемый ничего не принимаетR(M,x)

ii)M,xHTMcR(M,x)ETM

M останавливает ввод x, если язык, распознаваемый что-то принимаетR(M,x)


0

Доказательство противоречит (что, как мы знаем, неразрешимо).ATM={M,wM is a Turing Machine which accepts w}

Предположим, что существует , TM, который решаетRTML

Затем можно использовать при построении TM , который является решающим дляRTMSTMATM

М , ш М шSTM=definition «На входе , где представляет собой кодирование ТМА и является строкой:M,wMw

  1. Измените , принимая во внимание ввод , так что новый (назовите его ) отклоняет все входные данные, которые не равны , где встроен в его описание. Если вход равен , то запускает на и выводит все, что выводит.w M M 1 w w w M 1 M w MMwMM1wwwM1MwM

  2. Запустите с помощью вводаМ 1 , ш RTMM1,w

  3. Выведите противоположный вывод . "RTM

Предположение, что существует deicer машины Тьюринга для , позволяет нам построить решающий элемент для , что является противоречием.A T MLATM


Разве ввод является ТМ (без лишних )? Как вы запускаете на ? ш R Т МM 1 , ш RTMwRTMM1,w
xskxzr

-2

E = {| М представляет собой ТМ и L (M) = Φ}. Является ли E Turing узнаваемым?

E - это язык, чтобы принять язык E, мы создаем машину Тьюринга. Предположим, мы создаем EM Тьюринга для языка E.

EM будет вводиться в качестве входного кода для кодирования других машин Тьюринга. Если эта введенная машина M принимает пустой язык, то она будет членом языка E, иначе она не будет членом языка.

Предположим, у нас есть машина Тьюринга M, нам нужно проверить, принимает ли она пустой язык. У машины Тьюринга EM есть M и строки eps, a, b, aa, bb, ..... EM проверит, может ли M достичь конечного состояния хотя бы на одном входе, и принимает ли он хотя бы один вход будет отброшен и не включен в язык E. Теперь рассмотрим возможность того, что TM M попадет в цикл, поэтому M продолжит работать, и мы не могли решить, может ли он принимать или не принимать что-либо. Следовательно, данный язык E НЕ RE.

PS: я думаю, что дополнением к данному языку E будет RE.


К сожалению, этот интуитивный аргумент не является доказательством. Может быть другой способ определения E, и это не исключено вашим аргументом.
Юваль

да, правильно, но способ, которым я объяснил, может заставить кого-то понять язык непрофессионала.
Ману Тхакур

Этот сайт не для непрофессионалов. Это для академического уровня теоретической информатики.
Юваль

2
Все, что вы сделали, - это дали интуитивный аргумент о том, почему конкретная вычислительная техника, похоже, не может решить эту проблему. Но вопрос требует доказательства того, что никакая возможная техника не работает.
Дэвид Ричерби
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.