
- •1 Автоматы с магазинной памятью (стековый автомат). Конфигурация. Языки распознаваемые автоматом с магазинной памят
- •2 Автомвты с магазинной памятью с однобуквенными переходами.
- •3 Алгоритм нахождения регулярного выражения для языка распознаваемого детерминированным конечным автоматом.
- •4 Деление контекстно-свободных языков.
- •5 Детерминированный конечный автомат. Языки распознаваемые детерминированным автоматом. Примеры.
- •6 Инварианты контекстно-свободных языков.
- •7 Классы грамматик. Понятие контекстно-свободная граматика (cfg).
- •8 Конечные автоматы и регулярные выражения.
- •9 Конечные автоматы. Детерминированный конечный автомат. Конфигурация.
- •10 Конечные представления языков. Регулярные выражения и регулярные языки.
- •11 Лемма о расрастании (pumping lemma) контекстно-свободных грамматик.
- •12 Метод перевода контекстно-свободных грамматик (cfg) на автоматы со стеком.
- •13 Минимизация числа состоянии для конечных автоматов. Примеры.
- •14 Недтерминированный конечный автомат. Языки распознаваемые недетерминированным автоматом.
- •16 Основные виды бинарных отношений. Рефлексвное и транзитивное замыкание.
- •17 Пересечение и дополнение контекстно-свободных языков.
- •18 Пересечение контекстно-свободного языка с автоматным языком.
- •19 Понятие языка и алфавита, операции над языками.
- •21 Свойсва контекстно-свободных языков (cfl). Примеры. Теорема о контекстно-свободном языке.
- •22 Свойства замкнутости класа контекстно-свободных языков.
- •23 Свойства замкнутости класса линейных языков.
- •24 Свойства замкнутости регулярных языков.
- •25 Теорема Майхилла-Нероуда.
- •26 Теорема о накачке (pumping).
- •27 Теорема о разрастании (накачке - pumping) для (cfl) контекстно-свободных языков.
- •28 Теорема о существовании эвивалентных автоматов.
- •29 Характеризация контекстно-свободных грамматик. Взаимо связь между автоматами со стеком и контекстно-свободными граматиками.
- •30 Языки, не являющиеся регулярными. Примеры. Два свойства регулярных языков.
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)|qiF}. Значит, если все мн-ва 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). Теорема доказана, док-во и является алгоритмом нахождения регулярного выражения для языка распознаваемого детерминированным конечным автоматом.