Почему машина Тьюринга распознает ровно один язык?


13

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


12
Я подозреваю, что вы можете не иметь четкого представления о том, что мы подразумеваем под «языком». Можете ли вы сказать, что вы считаете "языком"?
Эрик Липперт

Зачем тебе это знать? Как, по вашему мнению, это может иметь значение?
Бабу

Ответы:


29

Язык, распознаваемый машиной Тьюринга, по определению представляет собой набор строк, которые он принимает. Когда ввод дается машине, он либо принят, либо нет. Любой конкретный вход для этой машины либо всегда принимается (на языке), либо всегда не принимается (не на языке). Таким образом, нет механизма, с помощью которого одна машина Тьюринга могла бы принять более одного языка.


6
«По определению» это именно то, что я бы сказал.
Дейв Кларк

1
@DaveClarke Конечно, это по определению. Но это кажется мне немного коротким, поскольку в нем также говорится, что мы могли бы сделать наше определение другим, чтобы ТМ мог принимать два языка или любое число. Я на самом деле не согласен с утверждением Дэвида Ричерби о том, что нет механизма, с помощью которого ТМ мог бы принимать два языка: это только потому, что мы решили игнорировать их, и мы могли бы поступить иначе. Следовательно, вопрос не полностью дан ответ, imho, если мы не объясним, что оправдывает это.
Бабу

2
Я думаю, что проблема здесь в том, что язык используется для описания самого «языка». Машина Тьюринга принимает все в форме строки независимо от нашего определения языка. ТМ определяет язык тем, что принимает, это не то же самое, что наше (человеческое) понимание языка. Вот почему этот ответ хорош и "... полностью ответил".
Дэвид Баркер

2
Я согласен с Дэвидом, что ОП, скорее всего, где-то читал, что машины Тьюринга допускают только один язык, и пытается понять, что это значит. Учитывая, что это, вероятно, произошло из нормального источника, мы можем предположить, что они использовали нормальное определение «языка», как оно определено в вычислительной теории, а не любое другое определение. Определение может быть произвольным, но оно хорошо понято и согласовано с произвольным определением.
Корт Аммон

3
Машина Тьюринга, которая принимает два языка, - это машина Тьюринга, которая принимает язык, который является объединением двух языков.
Саймон Рихтер

9

Подумайте об этом так: TM похож на компьютер с загруженным программным обеспечением. Каждое программное обеспечение делает одну вещь, верно? Например, подумайте о своем компьютере и предположите, что в него загружена только 1 программа. Тогда ПК + «фотошоп» делает только фотошоп, а ПК + «мойщик» подметает только мины.

Таким образом, машина Тьюринга - очень простое существо, которое при каждом запуске получает один вход и выводит либо да, либо нет . На каких входах он говорит «да», а на каких - «нет» - это задается «программой» ТМ, определяемой его состояниями и функцией перехода. Как только они исправлены, «программа» исправлена, и для любого данного ввода есть только один ответ: Да или Нет (принять / отклонить). Это определяет точно один язык = все входные данные, которые выдают « Да» при передаче ТМ.

С другой стороны, набор из всех ДЧ эквивалентно набору компьютера + «программного обеспечения» со всеми возможными программами. Теперь можно выбирать другие языки - но, тем не менее, каждая конкретная TM выбирает (или распознает) только один язык.


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

4

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

Очень легко создавать модели машин Тьюринга, которые распознают два языка. Для языков и L 2 мы можем определить TM с двумя типами принимающего состояния: один для L 1 и один для L 2 . Можно сказать, что ТМ принимает L i, если в какой-то момент он входит в соответствующее принимающее состояние. Но он возобновит вычисления, чтобы увидеть, может ли он также перейти в другой тип принимающего состояния. И мы могли бы потребовать, чтобы это позже остановилось, или, возможно, нет. Затем вы можете построить всю теорию на таких машинах. Это будет работать и будет намного сложнее, чем мы обычно делаем.L1L2L1L2Li

Чтобы ответить на утверждение Дэвида Ричерби, что « не существует механизма, с помощью которого одна машина Тьюринга могла бы принимать более одного языка », это только потому, что мы решили не рассматривать такие механизмы. Даже если вы ограничите TM очень стандартной моделью, вы можете сказать, что ввод распознается на языке когда TM останавливается в состоянии принятия с нечетным числом шагов, и это происходит в L 2, когда TM принимает с четным количеством шагов. Благодаря недетерминизму это не помешало бы ТМ распознавать оба пересекающихся языка.L1L2

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

Всегда было показано, что ни один из них не делает ничего, что не может быть сделано нашей простой моделью, где TM распознает только один язык. До такой степени, что было предположено, что он делает все, что можно сделать. Это называется тезисом Церкви-Тьюринга . Это краеугольный камень теории вычислимости, который, насколько нам известно, определяет, какие языки распознаваемы или нет.

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

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


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

ОП говорит, что хочет знать, почему ТМ распознает только один язык, чтобы понять что-то другое. Я отвечаю ему, они делают, потому что мы определяем их таким образом. Я добавляю, что это правда, что мы можем использовать разные определения, но это не изменит теорию. Это способ сказать ему, что независимо от того, к чему он стремится, выбор определения несущественен, и узнаваемость может быть определена так, чтобы охватывать точно такие же наборы. Причиной выбора определения является удобство и плодотворность, поэтому они развиваются со временем, а также то, как концепции именуются или отмечаются.
Бабу

Хорошо, это имеет смысл. Я думаю, что я в основном возражаю против использования «изощренного» - это подразумевает, что менее простое определение желательно.
интересно вот

3

Я хотел бы остановиться на одном пункте в ответе Ричерби:

Когда ввод дается машине, он либо принят, либо нет.

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

Кроме того, мы можем легко доказать, что каждая машина Тьюринга распознает ровно один язык:

Предположим от противного, что машина Тьюринга M распознает два разных языка L1 и L2. Поскольку L1 и L2 различны, должна существовать строка S, которая находится в L1, но не в L2 (без потери общности - это может быть наоборот, но отсюда будет продолжаться то же самое доказательство с обменом L1 и L2 ). Теперь запустите M на S. Если он принимает, тогда противоречие достигается, потому что тогда S будет в L2. Если он не принимает (отклоняет или повторяет), тогда возникает противоречие, потому что S не будет в L1.


2

Машина Тьюринга распознает один язык, потому что это определение слова « распознать» : язык, который распознает машина Тьюринга, представляет собой набор всех строк / входов, для которых машина Тьюринга принимает.


2
Добро пожаловать в информатику ! Ваш ответ (IMO) правильный, но я не думаю, что он добавляет к уже существующим ответам. У нас есть много вопросов без ответов, и было бы гораздо интереснее и продуктивнее ответить на один из них, чем повторять существующие ответы.
Дэвид Ричерби

1
Благодарность! На самом деле я сначала не увидел принятого в настоящее время ответа (который я считаю хорошим), потому что он был таким коротким, и я чувствовал, что другие ответы не ответили на вопрос простым способом.
интересно вот

1

Ответ на этот вопрос зависит от того, что именно вы понимаете, когда имеете в виду «машина Тьюринга». В любой вычислительной модели есть три компонента (здесь речь идет только о решателях / акцепторах):

  • синтаксис,
  • семантика,
  • критерии приемки.

Для машин Тьюринга синтаксис будет набором состояний, алфавитами, функцией перехода и так далее. В семантике будет определение вычисления , то есть , чтобы описать , как применить функцию перехода для того , чтобы вывести содержимое ленты после нескольких шагов. Критерий приемки должен сказать, «когда это случится, мы останавливаемся и результат таков , что».

Теперь, машины Тьюринга - это только синтаксис и семантика для вас, или вы также включаете критерий приемлемости? Если вы сделаете первое, любая TM может принять несколько языков, используя разные критерии приемлемости; Вы даже можете придумать критерии принятия, которые допускают использование нескольких принятых языков (например, подумайте о двухпараметрических ТМ). Однако, если вы сделаете последнее, не останется места для маневра, и обычный критерий приемлемости действительно учитывает ровно один язык на ТМ (такого типа).

Обычное определение и использование термина в ТКС включает в себя все три компонента. Это имеет смысл, потому что, в частности, изменение критерия приемлемости может изменить класс объектов, которые автомат представляет радикально , поэтому нам нужно исправить критерий, чтобы знать, о чем мы говорим.

В качестве примера сравните конечные автоматы и автоматы Бючи . Синтаксис и семантика абсолютно одинаковы, но один принимает конечные слова, а другой принимает бесконечные слова!
Попробуйте выяснить, что произойдет, если вы включите критерий приемлемости автоматов Büchi в определение TM.

Теперь, почему обычный критерий приемлемости имеет смысл? Пока вы ограничиваетесь языком конечных строк, мало что изменится при наличии нескольких языков на ТМ на концептуальном уровне: мы все равно сможем принять один и тот же набор языков. Поэтому мы придерживаемся более простой модели. Это не означает, однако, что более сложная модель не может быть полезной для моделирования в приложениях - но это выходит за рамки TCS (которая обладает определенными полномочиями).


0

M1L1 и L2 где L1L2, Предположим, есть строкаs1 где s1L1 и s1L2, потомM1 принимает s1, но s1L2 так M1 не может принять s1Таким образом, мы достигли противоречия. Другой случай играет точно так же, например,sL2 и sL1, Поэтому ТМ принимает только один язык.

Сказать ТМ M признает язык L означает, что для каждой строки sL, M принимает sи для каждой строки s тот M принимает, sL,

sLM принимает s

Чтобы понять существование нераспознаваемых языков, рассмотрим определение разрешимых языков. Сказать, что язык является разрешимым, означает, что язык узнаваем и узнаваем. Если бы не было неузнаваемых языков, то каждый язык был бы разрешимым. Это неверно, видитеATM,


Нет необходимости доказывать, что ТМ распознает только один язык: это непосредственно из определения «признать». Учитывая это определение, даже неясно, что означает для ТМ принятие более чем одного языка (как вы предполагаете в первом предложении) или является ли какое-либо выведение из такого предположения (как в вашем третьем предложении) допустимым. Доказательство от противоречия работает только в том случае, если выводы являются водонепроницаемыми: здесь ошибка может заключаться в предположении о том, как ведет себя ТМ, распознающий ТМ, а не в предположении, что такая машина существует.
Дэвид Ричерби

-2

Язык - это набор строк. Разве объединение двух языков L1 и L2 не является набором строк (назовем это L3), и поэтому будет ли другой язык? Затем, если машина Тьюринга распознает оба языка, она распознает L3, один язык.


2
Но машина Тьюринга не распознает оба языка, если они на самом деле не совпадают. Распознавание L1 означает, что он не принимает ни одной строки за пределами L1; признание L2 означает, что он не принимает ничего за пределами L2. Если L1 и L2 отличаются, он не может распознать оба.
Дэвид Ричерби

-3

no other answers point out the existence of the Universal Turing Machine(s) as first described/ discovered by Turing in his halting proof. yes a TM accepts a single recursively enumerable language, but the UTM can recognize any recursively enumerable language if it is encoded on the input along with the input string. so the question has some zenlike quality. TMs both accept only a single language and all possible encodable languages.


4
No. A universal Turing machine accepts the single language {M,xM accepts x} for some encoding of Turing machines and inputs.
David Richerby

& how is that different than whats written?
vzn

2
Recognizing codings of languages is not the same thing as recognizing languages.
David Richerby

yes exactly as stated
vzn

1
@DavidRicherby I think this is a matter of perspective. One can certainly view a universal TM as accepting many languages; just write it as {(m,x)m=M,} and look at languages of x for each fixed number m (currying/smn). Restricting TMs to one parameter is universal, but not necessary.
Raphael
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.