что означают регулярные, распознаваемые по Тьюрингу и распознаваемые по Тьюрингу?

Я знаю, что этот вопрос задавался ранее, но, честно говоря, я не совсем понимаю его.

В настоящее время я изучаю теорию вычислений и подхожу к термину «Докажите, что язык разрешимый, узнаваемый или регулярный».

Проще говоря, что они на самом деле означают и как мы можем это доказать?


person DingDong    schedule 04.03.2017    source источник
comment
Могу добавить, что это очень основная тема теоретической информатики, которая очень хорошо освещена в Интернете и в книгах. Возможно, вы захотите найти хороший источник (например, книгу), который поможет вам хорошо понять концепции. По моему опыту, практика доказывания таких вещей также очень помогает.   -  person Joshua Gleitze    schedule 04.03.2017


Ответы (1)


Речь идет о языке  L над алфавитом Sigma, что означает, что  L - это подмножество Sigma * ( L  состоит из слов, состоящих из букв из  Sigma ).

 L разрешима
означает, что существует машина Тьюринга T, так что  T будет останавливать и принимать для любого входного слова  omega in L и останавливать и отклонять для любого входного слова  омега не в L .

 L узнаваемость
означает, что существует машина Тьюринга T, так что  T будет останавливать и принимать для любого входного слова  omega in L и останавливать или не останавливать (но не останавливать и принимать!) для любого ввода   омега не входит в L .

см. также разницу в Распознаваемые и решаемые на MathExchange.

 L является обычным.
означает, что L можно создать с помощью регулярных выражений. Важно отметить, что эти регулярные выражения в теоретической информатике отличаются от функций RegEx, известных в таких языках программирования, как PERL или Java. На самом деле, эти регулярные выражения действительно более мощные (неизвестно, правильный ли это английский термин), чем регулярные выражения.

Хорошее определение регулярных выражений дается здесь:

Для алфавита  Sigma

  • пустой набор и  epsilon (пустой набор и пустое слово) - регулярное выражение.
  • a для любых  a in Sigma (любая буква из алфавита) - регулярное выражение
  • if R1 and R2 are regular expressions, these are regular expressions, too:
    • R1 and R2 (meaning R1 or R2)
    • R1 объединен с R2 (что означает объединение  R1 и R2)
    • R1 * (имеется в виду  R1 , любое количество повторений R1 или пустое слово  epsilon )

и ничто другое не является регулярным выражением.

Как мы можем доказать что-то подобное?

Машины Тьюринга

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

Обратите внимание, что любой распознаваемый язык также разрешим (но не наоборот).

Обычные выражения

Чтобы доказать регулярность, в большинстве случаев проще всего просто предоставить регулярное выражение, которое создает язык. Иногда требуется доказать, что регулярное выражение действительно создает в точности  L , что обычно не слишком сложно (часто это просто очевидно).

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

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

Чтобы опровергнуть регулярность, я просто упомяну лемму о перекачке для обычных языков.

person Joshua Gleitze    schedule 04.03.2017