Изменения

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

Алгоритм Хопкрофта

8 байт убрано, 19:59, 19 декабря 2013
м
Псевдокод
<tex>S \leftarrow \varnothing </tex>
'''for''' <tex>c \in \Sigma</tex>
<tex>'''insert</tex> ''' <tex>(F, c)</tex> '''toin''' <tex>S</tex> <tex>'''insert</tex> ''' <tex>(Q \setminus F, c)</tex> '''toin''' <tex>S</tex>
'''while''' <tex> S \ne \varnothing </tex>
<tex>(C, a) \leftarrow </tex> '''pop'''(<tex>S)</tex>)
'''for''' <tex>R</tex> '''in''' <tex>P</tex>
<tex>R_1 = R \cap \delta^{-1} (C, a) </tex>
<tex>R_2 = R \setminus R_1</tex>
'''if''' <tex> R_1 \ne \varnothing </tex> '''and''' <tex> R_2 \ne \varnothing </tex>
<tex>'''replace</tex> ''' <tex>R</tex> '''in''' <tex>P</tex> '''with''' <tex>R_1</tex> '''and''' <tex>R_2</tex>
'''for ''' <tex> c \in \Sigma </tex>
<tex>'''insert</tex> ''' <tex>(R_1, c)</tex> '''toin''' <tex>S</tex> <tex>'''insert</tex> ''' <tex>(R_2, c)</tex> '''toin''' <tex>S</tex>
Когда очередь <tex>S</tex> станет пустой, будет получено разбиение на классы эквивалентности, так как больше ни один класс невозможно разбить.
403
правки

Навигация