
10.Конечные автоматы.Основные определения.
Под автоматом в понимается некоторая математическая модель, свойства и поведение которой можно изучать и которую можно имитировать в виде машинной программы.
Конечный автомат(КА) служит управляющим устройством для более сложных автоматов.
Свойства КА:
1.КА может решать ряд простых задач компиляции, например лексический анализ.
2.Так как при моделировании КА на ЭВМ обработка одного входного символа требует небольшого количества операций, программа работает быстро.
3.Моделирование КА требует фиксированного объёма памяти.
4.Существует ряд теорем и алгоритмов, позволяющих
конструировать и упрощать КА, предназначенные для тех или иных целей.
КА - моделируют вычислительные устройства с фиксированным и конечным объёмом памяти, которые читают последовательности входных символов, принадлежащих некоторому конечному множеству. С точки зрения теории компиляторов, выходом автомата является указание на то, допустимой или недопустимой является та или иная цепочка символов. «Допустимой» является синтаксически правильная цепочка. Таким образом, основная функция автоматов в теории компиляторов – это распознавание.
Определение: Конечным автоматом называется следующая пятёрка:
A=(Ω, ∑, δ, qo, F)где:
Ω – непустое множество внутренних состояний;
∑ – непустое множество входных символов;
qo Є Ω – начальное состояние;
F Є Ω – непустое множество заключительных (конечных) состояний;
δ – функция перехода (δ (qтек,х)=qнов;
Пример:Контроллер чётности- нечётности (детерминированный автомат)
Входной алфавит ∑={0,1}.Множество состояний Q – (чёт, нечёт);
Выходное состояние – нечёт (F Є Q: нечёт).Начальное состояние: если проверяется нечётность, то начальным состоянием qo будет чёт, т.к. на первом шаге количество прочитанных единиц равно 0;
Функция переходов:
δ (чёт, 0)= чёт;δ (чёт, 1)= нечёт;δ (нечёт, 0)= нечёт;δ (нечёт, 1)= чёт;
Чётность меняется тогда и только тогда, когда на вход подается единица.
Таблица переходов
Один из удобных способов представления конечных автоматов – это таблица переходов. Информация в таблице переходов размещается в соответствии со следующими соглашениями:
Столбцы помечены входными символами;
Строки помечены символами состояний;
Элементами таблицы являются символы новых состояний, соответствующих входным символам столбцов и состояний строк;
Первая строка помечена символом начального состояния;
Строки, соответствующие допустимым выходным состояниям (заключительным), помечены справа 1; а строки, соответствующие отвергающим состояниям, помечены справа 0. Для автомата проверки нечётности таблица переходов имеет следующий вид:
|
0 |
1 |
|
чет |
чет |
нечет |
0 |
нечет |
нечет |
чет |
1 |
Определение
1:
Последовательность а1а2а3,…,аn
Є ∑ допускается конечным автоматом
тогда и только тогда, когда
последовательность внутренних состояний
q0,
q1,
q2,
…, qn
такая, что qi+1
= δ (qi,
аi+1)
i=0,
1, 2, …, n-1;
qn
Є F.
Для автомата примера допустимыми последовательностями являются: 01, 0111, 0010.
Определение 2: Регулярным множеством называется множество последовательностей, которое допускается некоторым конечным автоматом.
Таким образом, множество последовательностей из нулей и единиц с нечетным количеством единиц является регулярным множеством для автомата примера .
Последовательность длины 0 называется пустой последовательностью. Она обозначается символом ε.