Эквивалентность состояний ДКА — различия между версиями
|  (→Эквивалентность автоматов) |  (→Эквивалентность автоматов) | ||
| Строка 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}
