아래의 대부분은 Sippu와 Soisalon-Soininen의 파싱 이론 에서 나온 것 입니다.
하자 는 DFA의 상태들의 집합. 하자 입력 알파벳합니다. 하자 기계의 크기. 연습 3.40은 상태 최소화를위한 알고리즘을 제공합니다. Wikipedia가 설명 했듯이 Hopcroft의 알고리즘은 의 실행 시간을 가지며 Moore의 알고리즘은 의 실행 시간을 갖습니다. .T | 남 | = O ( | T | ⋅ | Q | ) O ( | T | ⋅ | Q | 2 ) O ( | T | ⋅ | Q | ⋅ log | T | ) O ( | T | 2 ⋅ | Q | )큐T|M|=O(|T|⋅|Q|)O(|T|⋅|Q|2)O(|T|⋅|Q|⋅log|T|)O(|T|2⋅|Q|)
정리 3.30은 에서 부분 집합 구성을 수행 하여 크기 (실제로 결과 오토 마톤에 상태 가 있으면 실행 시간은 )입니다. 따라서 두 번의 반전과 두 번째 결정은 실행 시간에 중요하지 않으므로 Brzozowski 알고리즘의 점근 적 실행 시간은 하위 집합 구성의 시간과 동일합니다.O ( 2 | T | + log | Q | ) | T ' | ( | T ' | + | T | ⋅ | M | ) ⋅ | Q |O(2|T|+log|T|+log|Q|)O(2|T|+log|Q|)|T′|(|T′|+|T|⋅|M|)⋅|Q|
이것은 최악의 경우 Brzozowski의 알고리즘이 다른 세 알고리즘보다 기하 급수적으로 느리다는 것을 의미합니다. 최악의 경우는 실제로 발생합니다. 언어 에 대한 NFA의 전형적인 예 는 상태이고 해당하는 최소 DFA는 상태입니다. NFA는 결정론 적이므로 역전 된 NFA에서 Brzozowski의 알고리즘을 실행하면 최악의 동작이 트리거됩니다. K + 1 O ( 2 K )(a|b)∗akk+1O(2k)
그러나 서브 세트 구성이 크기의 오토마타를 생성하는 경우, 실행 시간도 . 실제 입력에. 또한 상태의 클로저를 계산할 때 적절한주의를 기울이면 대부분의 경우 (즉, 클로저가 작은 경우) 훨씬 더 빠르게 수행 할 수 있으며,실제로 (실제로 예제에서 전이 클로저를 매우 빠르게 계산할 수있는 것과 같은 이유로). 또한, 입력 및 중간 오토 마톤이 드문 경우, 상태에 전이가 거의 없음을 의미하는 요인'good'입력 에서 실행 시간을 제공합니다.|T′|=O(|T|)O(|T|2⋅|Q|2)|T||Q|O(|T|⋅|Q|)
불행히도 나는 Hopcroft 또는 Moore의 알고리즘에 익숙하지 않아 일반적인 경우에 실행 시간을 분석 할 수 있습니다. Wikipedia는 경우에 따라 실행 시간에 대해 이야기 하므로 세 가지 알고리즘을 비교할 수 있습니다.O(|T|loglog|T|)