Изменения

Перейти к: навигация, поиск

Детерминированные конечные автоматы

721 байт добавлено, 05:26, 30 октября 2011
Нет описания правки
[[Категория: Теория формальных языков]]
== Основные понятия ==
{{Определение
'''Детерминированный конечный автомат (ДКА)''' — набор из пяти элементов <tex>\langle \Sigma , Q, s \in Q, T \subset Q, \delta : Q \times \Sigma \to Q \rangle</tex>, где <tex>\Sigma</tex> — алфавит, <tex>Q</tex> — множество состояний автомата, <tex>s</tex> — начальное состояние автомата, <tex>T</tex> — множество допускающих состояний автомата, <tex>\delta</tex> — функция переходов.
}}
 
=== Процесс допуска ===
Опишем процесс допуска автоматом слова <tex>p</tex>. Изначально автомат находится в стартовом состоянии <tex>s</tex>. При считывании очередного символа <tex>p_i</tex> автомат переходит в состояние <tex>\delta(q, p_i)</tex>, где <tex>q</tex> — текущее состояние автомата. Процесс продолжается до тех пор, пока не будет достигнут конец входного слова.
|}
== Обозначения == {{Определение|definition=Мгновенное описание (конфигурация) - <q , α>, где q – текущее состояние, α – оставшиеся символы.}} Для удобства можно ввести следующие обозначения: 1.Переход за 1 шаг:* <tex>\langle q, \alpha \rangle \vdash \langle p, \beta \rangle</tex>, если:** <tex>\alpha = c\beta</tex>** <tex>\delta (q, c)=p </tex>2.Переход за 0 или более шагов:* <tex>\langle q, \alpha \rangle \vdash^* \langle p, \beta \rangle</tex>, если <tex>\exists n</tex>:** <tex>\langle q, c_1 c_2 c_3 ...c_n\beta \rangle \vdash \langle u_1, c_2 c_3 ...c_n\beta \rangle \vdash \langle u_2, c_3 ...c_n\beta \rangle ...\vdash \langle u_{n-1}, c_n\beta \rangle \vdash \langle p, \beta \rangle</tex> === Автоматные языки ===
{{Определение
|definition=
'''Мгновенное описание (конфигурация)''' — пара <tex>L(\mathcal{A})=\{\alpha| \langle sq, \alpha \rangle \vdash^* \langle t</tex>, \varepsilon \rangle t \in T\}где <tex>q</tex> --- язык автомата – текущее состояние, <tex>\mathcal{A}alpha</tex>– оставшиеся символы.
}}
 ПримерБудем говорить, что конфигурация <tex>\langle p, \beta \rangle</tex> выводима из <tex>\langle q, \alpha \rangle</tex> за 1 шаг <tex>(\langle q, \alpha \rangle \vdash \langle p, \beta \rangle)</tex>, если:* <tex>\alpha = c\beta</tex>Автомат* <tex>\delta (q, c)=p </tex>Будем говорить, допускающий слова над алфавитом что конфигурация <tex>\langle p, \beta \rangle</tex> выводима из символов a и b<tex>\langle q, допускающий слова в которых перед каждым символом b идёт символ a. \alpha \rangle</tex> за конечное число шагов <tex>(a|ab\langle q, \alpha \rangle \vdash^* \langle p, \beta \rangle)*</tex>, если: [[Файл:DKA_2<tex>\langle q, c_1 c_2 c_3 ...c_n\beta \rangle \vdash \langle u_1, c_2 c_3 ...c_n\beta \rangle \vdash \langle u_2, c_3 ...c_n\beta \rangle ...jpg]]\vdash \langle u_{n-1}, c_n\beta \rangle \vdash \langle p, \beta \rangle</tex>
{{Лемма
<tex>\langle q, \alpha\beta \rangle \vdash^* \langle p, \beta \rangle \vdash^* \langle r, \varepsilon \rangle.</tex>
}}
{{Определение
|definition=
Множество <tex>L(\mathcal{A})=\{\alpha| \langle s, \alpha \rangle \vdash^* \langle t, \varepsilon \rangle t \in T\}</tex> называется '''языком автомата <tex>\mathcal{A}</tex>'''. Множество языков всех автоматов образует множество '''автоматных языков''' <tex>Aut</tex>.
}}
== Способы представления автомата ==
* Диаграмма переходов — граф, в котором состояниям соответствуют вершины, а рёбрам — переходы между состояниям
* Таблица переходов <tex>T (|Q| \times |\Sigma|)</tex>, дающая табличное представление функции <tex>\delta</tex>.
== Способ хранения автомата См. также ==* [[Недетерминированные конечные автоматы]]* [[Автомат для поиска образца в тексте]]* [[Алгоритм Ахо-Корасик]]
[[Файл== Литература ==* ''Хопкрофт Д., Мотвани Р., Ульман Д.'' — '''Введение в теорию автоматов, языков и вычислений''', 2-е изд. :save_DKAПер.jpg]] В ячейке таблицы (iс англ. — Москва, c) храним номер состоянияИздательский дом «Вильямс», в которое можно перейти из состояния i по символу c2002. В массиве T отмечены допускающие состояния— 528 с. Таким образом требуется O: ISBN 5-8459-0261-4 (|Q||Σ|рус.) памяти.[[Категория: Теория формальных языков]]
76
правок

Навигация