Недетерминированные конечные автоматы — различия между версиями
(→Процесс допуска) |
(сделано несколько исправлений) |
||
Строка 1: | Строка 1: | ||
− | |||
{{Определение | {{Определение | ||
|definition= | |definition= | ||
− | Недетерминированный конечный автомат(НКА) --- | + | Недетерминированный конечный автомат (НКА) {{---}} это пятерка <tex>\langle \Sigma , Q, s \in Q, T \subset Q, \delta : Q \times \Sigma \to 2^Q \rangle</tex>, где <tex>\Sigma</tex> {{---}} алфавит, <tex>Q</tex> {{---}} множество состояний автомата, <tex>s</tex> {{---}} начальное состояние автомата, <tex>T</tex> {{---}} множество допускающих состояний автомата, <tex>\delta</tex> {{---}} функция переходов. |
− | Таким образом НКА - это | + | Таким образом единственное отличие НКА от ДКА {{---}} это существование нескольких переходов по одному символу из одного состояния. |
}} | }} | ||
− | + | == Процесс допуска == | |
Определим некоторые обозначенияя для НКА: | Определим некоторые обозначенияя для НКА: | ||
* <tex>\langle q, \alpha \rangle \vdash \langle p, \beta \rangle</tex>, если: | * <tex>\langle q, \alpha \rangle \vdash \langle p, \beta \rangle</tex>, если: | ||
Строка 13: | Строка 12: | ||
** <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> | ** <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> | ||
− | |||
Автомат допускает слово <tex>\alpha</tex>, если <tex>\exists t \in T: \langle s, \alpha \rangle \vdash^* \langle t, \varepsilon \rangle</tex>. | Автомат допускает слово <tex>\alpha</tex>, если <tex>\exists t \in T: \langle s, \alpha \rangle \vdash^* \langle t, \varepsilon \rangle</tex>. | ||
Процесс допуска происходит так же, как в ДКА, в котором Мерлин помогает выбрать правильный переход. | Процесс допуска происходит так же, как в ДКА, в котором Мерлин помогает выбрать правильный переход. | ||
− | + | == Язык автомата == | |
{{Определение | {{Определение | ||
|definition= | |definition= | ||
Строка 35: | Строка 33: | ||
Память <tex>|Q|^2||\Sigma|</tex>. | Память <tex>|Q|^2||\Sigma|</tex>. | ||
+ | |||
+ | ==См. также== | ||
+ | |||
+ | * [[Детерминированные конечные автоматы]] |
Версия 07:12, 12 ноября 2011
Определение: |
Недетерминированный конечный автомат (НКА) — это пятерка | , где — алфавит, — множество состояний автомата, — начальное состояние автомата, — множество допускающих состояний автомата, — функция переходов. Таким образом единственное отличие НКА от ДКА — это существование нескольких переходов по одному символу из одного состояния.
Процесс допуска
Определим некоторые обозначенияя для НКА:
Автомат допускает слово
, если . Процесс допуска происходит так же, как в ДКА, в котором Мерлин помогает выбрать правильный переход.Язык автомата
Определение: |
--- язык автомата . |
Пример
Автомат, допускающий слова над алфавитом из символов 0 и 1, допускающий слова оканчивающиеся на 0101.
(0|1)*0101
Способ хранения
Способ хранения НКА отличается от ДКА лишь тем, что в ячейке таблицы хранится список состояний, в которые возможен переход по данному символу.
Память
.