n 차원 패턴 매칭


20

n 차원 배열 내에서 정확한 n 차원 하위 ​​배열을 찾는 알려진 결과는 무엇입니까?

1D에서는 문자열 일치 문제 일 뿐이며 KMP는 선형 시간으로 처리합니다.

2D 에서이 논문 은 여분의 공간이 거의없는 선형 시간에 수행 될 수 있음을 보여주었습니다.

고정 치수에 대해 선형 시간 최악의 경우에이 문제를 해결할 수 있습니까?

답변:


13

1977 년 http://www.sciencedirect.com/science/article/pii/0020019077900175 에서 Bird의 선형 시간 원래 솔루션을 확장하면 고정 된 수의 차원에서 문제를 해결할 수 있습니다 (구독이 필요합니다).

일반적인 아이디어 (2D)는 1D 단계에서 2D 패턴의 행에 대한 Aho-Corasick 오토 마톤을 구축 한 다음 2D 텍스트의 행을 하나씩 공급합니다. 그런 다음 텍스트에서 패턴 행과 일치하는 모든 위치를 찾습니다. 완료하려면 이제 KMP say를 사용하여 1 단계 출력의 열에서 패턴의 행을 올바른 순서로 1D 검색 만하면됩니다. 이 모든 것은 선형 시간이 걸립니다.

동일한 방법을 사용하면 차원 d 정확한 일치 문제를 차원 d-1 문제로 줄일 수 있습니다. 이런 식으로 고정 치수 d에 대한 선형 시간 솔루션을 얻을 수 있습니다.


9

FFT 기법을 사용하여 거의 (최대 폴리 로그 계수) 선형 시간으로이를 해결할 수 있습니다. : 당신은 종이에 볼 수 http://www.cs.tau.ac.il/~klim/papers/CEPR08.pdf 우리가 한 차원 패턴 매칭을위한 FFT 기술을 사용합니다. 다차원 패턴 일치를 해결하려면 고차원 FFT 만 사용하면됩니다.


이 논문이 2008 년이라는 것을 감안할 때, 선형 시간 알고리즘은 아직 알려지지 않았다고 가정합니다.
Chao Xu

나는 당신의 문제를 해결하는 데 사용될 수있는 기술의 예로서 만 그것을 주었다. 이 접근 방식의 장점은 불일치 문제를 해결할 수도 있고 신경 쓰지 않아도된다는 것입니다. 그러나 정확히 하나의 차원 패턴 일치는 선형 시간 alg가 존재합니다. 다차원으로 알려진 것일 수도 있습니다.
Klim

1
와일드 카드와의 패턴 일치에 대한 기본 결과는 Fischer와 Paterson 1974에서 나온 것으로 cs.bris.ac.uk/Publications/pub_master.jsp?id=2000602 (자기 인용에 대한 사과)가 될 때까지 지속적으로 조정되고 단순화되었습니다 . 그러나 아래에 언급 한 이전의 정확한 일치 방법을 사용하여 OP가 요청한 문제에 대해서는 약간의 과잉이 발생할 수 있습니다.
Raphael
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.