Алгоритм Бржозовского — различия между версиями
Строка 7: | Строка 7: | ||
==Алгоритм== | ==Алгоритм== | ||
===Описание=== | ===Описание=== | ||
− | Алгоритм минимизации конечных автоматов Бржозовского (Janusz A. (John) Brzozowski) выделяется, по крайней мере, следующими качествами: | + | Алгоритм минимизации конечных [[Детерминированные_конечные_автоматы|автоматов]] Бржозовского (Janusz A. (John) Brzozowski) выделяется, по крайней мере, следующими качествами: |
* Он элегантен и весьма оригинален. | * Он элегантен и весьма оригинален. | ||
Строка 13: | Строка 13: | ||
* Он работает даже с недетерминированными конечными автоматами. | * Он работает даже с недетерминированными конечными автоматами. | ||
− | Обладая обычными процедурами обращения <tex>rev</tex> и детерминизации <tex>det</tex> конечного автомата, мы, с помощью идеи Бржозовского, можем немедленно приступить к минимизации заданного автомата. Для этого надо дважды провести его через обе вышеуказанные процедуры: | + | Обладая обычными процедурами обращения <tex>rev</tex> и детерминизации <tex>det</tex> конечного [[Детерминированные_конечные_автоматы|автомата]], мы, с помощью идеи Бржозовского, можем немедленно приступить к минимизации заданного [[Детерминированные_конечные_автоматы|автомата]]. Для этого надо дважды провести его через обе вышеуказанные процедуры: |
<tex>mFA = det(rev(det(rev(FA))))</tex>, где | <tex>mFA = det(rev(det(rev(FA))))</tex>, где |
Версия 05:50, 18 ноября 2014
Эта статья находится в разработке!
Задача: |
Пусть дан автомат . Требуется построить автомат с наименьшим количеством состояний, распознающий тот же язык, что и . |
Содержание
Алгоритм
Описание
Алгоритм минимизации конечных автоматов Бржозовского (Janusz A. (John) Brzozowski) выделяется, по крайней мере, следующими качествами:
- Он элегантен и весьма оригинален.
- Он эффективен.
- Он работает даже с недетерминированными конечными автоматами.
Обладая обычными процедурами обращения автомата, мы, с помощью идеи Бржозовского, можем немедленно приступить к минимизации заданного автомата. Для этого надо дважды провести его через обе вышеуказанные процедуры:
и детерминизации конечного, где
- это исходный КА,
- это процедура обращения КА,
- это процедура детерминизации КА,
- это минимизированный КА.
Корректность
Пример работы
Псевдокод
См. также
- Минимизация ДКА, алгоритм за O(n^2) с построением пар различимых состояний
- Минимизация ДКА, алгоритм Хопкрофта (сложность O(n log n))