Я пытаюсь понять существование неузнаваемых языков. Чтобы понять это, мне нужно знать, почему машина Тьюринга распознает только один язык, а не несколько. Почему это?
Я пытаюсь понять существование неузнаваемых языков. Чтобы понять это, мне нужно знать, почему машина Тьюринга распознает только один язык, а не несколько. Почему это?
Ответы:
Язык, распознаваемый машиной Тьюринга, по определению представляет собой набор строк, которые он принимает. Когда ввод дается машине, он либо принят, либо нет. Любой конкретный вход для этой машины либо всегда принимается (на языке), либо всегда не принимается (не на языке). Таким образом, нет механизма, с помощью которого одна машина Тьюринга могла бы принять более одного языка.
Подумайте об этом так: TM похож на компьютер с загруженным программным обеспечением. Каждое программное обеспечение делает одну вещь, верно? Например, подумайте о своем компьютере и предположите, что в него загружена только 1 программа. Тогда ПК + «фотошоп» делает только фотошоп, а ПК + «мойщик» подметает только мины.
Таким образом, машина Тьюринга - очень простое существо, которое при каждом запуске получает один вход и выводит либо да, либо нет . На каких входах он говорит «да», а на каких - «нет» - это задается «программой» ТМ, определяемой его состояниями и функцией перехода. Как только они исправлены, «программа» исправлена, и для любого данного ввода есть только один ответ: Да или Нет (принять / отклонить). Это определяет точно один язык = все входные данные, которые выдают « Да» при передаче ТМ.
С другой стороны, набор из всех ДЧ эквивалентно набору компьютера + «программного обеспечения» со всеми возможными программами. Теперь можно выбирать другие языки - но, тем не менее, каждая конкретная TM выбирает (или распознает) только один язык.
Машины Тьюринга работают так, как они делают, потому что мы решили определить их так. У нас могут быть более сложные определения, но вопрос в том, послужит ли это цели, позволит ли она делать больше вещей. И, насколько нам известно, ответ - нет.
Очень легко создавать модели машин Тьюринга, которые распознают два языка. Для языков и L 2 мы можем определить TM с двумя типами принимающего состояния: один для L 1 и один для L 2 . Можно сказать, что ТМ принимает L i, если в какой-то момент он входит в соответствующее принимающее состояние. Но он возобновит вычисления, чтобы увидеть, может ли он также перейти в другой тип принимающего состояния. И мы могли бы потребовать, чтобы это позже остановилось, или, возможно, нет. Затем вы можете построить всю теорию на таких машинах. Это будет работать и будет намного сложнее, чем мы обычно делаем.
Чтобы ответить на утверждение Дэвида Ричерби, что « не существует механизма, с помощью которого одна машина Тьюринга могла бы принимать более одного языка », это только потому, что мы решили не рассматривать такие механизмы. Даже если вы ограничите TM очень стандартной моделью, вы можете сказать, что ввод распознается на языке когда TM останавливается в состоянии принятия с нечетным числом шагов, и это происходит в L 2, когда TM принимает с четным количеством шагов. Благодаря недетерминизму это не помешало бы ТМ распознавать оба пересекающихся языка.
Дело в том, что для создания теории могут использоваться всевозможные варианты. Также были испробованы очень разные подходы к моделированию вычислений, такие как лямбда-исчисление, компилятивная логика, теория рекурсивных функций и многое другое.
Всегда было показано, что ни один из них не делает ничего, что не может быть сделано нашей простой моделью, где TM распознает только один язык. До такой степени, что было предположено, что он делает все, что можно сделать. Это называется тезисом Церкви-Тьюринга . Это краеугольный камень теории вычислимости, который, насколько нам известно, определяет, какие языки распознаваемы или нет.
Таким образом, мы могли бы также использовать простую модель, так как сложная усложнит нашу жизнь без какой-либо реальной выгоды.
Конечно, мы иногда используем другие модели, потому что они позволяют нам лучше понять некоторые проблемы.
Я хотел бы остановиться на одном пункте в ответе Ричерби:
Когда ввод дается машине, он либо принят, либо нет.
Причина этого в том, что машина Тьюринга является детерминированной: при одинаковом входном и начальном состояниях она всегда будет делать одно и то же при каждом запуске (либо завершаться в одном и том же состоянии принятия, либо в одном и том же состоянии отклонения, либо выполнять цикл навсегда) ).
Кроме того, мы можем легко доказать, что каждая машина Тьюринга распознает ровно один язык:
Предположим от противного, что машина Тьюринга M распознает два разных языка L1 и L2. Поскольку L1 и L2 различны, должна существовать строка S, которая находится в L1, но не в L2 (без потери общности - это может быть наоборот, но отсюда будет продолжаться то же самое доказательство с обменом L1 и L2 ). Теперь запустите M на S. Если он принимает, тогда противоречие достигается, потому что тогда S будет в L2. Если он не принимает (отклоняет или повторяет), тогда возникает противоречие, потому что S не будет в L1.
Машина Тьюринга распознает один язык, потому что это определение слова « распознать» : язык, который распознает машина Тьюринга, представляет собой набор всех строк / входов, для которых машина Тьюринга принимает.
Ответ на этот вопрос зависит от того, что именно вы понимаете, когда имеете в виду «машина Тьюринга». В любой вычислительной модели есть три компонента (здесь речь идет только о решателях / акцепторах):
Для машин Тьюринга синтаксис будет набором состояний, алфавитами, функцией перехода и так далее. В семантике будет определение вычисления , то есть , чтобы описать , как применить функцию перехода для того , чтобы вывести содержимое ленты после нескольких шагов. Критерий приемки должен сказать, «когда это случится, мы останавливаемся и результат таков , что».
Теперь, машины Тьюринга - это только синтаксис и семантика для вас, или вы также включаете критерий приемлемости? Если вы сделаете первое, любая TM может принять несколько языков, используя разные критерии приемлемости; Вы даже можете придумать критерии принятия, которые допускают использование нескольких принятых языков (например, подумайте о двухпараметрических ТМ). Однако, если вы сделаете последнее, не останется места для маневра, и обычный критерий приемлемости действительно учитывает ровно один язык на ТМ (такого типа).
Обычное определение и использование термина в ТКС включает в себя все три компонента. Это имеет смысл, потому что, в частности, изменение критерия приемлемости может изменить класс объектов, которые автомат представляет радикально , поэтому нам нужно исправить критерий, чтобы знать, о чем мы говорим.
В качестве примера сравните конечные автоматы и автоматы Бючи . Синтаксис и семантика абсолютно одинаковы, но один принимает конечные слова, а другой принимает бесконечные слова!
Попробуйте выяснить, что произойдет, если вы включите критерий приемлемости автоматов Büchi в определение TM.
Теперь, почему обычный критерий приемлемости имеет смысл? Пока вы ограничиваетесь языком конечных строк, мало что изменится при наличии нескольких языков на ТМ на концептуальном уровне: мы все равно сможем принять один и тот же набор языков. Поэтому мы придерживаемся более простой модели. Это не означает, однако, что более сложная модель не может быть полезной для моделирования в приложениях - но это выходит за рамки TCS (которая обладает определенными полномочиями).
и где , Предположим, есть строка где и , потом принимает , но так не может принять Таким образом, мы достигли противоречия. Другой случай играет точно так же, например, и , Поэтому ТМ принимает только один язык.
Сказать ТМ признает язык означает, что для каждой строки , принимает и для каждой строки тот принимает, ,
принимает
Чтобы понять существование нераспознаваемых языков, рассмотрим определение разрешимых языков. Сказать, что язык является разрешимым, означает, что язык узнаваем и узнаваем. Если бы не было неузнаваемых языков, то каждый язык был бы разрешимым. Это неверно, видите,
Язык - это набор строк. Разве объединение двух языков L1 и L2 не является набором строк (назовем это L3), и поэтому будет ли другой язык? Затем, если машина Тьюринга распознает оба языка, она распознает L3, один язык.
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.