Составители:
12
поэтому произвольный КА стремятся преобразовать в ДКА. При построении
компиляторов чаще всего используют полностью определенный ДКА.
Алгоритм преобразования КА к детерминированному виду
Алгоритм преобразования произвольного КА в
эквивалентный ему ДКА заключается в следующем:
1. Множество состояний автомата строится из комбинаций всех
состояний множества автомата . Если , - состояния
автомата , , то всего будет состояний автомата .
Обозначим их так: , .
2. Функция переходов автомата строится так:
, где , так, что .
3. Обозначим .
4. Пусть , - конечные состояния автомата , ,
тогда множество конечных состояний автомата строится из всех
состояний, имеющих вид , .
Доказано, что описанный выше алгоритм строит ДКА, эквивалентный
заданному произвольному КА.
После построения из нового ДКА необходимо удалить все недостижимые
состояния.
Определение: Состояние КА называется
недостижимым, если ни при какой входной цепочке невозможен
переход автомата из начального состояния в состояние . Иначе состояние
называется достижимым.
Алгоритм удаления недостижимых состояний
Для работы алгоритма удаления недостижимых состояний используются два
множества: множество достижимых состояний и множество текущих
активных состояний на каждом шаге алгоритма . Результатом работы
алгоритма является полное множество достижимых состояний . Рассмотрим
работу алгоритма по шагам:
Шаг 1. ; ; .
Шаг 2. .
Шаг 3. , : .
Шаг 4. Если , то выполнение алгоритма закончено, иначе
, и перейти к шагу 3.
После выполнения данного алгоритма удаления недостижимых состояний из
КА можно исключить все состояния, не входящие в построенное множество .
Пример преобразования КА к детерминированному виду
Рассмотрим работу алгоритма преобразования произвольного КА в ДКА на
примере автомата
,
где , , .
поэтому произвольный КА стремятся преобразовать в ДКА. При построении компиляторов чаще всего используют полностью определенный ДКА. Алгоритм преобразования КА к детерминированному виду Алгоритм преобразования произвольного КА в эквивалентный ему ДКА заключается в следующем: 1. Множество состояний автомата строится из комбинаций всех состояний множества автомата . Если , - состояния автомата , , то всего будет состояний автомата . Обозначим их так: , . 2. Функция переходов автомата строится так: , где , так, что . 3. Обозначим . 4. Пусть , - конечные состояния автомата , , тогда множество конечных состояний автомата строится из всех состояний, имеющих вид , . Доказано, что описанный выше алгоритм строит ДКА, эквивалентный заданному произвольному КА. После построения из нового ДКА необходимо удалить все недостижимые состояния. Определение: Состояние КА называется недостижимым, если ни при какой входной цепочке невозможен переход автомата из начального состояния в состояние . Иначе состояние называется достижимым. Алгоритм удаления недостижимых состояний Для работы алгоритма удаления недостижимых состояний используются два множества: множество достижимых состояний и множество текущих активных состояний на каждом шаге алгоритма . Результатом работы алгоритма является полное множество достижимых состояний . Рассмотрим работу алгоритма по шагам: Шаг 1. ; ; . Шаг 2. . Шаг 3. , : . Шаг 4. Если , то выполнение алгоритма закончено, иначе , и перейти к шагу 3. После выполнения данного алгоритма удаления недостижимых состояний из КА можно исключить все состояния, не входящие в построенное множество . Пример преобразования КА к детерминированному виду Рассмотрим работу алгоритма преобразования произвольного КА в ДКА на примере автомата , где , , . 12
Страницы
- « первая
- ‹ предыдущая
- …
- 10
- 11
- 12
- 13
- 14
- …
- следующая ›
- последняя »