<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://neerc.ifmo.ru/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=78.25.120.95&amp;*</id>
		<title>Викиконспекты - Вклад участника [ru]</title>
		<link rel="self" type="application/atom+xml" href="http://neerc.ifmo.ru/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=78.25.120.95&amp;*"/>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/78.25.120.95"/>
		<updated>2026-04-27T19:53:22Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%91%D1%80%D0%B6%D0%BE%D0%B7%D0%BE%D0%B2%D1%81%D0%BA%D0%BE%D0%B3%D0%BE&amp;diff=42943</id>
		<title>Алгоритм Бржозовского</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%91%D1%80%D0%B6%D0%BE%D0%B7%D0%BE%D0%B2%D1%81%D0%BA%D0%BE%D0%B3%D0%BE&amp;diff=42943"/>
				<updated>2014-12-27T14:16:49Z</updated>
		
		<summary type="html">&lt;p&gt;78.25.120.95: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{В разработке}}&lt;br /&gt;
{{Задача&lt;br /&gt;
|definition = &lt;br /&gt;
Пусть дан [[Детерминированные_конечные_автоматы|автомат]] &amp;lt;tex&amp;gt;\mathcal{A}&amp;lt;/tex&amp;gt;. Требуется построить автомат &amp;lt;tex&amp;gt;\mathcal{A}_{min}&amp;lt;/tex&amp;gt; с наименьшим количеством состояний, распознающий тот же язык, что и &amp;lt;tex&amp;gt;\mathcal{A}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Алгоритм==&lt;br /&gt;
===Описание===&lt;br /&gt;
Алгоритм минимизации конечных [[Детерминированные конечные автоматы|автоматов]] Бржозовского (Janusz A. (John) Brzozowski) выделяется, по крайней мере, следующими качествами:&lt;br /&gt;
&lt;br /&gt;
* Он элегантен и весьма оригинален.&lt;br /&gt;
* Он эффективен.&lt;br /&gt;
* Он работает даже с [[Недетерминированные конечные автоматы|недетерминированными конечными автоматами]].&lt;br /&gt;
&lt;br /&gt;
Обладая обычными процедурами обращения &amp;lt;tex&amp;gt;\operatorname{rev}&amp;lt;/tex&amp;gt; и детерминизации &amp;lt;tex&amp;gt;\operatorname{det}&amp;lt;/tex&amp;gt; конечного [[Детерминированные конечные автоматы|автомата]], мы, с помощью идеи Бржозовского, можем немедленно приступить к минимизации заданного [[Детерминированные конечные автоматы|автомата]]. Для этого надо дважды провести его через обе вышеуказанные процедуры:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;mFA = \operatorname {det}(\operatorname{rev}(\operatorname{det}(\operatorname{rev}(FA))))&amp;lt;/tex&amp;gt;, где&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tex&amp;gt;FA&amp;lt;/tex&amp;gt; это исходный КА,&lt;br /&gt;
* &amp;lt;tex&amp;gt;\operatorname{rev}&amp;lt;/tex&amp;gt; это процедура обращения КА,&lt;br /&gt;
* &amp;lt;tex&amp;gt;\operatorname{det}&amp;lt;/tex&amp;gt; это процедура детерминизации КА,&lt;br /&gt;
* &amp;lt;tex&amp;gt;mFA&amp;lt;/tex&amp;gt; это минимизированный КА.&lt;br /&gt;
&lt;br /&gt;
===Корректность===&lt;br /&gt;
[http://www.researchgate.net/publication/255626373_Split_and_join_for_minimizing__Brzozowski%27s_algorithm]&lt;br /&gt;
&lt;br /&gt;
==Пример работы==&lt;br /&gt;
# Исходный [[Недетерминированные конечные автоматы|НКА]] (&amp;lt;tex&amp;gt;FA&amp;lt;/tex&amp;gt;):&amp;lt;br&amp;gt;[[Файл:Fa.png|Исходный НКА]]&lt;br /&gt;
# Первый шаг алгоритма (&amp;lt;tex&amp;gt;\operatorname{rev}(FA)&amp;lt;/tex&amp;gt;):&amp;lt;br&amp;gt;[[Файл:Rfa.png|Первый шаг]]&lt;br /&gt;
# Второй шаг алгоритма (&amp;lt;tex&amp;gt;\operatorname{det}(\operatorname{rev}(FA))&amp;lt;/tex&amp;gt;):&amp;lt;br&amp;gt;[[Файл:Drfa.png|Второй шаг]]&amp;lt;br&amp;gt;&amp;lt;tex&amp;gt;\operatorname{det}&amp;lt;/tex&amp;gt; переименовывает состояния, после этого &amp;lt;tex&amp;gt;0&amp;lt;/tex&amp;gt; всегда является начальным состоянием&lt;br /&gt;
# Третий шаг алгоритма (&amp;lt;tex&amp;gt;\operatorname{rev}(\operatorname{det}(\operatorname{rev}(FA)))&amp;lt;/tex&amp;gt;):&amp;lt;br&amp;gt;[[Файл:Rdrfa.png|Третий шаг]]&amp;lt;br&amp;gt;После выполнения этого шага алгоритма оба состояния &amp;lt;tex&amp;gt;2&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;3&amp;lt;/tex&amp;gt; являются начальными.&lt;br /&gt;
# Заключительный шаг алгоритма (&amp;lt;tex&amp;gt;\operatorname{det}(\operatorname{rev}(\operatorname{det}(\operatorname{rev}(FA))))&amp;lt;/tex&amp;gt;):&amp;lt;br&amp;gt;[[Файл:Drdrfa.png|Заключительный шаг]]&lt;br /&gt;
&lt;br /&gt;
== Заключение ==&lt;br /&gt;
Самым эффективным алгоритмом минимизации принято считать [[Минимизация ДКА, алгоритм Хопкрофта (сложность O(n log n))|алгоритм Хопкрофта]], который, как и прочие традиционные алгоритмы, работает только с [[Детерминированные_конечные_автоматы|ДКА]]. Его асимптотическое время выполнения зависит от логарифма исходных данных. С другой стороны очевидно, что алгоритм Бржозовского в худшем случае будет обладать экспоненциальным временем выполнения, ведь этого требует процедура детерминизации, выполняемая дважды. На практике же наблюдается парадокс, алгоритм Бржозовского во многих случаях опережает прочие подходы к минимизации, включая и [[Минимизация ДКА, алгоритм Хопкрофта (сложность O(n log n))|алгоритм Хопкрофта]]. В [http://citeseer.uark.edu:8080/citeseerx/viewdoc/summary;jsessionid=EF3DD7271F6E8907A154A540D93F2B0C?doi=10.1.1.59.8276 работе], сравнивающей оба алгоритма, показано, что алгоритм Бржозовского оказывается эффективнее [[Минимизация ДКА, алгоритм Хопкрофта (сложность O(n log n))|алгоритма Хопкрофта]] для автоматов с большим числом переходов.&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
*[[Минимизация ДКА, алгоритм за O(n^2) с построением пар различимых состояний]]&lt;br /&gt;
*[[Минимизация ДКА, алгоритм Хопкрофта (сложность O(n log n))]]&lt;br /&gt;
&lt;br /&gt;
==Литература==&lt;br /&gt;
# [http://sovietov.com/txt/minfa/minfa.html Алгоритм Бржозовского для минимизации конечного автомата]&lt;br /&gt;
# [http://citeseer.uark.edu:8080/citeseerx/viewdoc/summary;jsessionid=EF3DD7271F6E8907A154A540D93F2B0C?doi=10.1.1.59.8276 Deian Tabakov, Moshe Y. Vardi. Experimental evaluation of classical automata constructions]&lt;br /&gt;
[[Категория: Теория формальных языков]]&lt;br /&gt;
[[Категория: Автоматы и регулярные языки]]&lt;/div&gt;</summary>
		<author><name>78.25.120.95</name></author>	</entry>

	</feed>