Изменения

Перейти к: навигация, поиск

Локальные автоматы

4 байта убрано, 17:47, 18 апреля 2018
Пример работы
Рассмотрим регулярное выражение <tex>e = (a(ab)^*)^* + (ba)^*</tex>.
1. * Линеаризуем его путем добавления индекса к каждому символу:
:<tex>e'=(a_1(a_2b_3)^*)^*+(b_4a_5)^*</tex>.
2. * Составим множества <tex>P</tex>, <tex>S</tex>, и <tex>N</tex>:
:<tex>P(e')=\{a_1,b_4\}</tex>,<br />
:<tex>S(e')=\{a_1,b_3,a_5\}</tex>,<br />
Так как пустое слово принадлежит языку, то <math>\Lambda(e')=\{\varepsilon\}</math>.
3. * Автомат локального языка <tex>L'=P'B^*\cap B^*S'\setminus B^*(B^2\setminus N')B^*</tex> содержит начальное состояние, обозначенное как <tex>1</tex>, и состояния для каждого из пяти символов алфавита <tex>B=\{a_1, a_2, b_3, b_4, a_5\}</tex>.<br>
В построенном автомате существует переход из <tex>1</tex> (соответствующего пустой строке) в два состояния из <tex>P'</tex>, переход из <tex>a</tex> в <tex>b</tex> если <tex>ab \in N'</tex>, три состояния <math>S'</math> терминальные (как и состояние <tex>1</tex>).
4. * Получим автомат для <tex>L(e)</tex>, удалив индексы, добавленные на первом этапе.
== См. также ==
200
правок

Навигация