Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
~automat(theory).docx
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
88.44 Кб
Скачать

12 Метод перевода контекстно-свободных грамматик (cfg) на автоматы со стеком.

Конструктивный алгоритм построения PDA по CFG: Для данной CFG G строится PDA, имитирующий левосторонний вывод для G. Пусть G = (V , T, Q , S ). Строится PDA P, который распознает язык L (G) по пустому стеку: P = ({ q} , T , V ∪ T , δ, q, S ), где функция переходов δ определена следующим образом: для каждой переменной A, δ (q, ε , A ) = { (q, β ) | A → β правило вывода в G }; для каждого терминала a, δ (q, a , a ) = { (q, ε )}. I → a | b | Ia | Ib | I0 | I1. E → I | E ∗ E | E + E | (E ). PDA P = ({q} , T, Γ, δ, q, S ): T = { a , b , 0 , 1 , (, ), +, ∗}. Γ = T ∪ {I, E } . δ : δ (q, ε , I) = { (q, a ), (q, b ), (q, Ia ), (q, Ib ), (q, I0 ), (q, I1 )}. δ (q, ε , E ) = { (q, I), (q, E + E ), (q, E ∗ E ), (q, (E ))}. δ (q, a , a ) = { (q, ε )}; δ (q, b , b ) = {(q, ε )} ; δ (q, 0 , 0 ) = { (q, ε )}; δ (q, 1 , 1 ) = { (q, ε )} ; δ (q, (, () = { (q, ε )} ; δ (q, ), )) = {(q, ε )} ; δ (q, +, +) = {(q, ε )} ; δ (q, ∗, ∗) = { (q, ε )}.

13 Минимизация числа состоянии для конечных автоматов. Примеры.

Существует быстрый алгоритм, позволяющий по произвольному детерминированному конечному автомату находить минимальный (по количеству состояний автомат среди детерминированных конечных автоматов, эквивалентных исходному автомату. Доказательство. Без ограничения общности можно предположить, что дан полный детерминированный конечный автомат <Q,Σ,Δ, I, F>, все состояния которого достижимы из начального состояния(для обеспечения полноты достаточно добавить одно состояние). Для каждого натурального числа i определим на множестве Q отношение эквивалентности ≡i : p ≡0 q ⇐⇒ (p ∈ F и q ∈ F) или (p∉ F и q ∉ F), p ≡i+1 q ⇐⇒ p ≡i q и Δa(p) ≡i Δa(q) для каждого a ∈ Σ. Легко видеть, что p ≡i q тогда и только тогда, когда никакое слово длины не больше i не различает p и q. Обозначим n = |Q|. Легко проверить, что для любого k ≥ n отношение ≡k совпадает с отношением ≡n1. Используя классы эквивалентности отношения ≡n1 как состояния, можно построить минимальный полный детерминированный конечный автомат. Удалив из него бесполезное состояние (из которого не достижимо ни одно заключительное состояние), если такое имеется, получим искомый минимальный детерминированный конечный автомат. Пример. Рассмотрим полный детерминированный конечный автомат <{1,2, 3, 4, 5, 6},{a, b},Δ, {1},{1,3}>, где Δ = {<1, a, 2>, <2, b, 3>, <3, a, 4>, <4, b, 1>,<4, a, 5>,<5, a, 5>,<1, b, 6>, <2, a, 6>, <3, b, 6>,<5, b, 6>, <6, a, 6>, <6, b, 6>}. Он эквивалентен минимальному детерминированному конечному автомату <{{1, 3}, {2, 4}}, {a, b},Δ’, {{1, 3}}, {{1, 3}}>, где Δ’ = {<{1, 3}, a, {2, 4}>, <{2, 4}, b, {1, 3}>}.

14 Недтерминированный конечный автомат. Языки распознаваемые недетерминированным автоматом.

Конечный автомат-это пятёркаM=(K, Σ, δ,s,F ), где Σ -алфавит, K- конеч. набор состояний, s - начальное состояние, F- конеч. сост. δ -переход. Каждый конечный язык является автоматным. Конечный автомат (K, Σ, δ,s,F ) называется детерминированным, если 1)мн-во s содержит ровно один элемент, 2) для каждого перехода (p, x, q)∈ δ выполняется равенство |x| = 1; 3) для любого символа a ∈ Σ и для любого сост p ∈ Q существует не более 1го сост q ∈ Q со св-вом (p, a, q)∈ Δ. Пример: Пусть M детерминированный конечный автомат <K, Σ, δ, s, F>, где :K = {q0, q1}, Σ = {a, b}, s = q0, F = {q0}, а δ это функция, заданная следующей таблицей:

q |σ|δ(q, σ)

q0 |a| q0

q0| b| q1

q1| a| q1

q1| b| q0

Язык, распознаваемый конечным автоматом M, — это я зык L(M), состоящий из меток всех успешных путей (то есть из всех допускаемых данным автоматом слов). Замечание . Если I F , то я зык, распознаваемый конечным автоматом <Q,Σ, δ, I, F>, содержит ε. Пример. Пусть M = <Q,Σ, δ, I, F>, где Q = {1, 2}, Σ = {a, b}, δ = {<1, a, 2>, <2, b, 1>}, I = {1} и F = {1, 2}. Тогда L(M) = {(ab)n | n≥ 0} {(ab)na | n ≥ 0}.

15 Операции над множествами. Функций и отношения. Перечислимые и не перечислимые множества.

Объединение: A ∪ B = {x|x ∈ A или x ∈ B}; объединения семейства мн-в: Аi (i ∈ I) ∪Ai={x| i0 ∈ I, x ∈ Aio};

Пересечение: A ∩ B = {x|x ∈ A и x ∈ B};Пересечение семейства мн-в A: ∩iA Ai {x|x ∈ A, для всех i ∈ I};

Разность: A \ B = {x|x ∈ A и x ∉ B}; Дополнение: Ā = U\A {x|x ∈ U и x∉A }; симметричная разность: A ∆ B=(А\B) ∪(B/A)=(A∪B)\(A∩B).

1)Декартовым произведением мн-в A и Аn наз. мн-вом A1×A2×...×An={<a11,...,an>|a1 ∈ A1,..., an∈An}

2)Бинарным отношением на мн-вах A и B называется подмн-во A × B. К примеру, {(1, b), (1, c), (3, d), (9, d)} является бинарным отношением на наборах {1, 3, 9} и {b, c, d}, а {(i, j)|i, j ∈ N и i < j} это отношение "меньше", задано оно на N × N.

a) domr ={x| y, (x,y) ∈R}; б)ranr ={x| y, (y,x)∈R }; в)(-R) Ṝ=(A×B)\R; г)R-1={(x,y)| (y,x) ∈R}; д)R(x)={y| x∈X, (x,y) ∈R};е)R1⊆A×B и R2⊆B×C R1◦R2={(x,y)| z, (x,z) ∈R1 и (z,y) ∈R2};

отношение f наз ф-я из А в B , если domf =A и ranf ⊆B и для всех x,y1,y2. из (x,y1) ∈f и (x,y2) ∈f=>y1=y2.

Функция f : A → B наз. инъективной, если для любого b∈B сущ-ет не более 1го a∈A, f(a)=b.

Функция f : A → B наз. сюръективной (отображение на), если ran(f)=B.

Функция наз. биективной (взаимно-однозначная), если f и сюръективна и инъективна.

если f⊆A ×B и g⊆B×C ф-я, то их композиция f◦g⊆A×C, f◦g является функцией.

если f-биективная ф-я, то обратная ф-я f -1 определяется как обратное отн-е.