Эквивалентность состояний ДКА — различия между версиями
Kirelagin (обсуждение | вклад) м |
Kirelagin (обсуждение | вклад) м |
||
Строка 18: | Строка 18: | ||
<font face="Times" size="3"> | <font face="Times" size="3"> | ||
− | *Если положить, что начальные состояния эквивалентны, то последовательно, переходя по одному символу из состояний, можем получить и другие пары эквивалентных состояний. Если же в одну из таких пар попадут допускающее состояния вместе с | + | *Если положить, что начальные состояния эквивалентны, то последовательно, переходя по одному символу из состояний, можем получить и другие пары эквивалентных состояний. Если же в одну из таких пар попадут допускающее состояния вместе с недопускающим, то такие <tex>q_i</tex> и <tex>q_j</tex> <em>неэквивалентны</em>. |
− | *Таким образом получим разбиение множества <tex> Q_1\cup Q_2</tex> на множества эквивалентных состояний. После этого проверим, что никакое из этих множеств не содержит допускающее и | + | *Таким образом получим разбиение множества <tex> Q_1\cup Q_2</tex> на множества эквивалентных состояний. После этого проверим, что никакое из этих множеств не содержит допускающее и недопускающее состояние одновременно, тогда автоматы эквивалентны. |
</font> | </font> | ||
== Литература == | == Литература == | ||
* Н.Н. Вояковская, А.Е. Москаль, Д.Ю. Булычев, А.А. Терехов - "Разработка компиляторов" | * Н.Н. Вояковская, А.Е. Москаль, Д.Ю. Булычев, А.А. Терехов - "Разработка компиляторов" |
Версия 23:08, 23 сентября 2011
Эквивалентность автоматов
- Определение: Два автомата и называются эквивалентными, если они распознают один и тот же язык над алфавитом .
- Определение: Два состояния и называются эквивалентными , если верно, что . Из этого следует, что если два состояния и эквивалентны, то и состояния и будут эквивалентными для . Кроме того, т.к. переход может возникнуть только для конечного состояния , то никакое допускающее(терминальное) состояние не может быть эквивалентно недопускающему состоянию. Нахождение классов эквивалентных состояний внутри автомата и их совмещение в одно состояние используется в быстром алгоритме Хопкрофта для минимизации автомата, работающий за .
- Определение: Слово различает два состояния , если . Также, если слово различает состояния и такие, что и , то слово различает состояния и . Нахождение пар различных состояний в автомате используется в алгоритме минимизации автомата, работающий за .
- Пример двух эквивалентных автоматов:
Состояния
и допускающие.
Проверка эквивалентности автоматов
- Если положить, что начальные состояния эквивалентны, то последовательно, переходя по одному символу из состояний, можем получить и другие пары эквивалентных состояний. Если же в одну из таких пар попадут допускающее состояния вместе с недопускающим, то такие и неэквивалентны.
- Таким образом получим разбиение множества на множества эквивалентных состояний. После этого проверим, что никакое из этих множеств не содержит допускающее и недопускающее состояние одновременно, тогда автоматы эквивалентны.
Литература
- Н.Н. Вояковская, А.Е. Москаль, Д.Ю. Булычев, А.А. Терехов - "Разработка компиляторов"