Алгоритм Бржозовского — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
(Пример работы)
Строка 24: Строка 24:
 
===Корректность===
 
===Корректность===
 
==Пример работы==
 
==Пример работы==
 +
* Исходный НКА
 +
[[Файл:Fa.png|Исходный НКА]]
 +
* Первый шаг алгоритма
 +
[[Файл:Rfa.png|Первый шаг]]
 +
* Второй шаг алгоритма
 +
[[Файл:Drfa.png|Второй шаг]]
 +
* Третий шаг алгоритма
 +
[[Файл:Rdrfa.png|Третий шаг]]
 +
* Заключительный шаг алгоритма
 +
[[Файл:Drdrfa.png|Заключительный шаг]]
 +
 
== См. также ==
 
== См. также ==
 
*[[Минимизация ДКА, алгоритм за O(n^2) с построением пар различимых состояний]]
 
*[[Минимизация ДКА, алгоритм за O(n^2) с построением пар различимых состояний]]

Версия 00:58, 27 декабря 2014

Эта статья находится в разработке!
Задача:
Пусть дан автомат [math]\mathcal{A}[/math]. Требуется построить автомат [math]\mathcal{A}_{min}[/math] с наименьшим количеством состояний, распознающий тот же язык, что и [math]\mathcal{A}[/math].


Алгоритм

Описание

Алгоритм минимизации конечных автоматов Бржозовского (Janusz A. (John) Brzozowski) выделяется, по крайней мере, следующими качествами:

Обладая обычными процедурами обращения [math]rev[/math] и детерминизации [math]det[/math] конечного автомата, мы, с помощью идеи Бржозовского, можем немедленно приступить к минимизации заданного автомата. Для этого надо дважды провести его через обе вышеуказанные процедуры:

[math]mFA = det(rev(det(rev(FA))))[/math], где

  • [math]FA[/math] это исходный КА,
  • [math]rev[/math] это процедура обращения КА,
  • [math]det[/math] это процедура детерминизации КА,
  • [math]mFA[/math] это минимизированный КА.

Корректность

Пример работы

  • Исходный НКА

Исходный НКА

  • Первый шаг алгоритма

Первый шаг

  • Второй шаг алгоритма

Второй шаг

  • Третий шаг алгоритма

Третий шаг

  • Заключительный шаг алгоритма

Заключительный шаг

См. также

Литература