[21.02.11] Лекция №3 (Конспекты - Теория формальных языков)
Описание файла
Файл "[21.02.11] Лекция №3" внутри архива находится в следующих папках: Конспекты - Теория формальных языков, 3 - [21.02.11] Лекция №3. Документ из архива "Конспекты - Теория формальных языков", который расположен в категории "". Всё это находится в предмете "теория формальных языков" из 6 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "лекции и семинары", в предмете "теория формальных языков" в общих файлах.
Онлайн просмотр документа "[21.02.11] Лекция №3"
Текст из документа "[21.02.11] Лекция №3"
Лекция №3 [21.02.11]
Регулярные грамматики и конечные автоматы
Для любого формального языка требуется создать порождающую модель и распознающую конструкцию. Порождение слов регулярного языка – регулярная грамматика. Распознавание слов – конечный автомат.
Регулярная грамматика := G =(V,N,S,P)
P: A -> aB (A,BN, aV)
A -> a (A->)
Пример: {anb,n≥0}
S -> b | aS
S |-- b
S |-- aS |-- aaS |-- … |-- anS |-- anb
Пример: {anbn | n,m≥0}
V={a,b}, N={S}
P: S-> | a | b | aS | bS
S|--bS|--baS|--ba L
S -> aS | aB | | bB
B -> bB |
S |-- aS |-- … |-- anS |-- an
S |-- *anS |-- anbB |-- anb
S |-- *anS |-- anbB |-- anbbB |-- *anbmB |-- anbm
Надо доказать, что никаких других цепочек, кроме приведённых, грамматика породить не сможет:
S |-- *anS |-- an
|-- anbB
S |-- *anbB |-- anb
|-- anbm
S |--bB |-- *b
|-- *bm
Предъявленная грамматика решает поставленную задачу.
Попробуем убрать :
S -> aS | bB | b |
B -> bB | b
Можно показать, что вариант B эквивалентен варианту A.
Домашнее задание: bmstu.ru – Персональные страницы – Ткачёв – Теория формальных языков – Задача №1. Сдать до 15 марта.
Конечные автоматы
Пусть x – некоторая цепочка во входном алфавите. Мы хотим сделать устройство, распознающее, принадлежит ли эта цепочка некоторому фиксированному языку.
Полубесконечная входная лента, в ячейках которой записаны x1,x2,…,xn…
Будет считывающая головка и блок управления.
Q – множество состояний блока управления.
q0 – начальное (стартовое) состояние (когда считывающая головка указывает на первую ячейку ленты).
Замечание: с точки зрения алгебраической теории у автомата может быть несколько входов, поскольку решая системы уравнения в полукольцах, мы можем найти любые элементы матрицы стоимостей и сложить их между собой. Однако, в регулярных грамматиках и конечных автоматах начальная вершина (q0) единственная.
Этот автомат будет считывать последовательно символы на входной ленте, по каждому символу переходя из состояния qi в состояние qj (некоторые элементы множества Q). Такой переход описывается командой конечного автомата:
qia->qj
где qi – текущее состояние, a – видимый символ на ленте, qj – новое состояние
Кроме этого, допускаются переходы по пустой цепочке.
Конфигурация конечного автомата – упорядоченная пара (q,ay), где q – текущее состояние блока управления, a – текущий символ в обозреваемой ячейке, y – часть цепочки, находящаяся на ленте правее наблюдаемой ячейки. Цепочку ay называют непрочитанной частью входной цепочки. Если она пустая, то её считают равной .
Графовое представление автомата:
x = aaabb
(q0,aaabb),(q0aabb),(q0abb),(q0bb),(q1b),(q1)
Графовая интерпретация: q0 ->a q0 ->a q0 ->a q0 ->b q1 ->b q1
Есть прямая связь между последовательностью конфигурации и переходами в соответствующем графе.
Язык конечного автомата M или L(M) – есть множество всех цепочек во входном алфавите, читаемых в автомате M на некотором пути из начального состояния в одно из заключительных.
L(M) = {x | q0 =>xqf, qfQf}
Связь между конечными автоматами и регулярными грамматиками
Язык допускается конечным автоматом тогда и только тогда, когда он порождается регулярной грамматикой.
Этапы доказательства:
1) нужно указать способ построения регулярной грамматики по предъявленному конечному автомату M и доказать, что язык, порождаемый автоматом, совпадает с языком, допускаемым грамматикой, L(M) = L(G);
2) способ построения конечного автомата по регулярной грамматике такой, что язык, допускаемый автоматом, совпадает с языком, порождаемым грамматикой, L(G) = L(M);
Построение регулярной грамматики по конечному автомату.
Дано: КА M: V – входной алфавит;
Q – множество состояний;
q0 – начальное состояние;
Qf – конечное состоние;
qia->qj
Терминальный совпадает с алфавитом V конечного автомата.
Нетерминальный алфавит M грамматики G находится во взаимооднозначном соответствии множества Q состояний конечного автомата M, причём состоянию q мы ставим в соответствие Sq, а состоянию q0 ставим S (стартовая аксиома). Множество правил вывода P строится по системе команд конечного автомата M следующим образом: правило вывода Sq->aSr (где a – терминальный символ или пустое слово) принадлежит системе правил грамматике тогда и только тогда, когда в системе правил КА есть правило qa->r
Если и только если состояние r является заключительным, в множество правил добавляется Sr->a в дополнение к предыдущему правилу.
Если состояние q0 принадлежит множеству заключительных состояний, то добавляется правило Sq0->
Построим грамматику для:
G: V={a,b}
N={Sq0,Sq1}
P: Sq0 -> aSq0 | b Sq1 | b |
Sq1 -> bSq1 | b
Sq0 |--1 aSq0 |--1 aaSq0 |--1 aaaSq0 |--2 aaabSq0 |--6 aaabb