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

1 Автоматы с магазинной памятью (стековый автомат). Конфигурация. Языки распознаваемые автоматом с магазинной памят

Автомат с магазинной памятью (МП-автомат, магазинный автомат, стековый автомат) (pushdown automaton) — это шестёрка M = <Q, Σ, Γ, Δ,I,F> , где Q, Σ, Γ и Δ —конечные множества, I ⊆ Q, F ⊆ Q и Δ ⊆ (Q × × ) × (Q × ). Здесь Q — множество состояний, Σ — входной алфавит, Γ — алфавит магазинной памяти (stack alphabet), Δ — множество переходов (transition relation), элементы I называются начальными состояниями, элементы F — заключительными или допускающими состояниями. Пример. Пусть Q = { 1, 2} , Σ= { a, b} , Γ= { A, B} , Δ= {<<1,a,ε>, <1,A>>, <<1,b,ε>, <1,B>>, <<1,ε,ε>, <2,ε>>, <<2,a,A>, <2,ε>>, <<2,b,B>, <2,ε>>}. I = { 1} , F = { 2} .Тогда <Q, Σ, Γ, Δ,I,F> —МП-автомат. Конфигурацией МП-автомата называетcя любая тройка <q, w, α>, где q ∈ Q, w ∈ , α ∈ . Язык, распознаваемый МП-автоматом, — множество всех слов, допускаемых этим МП-автоматом. Язык, распознаваемый МП-автоматом M, обозначается L(M ). Пример. Пусть M — МП-автомат из предыдущего примера. Тогда L(M )= { | u ∈ } .

2 Автомвты с магазинной памятью с однобуквенными переходами.

Теорема. Каждый МП-автомат эквивалентен некоторому МП-автомату <Q, Σ, Γ, Δ,I,F >,где |Q| =2 и каждый переход <<p, x, β>,<q, γ>> ∈ Δ удовлетворяет требованиям |x| =1, |β| ≤1 и |γ| ≤ 2. Доказательство. Пусть исходным МП-автоматом распознаётся контекстно-свободный язык L ⊆ Σ∗ . Язык L −{ ε} порождается некоторой контекстно-свободной грамматикой <N,Σ,P,S>, в которой каждое правило имеет вид A → aγ,где A ∈ N , a ∈ Σ, γ ∈ и |γ| ≤ 2. Положим Γ= N , Q = { 1, 2} , I = { 1} , Δ= {<<2,a,A>,<2,γ>> | (A→ aγ)∈ P }∪{ <<1,a,ε>,<2,γ>> | (S → aγ)∈ P } ,F = { 1, 2} , если ε ∈ L, { 2} , если не ∈ L. Теорема . Каждый МП-автомат эквивалентен некоторому МП-автомату <Q, Σ, Γ, Δ,I,F >, в котором каждый переход <<p, x, β>,<q, γ>> ∈ Δ удовлетворяет требованиям |x| =1, |β| ≤ 1 и |γ| 1. Доказательство. Пусть исходным МП-автоматом распознаётся контекстно-свободный язык L ⊆ . Язык L −{ ε} порождается некоторой контекстно-свободной грамматикой G = <N, Σ,P,S>, в которой каждое правило имеет один из следующих трёх видов: A → a, A → aB, A → aBC,где A ∈ N , B ∈ N , C ∈ N , a ∈ Σ. Легко добиться того, чтобы B ≠ S и C ≠S в правилах грамматики G. Положим Q = N ∪{⊥} ,где ⊥ не ∈ N . Далее, положим Γ= N , I = { S} ,F = { S, ⊥} , если ε ∈ L, {⊥} , если не ∈ L. Δ= {<<A, a, ε>, <B, C>> | (A → aBC) ∈ P }∪ {<<A, a, ε>, <B, ε>> | (A → aB) ∈ P }∪ {<<A, a, D>, <D, ε>> | (A → a) ∈ P, D ∈ N }∪{<<A, a, ε>, <⊥ ,ε>> | (A → a) ∈ P } .

3 Алгоритм нахождения регулярного выражения для языка распознаваемого детерминированным конечным автоматом.

Теорема: Язык регулярен тогда и только тогда, когда он распознается конечным автоматом. Д-во: (если язык регулярен, то он принадлежит замыканию класса, содержащего однобуквенные языки и пустое мн-во, от-но объединения, конкатенации и звездочки Клини). Пусть имеется конечный автомат M=(K,∑,∆,s,F). Мы должны построить регулярное выражение R такое, что L(R)=L(M). Представим L(M) в виде объединения конечного числа более простых языков. Пусть K={q1….qn}, и s=q1. Для i,j=1,…,n и k=0,…,n будем определять R(i,j,k) как мн-во всех слов ∑*, которые могут перевести М из состояния qi в состояние qj без прохождения через промежуточное состояние с номером k+1 или более (конечные точки qi и qj могут иметь номера больше чем k). Когда k=n, мы получаем, что R(i,j,n)={ω∑*|<q,ω> |-*M<qj,e>}. Следовательно L(M)=U{R(1,j,n)|qiF}. Значит, если все мн-ва R(i,j,k) окажутся регулярными, то регулярным будет и L(M). То, что R(i,j,k) – регулярно, доказывается по индукции k. Для k=0 возможны 2случая: 1. если i≠j, то R(i,j,0)={a∑U{e}|<qi,a,qj>∆}. 2. если i=j, то R(i,j,0)={e}U{a∑U{e}|<qi,a,qj>∆}. Каждое из этих мн-в является конечным, а следовательно регулярным. Теперь предположим, что для всех i,j уже доказано, что R(i,j,k-1)-регулярные языки. Тогда R(i,j,k)= R(i,j,k-1)U R(i,k,k-1)R(k,k,k-1)* R(k,j,k-1). Данное равенство означает, что при движении из qi в qj без прохождения через состояния с номерами, большими чем k, у автомата М есть 2варианта: 1. идти из qi в qj через состояния с номерами, большими чем k-1; 2. идти из qi в qk, затем из qk в qk 0 или более раз, затем идти из qk в qj; каждый раз без прохождения через промежуточные состояния с номерами, большими k-1. Таким образом, язык R(i,j,k) регулярен при любых i,j,k. Значит, регулярным является и язык L(M). Теорема доказана, док-во и является алгоритмом нахождения регулярного выражения для языка распознаваемого детерминированным конечным автоматом.