Условие принятия слова автоматом
Условие принятия слова автоматом — это правило, по которому после чтения всех символов входного слова проверяют состояние, в котором оказался автомат. Слово принимается, если это состояние является заключительным; иначе слово отвергается.
Формальное правило
У конечного автомата есть начальное состояние, переходы по символам алфавита и множество заключительных состояний. Обозначим через \(\delta^*(q_0,w)\) состояние, в которое автомат попадёт из начального состояния \(q_0\) после чтения всего слова \(w\).
Здесь \(F\) — множество заключительных состояний. Важно обработать всё слово: проверка состояния до чтения последнего символа ещё не определяет результат.
Пусть автомат начинает в состоянии \(q_0\), после чтения каждой буквы \(a\) меняет состояние: \(q_0\to q_1\to q_0\to q_1\). Заключительным является только \(q_1\). Для слова \(aaa\) последовательность состояний такова: \(q_0\to q_1\to q_0\to q_1\). После последнего символа автомат в \(q_1\), поэтому слово принимается. Для слова \(aa\) итоговое состояние \(q_0\), поэтому оно отвергается.
Заключительное состояние не обязано быть единственным и не обязано быть состоянием, в котором автомат останавливается раньше конца слова. Принятие проверяют только после чтения всех символов. Если заключительных состояний несколько, достаточно попасть в любое из них.
Автомат после чтения слова оказался в состоянии \(q_2\). Состояния \(q_1\) и \(q_3\) заключительные. Что происходит со словом?
Как проверять слово в задаче
- Записать начальное состояние.
- Читать символы слова слева направо и выполнять соответствующие переходы.
- После последнего символа определить итоговое состояние.
- Сравнить его с множеством заключительных состояний и записать «принято» или «отвергнуто».
Главное
- Слово принимается, если после чтения всех его символов автомат находится в заключительном состоянии.
- Формула критерия: \(\delta^*(q_0,w)\in F\).
- Проверять нужно итоговое состояние, а не промежуточное.