Регулярные языки и конечные автоматы. Конечные автоматы и регулярные языки Теория формальных языков для чайников

операции объединения языков мы знаем. Определим операции конкатенации и итерации (иногда ее называют замыканием Клини).

Пусть L 1 и L 2 - языки в алфавите

Тогда , т.е. конкатенация языков состоит из конкатенаций всех слов первого языка со всеми словами второго языка. В частности, если , то , а если , то .

Введем обозначения для "степеней" языка L :

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

Итерацию (L) * языка L образуют все слова которые можно разбить на несколько подряд идущих слов из L :

Ее можно представить с помощью степеней:

Часто удобно рассматривать "усеченную" итерацию языка, которая не содержит пустое слово , если его нет в языке: . Это не новая операция, а просто удобное сокращение для выражения .

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

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

Выражение r Язык L r
L a ={a}
Пусть r 1 и r 2 -это L r1 и L r2 -представляемые
регулярные выражения . ими языки.
Тогда следующие выражения
являются регулярными и представляют языки:
r=(r 1 +r 2)
r=(r 1 circr 2)
r=(r 1) * L r =L r1 *

При записи регулярных выражений будем опускать знак конкатенации и будем считать, что операция * имеет больший приоритет, чем конкатенация и + , а конкатенация - больший приоритет, чем + . Это позволит опустить многие скобки. Например, можно записать как 10(1 * + 0) .

Определение 5.1 . Два регулярных выражения r и p называются эквивалентными, если совпадают представляемые ими языки, т.е. L r =L p . В этом случае пишем r = p .

Нетрудно проверить, например, такие свойства регулярных операций:

  • r + p= p+ r (коммутативность объединения),
  • (r+p) +q = r + (p+q) (ассоциативность объединения),
  • (r p) q = r (p q) (ассоциативность конкатенации),
  • (r *) * = r * (идемпотентность итерации ),
  • (r +p) q = rq + pq (дистрибутивность).

Пример 5.1 . Докажем в качестве примера не столь очевидное равенство : (r + p) * = (r * p *) * .

Пусть L 1 - язык, представляемый его левой частью, а L 2 - правой. Пустое слово принадлежит обоим языкам. Если непустое слово , то по определению итерации оно представимо как конкатенация подслов, принадлежащих языку . Но этот язык является подмножеством языка L"=L r * L p * (почему?). Поэтому . Обратно, если слово , то оно представимо как конкатенация подслов, принадлежащих языку L" . Каждое из таких подслов v представимо в виде v= v 1 1 ... v k 1 v 1 2 ... v l 2 , где для всех i=1, ... , k подслово и для всех j=1, ... , l подслово (возможно, что k или l равно 0). Но это значит, что w является конкатенацией подслов, каждое из которых принадлежит и, следовательно, .

Регулярный язык

В теории языков регуля́рным мно́жеством (или, регуля́рным языком ) называется формальный язык , который удовлетворяет приведённым ниже свойствам. Эти простые свойства таковы, что класс регулярных множеств удобно изучать в целом и полученные результаты оказываются применимы во многих важных случаях формальных языков. То есть, понятие регулярного множества является примером математической структуры .

Определение регулярного множества

Пусть Σ - конечный алфавит. Регулярное множество R(Σ) в алфавите Σ определяется следующими рекурсивными свойствами:

№. Свойство Описание
1 Пустое множество является регулярным множеством в алфавите Σ
2 Множество, состоящее из одной лишь пустой строки является регулярным множеством в алфавите Σ
3 Множество, состоящее из одного любого символа алфавита Σ является регулярным множеством в алфавите Σ
4 Если два какие-либо множества являются регулярными в алфавите Σ, то и их объединение тоже является регулярным множеством в алфавите Σ
5 Если два какие-либо множества являются регулярными в алфавите Σ, то и множество, составленное из всевозможных сцеплений пар их элементов тоже является регулярным множеством в алфавите Σ
6 Если какое-либо множество является регулярным в алфавите Σ, то множество всевозможных сцеплений его элементов тоже является регулярным множеством в алфавите Σ
Ничто другое, кроме следующего из перечисленного, не является регулярным множеством в алфавите Σ

См. также

  • Построение синтаксического анализатора на основе автоматного подхода

Wikimedia Foundation . 2010 .

Смотреть что такое "Регулярный язык" в других словарях:

    регулярный язык - — Тематики электросвязь, основные понятия EN regular language … Справочник технического переводчика

    - (лат. regularius, от regula правило). Правильный, правильно устроенный, сделанный. Регулярный ход машины. Равномерный ход. Регулярная жизнь. Правильная, порядочная, однообразная жизнь. Словарь иностранных слов, вошедших в состав русского языка.… … Словарь иностранных слов русского языка

    См … Словарь синонимов

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

    У этого термина существуют и другие значения, см. Кечуа. Кечуа Самоназвание: Qhichwa Simi, Runa Simi Страны … Википедия

    Каркас здания с сеткой колонг или стоек, основанной на шаге одного размера (Болгарский язык; Български) равномерен скелет (Чешский язык; Čeština) pravidelný skelet (Немецкий язык; Deutsch) regelmäßiges Skelett (Венгерский язык; Magyar) szabályos… … Строительный словарь

    - [ПАРК ФРАНЦУЗСКИЙ] парк, имеющий геометрически правильную планировку, обычно осевую схему (Болгарский язык; Български) френски парк (Чешский язык; Čeština) francouzský park (Немецкий язык; Deutsch) regelmäßiger Park; französischer Park… … Строительный словарь

    Кечуа Самоназвание: Qhichwa Simi, Runa Simi Страны: Аргентина, Боливия, Колумбия, Перу, Чили, Эквадор Регионы: Анды Официальный статус: Перу … Википедия

    Тагальский язык - (тагал, тагала, тагало; тагалог) один из филиппинских языков. Ареал первоначального распространения приходится на самый важный в политическом, экономическом и культурном отношении регион Республики Филиппины центральные и южные части острова… … Лингвистический энциклопедический словарь

Книги

  • Производные глаголы. Секреты финской грамматики. Учебное пособие , Сафронов В. Д.. Пособие посвящено одному из интереснейших и недостаточно изложенных в русскоязычной учебной литературе разделов финской грамматики - производным глаголам. Они образуются от глаголов и от имен…

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

Утверждение

Язык является РМ тогда и только тогда, когда он задан леволинейной (праволинейной) грамматикой. Язык может быть задан леволинейной (праволинейной) грамматикой тогда и только тогда, когда он является регулярным множеством.

Язык является РМ тогда и только тогда, когда он задан с помощью конечного автомата. Язык распознается с помощью конечного автомата тогда и только тогда, когда он является РМ.

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

Например, для нахождения регулярного выражения для языка, заданного праволинейной грамматикой, необходимо построить и решить систему уравнений с регулярными коэффициентами.

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

Для построения КА на основе известной регулярной грамматики ее необходимо привести к автоматному виду. Множество состояний автомата будет соответствовать множеству нетерминальных символов грамматики. 2.3.2 Свойства регулярных языков

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

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

Для регулярных языков разрешимы многие проблемы, неразрешимые для других типов языков. Например, следующие проблемы являются разрешимыми независимо от того, каким из способов задан язык:

Проблема эквивалентности: Даны два регулярных языка L 1 (V) и L 2 (V). Необходимо установить, являются ли они эквивалентными.

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

Проблема пустоты языка. Дан регулярный язык L(V). Необходимо проверить, является ли этот язык пустым, т.е. найти хотя бы одну цепочку, L(V).

Иногда бывает необходимо доказать, является дли некоторый язык регулярным. Если возможно задать этот язык одним из рассмотренных способов, то он является регулярным. Но если такой способ найти не удается, неизвестно, то ли язык не является регулярным, то ли просто не удалось найти способ его задания. Существует простой метод проверки, является ли рассматриваемый язык регулярным. Доказано, что если для некоторого языка выполняется т.н. лемма о разрастании, то он является регулярным. Если же эта лемма не выполняется - язык не регулярный.

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

Формально лемма записывается так. Если дан язык L, то константа p>0, такая, что если L и p, то цепочку можно записать в виде, где 0

Пример. Рассмотрим язык L={a n b n n>0}. Докажем, что он не является регулярным, используя для этого лемму о разрастании языков.

Пусть этот язык регулярный, тогда для него должна выполняться лемма о разрастании. Возьмем некоторую цепочку этого языка = a n b n и запишем ее в виде. Если a + или b + , то тогда цепочка i не принадлежит языку для любого i, что противоречит условиям леммы. Если же a + b + , то цепочка 2 также не принадлежит языку L. Получили противоречие, следовательно, язык не является регулярным.

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

Регулярные множества

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

Определение 1. Пусть V 1 и V 2 - множества цепочек. Определим три операции на этих множествах.

    Объединение: V 1 V 2 ={|   V 1 } или   V 2 .

    Конкатенация (произведение, склеивание): Vl V2 = {|  V 1 ,  V 2 } Знак операции конкатенации обычно опускается.

Пример: V, = {abc, ba},V 2 = {b, cb}. V1V2 ={abcb, abccb, bab, bacb}.

Обозначим V n произведение n множеств V:V n =VV...V,V° ={} (здесь -пустая цепочка).

Пример: V 1 = {abc, ba}, V 1 2 = {abcabc, abcba, baba, baabc}.

3. Итерация: V* = V 0 V 1 V 2 ... =   =0 ∞ V n .

Пример: V = {a, bc}, V* = {, a, bc, aa, abc, bcbc, bca, aaa, aabc,...}.

Определение 4.13. Класс регулярных множеств над конечным словарем V опреде ляется так:

    объединение ST;

    конкатенация ST;

    итерация S* и Т*.

5. Если множество не может быть построено конечным числом применения правил 1-4, то оно нерегулярно.

Примеры регулярных множеств: {ab, ba}* {aa}; {b}({c}{d, ab}*). Примеры нерегулярных множеств: {a n b n | n > 0}; { | в цепочке  количества вхождений символов а и b совпадают}.

Регулярные выражения

Регулярные множества хороши тем, что их можно очень просто описать формула­ми, которые мы назовем регулярными выражениями.

Определение 2. Класс регулярных выражений над конечным словарем V опреде ляется так:

    их сумма R1+R2;

    их произведение R1R2;

    их итерация R1* и R2*.

4. Если выражение не построено конечным числом применения правил 1-3, то оно не является регулярным.

Знак произведения можно опускать. Для уменьшения числа скобок, как и в любой алгебре, используются приоритеты операций: итерация самая приоритетная; менее приоритетно произведение; самый низкий приоритет у сложения.

Примеры регулярных выражений: ab + bа*; (аа)*b + (с + dab)*.

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

Пусть R ^ - регулярное множество, соответствующее регулярному выражению R. Тогда:

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

Рассмотрим примеры регулярных выражений и соответствующих им языков.

Регулярное выражение

Соответствующий язык

Все цепочки, начинающиеся с b, за которым следует произвольное число символов а

Все цепочки из а и b, содержащие ровно два вхождения b

Все цепочки из а и b, в которые символы b входят только парами

(a+b)*(aa+bb)(a+b)*

Все цепочки из а и b, содержащие хотя бы одну пару рядом стоящих а или b

(0+1)*11001(0+1)*

Все цепочки из 0 и 1, содержащие подцепочку 11001

Все цепочки из а и b, начинающиеся символом а и заканчивающиеся символом b

Очевидно, что множество цепочек регулярно тогда и только тогда, когда оно может быть представлено регулярным выражением. Однако одно и то же множество цепочек может быть представлено различными регулярными выражениями, например, множество цепочек, состоящее из символов а и содержащее не менее двух а может быть представлено выражениями: аа*а; а*ааа*; ааа*; а*аа*аа* и т. д.

Определение 3. Два регулярных выражения R1 и R2 называются эквивалентными (обозначается Rl = R2) тогда и только тогда, когда R 1 ^ = R 2 ^ .

Таким образом, аа*а = а*ааа* = ааа* = а*аа*аа*. Возникает вопрос, как определить эквивалентность двух регулярных выражений.

Теорема 1 . Для любых регулярных выражений R, S и Т справедливо:

Эти соотношения можно доказать, проверяя равенство соответствующих множеств цепочек. Их можно использовать для упрощения регулярных выражений. Например: b (b + aa*b) = b (b + aa*b) = b ( + aa*) b = ba*b. Отсюда b (b + aa*b) = ba*b, что неочевидно.

Теорема Клини

Регулярные выражения - это конечные формулы, задающие регулярные языки. Но подобным же свойством обладают и конечные автоматы - они тоже задают языки. Возникает вопрос: как соотносятся между собой классы языков, задаваемые конечными автоматами и регулярными выражениями? Обозначим А множество автоматных языков, R - множество регулярных языков. Стефен Клини, американский математик, доказал следующую теорему.

Теорема 2 . (Теорема Клини.) Классы регулярных множеств и автоматных языков совпадают, то есть А = R .

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

Введем в рассмотрение модель графа переходов как обобщение модели конечного автомата. В графе переходов одна начальная и произвольное количество заключительных вершин, а направленные ребра помечены, в отличие от конечного автомата, не символами, а регулярными выражениями. Граф переходов допускает цепочку а, если а принадлежит множеству цепочек, описываемую произведением регулярных выражений R 1 R 2 ...R n , которые помечают путь из начальной вершины в одну из заключительных вершин. Множество цепочек, допускаемых графом переходов, образует допускаемый им язык.

Рис. 1. Граф переходов

На рис. 1 изображен граф переходов, который допускает, например, цепочку abbca, поскольку путь s->r->p->s->r->q, который ведет в заключительное состояние q, помечен цепочкой регулярных выражений ab*c*а. Конечный автомат является частным случаем графа переходов и поэтому все языки, которые допускаются автоматами, допускаются и графами переходов.

Теорема 3. Каждый автоматный язык является регулярным множеством, А  R .

Доказательство. Граф переходов с одной начальной и одной заключительной вершинами, у которого единственное ребро из начальной в заключительную вершину помечено регулярным выражением R, допускает язык R ^ (рис. 1).

Рис. 2. Граф переходов, допускающий регулярный язык FT

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

Любой конечный автомат и любой граф переходов всегда можно представить в нормализованной форме, в которой только одна начальная вершина только с исходящими ребрами и только одна заключительная вершина только с входящими ребрами (рис. 3).

Рис. 3. Граф переходов с одной начальной и одной заключительной вершинами

С графом переходов, представленным в нормализованной форме, могут быть выполнены две операции редукции - редукция ребра и редукция вершины - с со­хранением допускаемого этим графом переходов языка:

а) редукция ребра:

Б ) редукция вершины (замена выполняется для каждого пути, проходящего через вершину р, с последующим ее выбрасыванием как недостижимого состояния):

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

Пример

Пусть задан конечный автомат А:

Строим эквивалентный граф переходов в нормализованном виде.

Редукция вершины 3:

Редукция дуг и применение правила R = R:

Редукция вершины 2:

Редукция дуги и вершины 1:

Таким образом язык, распознаваемый автоматом А, задается регулярным выраже­нием: R A = b+(a+bb)(b+ab)*a.

Докажем теорему Клини в другую сторону.

Теорема 2. Каждое регулярное множество является автоматным языком: R  A .

Доказательство. Покажем, что для каждого регулярного выражения R может быть построен конечный автомат A r (возможно, недетерминированный), распознающий язык, задаваемый R. Определение таких автоматов дадим рекурсивно.

(начальное и заключительное состояния А совмещаются).

Пример (продолжение)

Похожие статьи

  • Баранов пдф обществознание

    В справочнике, адресованном выпускникам средней школы и абитуриентам, в полном объёме дан материал курса «Обществознание», который проверяется на едином государственном экзамене.Структура книги соответствует современному кодификатору...

  • Скачать книгу Академия Стихий

    12мая2017 Академия Стихий-4. Покорение Огня (Гаврилова А.) Формат: аудиокнига, MP3, 128kbps Гаврилова А. Год выпуска: 2017 Жанр: Романтическое фэнтези Издательство: Аудиокнига своими руками Исполнитель: Ведьма Продолжительность:...

  • Денежный квадрант роберта кийосаки

    Американский инвестор и бизнесмен - автор книг по саморазвитию, мотивационный спикер и финансовый обозреватель. Он основал компании Rich Dad Company, предлагающую бизнес-образование и обучение обращению с личными финансами. Кийосаки создал...

  • Тест по физике "тест физические величины"

    тема теста Единицы измерения информации (перевод) предмет Информатика класс/группа использованные источники и литература материалы ФИПИ ключевые слова или опорные понятия через запятую (не менее 5 шт): информация, единицы измерения,...

  • — Как сила подсознания влияет на нашу жизнь?

    Задолго до того, как была написана Биб­лия, один мудрец сказал: «Как чело­век воображает и чувствует, тем он и ста­новится». Это выражение пришло к нам из древности. В Библии сказано: «Что человек держит в своем сердце! то он и есть». В...

  • Трагедии XX века (143 фото) Мнение президента РФ

    Помните фильм «Тревожное воскресенье», в котором пожарные спасали портовый город от угрозы взрыва горящего танкера? Своя «тревожная», правда суббота, была и у Алматы, но более трагичная. 5 фото. 27 лет назад, 20 мая на железнодорожной...