ВУЗ:
Составители:
Bc → F - из состояния В при поступлении на вход терминала c автомат переходит в
заключительное состояние F;
Bc → A - из состояния В при поступлении на вход терминала c автомат переходит в
состояние А;
Aa → A - в состоянии А при поступлении на вход терминала а автомат остается в этом
же состоянии А;
Ab → S - из состояния A при поступлении на вход терминала b автомат переходит в
состояние S.
Полученный недетерминированный конечный автомат распознает цепочки языка,
порождаемые праворекурсивной грамматикой G.
Теорема. Для произвольного конечного автомата существует эквивалентная
праволинейная грамматика.
Доказательство. Каждому состоянию произвольного автомата поставлен в соответствие
нетерминал грамматики, причем начальному состоянию будет соответствовать аксиома.
Тогда для каждой команды Ac → B в множество правил грамматики включим правило A
→ cB, причем в случае, если B - заключительное состояние, добавим правило A → c.
Эквивалентность исходного конечного автомата и построенной грамматики очевидна.
Теорема. Для каждой леворекурсивной грамматики существует эквивалентный
конечный автомат.
Доказательство. Каждому нетерминальному символу произвольной леворекурсивной
грамматики поставим в соответствие состояние конечного автомата, причем состояние,
соответствующее аксиоме S, сделаем заключительным. Добавим еще одно состояние N и
сделаем его начальным состоянием.
Каждому правилу грамматики A → Ba поставим в соответствие команду автомата Вa →
A. Тогда каждому выводу в грамматике:
S⇒A
1
a
k
⇒A
2
a
k-1
a
k
⇒ ... ⇒A
k-1
a
2
a
3
...a
k
⇒ a
1
a
2
. . . a
k
однозначно соответствует
следующая последовательность команд построенного автомата A:
Na
1
→ A
k-1
; . . .; A
2
a
k-1
→ A
1
; A
1
a
k
→ S.
Таким образом, язык L(G) = L(A).
Теорема. Для произвольного конечного автомата существует эквивалентная
леворекурсивная грамматика.
Доказательство. Каждому состоянию произвольного автомата поставим в соответствие
нетерминальный символ грамматики, добавим нетерминал S и сделаем его аксиомой.
Каждой команде Aa → B в множество правил включим соответствующее правило B →
Aa, причем в том случае, если B - заключительное состояние, дополнительно введем правило
S → Aa, а если A - начальное состояние, то дополнительно введем правило B → a.
Тогда последовательности команд:
A
0
a
1
→ A
1
; A
1
a
2
→ A
2
; . . . ; A
k-1
a
k
→ F
соответствует следующий вывод:
S ⇒ A
k-1
a
k
⇒ ... ⇒ A
1
a
2
a
3
...a
k
⇒ a
1
a
2
a
3
...a
k
.
Важной особенностью автоматных грамматик является возможность представления их с
помощью конечных графов. По графу грамматики легко отыскивается вывод нужной
цепочки.
Bc → F - из состояния В при поступлении на вход терминала c автомат переходит в
заключительное состояние F;
Bc → A - из состояния В при поступлении на вход терминала c автомат переходит в
состояние А;
Aa → A - в состоянии А при поступлении на вход терминала а автомат остается в этом
же состоянии А;
Ab → S - из состояния A при поступлении на вход терминала b автомат переходит в
состояние S.
Полученный недетерминированный конечный автомат распознает цепочки языка,
порождаемые праворекурсивной грамматикой G.
Теорема. Для произвольного конечного автомата существует эквивалентная
праволинейная грамматика.
Доказательство. Каждому состоянию произвольного автомата поставлен в соответствие
нетерминал грамматики, причем начальному состоянию будет соответствовать аксиома.
Тогда для каждой команды Ac → B в множество правил грамматики включим правило A
→ cB, причем в случае, если B - заключительное состояние, добавим правило A → c.
Эквивалентность исходного конечного автомата и построенной грамматики очевидна.
Теорема. Для каждой леворекурсивной грамматики существует эквивалентный
конечный автомат.
Доказательство. Каждому нетерминальному символу произвольной леворекурсивной
грамматики поставим в соответствие состояние конечного автомата, причем состояние,
соответствующее аксиоме S, сделаем заключительным. Добавим еще одно состояние N и
сделаем его начальным состоянием.
Каждому правилу грамматики A → Ba поставим в соответствие команду автомата Вa →
A. Тогда каждому выводу в грамматике:
S⇒A1ak⇒A2ak-1ak⇒ ... ⇒Ak-1a2a3...ak ⇒ a1a2 . . . ak однозначно соответствует
следующая последовательность команд построенного автомата A:
Na1 → Ak-1; . . .; A2ak-1 → A1; A1ak → S.
Таким образом, язык L(G) = L(A).
Теорема. Для произвольного конечного автомата существует эквивалентная
леворекурсивная грамматика.
Доказательство. Каждому состоянию произвольного автомата поставим в соответствие
нетерминальный символ грамматики, добавим нетерминал S и сделаем его аксиомой.
Каждой команде Aa → B в множество правил включим соответствующее правило B →
Aa, причем в том случае, если B - заключительное состояние, дополнительно введем правило
S → Aa, а если A - начальное состояние, то дополнительно введем правило B → a.
Тогда последовательности команд:
A0a1 → A1; A1a2 → A2; . . . ; Ak-1ak → F
соответствует следующий вывод:
S ⇒ Ak-1ak ⇒ ... ⇒ A1a2a3...ak ⇒ a1a2a3...ak.
Важной особенностью автоматных грамматик является возможность представления их с
помощью конечных графов. По графу грамматики легко отыскивается вывод нужной
цепочки.
Страницы
- « первая
- ‹ предыдущая
- …
- 38
- 39
- 40
- 41
- 42
- …
- следующая ›
- последняя »
