Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


Для правообладателей

Обратная связь

Email: Нажмите что бы посмотреть 

Яндекс.Метрика

Презентация на тему Конечные автоматы

Содержание

Основные определенияДМПА:P = (Q, Σ, Γ, δ, q0, Z0, F),гдеQ – конечное множество состояний;Σ – конечный входной алфавит;Γ – конечный алфавит магазинных символов;δ – функция, переходов, отображение множества Q×(Σ∪{e}∪{⊥})×Γ во множество Q×Γ*;q0∈Q – начальное состояние;Z0∈Γ – начальный символ;F⊆Q – множество заключительных состояний.
Конечные автоматы Основные определенияДМПА:P = (Q, Σ, Γ, δ, q0, Z0, F),гдеQ – конечное множество состояний;Σ – конечный Основные определенияКонфигурация ДМПА P(q, w, α)∈Q×Σ*×Γ*,где:q – текущее состояние устройства;w – неиспользованная часть входной цепочки;α – содержимое магазина;«⊥» Основные определенияТакт работы ДМПА P при δ(q, a, Z) = (q', γ), Основные определенияДКА:M = (Q, Σ, δ, q0, F),гдеQ – конечное множество состояний;Σ – конечное множество входных Основные определенияКонфигурация ДКА M(q, w)∈Q×Σ*,Начальная конфигурация – (q0, w), где w∈Σ*, заключительная Способы задания функции переходов Граф переходовПереход ДМПА δ(q, a, Z) = (q', Способы задания функции переходов Переход в конечное состояниеПереход ДКА δ(q, a) = Способы задания функции переходов Таблица переходовТаблица переходов ДМПА:δ(q, a, Z) :(q', γ);HALT (a = ⊥, q∈F);ERROR. Способы задания функции переходов Таблица переходовТаблица переходов ДКА:δ(q, a) :q';HALT (a = ⊥, q∈F);ERROR. Способы задания функции переходов Переход в конечное состояние Определение функции переходов1. Построить граф переходов, а потом преобразовать его в таблицу Включение действий в синтаксисДействия:〈A1〉, 〈A2〉, …Функция переходов ДМПА:δ(q, a, Z) = (q', Алгоритм работы ДМПАПусть M – магазин (стек), α = a1a2…an⊥ – входная цепочка. Тогда:1. Алгоритм работы ДКАПусть α = a1a2…an⊥ – входная цепочка. Тогда:1. q := q0, k Посимвольный разбор Число с фиксированной точкойПримеры:«N.M», «N.», «.M», «N»,где N – целая, Посимвольный разбор Число с фиксированной точкойГраф переходов после минимизации: Посимвольный разбор Число с фиксированной точкойТаблица переходов ДКА:Примечание: объединение символов алфавита. Посимвольный разбор Число с фиксированной точкойПолучили ДКА M = (Q, Σ, δ, Посимвольный разбор Число с фиксированной точкойПример разбора цепочки «–15.2»:	(q0, «–15.2⊥»)	  1 Посимвольный разбор Число с фиксированной точкойОграничение количества значащих цифр:Действия:〈A1〉 – count := Посимвольный разбор Идентификатор в скобкахПримеры:xyz, (((abc))), … Посимвольный разбор Идентификатор в скобкахТаблица переходов ДМПА:Убираем лишнее состояние: Посимвольный разбор Идентификатор в скобкахПолучили ДМПА P = (Q, Σ, Γ, δ, Посимвольный разбор Идентификатор в скобкахПример разбора цепочки «((a123))»:	(q0, «((a123))⊥», e) Посимвольный разбор Идентификатор в скобкахПример разбора цепочки «(x))»:	(q0, «(x))⊥», e) Разбор по лексемам Вложенные операторыЯзык L описывает вложенные операторы языка Pascal «begin Разбор по лексемам Вложенные операторыТаблица переходов ДМПА при разборе по лексемам:Σ = Разбор по лексемам Вложенные операторыАлфавит языка Σ делится на три подмножества:1. Подмножество Разбор по лексемам Вложенные операторыПример:begin begin end ;end;beginend;1. begin (1:1);2. begin (2:3);3. Разбор по лексемам Вложенные операторыПример разбора:	  (q0, «bbe;e;be;⊥», e) Разбор по лексемам Вложенные операторыПример:begin end;end;1. begin (1:1);2. end (1:7);3. ; (1:10);4. Разбор по лексемам Вложенные операторыТаблица переходов ДКА с действиями:Действия (в начале разбора
Слайды презентации

Слайд 2 Основные определения
ДМПА:
P = (Q, Σ, Γ, δ, q0,

Основные определенияДМПА:P = (Q, Σ, Γ, δ, q0, Z0, F),гдеQ – конечное множество

Z0, F),
где
Q – конечное множество состояний;
Σ – конечный входной алфавит;
Γ – конечный алфавит магазинных символов;
δ – функция,

переходов, отображение множества Q×(Σ∪{e}∪{⊥})×Γ во множество Q×Γ*;
q0∈Q – начальное состояние;
Z0∈Γ – начальный символ;
F⊆Q – множество заключительных состояний.


Слайд 3 Основные определения
Конфигурация ДМПА P
(q, w, α)∈Q×Σ*×Γ*,
где:
q – текущее состояние устройства;
w – неиспользованная

Основные определенияКонфигурация ДМПА P(q, w, α)∈Q×Σ*×Γ*,где:q – текущее состояние устройства;w – неиспользованная часть входной цепочки;α – содержимое

часть входной цепочки;
α – содержимое магазина;
«⊥» – маркер конца входной цепочки.

Начальная конфигурация – (q0, w, Z0), где w∈Σ*, заключительная конфигурация – (q, ⊥, α), где q∈F и α∈Γ*.

Слайд 4 Основные определения
Такт работы ДМПА P при δ(q, a,

Основные определенияТакт работы ДМПА P при δ(q, a, Z) = (q',

Z) = (q', γ), где q, q'∈Q, a∈Σ∪{e}∪{⊥}, w∈Σ*,

Z∈Γ, α, γ∈Γ*:
(q, aw, Zα)  (q', w, γα),
Если δ(q, a, Z) = (q', γ), то ДМПА P может:
перейти в состояние q';
сдвинуть головку на одну ячейку вправо;
заменить верхний символ магазина цепочкой γ магазинных символов.
Частные случаи: Z = e, γ = e, a = e, a = ⊥.


Слайд 5 Основные определения
ДКА:
M = (Q, Σ, δ, q0, F),
где
Q – конечное

Основные определенияДКА:M = (Q, Σ, δ, q0, F),гдеQ – конечное множество состояний;Σ – конечное множество

множество состояний;
Σ – конечное множество входных символов;
δ – функция переходов, отображение множества Q×(Σ∪{⊥})

во множество Q;
q0∈Q – начальное состояние;
F⊆Q – множество заключительных состояний.

Слайд 6 Основные определения
Конфигурация ДКА M
(q, w)∈Q×Σ*,
Начальная конфигурация – (q0,

Основные определенияКонфигурация ДКА M(q, w)∈Q×Σ*,Начальная конфигурация – (q0, w), где w∈Σ*,

w), где w∈Σ*, заключительная конфигурация – (q, ⊥), где

q∈F.
Такт работы ДКА M при δ(q, a) = q', где q, q'∈Q, a∈Σ∪{⊥}:
(q, aw)  (q', w)


Слайд 7 Способы задания функции переходов Граф переходов
Переход ДМПА δ(q, a,

Способы задания функции переходов Граф переходовПереход ДМПА δ(q, a, Z) =

Z) = (q', γ):





Переход ДКА δ(q, a) = q':


Слайд 8 Способы задания функции переходов Переход в конечное состояние
Переход ДКА

Способы задания функции переходов Переход в конечное состояниеПереход ДКА δ(q, a)

δ(q, a) = q', где q'∈F:



Переход ДМПА δ(q, a,

Z) = (q', γ), где q'∈F:





Слайд 9 Способы задания функции переходов Таблица переходов
Таблица переходов ДМПА:




δ(q, a,

Способы задания функции переходов Таблица переходовТаблица переходов ДМПА:δ(q, a, Z) :(q', γ);HALT (a = ⊥, q∈F);ERROR.

Z) :
(q', γ);
HALT (a = ⊥, q∈F);
ERROR.


Слайд 10 Способы задания функции переходов Таблица переходов
Таблица переходов ДКА:




δ(q, a)

Способы задания функции переходов Таблица переходовТаблица переходов ДКА:δ(q, a) :q';HALT (a = ⊥, q∈F);ERROR.

:
q';
HALT (a = ⊥, q∈F);
ERROR.


Слайд 11 Способы задания функции переходов Переход в конечное состояние

Способы задания функции переходов Переход в конечное состояние

Слайд 12 Определение функции переходов
1. Построить граф переходов, а потом

Определение функции переходов1. Построить граф переходов, а потом преобразовать его в

преобразовать его в таблицу переходов.
2. Построение графа начинается с

начального состояния q0. Если начальное состояние может являться также и конечным, помечаем это двойной границей окружности.
3. Для каждого состояния графа qi определяем, есть ли из данного состояния такие переходы (a, Z, γ), которые соответствуют допустимому символу a из входной цепочки и допустимому символу Z на вершине стека (если автомат с магазинной памятью), которые пока еще отсутствуют в графе. Если есть, то проверяем, ведет ли данный переход в уже имеющееся состояние. Если да, то добавляем в граф только новый переход (a, Z, γ). Если нет, то добавляем в граф новое состояние и переход (a, Z, γ) в него. Если новое состояние может являться конечным, помечаем это двойной границей окружности.
4. Если в процессе выполнения шага 3 в графе появились новые состояния или переходы, возвращаемся на шаг 3, иначе граф переходов построен.

Слайд 13 Включение действий в синтаксис
Действия:
〈A1〉, 〈A2〉, …
Функция переходов ДМПА:
δ(q,

Включение действий в синтаксисДействия:〈A1〉, 〈A2〉, …Функция переходов ДМПА:δ(q, a, Z) =

a, Z) = (q', γ, 〈A〉).
Функция переходов ДКА:
δ(q, a)

= (q', 〈A〉).
Отсутствие действия:
〈A〉 = e или 〈A〉 = ∅.


Слайд 14 Алгоритм работы ДМПА
Пусть M – магазин (стек), α = a1a2…an⊥

Алгоритм работы ДМПАПусть M – магазин (стек), α = a1a2…an⊥ – входная цепочка.

– входная цепочка. Тогда:
1. q := q0, M :=

Z0, k := 1.
2. Ищем δ(q, a, Z), где: a = ak, M = Zβ или a = ak, Z = e или a = e, M = Zβ.
3. Если δ(q, a, Z) не определена, то ошибка в позиции k. Если значений δ(q, a, Z) несколько – таблица переходов построена неверно. Если δ(q, a, Z) = (q', γ, 〈A〉), то:
3.1. Если 〈A〉 ≠ e и 〈A〉 ≠ ∅, то выполнить действие 〈A〉.
3.2. q := q'.
3.3. M := γβ.
3.4. Если a ≠ e, то k := k + 1.
4. Если δ(q, a, Z) = HALT, то разбор успешно завершен.
5. Если δ(q, a, Z) = ERROR, то имеем во входной цепочке синтаксическую ошибку в позиции k.

Слайд 15 Алгоритм работы ДКА
Пусть α = a1a2…an⊥ – входная цепочка. Тогда:
1.

Алгоритм работы ДКАПусть α = a1a2…an⊥ – входная цепочка. Тогда:1. q := q0,

q := q0, k := 1.
2. Ищем δ(q, a),

где a = ak.
3. Если δ(q, a) не определена, то ошибка в позиции k. Если значений δ(q, a) несколько – таблица переходов построена неверно. Если δ(q, a) = (q', 〈A〉), то:
3.1. Если 〈A〉 ≠ e и 〈A〉 ≠ ∅, то выполнить действие 〈A〉.
3.2. q := q'.
3.3. k := k + 1.
4. Если δ(q, a) = HALT, то разбор успешно завершен.
5. Если δ(q, a) = ERROR, то имеем во входной цепочке синтаксическую ошибку в позиции k.

Слайд 16 Посимвольный разбор Число с фиксированной точкой
Примеры:
«N.M», «N.», «.M», «N»,
где

Посимвольный разбор Число с фиксированной точкойПримеры:«N.M», «N.», «.M», «N»,где N –

N – целая, а M – дробная часть числа.


Слайд 17 Посимвольный разбор Число с фиксированной точкой
Граф переходов после минимизации:

Посимвольный разбор Число с фиксированной точкойГраф переходов после минимизации:

Слайд 18 Посимвольный разбор Число с фиксированной точкой
Таблица переходов ДКА:





Примечание: объединение

Посимвольный разбор Число с фиксированной точкойТаблица переходов ДКА:Примечание: объединение символов алфавита.

символов алфавита.


Слайд 19 Посимвольный разбор Число с фиксированной точкой
Получили ДКА M =

Посимвольный разбор Число с фиксированной точкойПолучили ДКА M = (Q, Σ,

(Q, Σ, δ, q0, F), где:
Q = {q0, q1,

q2, q3, q4};
Σ = {+, –, ., 0-9};
δ(Q×Σ) = {{q1, q2, q3, ERROR}, {ERROR, q2, q3, ERROR}, {ERROR, ERROR, q5, ERROR}, {ERROR, q4, q3, HALT}, {ERROR, ERROR, q4, HALT}};
F = {q3, q4}.


Слайд 20 Посимвольный разбор Число с фиксированной точкой
Пример разбора цепочки «–15.2»:
(q0,

Посимвольный разбор Число с фиксированной точкойПример разбора цепочки «–15.2»:	(q0, «–15.2⊥»)	 1

«–15.2⊥») 1 (q1, «15.2⊥»)
2 (q3, «5.2⊥»)

3 (q3, «.2⊥»)
4 (q4, «2⊥»)
5 (q4, «⊥»)
6 HALT
Разбор завершен успешно. Другой пример:
(q0, «.2.⊥») 1 (q2, «2.⊥»)
2 (q4, «.⊥»)
3 ERROR
Имеем синтаксическую ошибку в позиции 3.


Слайд 21 Посимвольный разбор Число с фиксированной точкой
Ограничение количества значащих цифр:




Действия:
〈A1〉

Посимвольный разбор Число с фиксированной точкойОграничение количества значащих цифр:Действия:〈A1〉 – count

– count := 1;
〈A2〉 – count := count +

1; если count > N, δ(q, a) = ERROR.

Слайд 22 Посимвольный разбор Идентификатор в скобках
Примеры:
xyz, (((abc))), …


Посимвольный разбор Идентификатор в скобкахПримеры:xyz, (((abc))), …

Слайд 23 Посимвольный разбор Идентификатор в скобках
Таблица переходов ДМПА:




Убираем лишнее состояние:

Посимвольный разбор Идентификатор в скобкахТаблица переходов ДМПА:Убираем лишнее состояние:

Слайд 24 Посимвольный разбор Идентификатор в скобках
Получили ДМПА P = (Q,

Посимвольный разбор Идентификатор в скобкахПолучили ДМПА P = (Q, Σ, Γ,

Σ, Γ, δ, q0, Z0, F), где:
Q = {q0,

q1, q2};
Σ = {(, ), _, a-z, A-Z, 0-9};
Γ = {(} ;
δ(Q×(Σ∪{e}∪{⊥})×Γ) = {{(q0, «(»), (q1, e), ERROR, ERROR, ERROR}, {ERROR, (q1, e), (q1, e), (q2, e), HALT}, {ERROR, ERROR, ERROR, (q2, e), HALT}};
Z0 = e;
F = {q1, q2}.

Слайд 25 Посимвольный разбор Идентификатор в скобках
Пример разбора цепочки «((a123))»:
(q0, «((a123))⊥»,

Посимвольный разбор Идентификатор в скобкахПример разбора цепочки «((a123))»:	(q0, «((a123))⊥», e)

e) 1 (q0, «(a123))⊥», «(»)

2 (q0, «a123))⊥», «((»)
3 (q1, «123))⊥», «((»)
4 (q1, «23))⊥», «((»)
5 (q1, «3))⊥», «((»)
6 (q1, «))⊥», «((»)
7 (q2, «)⊥», «(»)
8 (q2, «⊥», e)
9 HALT
Разбор завершен успешно.

Слайд 26 Посимвольный разбор Идентификатор в скобках
Пример разбора цепочки «(x))»:
(q0, «(x))⊥»,

Посимвольный разбор Идентификатор в скобкахПример разбора цепочки «(x))»:	(q0, «(x))⊥», e)

e) 1 (q0, «x))⊥»,

«(»)
2 (q1, «))⊥», «(»)
3 (q1, «)⊥», e)
4 ERROR
Имеем ошибку в позиции 4. Пример разбора цепочки «()»:
(q0, «()⊥», e) 1 (q0, «)⊥», «(»)
2 ERROR
Ошибка в позиции 2.

Слайд 27 Разбор по лексемам Вложенные операторы
Язык L описывает вложенные операторы

Разбор по лексемам Вложенные операторыЯзык L описывает вложенные операторы языка Pascal

языка Pascal «begin end;». Таблица переходов ДМПА при посимвольном

разборе:

Слайд 28 Разбор по лексемам Вложенные операторы
Таблица переходов ДМПА при разборе

Разбор по лексемам Вложенные операторыТаблица переходов ДМПА при разборе по лексемам:Σ

по лексемам:



Σ = {b, e, g, i, n, d,

«;», _} → Σ' = {begin, end, «;»}

Слайд 29 Разбор по лексемам Вложенные операторы
Алфавит языка Σ делится на

Разбор по лексемам Вложенные операторыАлфавит языка Σ делится на три подмножества:1.

три подмножества:
1. Подмножество символов-разделителей ΣS⊂Σ;
2. Подмножество символов пунктуации ΣP⊂Σ;
3.

Подмножество лексемных символов ΣL⊂Σ:
ΣL = Σ – (ΣS∪ΣP).
Алфавит Σ':
Σ'⊆ΣP∪ΣL+.
Лексема x – либо x∈ΣP, либо x∈ΣL+, отделенная от других лексем символами алфавитов ΣS и ΣP.


Слайд 30 Разбор по лексемам Вложенные операторы
Пример:
begin
begin end ;
end;
begin
end;
1. begin

Разбор по лексемам Вложенные операторыПример:begin begin end ;end;beginend;1. begin (1:1);2. begin

(1:1);
2. begin (2:3);
3. end (2:9);
4. ; (2:13);
5. end (3:1);
6.

; (3:4);
7. begin (4:1);
8. end (5:1);
9. ; (5:4).

Слайд 31 Разбор по лексемам Вложенные операторы
Пример разбора:
(q0, «bbe;e;be;⊥»,

Разбор по лексемам Вложенные операторыПример разбора:	 (q0, «bbe;e;be;⊥», e)  1

e) 1 (q0, «be;e;be;⊥», b)

2 (q0, «e;e;be;⊥», bb)
 3 (q1, «;e;be;⊥», b)
4 (q0, «e;be;⊥», b)
5 (q1, «;be;⊥», e)
6 (q0, «be;⊥», e)
7 (q0, «e;⊥», b)
8 (q1, «;⊥», e)
9 (q0, «⊥», e)
10 HALT

Слайд 32 Разбор по лексемам Вложенные операторы
Пример:
begin end;
end;
1. begin (1:1);
2. end

Разбор по лексемам Вложенные операторыПример:begin end;end;1. begin (1:1);2. end (1:7);3. ;

(1:7);
3. ; (1:10);
4. end (2:1);
5. ; (2:4);
(q0,

«be;e;⊥», e) 1 (q0, «e;e;⊥», b)
2 (q1, «;e;⊥», e)
 3 (q0, «e;⊥», e)
4 ERROR

  • Имя файла: konechnye-avtomaty.pptx
  • Количество просмотров: 148
  • Количество скачиваний: 1