주어진 정규 표현식에서 설명하는 언어를 인식하는 DFA를 구성하기 위해 어떤 알고리즘이 있습니까?


11

모든 교과서에서 정규 표현식이 지정된 DFA를 생성하기 위해 동일한 알고리즘을 사용합니다. 먼저 정규 표현식의 언어를 인식하는 NFA를 만든 다음 하위 집합 ( "powerset") 구성을 사용하여 NFA를 동등한 DFA ( 선택적으로 DFA 최소화). 또한 한 교수가 다른 알고리즘이 있다고 주장하는 것을 들었습니다. 누구나 아는 사람이 있습니까? 아마도 중간 NFA없이 정규식에서 DFA로 직접 이동하는 것입니까?


이론적 컴퓨터 과학 (TCS)의 연구 수준 질문에 대한 Q & A 사이트 인 cstheory에 오신 것을 환영합니다 . 귀하의 질문은 TCS에서 연구 수준의 질문으로 보이지 않습니다. 그 의미에 대한 자세한 내용 은 FAQ 를 참조하십시오 . 귀하의 질문은 더 넓은 범위의 컴퓨터 과학에 적합 할 수 있습니다 .
Kaveh

1
항상 이 템플릿 주석을 사용합니까? 당신에 동의하지 않는 사람은 적어도 5 명입니다. 그런 질문에 기회를 주실 것을 권합니다.
AJed

@AJed, 나는 항상 이 의견을 사용 하지는 않습니다 . 질문이 저에게 화제가 아닌 것 같지만 컴퓨터 과학에 적합 할 때 사용합니다 . 위로 투표한다고해서 질문이 주제라는 의미는 아니며이 질문이 연구 수준의 질문 인 것 같지 않기 때문에 의견이 적절하다고 생각합니다. (누군가가 질문에 대한 연구 수준의 답변을 작성할 수 있다는 사실은 질문을 연구 수준으로 만들지 않습니다. ps :이 토론이 이론적 인 컴퓨터 과학 메타에 더 적합하다고 생각합니다 .
Kaveh

답변:


13

정규식을 유한 오토마타로 변환하는 다른 알고리즘이 있습니다. 오토 마톤을 생성하는 동안 암시 적으로 서브 세트 구성을 수행하여 다른 오토 마톤을 먼저 구축하지 않고도 정규식에서 DFA로 직접 이동할 수 있습니다. 결정 론적 오토마타를 직접 얻는 또 다른 옵션은 미분법을 사용하는 것입니다.

정규식이 모든 문자열을 포함하는 언어를 나타내는 지 확인하는 것은 PSPACE 완료 문제입니다 (참조는 이 답변 참조). DFA에서 다국어 시간에 해당 언어를 사용할 수 있는지 확인하므로 정규식에서 DFA로 직접 이동하면 어딘가에 폭발이 발생합니다.

문헌에 대한 나의 이해는 우리가 폭발을 현지화 할 수있는 번역을 선택할 수 있다는 것입니다. 즉, 정규식에서 유한 오토 마톤으로가는 방법은 다양하며 선형 또는 다항식 방법이 선호됩니다. 일반적으로 기하 급수적 비용은 오토마타의 결정에 영향을 미칩니다.

DFA를 효율적으로 생성 할 수있는 정규식의 하위 패밀리를 식별하는 작업이 많이있었습니다 . 이 작업 라인은 사용하는 번역에 따라 다릅니다. 즉, 정규식에서 NFA 로의 매핑을 수정하고 DFA에 매핑되는 정규식을 특성화하려고합니다.

정규식에서 오토마타의 표준 구성은 이러한 작업에서 선호되는 구성아닙니다 . 선택한 구성은 정규식의 구조와 매우 유사한 오토마타를 생성합니다. 이러한 구성 은 정규 표현식 의 파생 개념을 사용합니다 .

JA Brzozowski 정규 표현식의 파생물 . 1964 년

srara

정규식 및 유한 오토마타 구조의 부분 유도체 , V. Antimirov. 1995.

오토 마톤 상태를 해당 상태에서 허용 된 모든 문자열의 표현으로 생각하면 (부분) 파생어를 사용하면 정규식을 states 로 처리 할 수 ​​있습니다 . 정규식을 상태가 아닌 오토마타로 직관적으로 처리하는 표준 교과서 구성과 대조하십시오.

정규 표현에서 결정 론적 오토마타에 이르기까지 1986 년 G. Berry and R. Sethi.

정규식과 오토 마톤과 결정론의 상태 사이의 대응은 베리와 세티 (Berry and Sethi)에 의해 명시 적으로 논의되는데, 베리와 세티 (Berry and Sethi)는 브조 조프 스키 (Brzozowski) 유도체의 개념과 동일한 기호의 발생을 구별하여 정규식의 구문 기반 번역을 유한 형식으로 변환하는 아이디어를 결합시킨다. 오토마타.

하나의 명확한 정규 언어 , A. Brüggemann-Klein 및 Derick Wood, 1998.

이 백서는 Brüggemann-Klein의 초기 작업과 다항식 시간에 DFA를 생성하기 위해 파생 상품을 사용할 수있는 사례를 연구합니다. 이 백서에는 많은 양의 작업이 있습니다. 효율적으로 조작 할 수있는 정규식 (일명 DFA에 해당)이 SGML 및 XML 처리에 중요하기 때문에 웹 기술의 관점에서 중요했습니다.

결정 론적 정규 표현의 다른 특별한 경우를 연구하는 많은 연구가있었습니다. 이러한 문제 중 일부를 선형 시간으로 해결할 수있을 때 연구 한 최근 논문은 2012 년입니다.

선형 시간 , Benoit Groz, Sebastian Maneth, Slawomir Staworko의 결정적 정규 표현식 . 2012.


5
이미 답변에서 파생 상품을 언급 했으므로 JA Brzozowski : 정규 표현식의 파생물, Journal of ACM 11 (4) : 481–494 (1964)를 추가해야합니다. 정규 표현식을 DFA로 변환하기위한 직접적인 알고리즘을 제공하기 때문입니다. .
닐 크리슈나 스와미

3
나는 그것에 대해 토론했다. 그러나 위의 세 가지 논문은 모두 그 결과를 직접 토대로하므로 언급 할 이유가 없다고 생각했습니다. Brueggeman-Klein and Wood 페이퍼도 예제로 가득합니다. Brzozowski를 언급하면 ​​Antimirov도 언급해야한다고 생각합니다. 설문 조사를 피하고 싶었지만 어쩌면 그냥 가봐야 할 것 같습니다. 뭐라고?
Vijay D

5
시간과 에너지가 있다면 긴 설문 조사와 같은 답변이 여기에 매우 적합하다고 생각합니다.
David Eppstein

1
@VijayD : 네, David에게 동의합니다. 짧은 답변은 괜찮지 만 에너지가 있다면 포괄적 인 답변을 제공하는 것이 좋습니다.
Neel Krishnaswami
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.