공간을 사용한 CFG 구문 분석


18

컨텍스트없는 문법을 시간으로 구문 분석 할 수있는 다양한 알고리즘이 있습니다 . 행렬 곱셈을 사용하면 그보다 빠른 속도로 갈 수 있습니다.영형()

그러나 내가 알고있는 임의의 CFG를 구문 분석하기위한 모든 알고리즘은 최악의 경우 공간 사용이 (그러나 매트릭스 곱셈 알고리즘의 공간 사용이 무엇인지는 모릅니다). 이 공간 사용을 개선하는 알고리즘이 있는지 궁금합니다 (시간 제한 무시).Ω(2)

와 내가 아는 모든 CFG 구문 분석 알고리즘에 바인딩 된 공간 을 정신적으로 연결 한 후 질문이 습니다. 아마도 실용적인 관심은 없지만 알고 싶은 것에 불과합니다.Ω ( n 2 )에스=에스이자형()에스이자형(2)Ω(2)


5
다른 모든 파싱 알고리즘은 모르지만 행렬 곱셈을 기반으로하는 알고리즘은 공간을 차지 합니다. 참조 : cstheory.stackexchange.com/questions/1313/…Θ(2)
Ryan Williams

답변:


14

이 답의 전반부는 복잡한 이론 용어로 David의 답을 효율적으로 ( ~ ) 표현하는 것입니다.로그 2 ( n )로그4()로그2()

문맥 자유 언어는 복잡한 클래스이 클래스는 로그 깊이 반 언 바운드 회로 로 동일하게 특성화됩니다 . 이들은 OR 게이트가 무한 팬인을 갖고 AND 게이트가 팬인을 제한된 다항식 크기의 회로입니다 (예 : 2). 로그 팩터에 의해 깊이를 증가시킴으로써 우리는 모든 언 바운드 팬인 OR 게이트를 제한된 팬인 OR로 대체 할 수 있습니다. 이것은 에서 문제를 의해 가 어떻게 지금까지 탐색 된 게이트에서 어린이들의 왼쪽 / 오른쪽 시퀀스를 유지하는 깊이 우선 검색에 의해 평가 될 수 있는지를 보는 것은 어렵지 않습니다 . 결과는 Lewis-Hartmanis 용지로 돌아갑니다. 이렇게하면 David의 공간이 향상되지만 이 걸릴 수 있습니다.영형에프.N C 2 D S P A C E ( log 2 ( n ) ) n log n2.2에스이자형(로그2())로그시각. 우리는 더 잘 모른다.

시공간 상충 관계를 이해하는 전통적인 방법은 페블 게임을 사용하는 것입니다. CYK에 관한 몇 가지 논문이 있습니다. 보다 최근의 시도는이 프레젠테이션 의 첫 부분에 있습니다. 여기서 (a) 지수 시간에 선형 공간이 달성 될 수 있고 (b) 시간이 O (n ^ 2) 로 제한되면 영형(2)CYK는 적어도 2 공간을 사용합니다.

분명히 볼만한 가치가있는 매우 흥미로운 문제입니다.


링크에 감사드립니다.
Alex ten Brink

13

모든 컨텍스트 프리 언어는 Chomsky Normal Form의 문법으로 기술 된 다음 비트의 메모리 를 사용하는 비 결정적 알고리즘으로 인식 할 수 있습니다 . 최상위 프로덕션 ( 비트)을 추측하십시오. 그리고 생산의 양측 ( 비트) 과 일치하는 두 개의 하위 문자열 사이의 입력 문자열에서 중단 점 은 더 작은 쪽에서 재귀하고 더 큰 쪽에서 비재 귀적으로 계속됩니다.영형(로그2)영형(1)영형(로그)

Savitch의 정리에 따르면 비트의 메모리 로 문제를 결정적으로 해결할 수 있습니다 . 그러나이 기술로 인한 알고리즘은 비효율적 일 것입니다.영형(로그4)


3
나는 Lewis 등의 비슷한 결과를 우연히 발견했다. 여기 : ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=5397245 . 그럼에도 불구하고 우리는 다항식 시간 만 사용하여 2 차 공간보다 더 잘 할 수 있는지에 대한 의문을 남깁니다.
Alex ten Brink

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