DFA 최소화를위한 Brzozowski의 알고리즘


16

Brzozowski의 DFA 최소화 알고리즘은 다음을 통해 DFA 에 대한 최소 DFA를 구축합니다 .

  1. 역 언어에 대한 NFA 을 얻기 위해 초기 상태를 수락 상태로 만들고 수락 상태를 초기 상태로 만드는 모든 모서리를 반전'
  2. 리버스 언어에 대한 를 얻기 위해 파워 셋 구성을 사용 합니다.'
  3. 원래 언어에 대한 NFA 을 얻기 위해 에서 모서리 (및 초기 수락 스왑)를 반대로 하고'
  4. 파워 셋 건설을하는 것은 얻을 .

물론 일부 DFA에는 지수 적으로 큰 역 DFA가 있으므로이 알고리즘은 최악의 경우 입력 크기 측면에서 지수 시간으로 실행되므로 역 DFA의 크기를 추적 할 수 있습니다.

경우 입력 DFA의 크기이며, 최소한의 DFA의 크기 및 미디엄 최소한의 역 DFA의 크기를, 다음 의 측면에서 브조 조프 스키의 알고리즘의 실행 시간 것입니다 , , 및 미디엄 ?

특히, Brzozowski의 알고리즘은 Hopcroft 또는 Moore의 알고리즘보다 성능이 우수한 nm의 관계는 무엇 입니까?미디엄

연습 / 응용 프로그램의 일반적인 예제에서 Brzozowski의 알고리즘이 다른 알고리즘보다 뛰어나다 는 것을 들었습니다 . 비공식적으로 이러한 전형적인 예는 무엇입니까?


이러한 알고리즘의 O (f (n)) 추정값을 포함하면 도움이됩니다. "평균"경우 모두 O (n log (n))입니까? 그렇다면 상대 성능에 대한 논쟁은 입력의 통계적 특성 / 구조에 따라 대부분 적용되는 테스트 일 수 있습니다 ... 역 NFA가 "크지 않은"경우 Brzozowski가 빠르게 실행되는 것 같습니다.
vzn

알고리즘 실행에주의하십시오. 1. 및 3을 수행 할 때 가상 시작 상태를 도입하려는 유혹이있을 수 있습니다.이 경우 잘못된 결과가 발생할 수 있습니다 . 여기를 참조 하십시오 . (질문에서 틀린 것은 아닙니다. 틀리지 않도록 조심해야합니다.)
A.Schulz

답변:


5

세 번째 질문에 대한 부분 답변입니다. 실제로 Brzozowski의 알고리즘은 DFA 최소화에서 다른 모든 알고리즘보다 성능이 뛰어나지 않을 수 있습니다.

[1]에서 저자는 DFA / NFA 최소화 알고리즘의 실제 성능을 조사합니다. 알고리즘은 Hopcroft, Brzozowski 및 Watson의 두 가지 변형입니다. 그들은 확실한 승자가 없다고 결론 지지만 Hopcroft의 알고리즘은 알파벳이 작은 DFA에서 더 잘 수행됩니다. NFA의 경우 Brzozowski가 가장 빠릅니다.

종이 자체는 매우 짧고 명확하게 작성되었습니다. 도움이 될만한 추가 토론과 참고 자료도 있습니다.


[1] Almeida M., Moreira N. 및 Reis R. Automata 최소화 알고리즘의 성능에 관한 2008 년 6 월 유럽의 제 4 차 회의에 관한 컨퍼런스.


감사합니다. 논문을 살펴보고 참고 문헌을 사용하여 완전한 답을 찾을 수 있는지 확인해 보겠습니다.
Artem Kaznatcheev

5

아래의 대부분은 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 | )QT|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|)


1

De Felice와 Nicaud는 Brzozowski의 알고리즘이 무 증식 다항식임을 보여줍니다. David는 최종 상태에 대한 여러 배포의 경우 Hopcroft의 알고리즘이 Moore의 알고리즘보다 느리다는 것을 보여주었습니다.

참고 문헌

S. De Felice와 C. Nicaud, "Brzozowski 알고리즘은 일반적으로 결정 론적 오토마타를위한 수퍼-폴리 노미 얼"입니다. 에서 언어 이론의 발전에 17 국제 회의 (DLT 2013) 논문집 , 컴퓨터 과학 강의 노트, PP. 170-190, 2013 ( PDF )

J. David, "무어와 홉 크로프트 알고리즘의 평균적인 복잡성". 이론적 컴퓨터 과학 , 417 : 50–65, 2012. ( Science Direct )

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.