n 상태와 두 개의 (최소) DFA의 교차는 O (n 2 ) 시간과 공간을 사용하여 계산할 수 있습니다 . 결과적인 (최소한) DFA는 n 2 상태를 가질 수 있기 때문에 이것은 일반적으로 최적입니다 . 그러나 결과 최소 DFA에 z 상태가 z = O (n) 인 경우, 일부 상수 eps> 0에 대해 공간 n 2-eps 에서 계산할 수 있습니까? 입력 DFA가 비주기적인 특수한 경우에도 이러한 결과에 관심이 있습니다.
n 상태와 두 개의 (최소) DFA의 교차는 O (n 2 ) 시간과 공간을 사용하여 계산할 수 있습니다 . 결과적인 (최소한) DFA는 n 2 상태를 가질 수 있기 때문에 이것은 일반적으로 최적입니다 . 그러나 결과 최소 DFA에 z 상태가 z = O (n) 인 경우, 일부 상수 eps> 0에 대해 공간 n 2-eps 에서 계산할 수 있습니까? 입력 DFA가 비주기적인 특수한 경우에도 이러한 결과에 관심이 있습니다.
답변:
그 대답은 오토 마톤의 크기에 대한 요구 사항없이 예 입니다. k 가 상수 인 k DFA의 경우 에도 공간 에서 계산할 수 있습니다 .
하자 ( 일 DFAS. 우리는 주어진 표시 , 최소 DFA 인식 컴퓨팅 에서 수행 될 수있다 공간. 먼저 몇 가지 기술적 결과를 입증합니다.
정의 1 : 을 두 상태로하고 iff ,
우리는 이제 고전적인 직교 곱 구성에 의해 주어진 오토 마톤 고려합니다 . 하자 Q = ( q는 1 , ... , q 개의 K가 ) 와 (R) = ( R은 1 , ... , R에 K가 ) 의 상태 일 수 .
Lemma 1 : 이 NL 인지 여부를 결정합니다 .
증명 (스케치) : 테스트 부등식이 NL에 있고 NL = coNL을 사용함을 보여줍니다. q 와 같은 단어 (한 번에 한 글자)를 추측하십시오 . w 는 최종 상태이고 r 입니다. w는 없습니다. 이것은 q i 를 계산함으로써 달성 될 수있다 . 승 , r에 난을 . i ∈ [ k ]에 대한 로그 공간의 w 및 q 가 최종 이라는 사실 사용 iff q i ∈ F i . q ≢ r 은 w 의 폴리 크기의 존재를 의미한다는 것을 알수있다.
Lemma 2 : 가 (in) 액세스 가능한지 결정하는 것은 NL에 있습니다.
증명 (스케치) : 에서 q i ( i ∈ [ k ] ) 까지 (폴리 사이즈) 경로를 추측 합니다.
정의 2 : 사전의 순서대로 의 상태를 고려하십시오 . s ( 1 ) 을 첫 번째 액세스 가능 상태로 정의 하고 s ( i ) 는 이전 상태와 동일하지 않은 s ( i - 1 ) 다음에 오는 첫 번째 액세스 가능 상태 를 정의하십시오. 우리는 정의 C ( Q를 ) 단독으로 난 등이 Q ≡ 의 ( I ) .
렘마 3 : 는 O ( log 2 n ) 공간 에서 계산 될 수 있습니다 .
증명 (스케치) : 정의 2는 알고리즘을 생성합니다. 우리는 카운터를 사용하여 상태를 반복합니다. 하자 J ← 0 와 q는 현재 상태를합니다. 각 상태에서 lemma 2를 사용하여 q 에 액세스 할 수 있는지 확인합니다 . 그렇다면 모든 이전 상태를 반복하고 그 중 어느 것이 q 와 동등한 지 확인합니다 . 아무것도 없으면 j 를 증가 시키고 j = i 이면 q를 출력 합니다. 그렇지 않으면 q 를 s ( j ) 로 저장 하고 계속합니다. 우리는 일정한 수의 카운터 만 저장하고 테스트는 NL 에서 수행 할 수 있기 때문에 , 증명이 완료됩니다.
Corollary 1 : 는 O ( log 2 n ) 공간 에서 계산할 수 있습니다 .
정리 : 최소화 는 O ( log 2 n ) 공간 에서 수행 할 수 있습니다 .
증명 (스케치) : 최대 수 내가 되도록 들 ( 난 ) 정의된다 (즉, 클래스들의. 개수 ≡ ). 우리는 오토 마톤 A ' = ( Q ' , Σ , δ ′ , z ′ , F ' )를 출력하는 알고리즘을 제공합니다 .
이제 계산 방법을 보여줍니다 . 모든 옵션 I ∈ [ m ] , ∈ Σ , 컴퓨팅 Q ← S ( I ) . a 및 전이를 출력합니다 ( s ( i ) , a , s ( c ( q ) ) ) . lemma 3 및 corollary 1에 의해이 알고리즘은 O ( log 2 n ) 공간 에서 실행됩니다 . A ′를 확인할 수 있습니다최소값이고 입니다.
Dick Lipton과 동료들은 최근이 문제를 해결했으며 Lipton은 여기에 대해 블로그를 작성했습니다.
http://rjlipton.wordpress.com/2009/08/17/on-the-intersection-of-finite-automata/
DFA 교차점이 빈 언어를 정의하는지 여부를 결정하는 매우 특별한 경우에도 O (n ^ 2)보다 나은 작업이 열린 것으로 보입니다.
이 논문은 교차로에서 2 개의 DFA뿐만 아니라 더 큰 숫자를 처리하는 알고리즘의 개선으로 인한 복잡성 결과를 제공합니다.
If you're given k DFAs (k is part of the input) and wish to know if their intersection is empty, this problem is PSPACE-complete in general:
Dexter Kozen: Lower Bounds for Natural Proof Systems FOCS 1977: 254-266
Perhaps if you carefully study this proof (and similar constructions by Lipton and his co-authors), you might find some sort of space lower bound even for fixed k.
Given two automata , accepting finite languages (acyclic automata), the state complexity of is in (1). This result also holds for unary DFAs (not necessarily acyclic) (2). However, you seem to be talking about the space required to compute the intersection of two automata. I don't see how the classic construction using the Cartesian product uses space. All you need is a constant number of counters of logarithmic size. When you compute the transition function for the new state you only have to scan the input without looking to any previously generated data.
아마도 당신은 최소 오토 마톤을 출력하고 싶습니까? 이것이 사실이라면, 그것이 달성 될 수 있는지에 대한 단서가 없습니다. 유한 언어에 대한 교차의 상태 복잡성은 고무적인 것처럼 보이지 않습니다. 그러나 단항 DFA는 동일한 상태 복잡성을 가지고 있으며 이러한 오토마타를 통해 달성 할 수 있다고 생각합니다. (2)의 결과를 사용 하면 교차점을 인식하는 정확한 크기의 오토 마톤을 얻을 수 있습니다. 이 크기는 테일의 길이와 주기로 설명되므로 구조가 완전히이 두 가지 크기로 설명되므로 아주 적은 공간으로도 전환 기능을 쉽게 계산할 수 있습니다. 그런 다음 최종 상태 세트를 생성하기 만하면됩니다. 하자 모든 다음, 얻어진 오토 마톤의 상태 수를 수 1 ≤ 난