Изменения
дописано куча всего
{{Определение
|definition =
'''Мгновенная кофигурация''' {{---}}это пара <tex> \langle p, q \rangle </tex>, <tex> p \in Q </tex>, <tex> q \in \Sigma^*</tex>}}* Определим некоторые операции для мгновенных конфигураций.{{Определение|definition = Говорят, что <tex>\langle qp, \alpha beta \rangle \vdash </tex> '''выводится за один шаг''' из <tex>\langle pq, \beta alpha \rangle</tex>, если:** <tex>\alpha = c\beta</tex>** <tex>p \in \delta (q, c)</tex>.* Это также записывают так: <tex>\langle q, \alpha \rangle \vdash^* \langle p, \beta \rangle</tex>}} {{Определение|definition =Говорят, что <tex> \langle p, \beta \rangle</tex> '''выводится за ноль и более шагов''' из <tex>\langle q, \alpha \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>Это также записывают так: <tex>\langle q, \alpha \rangle \vdash^* \langle p, \beta \rangle</tex>}} {{Определение|definition =НКА '''допускает''' слово <tex>\alpha</tex>, если <tex>\exists t \in T: \langle s, \alpha \rangle \vdash^* \langle t, \varepsilon \rangle</tex>.}} Менее формально это можно описать так: НКА допускает слово <tex> \alpha </tex>, если существует путь из начального состояния в какое-то терминальное, такое что буквы, выписанные с переходов на этом пути по порядку, образуют слово <tex> \alpha </tex>.
== Язык автомата ==
{{Определение
|definition =
Множество слов, допускаемых автоматом <tex> \mathcal{A} </tex>, называется '''языком НКА''' <tex> \mathcal{A} </tex>.
* <tex> \mathcal{L}(\mathcal{A}) = \lbrace w | \exists t \in T : \langle s, w \rangle \vdash^* \langle t, \varepsilon \rangle \rbrace </tex>
}}
Язык НКА тоже является автоматным языком, так как можно [[Построение по НКА эквивалентного ДКА, алгоритм Томпсона|построить из НКА эквивалентный ДКА]], поэтому вычислительная мощность этих двух автоматов совпадает.
== Пример ==
[[Файл:NKA_1.jpg]]
== Способ хранения Алгоритм определяющий допустимость автоматом слова == По сравнению с ДКА, определять допускает ли НКА слово сложнее, так как из состояния теперь есть несколько переходов по букве и выбрать случайный переход нельзя. Поступим по-другому, определим множество всех достижимых состояний из стартового по слову <tex> \alpha </tex>. * <tex> R(\alpha) = \lbrace p | \langle s, \alpha \rangle \vdash^* \langle p, \varepsilon \rangle \rbrace </tex>
Псевдокод:
<font size = 3>
<tex> R_0 = \lbrace s \rbrace </tex>
for i = 1 to length(w) do
<tex> R_i = \varnothing </tex>
for <tex> p \in R_{i - 1} </tex> do
<tex> R_i = R_i \cup \delta(p, w_i) </tex>
accepts = False
for <tex> t \in T </tex> do
if (<tex> t \in R_{|w|} </tex>) then
accepts = True
</font>
== См. также ==
* [[Детерминированные конечные автоматы]]