Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 400186.doc
Скачиваний:
13
Добавлен:
30.04.2022
Размер:
2.63 Mб
Скачать

6. Автоматы

6.1. Определение основных понятий

Определение: Конечным автоматом (автоматом) называется система S={A,Q,V,, }, в которой A={a1,…, am}; Q={q1,…, qn}; V={v1,…, vk} – конечные множества (алфавиты), а : QAQ и : QAV – функции, определяемые на этих множествах.

А называется входным алфавитом, V- выходной алфавит, Q – алфавит состояний,  - функция переходов,  - функция выходов. Если, кроме того, в автомате S выделено одно состояние, называемое начальным (q1), то такой автомат называется инициальным и обозначается (S,q1), таким образом, по неинициальному автомату с n состояниями можно n различными способами определить инициальный автомат. Поскольку функции  и  определены на конечных множествах, их можно задавать таблицами. Обычно две таблицы сводятся в одну : QA=QV. Эта таблица называется таблицей автомата или просто автоматной таблицей.

Пример 1: Таблица задает функции переходов и выходов для автомата с алфвитами: A={a1, a2, a3}; Q={q1, q2, q3, q4}; V={v1, v2}

Таблица 20

q\a

a1

a2

A3

q1

q3,v1

q3,v2

q2,v1

q2

q4,v1

q1,v1

q1,v1

q3

q2,v1

q3,v1

q3,v2

q4

q4,v1

q2,v1

q1,v2

Еще один способ задания автомата – ориентированный мультиграф, называемый графом перехода или диаграммой переходов.

Вершины графа соответствуют состояниям; если (qi,aj)=qk и (qi,aj)=Ve, то из qi в qk ведет ребро, на котором написаны aj и Ve.

Кратные ребра не обязательны, например два ребра из q2 в q1 можно заменить одним ребром, на котором написаны обе пары q3|V1 и q2|V1.

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

1) для каждой входной буквы аj имеется ребро, выходящее из qi, на котором написанно aj (условие полноты);

2) любая буква aj встречается только на одном ребре, выходящим из qi (условие непротиворечивости и детерминированности).

Для данного автомата S его функции S и S могут быть определены не только на множестве А всех входных букв, но и на множестве А всех входных слов. Для любого входного слова

,

Это традиционное определение с “многоточиями”. Немного точнее читается индуктивное определение:

1)  (qi, aj) задается автоматной таблицей S;

2 ) Для любого слова A* и любой буквы aj

(qi, aj)= ( (qi, ) ,aj). (6.1)

С помощью расширенной функции  определятся расширенная функция 

(qi, aj)= ( (qi, ) ,aj). (6.2)

Зафиксируем в автомате S начальное состояние q1 и каждому выходному слову поставим в соответствие слово  в выходном алфавите:

=(qi, aj1) (qi, aj1, aj2)… (qi, aj1, aj2 ,…,ajk) (6.3)

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

Иногда говорят кратко – оператор (S,q1) или оператор S (если автомат S инициальный), и записывают S (q1,)=  и S()=.

Число букв в  называют длиной слова  и обозначают || или l(). Автоматное отображение также удобно определить индуктивно:

(6.4)

Автоматное отображение обладает двумя свойствами, которые следуют из (6.3) и (6.4):

1. слова  и S()= имеют одну длину:||=||;

2. если =12 и S(12)=12, где |1|=|1|, то S(1)=1. Другими словами: образ отрезка длиной i равен образу отрезка той же длины.

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

Введенные определения (6.1)-(6.4) наглядно интерпретируются на графе переходов. Если зафиксированна вершина qi, то всякое слово = однозначно определяет путь длины к из этой вершины (обозначим его (qi, )), на к ребрах которого написаны соответственно буквы , поэтому (qi, )- это последняя вершина пути (qi, ); (qi, )- выходная буква, написанная на последнем ребре пути (qi, ), а отображение S(qi, ) – слово, образованное к выходными буквами на к ребрах пути (qi, ).

Пример 2: Для автомата S с заданной таблицей:

(q2, a3a2)= (q2, a3a1)=q3,

(q2, a3a1a1)=q2,

(q2, a3a2)=v2,

(q2, a3a1)=v1,

(q2, a3a1 a1)=v1,

S(q2, a3a2)= v1v2,

S(q2, a3a1)=v1 v1,

S(q2, a3a1 a1)=v1 v1 v1.

Состояние qj называется достижимым из состояния qi, если имеется входное слово , такое, что (qi, )= qj.

Автомат S называется сильно связным, если его входной алфавит состоит из одной буквы: А={a}, а все слова имеют вид ааа..а.

П ример 3:

Таблица 21

Q

a

1

3,0

2

4,0

3

4,0

4

7,0

5

4,2

6

5,0

7

6,1

8

9,0

9

9,1

Автоматная таблица и граф автономного автомата, задаваемый таблицей (входные буквы на ребрах опущены); выходной алфавит V={0,1,2}. Здесь и далее символы состояний qi для краткости заменены их индексами.