Детерминированные конечные автоматы — различия между версиями
DrozdovVA (обсуждение | вклад) |
DrozdovVA (обсуждение | вклад) м (→Примеры) |
||
Строка 16: | Строка 16: | ||
=== Примеры === | === Примеры === | ||
{| border="1" cellpadding="5" cellspacing="0" style="text-align:center" width=60% | {| border="1" cellpadding="5" cellspacing="0" style="text-align:center" width=60% | ||
− | |style="background:#ffffff"|Автомат, принимающий строки из чередующихся символов ''a'' и ''b'' | + | |style="background:#ffffff"|Автомат, принимающий непустые строки из чередующихся символов ''a'' и ''b''<small><br/>а)без «дьявольской вершины» <br/>б)с «дьявольской вершиной» (отмечена серым цветом) |
− | <small><br/>а)без «дьявольской вершины» | + | <tex>\bigcirc</tex> — нетерминальные состояния |
− | <br/>б)с «дьявольской вершиной» (отмечена серым цветом)</small> | + | <br/><tex>\circledcirc</tex> — терминальные состояния |
+ | <br/>Стрелка <tex>\downarrow</tex> указывает на стартовое состояние</small> | ||
|style="background:#ffffff"|[[Файл:Consp dka.png|300 px]] | |style="background:#ffffff"|[[Файл:Consp dka.png|300 px]] | ||
|- | |- | ||
Строка 28: | Строка 29: | ||
</div> | </div> | ||
|} | |} | ||
+ | |||
== Обозначения == | == Обозначения == | ||
Версия 03:54, 30 октября 2011
Содержание
Основные понятия
Определение: |
Детерминированный конечный автомат (ДКА) — набор из пяти элементов | , где — алфавит, — множество состояний автомата, — начальное состояние автомата, — множество допускающих состояний автомата, — функция переходов.
Процесс допуска
Опишем процесс допуска автоматом слова
. Изначально автомат находится в стартовом состоянии . При считывании очередного символа автомат переходит в состояние , где — текущее состояние автомата. Процесс продолжается до тех пор, пока не будет достигнут конец входного слова.Определение: |
Будем говорить, что автомат допускает слово, если после окончания описанного выше процесса с этим словом автомат окажется в допускающем состоянии. |
Замечание. Если в какой-то момент из текущего состояния нет перехода по считанному символу, то будем считать, что автомат не допускает данное слово. При реализации вместо отдельного рассмотрения данного случая иногда удобно вводить фиктивную нетерминальную «дьявольскую вершину», из которой любой переход ведет в неё же саму, и заменить все несуществующие переходы на переходы в «дьявольскую вершину».
Примеры
Автомат, принимающий непустые строки из чередующихся символов a и b а)без «дьявольской вершины» б)с «дьявольской вершиной» (отмечена серым цветом)
|
|
Автомат для поиска образца в тексте для строки ababb |
Обозначения
Определение: | ||||||||
Мгновенное описание (конфигурация) - , где q – текущее состояние, α – оставшиеся символы.</td></tr> |