DFA에서 정규 표현식으로 이동하는 알려진 알고리즘


28

나는 DFA 에서 시작 하고 L ( A ) = L ( r ) 보다 정규 표현식 r을 구성 하는``더 나은 ''(어떤 의미에서 설명 할 것인가) 알고리즘이 있는지 궁금합니다 . Hopcroft and Ullman (1979). 거기에서, 세트 R k i jk 보다 높은 번호의 상태를 거치지 않고 상태 q i 에서 q j로 DFA를 취하는 스트링 세트를 나타내는데 사용된다 . 이 구성은 분명히 정확하고 매우 유용하지만 다소 기술적입니다.ArL(A)=L(r)Rijkqiqjk

나는 대수적 오토마타 이론에 대한 논문을 쓰고 있는데 너무 많은 기술적 세부 사항 (적어도 내가 보여주고 싶은 결과와 관련이없는 세부 사항은 아님)으로 청중을 산만하게하고 싶지는 않지만 완전성을 위해 DFA와 정규 표현식의 동등성 증명. 기록을 위해 Glushkov automata를 사용하여 정규식에서 DFA로 이동합니다. 그것은 전혀 정의하지 않은 전환 보다 더 직관적 인 것처럼 보였습니다 (필요하지 않기 때문에).ε

DFA에서 정규 표현식으로 이동하는 다른 알고리즘은 무엇입니까? 나는 효율성보다 단순성을 중요하게 생각하지만 (이 경우 나에게 더 낫습니다), 그것은 요구 사항이 아닙니다.

도움을 주셔서 감사합니다.


1
다른 알고리즘은 아니지만 적절한 대수에서 정규 표현식 행렬의 k 번째 거듭 제곱을 사용하여 알고리즘을 대수적으로 표현할 수 있습니다 . 아마도 당신은 이것이 더 우아하고 간결하다는 것을 알게 될 것입니다. 참조를 찾고 있습니다. Rijkk
Max

1
이러한 키워드를 검색하여 행렬 곱셈의 관점에서 표현을 찾을 수 있도록 알고리즘은 본질적으로 모든 쌍 - 최단 경로 문제에 대한 플로이드 - 워셜 알고리즘의 변형이다. Rijk
Jan Johannsen

2
동의합니다. 기본적으로 Floyd-Warshall 알고리즘입니다. 또한 Floyd-Warshall처럼 표준 동적 프로그래밍 기술을 사용하여 파생 될 수도 있습니다.
david

나는 전에 이와 같은 질문에 대답했다고 확신하지만 찾을 수 없습니다.
Raphael

@Max 참조를 찾을 수 있습니까? 저는 매트릭스 표현에 관심이 있습니다. 실제로 대 수학자에게 더 매력적입니다.
Janoma

답변:


17

두 가지 구성 : Brzozowski-McCluskey 일명 상태 제거 [1] 및 Arden의 Lemma를 사용하는 방정식 시스템의 가우시안 제거. 이것들에 대한 가장 좋은 자료는 아마도 Jacques Sakarovitch의 책이다 [2].

[1] J. Brzozowski, E. McCluskey Jr., 순차 회로 상태 다이어그램, 전자 컴퓨터의 IEEE 트랜잭션 EC-12 (1963) 67-76에 대한 신호 흐름 그래프 기법.

[2] J. Sakarovitch, 오토마타 이론의 요소. 케임브리지 대학 출판부, 2009.


2
Arden의 Lemma를 사용하여 방정식을 해결하는 방법이 가장 간단하고 설명하기 쉽다는 것을 알았습니다. 이것이 제가 입문 이론 수업에서 그런 식으로 제시하는 이유입니다.
Jan Johannsen

방정식 시스템의 방법은 훌륭하게 들립니다. 불행히도 우리 대학의 도서관에는 당신이 언급 한 책 (Sakarovitch)이 없지만 다른 곳을 보려고합니다.
Janoma

4
구조 비교는 Sakarovitch의 논문 "언어, 표현 및 (작은) 오토 마톤", CIAA 2005, LNCS 3845, Springer (2006) 15-30에서도 볼 수 있습니다. infres.enst.fr/~jsaka/PUB/Files/LESA.pdf
Hermann Gruber

2
또한 상태가 처리되는 순서는 결과 정규식의 크기에 큰 영향을 줄 수 있습니다. Arden의 보조, McNaughton-Yamada, 국가 제거 또는 다른 변형을 사용하든 항상 마찬가지입니다. 좋은 제거 순서를 선택하기위한 몇 가지 간단한 휴리스틱을 사용할 수 있습니다.
Hermann Gruber

15

Kozen의 저서 "Automata & Computability"는이 Floyd-Warshall 알고리즘의 우아한 일반화를 언급합니다. 대 수학자에게 호소하는 것을 언급 했으므로 유용 할 수 있습니다. 해당 텍스트의 58-59 페이지에 있습니다. (Google 도서에는 미리보기가 있다고 생각합니다.)

2×2

[abcd]=[(a+bdc)(a+bdc)bd(d+cab)ca(d+cab)]

i,jij

n×na,b,c,dm×mm×(nm)(nm)×m(nm)×(nm)2×22×2

nTfF(T)s,fsT

m=1Rijk

행렬에 대한 Kleene 대수 구조의 또 다른 파생은 Kozen의 Kleene Algebras 및 정규 이벤트 대수에 대한 완전성 정리에 나타납니다 .


12

지금까지 내가 본 가장 좋은 절차는 Sylvain이 언급 한 것입니다. 특히, 그것은 다른 것보다 더 간결한 표현을 산출하는 것 같습니다.

지난 여름 학생들을위한 방법을 설명하는 이 문서를 썼습니다 . 특정 강의와 직접 관련이 있습니다. 언급 된 참조는 정규 표현식의 일반적인 정의입니다. Arden의 Lemma에 대한 증거가 포함되어 있습니다. 방법의 정확성에 대한 하나가 누락되었습니다. 강의에서 배운대로 슬프게도 참고 문헌이 없습니다.


나는 또한 그 증거를 선호합니다. 나는 우아하고 설명하기 쉽다는 것을 알았습니다. Arden의 Lemma조차 어렵지 않습니다. 이것이 내가 문서에 포함시킬 방법이라고 생각합니다.
Janoma

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