Изменения

Перейти к: навигация, поиск
Алгоритм
===Алгоритм===
<tex>QP</tex> {{---}} очередь состояний, соответствующих множествам, состоящих из состояний НКА. <tex>Q</tex> {{---}} массив множеств, соответствующих состояниям ДКА.
<tex>s</tex> {{---}} стартовое состояние НКА.
'''Automaton''' getDFAbyNFA(<tex>\langle \Sigma, Q_0, s, T_0, \delta_0 \rangle</tex> : '''Automaton'''):
<tex>QP</tex>.push({s}) <tex>Q</tex> = <tex>\varnothing</tex> '''while''' (<tex>QP</tex> <tex> \neq </tex> <tex>\varnothing </tex>) <tex>QP</tex>.pop(<tex>q_dp_d</tex>)
'''for''' (<tex>c</tex> '''in''' <tex>\Sigma</tex>)
<tex>p_dq_d</tex> = <tex>\varnothing</tex> '''for''' (<tex>qp</tex> '''in''' <tex>q_dp_d</tex>) <tex>p_dq_d</tex> = <tex>p_d q_d \cup \{ \delta_0(qp, c) \}</tex> '''if''' (<tex>q_d</tex> '''notin''' visited[<tex>p_dQ</tex>) <tex>P</tex>.push(<tex>q_d</tex>]) <tex>Q</tex>.pushadd(<tex>p_dq_d</tex>) <tex>\delta(p_d, q_d, p_d)</tex> = <tex>c</tex> '''for''' (<tex>q</tex> '''in''' <tex>Q</tex>) '''if''' (<tex>\exists qq_d</tex> '''in''' <tex>q: q_d: q</tex> '''in''' <tex>T_0</tex>) <tex>T</tex>.add<tex>(q_dq)</tex> '''return''' <tex>\langle \Sigma, Q, \{s\}, T, \delta \rangle</tex>
===Асимптотика===
Анонимный участник

Навигация