NDFA (nondeterministic finite automata)를 비 지수 공간 / 시간에서 결정적인 finite automata (DFA)로 효율적으로 변환 할 수 있습니까?


16

20 년 전, 정규 표현식에서 유한 상태 머신 (DFA)으로의 변환을 포함하는 정규 표현식 패키지를 구축했으며, 닫힌 정규 표현식 작업 (클린 스타, 연결, 역, 설정 작업 등)을 지원했습니다. 패키지의 최악의 성능에 대해 확신이 없었습니다.

n 상태 NDFA는 2 ^ n 상태의 DFA로 간단하게 변환 될 수 있기 때문에 DFA는 NDFA와 동일한 표현력을 갖습니다. 그러나 기하 급수적으로 폭발 할 필요가없는 그러한 변환에 대한 하한 보증이 있습니까?

나는 행동이 잘못된 정규 표현이나 NDFA의 예를 생각 해낼 수 없었지만 그것에 대해 생각하는 데 많은 시간을 소비하지 않았습니다. ((((e | A | B | C) * (e | D | E | F)) * (e | G | H | I)) * (e | J | K | L과 같은 정규식을 추측합니다. 많은 교대와 Kleene 별이 혼합 된 | M)) *는 선형 크기의 NDFA이지만 광범위한 DFA를 갖습니다.


입력으로 수락 할 NFA 클래스에 제한이 있습니까? 일부 제한은 더 나은 상한으로 이어집니다.
András Salamon 1

중요한 점은 아니지만 ndfa가 자체 태그가 필요합니까?
Lev Reyzin

예, 제한이 있습니다. NFA는 정규화 된 전이 그래프로 처리하여 정규식에서 직접 구성됩니다. seas.upenn.edu/~cit596/notes/dave/regexp-nfa4.html
Wesner Moise

답변:


15

모든 자연수 쌍에 n,a대해 n <= a <= 2^n, n상응하는 동등한 최소 dfa가 a상태를 갖는 상태를 갖는 최소 NDFA가 존재 한다는 것이 알려져 있다 (4 글자 알파벳 이상).

여기에 용지를 참조하십시오 : 최소한의 비 결정적 유한 오토마타의 결정적 타격 업을 고정 알파벳을 통해 .

논문의 개요 :

우리는 n ≤ α ≤ 2 ^ n과 같은 모든 정수 n 및 α에 대해, 동등한 최소 결정 론적 유한 오토 마톤이 정확히 상태를 갖는 4 문자 입력 알파벳을 갖는 n 상태의 최소 비결정론 적 유한 오토 마톤이 존재 함을 보여준다. 4 글자 알파벳의 경우 "매직 숫자", 즉 계층 구조의 구멍이 없습니다. 이것은 크기가 n + 2 인 알파벳이 증가함에 따라 Geffert가 얻은 유사한 결과를 개선합니다 (Proc. 7th DCFS, Como, Italy, 23-37).

그래서, 나는 당신의 질문에 대한 대답이 아니오라고 생각합니다.


문제는 NFA를 변환하기 위해 하위 지수 시간과 공간에서 실행되는 "알고리즘"을 요구하는 것입니다.
Marcos Villagra

@Marcos : 출력이 지수 형이면 지수 미만의 시간에 실행되는 알고리즘을 가질 수 없습니다.
Aryabhata

1
이것은 일반적인 결과입니다. 입력 NFA 클래스에 알려진 제한이있는 경우 더 잘 수행 할 수 있습니다.
András Salamon 1

@Andras : 동의하지만, 이것은 아마도 프로그래밍 관련 (Kleen * 등을 지원할 것임) 관련되어 있다면, 입력 NFA 세트가 적절한 서브셋으로 제한 될지 의심됩니다.
Aryabhata

5
이 결과는 최근에 세 글자 알파벳을 사용하도록 강화되었으며, 구성이 조금 더 간단합니다. portal.acm.org/…

13

DFA 크기와 NFA 크기 사이에 지수 적으로 분리 된 언어의 전형적인 예는 다음과 같은 유한 언어입니다. 길이가 정확히 2n 인 이진 문자열은 전반이 후반과 같지 않습니다. NFA는 전반과 후반이 일치하지 않는 지수 i를 추측 할 것입니다. 예를 들어, DFA의 하한은 통신 복잡성에서 비롯됩니다.


8

NFA에 해당하는 최소 DFA는 최악의 경우 상태가 2 ^ n이므로 아무 것도 보장 할 수 없습니다. 건설적인 예가 없으면 NFA에서는 특정 입력 문자열을 읽은 후 상태의 임의의 하위 집합에있을 수 있으며 한 문자를 관찰 할 때 이러한 각 하위 집합이 다르게 작동 할 수 있기 때문입니다. 알파벳 (a 및 b)에 두 개의 문자가있는 언어와 s_0에서 수락 가능한 상태로 시작하는 n 개의 상태를 갖는 NFA N을 가정하십시오. 이제 N 상태의 모든 하위 집합을 열거하고 하위 집합 S_i에서 "a"를 관찰하면 S_i + 1 하위 집합으로, b를 관찰하면 S_i-1 하위 집합으로 이동하도록 전이 테이블을 작성하십시오. ). 이제이 오토마타는 n 개의 상태를 가지며 mn = 0 mod 2 ^ | N |와 같이 ma와 nb의 시퀀스를 받아들입니다. 2 ^ | N | 미만의 DFA로는 표현할 수 없습니다. 상태 (NFA N 상태의 모든 하위 집합을 순환해야 할 수 있으므로).


이것은 "NFA에서 (일부 나쁜 것)을 피하면 DFA는 하위 지수 수의 상태를 갖는다"는 주장으로 변할 수 있습니까?
András Salamon 1

1
@ András, 그렇습니다. "NFA에서 비결정론을 피하면 DFA에는 하위 지수 수의 상태가 있습니다."
P Shved

2
파벨, 물론 이죠 효율적으로 인식 할 수있는 사소한 속성이 있습니까?
András Salamon
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.