Эквивалентность состояний ДКА — различия между версиями
(→Эквивалентность автоматов) |
(→Эквивалентность автоматов) |
||
Строка 8: | Строка 8: | ||
*'''Определение:''' Слово <tex>z \in \Sigma^*</tex> различает два состояния <tex>(s_i \nsim s_j)</tex>, если <tex>\delta(s_i, z)\in T \Leftrightarrow \delta(s_j, z)\notin T</tex>. Также, если слово <tex>z</tex> различает состояния <tex>t_1</tex> и <tex>t_2</tex> такие, что <tex>t_1=\delta(q_1, a)</tex> и <tex>t_2=\delta(q_2, a)</tex>, то слово <tex>aw</tex> различает состояния <tex>q_1</tex> и <tex>q_2</tex>. Нахождение пар различных состояний в автомате используется в алгоритме минимизации автомата, работающий за <tex>O(n^2)</tex>. | *'''Определение:''' Слово <tex>z \in \Sigma^*</tex> различает два состояния <tex>(s_i \nsim s_j)</tex>, если <tex>\delta(s_i, z)\in T \Leftrightarrow \delta(s_j, z)\notin T</tex>. Также, если слово <tex>z</tex> различает состояния <tex>t_1</tex> и <tex>t_2</tex> такие, что <tex>t_1=\delta(q_1, a)</tex> и <tex>t_2=\delta(q_2, a)</tex>, то слово <tex>aw</tex> различает состояния <tex>q_1</tex> и <tex>q_2</tex>. Нахождение пар различных состояний в автомате используется в алгоритме минимизации автомата, работающий за <tex>O(n^2)</tex>. | ||
− | '''Пример двух эквивалентных автоматов:''' | + | *'''Пример двух эквивалентных автоматов:''' |
− | + | <math> | |
+ | \begin{array}{|c|c|c|} | ||
+ | \hline | ||
+ | Q\diagdown \Sigma & a & b\\ | ||
+ | \hline\hline A & B & C\\ | ||
+ | \hline B & B & D\\ | ||
+ | \hline C & B & C\\ | ||
+ | \hline D & B & E\\ | ||
+ | \hline E & B & C\\ | ||
+ | \hline F & E & E\\ | ||
\hline | \hline | ||
+ | \end{array} | ||
+ | </math> <tex>\sim</tex> <math> | ||
+ | \begin{array}{|c|c|c|} | ||
+ | \hline | ||
Q\diagdown \Sigma & a & b\\ | Q\diagdown \Sigma & a & b\\ | ||
− | \hline | + | \hline\hline - & & \\ |
\hline B & B & D\\ | \hline B & B & D\\ | ||
\hline C & B & C\\ | \hline C & B & C\\ | ||
\hline D & B & E\\ | \hline D & B & E\\ | ||
\hline E & B & C\\ | \hline E & B & C\\ | ||
− | \hline | + | \hline - & & \\ |
\hline | \hline | ||
\end{array} | \end{array} | ||
− | |||
− |
Версия 08:18, 1 октября 2010
Эквивалентность автоматов
- Определение: Два автомата и называются эквивалентными, если они распознают один и тот же язык над алфавитом .
- Определение: Два состояния и называются эквивалентными , если верно, что . Из этого следует, что если два состояния и эквивалентны, то и состояния и будут эквивалентными для . Кроме того, т.к. переход может возникнуть только для конечного состояния , то никакое допускающее(терминальное) состояние не может быть эквивалентно не допускающему состоянию. Нахождение классов эквивалентных состояний внутри автомата и их совмещение в одно состояние используется в быстром алгоритме Хопкрофта для минимизации автомата, работающий за .
- Определение: Слово различает два состояния , если . Также, если слово различает состояния и такие, что и , то слово различает состояния и . Нахождение пар различных состояний в автомате используется в алгоритме минимизации автомата, работающий за .
- Пример двух эквивалентных автоматов:
<math>
\begin{array}{|c|c|c|} \hline Q\diagdown \Sigma & a & b\\ \hline\hline - & & \\ \hline B & B & D\\ \hline C & B & C\\ \hline D & B & E\\ \hline E & B & C\\ \hline - & & \\ \hline \end{array}