두 정규식이 같은지 여부를 결정하는 알고리즘


12

두 개의 임의의 정규식이 주어지면 동일한 문자열 세트와 일치하는지 판별하는 "효율적인"알고리즘이 있습니까?

보다 일반적으로 두 일치 세트의 교차 크기를 계산할 수 있습니까?

이를 위해 어떤 알고리즘이 있으며 어떤 복잡한 클래스가 있습니까?

우리가 Kleene 별을 허용하지 않으면 그 그림이 전혀 바뀌지 않습니까?


"교차로의 크기"는 무엇을 의미합니까? 가장 흥미로운 경우에는 무한대로 커질 것입니다. 당신은 크기 wrt 관심이 있습니까? Σn
Raphael

@Raphael 내 이해는 Kleene 별을 제거하면 세트의 크기가 유한하게된다는 것입니다.
MathematicalOrchid

다릅니다. 다른 운영자가 허용됩니까? 보완을 허용한다면, 당신이 말하는 것은 사실이 아닙니다. 또한 Kleene star와 함께 상황을 요구하므로 어쨌든 명확히해야합니다.
Raphael

답변:


12

헨드릭 얀 (Hendrik Jan)은 복잡성 클래스에 대한 좋은 대답을 제공하지만 알고리즘 자체는 아닙니다.

내가 아는 가장 간단한 알고리즘은 정규식을 DFA로 변환하는 것입니다. 정규식을 NFA로 변환하고 NFA를 DFA로 변환하는 기술이 알려져 있습니다.

두 개의 DFA가 있으면 DFA의 최소 형식이 동형에 따라 고유하므로 동등성 테스트가 효율적이고 결정 가능합니다.

그러나 NFA에서 이러한 DFA를 구성하는 데 많은 시간이 소요될 수 있으며 최악의 경우 기하 급수적으로 매우 큰 DFAS를 생성 할 수 있습니다.


11

정규 표현식의 동등성은 PSPACE-complete 인 것으로 알려져 있으며 이는 다소 나쁩니다. "단순 정규 표현식에 대한 결정 문제의 복잡성"(Complexity of Decision Problems for Simple Regular Expressions) 백서에는 정규 표현식의 여러 하위 클래스가 각각의 복잡도로 나열되어 있습니다. ( 링크 )


1
e2ee

@dkuper 추가 설명에 감사드립니다. 이 참조 또는 적절한 참조를 추가하려면 답변을 편집하십시오. (또는 자신의 답변을 시작해도됩니다.)
Hendrik Jan

PSPACE-complete라는 일반 정규식에 대한 참조가 있습니까?
Ryan

연결이 끊어졌습니다. 종이에서 새로운 정보 나 최소한 관련 정보를 제공 할 수 있습니까?
D. Ben Knoble

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