이차 공간에서의 DFA 교차점?


25

n 상태와 두 개의 (최소) DFA의 교차는 O (n 2 ) 시간과 공간을 사용하여 계산할 수 있습니다 . 결과적인 (최소한) DFA는 n 2 상태를 가질 수 있기 때문에 이것은 일반적으로 최적입니다 . 그러나 결과 최소 DFA에 z 상태가 z = O (n) 인 경우, 일부 상수 eps> 0에 대해 공간 n 2-eps 에서 계산할 수 있습니까? 입력 DFA가 비주기적인 특수한 경우에도 이러한 결과에 관심이 있습니다.


3
음 ... 두 개의 n- 상태 DFA가 비순환 적이라면 각각은 최대 n의 유한 길이의 단어 집합을 받아들입니다. 선형 시간과 공간으로 계산할 수 있습니다. 아니면 뭔가 빠졌습니까?
Joshua Grochow

4
예, 비 주기적 DFA는 유한 단어 집합 만 허용합니다. 그러나 교차점이 n ^ 2 인 비순환 DFA의 예가 있습니다. 예를 들어 AABC 형식의 문자열 (ABC는 길이 k의 문자열)을 허용하는 DFA와 ABCC 형식의 문자열을 허용하는 DFA를 생각해보십시오.
Rasmus Pagh

1
태그 재 지정 : cs.cc는 arxiv 지정이므로 지정된 태그에는 cs.cc 접두사가 필요하지 않습니다.
Suresh Venkat

답변:


15

그 대답은 오토 마톤의 크기에 대한 요구 사항없이 입니다. k 가 상수 인 k DFA의 경우 에도 O(log2n) 공간 에서 계산할 수 있습니다 .kk

하자 Ai=(Qi,Σi,δi,zi,Fi) ( i[k])k DFAS. 우리는 주어진 표시 A1,,Ak , 최소 DFA 인식 컴퓨팅 L(A1)L(Ak) 에서 수행 될 수있다 O(log2n) 공간. 먼저 몇 가지 기술적 결과를 입증합니다.

정의 1 : q,r 을 두 상태로하고 qr iff wΣ , q.wFr.wF

우리는 이제 고전적인 직교 곱 구성에 의해 주어진 오토 마톤 고려합니다 . 하자 Q = ( q는 1 , ... , q 개의 K가 )(R) = ( R은 1 , ... , R에 K가 ) 의 상태 일 수 .Aq=(q1,,qk)r=(r1,,rk)A

Lemma 1 : 이 NL 인지 여부를 결정합니다 .qr

증명 (스케치) : 테스트 부등식이 NL에 있고 NL = coNL을 사용함을 보여줍니다. q 와 같은 단어 (한 번에 한 글자)를 추측하십시오 . w 는 최종 상태이고 r 입니다. w는 없습니다. 이것은 q i 를 계산함으로써 달성 될 수있다 . , r에 난을 . i [ k ]에 대한 로그 공간의 wq 가 최종 이라는 사실 사용 iff q iF iwΣq.wr.wqi.w,ri.wi[k]q . q r w 의 폴리 크기의 존재를 의미한다는 것을 알수있다.qiFii[k]qrw

Lemma 2 : 가 (in) 액세스 가능한지 결정하는 것은 NL에 있습니다.q

증명 (스케치) : 에서 q i ( i [ k ] ) 까지 (폴리 사이즈) 경로를 추측 합니다.ziqii[k]

정의 2 : 사전의 순서대로 의 상태를 고려하십시오 . s ( 1 ) 을 첫 번째 액세스 가능 상태로 정의 하고 s ( i ) 는 이전 상태와 동일하지 않은 s ( i - 1 ) 다음에 오는 첫 번째 액세스 가능 상태 를 정의하십시오. 우리는 정의 C ( Q를 ) 단독으로 등이 Q ( I ) .As(1)s(i)s(i1)c(q)iqs(i)

렘마 3 : O ( log 2 n ) 공간 에서 계산 될 수 있습니다 .s(i)O(log2n)

증명 (스케치) : 정의 2는 알고리즘을 생성합니다. 우리는 카운터를 사용하여 상태를 반복합니다. 하자 J 0q는 현재 상태를합니다. 각 상태에서 lemma 2를 사용하여 q 에 액세스 할 수 있는지 확인합니다 . 그렇다면 모든 이전 상태를 반복하고 그 중 어느 것이 q 와 동등한 지 확인합니다 . 아무것도 없으면 j 를 증가 시키고 j = i 이면 q를 출력 합니다. 그렇지 않으면 qs ( j ) 로 저장 하고 계속합니다. 우리는 일정한 수의 카운터 만 저장하고 테스트는 NL 에서 수행 할 수 있기 때문에kj0qqqjqj=iqs(j) , 증명이 완료됩니다.NLDSPACE(log2n)

Corollary 1 : O ( log 2 n ) 공간 에서 계산할 수 있습니다 .c(q)O(log2n)

정리 : 최소화 는 O ( log 2 n ) 공간 에서 수행 할 수 있습니다 .AO(log2n)

증명 (스케치) : 최대 수 내가 되도록 ( ) 정의된다 (즉, 클래스들의. 개수 ). 우리는 오토 마톤 A ' = ( Q ' , Σ , δ , z , F ' )를 출력하는 알고리즘을 제공합니다 .1m|Q0||Q1|is(i)A=(Q,Σ,δ,z,F)

  • ;Q={s(i):i[m]}
  • ;F={qQ:qiFii[k]}
  • 여기서 q = ( z 0 , , z k ) 입니다.z=s(c(q))q=(z0,,zk)

이제 계산 방법을 보여줍니다 . 모든 옵션 I [ m ] , Σ , 컴퓨팅 Q S ( I ) . a 및 전이를 출력합니다 ( s ( i ) , a , s ( c ( q ) ) ) . lemma 3 및 corollary 1에 의해이 알고리즘은 O ( log 2 n ) 공간 에서 실행됩니다 . A ′를 확인할 수 있습니다δi[m],aΣqs(i).a(s(i),a,s(c(q)))O(log2n)A최소값이고 입니다.L(A)=L(A)


3
좋은 알고리즘! 이 알고리즘을 보는 약간 다른 방법이 있습니다. 그 코어의 상태를 최소화한다는 것이다 어떤 주어진 DFA 다항식 시간에 수행 될 수 공간. 그 결과, (따라서 다항식 시간의 대수 공간에서의 교점을 나타내는 일부 DFA 구축하기 쉽다 O를 ( 로그 2 N을 ) 공간), 우리는 다항식 시간의 계산 가능한 두 가지 기능을 구성 할 수 O를 ( 로그 2 N을 ) 공간 (두 로그 공간 축소를 구성하는 것과 유사한 방식으로) 다항식 시간과 O로 전체 알고리즘을 생성합니다.O(log2n)O(log2n)O(log2n) 공간. O(log2n)
Tsuyoshi Ito

2
방금이 대답을 보았습니다 ... 왜 알고리즘이 polytime과 공간에서 동시에 실행되는지 알 수 없습니다 . 예 N L P D S P C E가 [ 로그인 2 N를 ] 하지만, 만약 그것이 알려지지 않은 N L T I S P [ N O ( 1 ) , 로그 2 N를 ] - 즉, 우리가 할 수있는 polytime에서 실행되는 알고리즘을 얻으면 다른 알고리즘을 실행할 수 있습니다O(log2n)NLPDSPACE[log2n]NLTISP[nO(1),log2n] 공간이지만단일 알고리즘으로 polytime 및 O ( log 2 n ) 공간에서 N L 문제를 해결하는 방법을 모르겠습니다. O(log2n)NLO(log2n)
Ryan Williams

당신 말이 맞아요, 나도 잘 모르겠어요 나는 이것을 오래 전에 게시 했으므로 왜 이런 식으로 작성했는지는 확실하지 않지만 아마도 "다항식 시간 또는 O (log² n)"을 의미했을 것입니다. 오해의 소지가 있으므로 편집하겠습니다. 고맙습니다!
Michael Blondin

14

Dick Lipton과 동료들은 최근이 문제를 해결했으며 Lipton은 여기에 대해 블로그를 작성했습니다.

http://rjlipton.wordpress.com/2009/08/17/on-the-intersection-of-finite-automata/

DFA 교차점이 빈 언어를 정의하는지 여부를 결정하는 매우 특별한 경우에도 O (n ^ 2)보다 나은 작업이 열린 것으로 보입니다.
이 논문은 교차로에서 2 개의 DFA뿐만 아니라 더 큰 숫자를 처리하는 알고리즘의 개선으로 인한 복잡성 결과를 제공합니다.


1
하한은 어떻습니까?
Marcos Villagra

1
Just to clarify the questions: I'm happy to spend O(n^2) time (or maybe even n^O(1) time) to improve the space bound.
Rasmus Pagh

13

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.


이 포인터에 감사드립니다. 나는 이것이 입력과 별도로 필요한 추가 공간에서 n ^ Omega (1) 공간 하한으로 이어질 수 있다고 추측합니다. 그러나 아마도 슈퍼 선형 공간 하한으로 이어질 수 있습니까?
Rasmus Pagh

1
@ user124864 각각 n 개의 상태를 갖는 DFA가 주어지면 , 제품 오토 마톤은 n 개의 k 상태를 갖게 됩니다. 이제 크기를 줄이기 위해 할 수있는 두 가지 트릭이 있습니다. 첫 번째는 제품 그래프의 도달 가능한 구성 요소 만 고려한다는 것입니다. 둘째, 제품 DFA를 최소화 할 수 있습니다. 하루가 끝나면이 제품이 어떤 언어를 인식하는지 파악하기가 어렵습니다. knnk
Michael Wehar

1
@ user124864 제품 DFA가 비어 있지 않은 언어를 인식하는지 여부를 판단하는 것조차 어렵다. 이것은 교차 비 공백 문제입니다. 단단하게 말해서 은 강한 의미에서 완성 된 것입니다. XNL
Michael Wehar

1
@ user124864 미만으로 해결할 수 있다면 PSPACE 완료 문제에 대한 더 빠른 알고리즘을 얻게됩니다. o ( 1 ) k log ( n ) 비 결정적 이진 공간 에서는 해결할 수 없습니다 . 우리가 k 2 log 2 ( n ) 미만의 결정 론적 이진 공간 에서 그것을 해결할 수 있는지는 알려져 있지 않습니다 . 결정 론적 다항식 시간과 모든 함수에 대해 f ( k ) log 2 ( n ) 이진수 공간 에서 풀 수 있는지는 알 수 없습니다.nko(1)klog(n)k2log2(n)f(k)log2(n)f (doing so would improve Savitch's theorem).
Michael Wehar

1
@user124864 Note: we have both of the following. (1) Beating nk time deterministically implies faster deterministic algorithms for PSPACE complete problems and (2) beating nk time non-deterministically implies faster non-deterministic algorithms for PSPACE complete problems.
Michael Wehar

7

Given two automata A, B accepting finite languages (acyclic automata), the state complexity of L(A)L(B) is in Θ(|A||B|) (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 O(n2) space. All you need is a constant number of counters of logarithmic size. When you compute the transition function for the new state (q,r) you only have to scan the input without looking to any previously generated data.

아마도 당신은 최소 오토 마톤을 출력하고 싶습니까? 이것이 사실이라면, 그것이 달성 될 수 있는지에 대한 단서가 없습니다. 유한 언어에 대한 교차의 상태 복잡성은 고무적인 것처럼 보이지 않습니다. 그러나 단항 DFA는 동일한 상태 복잡성을 가지고 있으며 이러한 오토마타를 통해 달성 할 수 있다고 생각합니다. (2)의 결과를 사용 하면 교차점을 인식하는 정확한 크기의 오토 마톤을 얻을 수 있습니다. 이 크기는 테일의 길이와 주기로 설명되므로 구조가 완전히이 두 가지 크기로 설명되므로 아주 적은 공간으로도 전환 기능을 쉽게 계산할 수 있습니다. 그런 다음 최종 상태 세트를 생성하기 만하면됩니다. 하자 모든 다음, 얻어진 오토 마톤의 상태 수를 수 1 n1iniaiAB


1
그렇습니다, 나는 최소한의 오토 마톤이나 적어도 비슷한 크기의 오토 마톤에 관심이 있습니다. 단항 DFA에 대한 조언에 감사드립니다. 그러나 이것은 일반적인 경우에는별로 도움이되지 않는 것 같습니다.
Rasmus Pagh
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.