Недетерминированные конечные автоматы — различия между версиями
(→Процесс допуска) |
(сделано несколько исправлений) |
||
| Строка 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
Способ хранения
Способ хранения НКА отличается от ДКА лишь тем, что в ячейке таблицы хранится список состояний, в которые возможен переход по данному символу.
Память .
