무어 오토마타 최소화를위한 알고리즘


11

Brzozowski의 알고리즘은 Moore automata로 확장 될 수 있지만 시간 복잡성은 일반적으로 기하 급수적입니다. Moore automata를 최소화하기위한 다른 알고리즘이 있습니까? 이 알고리즘의 실행 시간은 무엇입니까?


어떤 Brzozowski의 알고리즘을 언급하고 있습니까? 정규 표현식의 파생물을 사용하는 것입니까?
J.-E.

2
SE Computer Science에 오신 것을 환영합니다. 사이트의 프리젠 테이션을 아직 읽지 않았으므로, 질문을하는 사용자와 답변 또는 의견을 제공하는 사용자 간의 기술 교환을 기반으로하는 것은 공동 작업이라는 것을 알아야합니다. 따라서 의견에 대한 자세한 내용을 요구하는 사용자에게 답변하고, 좋은 답변이나 좋은 의견 (또는 다른 흥미로운 질문이나 답변을 읽은)을 찬성하고, 궁극적으로 " 선택한 답변의 왼쪽에있는 "체크 표시"(예 : V)
babou

대답이 당신에게 사용 되었습니까?
babou

답변:


6

원래의 DFA 최소화 알고리즘은 실제로 Moore Machines를 위해 설계되었으며 ,보다 명백한 동작으로 안내됩니다. 그러나 여기에 제시된 알고리즘은 DFA 최소화에서 재구성 된 것입니다. 사실 이후에 역사적인 증거를 발견했기 때문입니다.

Wikipedia 이후 (일부 표기법 변경) :

무어 머신 6 튜플로 정의 할 수있다 는 다음과 같이 구성된(Q,q0,Σ,Π,δ,γ)

  • 유한 상태Q
  • 의 요소 인 시작 상태 (초기 상태라고도 함) Qq0Q
  • 입력 알파벳 라는 유한 세트Σ
  • 출력 알파벳 라는 유한 세트Λ
  • 전이 함수 상태와 입력 알파벳을 다음 상태로 매핑 δ:Q×ΣQ
  • 출력 함수 각 상태를 출력 알파벳에 매핑 γ:QΠ

이 정의에서 Moore 기계는 결정 론적 유한 상태 변환기입니다.

Moore automata의 최소화에 대한 언급이 없습니다. 그러나 결정 론적 유한 상태 오토마타에 사용 된 알고리즘에서 파생 된 알고리즘을 상상하기는 어렵지 않습니다.

DFA 최소화의 아이디어 는 일반 언어Myhill-Nerode 특성화를 기반으로합니다 .

언어 과 한 쌍의 문자열 와 주어지면 두 문자열 와 중 정확히 하나 가 속하도록 구별 확장을 문자열 로 정의하십시오 . 와 대한 구별 확장이없는 경우 이라는 규칙에 따라 문자열에 관계 을 정의하십시오 . 이 문자열에 대한 등가 관계 라는 것을 쉽게 알 수 있으므로 모든 문자열 세트를 등가 클래스로 나눕니다.x y z x z y z L R L x R L y x y R LLxyzxzyzLRLxRLyxyRL

Myhill-Nerode 정리에서는 에 유한 수의 동등성 클래스가있는 경우에만 이 규칙적이며 인식하는 가장 작은 결정 론적 유한 오토 마톤 (DFA) 의 상태 수는 .R L L R LLRLLRL

실제로 각각의 상태 최소의 DFA는 그러한이다 상기 정의 된 관계에 대한 등가 클래스 중 하나 .W q R LqWqRL

일반 언어에 대한 비 최소한의 DFA를 들어 , 각 세트 것을 보여주기 위해 쉽게 문자열을 포함하는 모든에 대하여 같은 동등한 클래스에 속하는 .W q R LLWqRL

따라서 DFA의 최소화는 실제로 두 개의 고유 한 상태가 동일한 문자열을 포함하는 것으로 나타날 때마다 병합 상태 (등가 문자열 세트로 간주 됨)로 구성됩니다.

이 목적을 위해 합리적으로 빠른 두 가지 알고리즘, 시간 에있는 무어 알고리즘 (1956 과 시간 홉 크로프트 알고리즘 (1971)이 존재 합니다.O ( N 로그 N )O(n2)O(nlogn)

무어 오토마타로의 확장 은 트랜스 듀서 ( 대한 등가 관계를 로 재정의함에있어서 가장 잘 이해된다 . 관계 은 미래 입력이 수용 상태로 동등하게 이어질지 여부와 관련이있었습니다. 무어 오토마타 의 동등성 관계는 미래의 투입물이 동일한 산출물을 생산할 것인지에 관한 것이다. T R L R TRTTRLRT

따라서, 트랜스 듀서 주어진 , 2 개 개의 스트링은 및 , 우리는 캐릭터로 구별 확장을 정의 되도록 및 와 또는 따르는 지 여부에 따라 트랜스 듀서의 출력 거동이 에 대해 달라 지도록 .x y z T ( x z ) = T ( x ) u T ( y z ) = T ( y ) v u v z x yTxyzT(xz)=T(x)uT(yz)=T(y)vuvzxy

다시 는 등가 관계이며 모든 문자열 을 등가 클래스로 나눕니다. Moore 기계의 경우,이 클래스는 다시 최소 트랜스 듀서의 상태에 해당합니다.Σ RTΣ

다음 알고리즘은 DFA 최소화를위한 Moore 알고리즘을 모방합니다.

우리는 초기 파티션 정의 의 상태의 클래스로 다음과 같은를 : Q S ePQSe

eΠ:Se={qQγ(q)=e}

그런 다음 의 클래스 를 다음과 같이 나눕니다 .P

아무 것도 변하지 않을 때까지 각 상태의 클래스 에 대해 연속적으로 반복한다 repeat 경우 다음 아무것도하지 다른 분할은 서브 세트들로 되도록 각 서브 세트 다른 클래스가 이러한 그 (서브셋 는 에서 를 대체합니다.a Σ ,S
   aΣ,
     S S S S 'PQ S ,SP,qS,δ(q,a)S
     SSi
      SiSPS i S PqSi,δ(q,a)S
      SiSP)

남길 클래스가 없으면 남은 상태 클래스는 최소 무어 머신의 상태를 형성합니다.

구성에 따라 클래스의 모든 상태는 클래스의 출력과 동일한 출력을 갖습니다.

마찬가지로 모든 입력 에 대해 클래스의 모든 상태는 다른 클래스와 동일한 상태로 전환되어 최소 Moore 시스템의 전환 기능을 정의합니다.aΣ

복잡도 분석 : 하자상태 수이고입력 알파벳의 크기 각 반복은 적어도 하나의 상태 클래스를 분할해야하며 각 클래스는 하나 이상의 상태를 포함하므로 기본 루프는 최대 번 실행됩니다 . 루프를 반복 할 때마다 각 상태를 유한 한 횟수로 입력 심볼 수에 비례하여 검사합니다. 따라서 알고리즘의 복잡성은 이며,이 지침에 대한 지침으로 사용되는 DFA 최소화 알고리즘과 동일합니다.s = | Σ | N O는 ( s의 N 2 )n=|Q|s=|Σ|
nO(sn2)

이 Moore 기계 최소화에 대한 참조가 없습니다. 아마도 그것은 그의 논문에 포함되어 있습니다 :

무어, 에드워드 F (1956). "순차 기계에 대한 가든 켄 실험". Automata Studies , Annals of Mathematical Studies (Princeton, NJ : Princeton University Press) (34) : 129-153.

이 문서는 Moore Machines를 소개하는 주요 참고 자료 입니다. 또한 Moore의 DFA 최소화 알고리즘에 대한 참조이기도합니다 . 따라서 무어 머신의 최소화에 대한 알고리즘의 적응이 그 논문에서 제안되지 않았다는 것은 놀라운 일이다. 논문을 확인했으며 제시된 최소화 알고리즘의 버전은 실제로 DFA가 아닌 Moore 컴퓨터 용입니다. 이 논문은 잘 쓰여졌지만 시간 스타일에 따라 읽기가 조금 더 어려워졌습니다. Finite State Machines의 Myhill-Nerode 이론의 많은 아이디어가 이미이 백서에 스케치되어 있음을 보는 것은 흥미 롭습니다.

John Hopcroft (1971)로 인한 최신 알고리즘 은 Moore 시스템에도 유사하게 적용 할 수 있어야합니다. 이 어댑테이션을 어디에서나 출판 할 이유가 있는지는 확실하지 않으며 Hopcroft 논문 은 Moore 기계에 대한 언급이없는 것 같습니다.O(snlogn)


@Raphael A reference ... 글쎄, 당신은 운이 좋다. 나는 라이브러리에 액세스 할 수 없기 때문에 알고리즘을 다시 디자인했다. 그러나 당신이 참조를 요청했기 때문에 나는 당신에게 하나를 얻었다. 당신은 그것을 좋아해야합니다. 그러나 나는 그것을 가르치는 데 사용할 것이라고 확신하지 않습니다.
babou

@Raphael이 논문은 대수적인 것보다 매우 직관적이고 더 작동하기위한 프레젠테이션에서 흥미 롭습니다. 나는 Myhill과 Nerode의 기여에 대한 모든 세부 사항을 기억하지 못하고 (1958 년 2 년 후)이 논문을 충분히 읽지 못했지만 (나는 오히려 감추었다.) 잘.
babou

2

정규 표현식의 파생물을 사용하는 Brzozowski 알고리즘 버전은 [2], 12 장, 섹션 4에 나와 있으며 [4]로 간주됩니다. 후속 트랜스 듀서의보다 일반적인 경우에 대해서는 [1] 및 [3]을 참조하십시오 (용어는 약간 구식이며 현재 순차 트랜스 듀서 라는 용어 가 더 적합합니다).

C. Choffrut, 후속 트랜스 듀서 최소화 : 측량, Theoret. Comp. 공상 과학 292 (2003), 131–143]에 기재되어있다.

[2] S. Eilenberg, 오토마타, 언어 및 기계, vol. A, 1974 년 Academic Press.

[3] J.-E. Pin, 순차적 기능에 대한 튜토리얼 . (슬라이드)

[4] GN Raney, 순차 함수, JACM 5 (1958), 177–180.


@DW 편집 해 주셔서 감사합니다. 완벽 해.
J.-E.

1

Brzozowski의 알고리즘 은 잘못된 시작점입니다 (점근 적 최악의 런타임에 관심이있는 경우). Wikipedia조차도 많은 것을 알려줍니다.

Brzozowski (1963)가 관찰 한 바와 같이, DFA의 가장자리를 뒤집 으면 원래 언어의 반전을 위해 비 결정적 유한 오토 마톤 (NFA)이 생성되고 표준 전원 구성을 사용하여이 NFA를 DFA로 변환합니다 (연결 가능한 상태 만 구성). 변환 된 DFA)는 동일한 역 언어에 대해 최소 DFA로 이어집니다. 이 반전 작업을 두 번 반복하면 원래 언어에 대한 최소 DFA가 생성됩니다. Brzozowski 알고리즘의 최악의 복잡도는 반전의 최소 DFA가 언어의 최소 DFA보다 기하 급수적으로 큰 정규 언어가 있기 때문에 기하 급수적이지만 [6]이 최악의 경우가 제안하는 것보다 자주 더 잘 수행됩니다.

이 알고리즘은 DFA에서도 지수 최악의 런타임을 갖습니다. 그 역행에 대한 오토 마톤을 계산하기 때문에 지수 적으로 커야 할 수도 있습니다. 따라서 문제는 확장기에서 변환기로 오지 않습니다.

다른 DFA 최소화 알고리즘을 적용 해보십시오.

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