Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по теории автоматов.doc
Скачиваний:
105
Добавлен:
01.05.2014
Размер:
3.35 Mб
Скачать

Частичные или не полностью определенные автоматы.

Пусть P= {P0,P1, … ,Pn} – входной алфавит

P*- множество всех слов в алфавитеP

P*g – множество допустимых слов

P*g<=P*

P*з=P*/P*g - множество запрещенных слов

P*иP*g – слова одной и той же длины

Автомат называется частичным, если

  1. множество запрещенных слов не пусто или

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

P1 , P1 , P2 , P1

W0 , W1 , * , W0

, W0 ,

, W1 ,

Условие 1 приводит к тому, что в таблице переходов автомата будут прочерки – отсутствующие переходы.

Условие 2 приводит к тому, сто в значениях выходах таблицы будут находиться «*».

Пример :автомат Миля.

Pj

P1

P2

P3

Si

S0

S2/W1

---

---

S1

---

S2/*

S2/W2

S2

---

S0/W3

S3/W1

S3

---

S0/W1

S0/W3

В таблице присутствует как 1 так и второе условие.

P1 / W1

S0

S1

S3

S2

P2 / *

P3 / W2

P2 / W3

P2 / W1

P2 / W3

P3 / W1

Второе условие по графу видно явно, а первое нет.

Для проверки условия 1 нужно в каждой вершине проверить наличие переходов по каждой букве входного алфавита.

Так для состояния «S0» есть переход только по P1 и отсутствует P2 и P3

Синтез конечных автоматов.

Синтез состоит из двух этапов.

  1. Абстрактный синтез

  2. Структурный синтез

Абстрактный синтез конечных автоматов.

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

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

t0 t1 t2 t3

P0 P1 P2 P3

W0 W1 W2 W3

A

Индексы указывают на номера машинного такта, а не на различие между буквами.

P = {0 , 1}

W = {0 , 1}

P0 P1 P2 P3 W0 W1 W2 W3

0 0 0 0 0 0 0 0

0 0 0 1 0 0 1 0

0 1 0 0 0 1 0 0

1 0 0 0 1 0 0 0

Алфавит операций называется автоматным, если он удовлетворяет следующим условиям:

  1. Однозначно отображает входные слова в выходные

  2. Удовлетворяет условию полноты, т.е. представляет все входные последовательности входящие в допустимый набор Pg*

  3. Оператор сохраняет длину преобразованного слова

  4. Оператор осуществляет преобразование одинаково локальных отрезков входного слова в совпадающие начальные отрезки выходных слов.

Утверждение :

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

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

Явно восстанавливаем 3 условие автоматности оператора.

Пример :

P0

P1

W0

W1

0

0

e

0

0

1

e

1

1

0

e

0

1

1

e

1

Нарушено 3 условие – длина выходного слова меньше длины входного, поэтому слева к выходному слову добавляют пустой символ e.

После пополнения выходной алфавит будет выглядеть: W= {0 , 1 ,e}

P= {0 , 1}

W= {0 , 1} – изначально

Операция пополнения используется если нарушено 4 условие и заключается в добавлении пустого символа eсправа к входной последовательности и слева к выходной одновременно.

P0

P1

P1

W0

W1

W2

0

0

e

e

0

1

0

1

e

e

1

0

1

0

e

e

1

1

1

1

e

e

0

1

Вначале P = {0 , 1}

W = {0 , 1}

Стало P = {0 , 1 , e}

W = {0 , 1 , e}

Начальный отрезок из одной буквы 0 в исходном операторе в первой строке преобразовывается в 0 а во втором в 1, следовательно нарушено 4 условие, поэтому к входному слову слева и к выходному слева дописывается пустой символ e, при этом изменяется входной и выходной алфавиты.

А операторы могут быть заданы двумя способами: табличным и графическим.

Пример :

P0 P1 P2 W0 W1 W2

0 0 e1 e1 0 0

0 0 e2 e 0 1

Если в операции пополнения используют несколько пустых символов e(e1 ,e2 , …), то можно восстановить первое условие автоматности.

P0 P1 W0 W1

0 0 0 0

0 0 0 1

Табличный способ устанавливает соответствие между входными и выходными последовательностями в форме таблицы.

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

Пусть от вершины к листу дерева соответствует одному входному слову.

Входные буквы помечают дуги между вершинами дерева. Выходное слово также присутствует на пути из корня к листу. Число ярусов дерева соответствует длине входного слова.