상관없는 패턴 매칭 : 다중 패턴


9

Kalai의 2 페이지 SODA 논문상관 없음 (한 문자와 일치하는 와일드 카드) 과 패턴 일치를위한 간단하고 효율적인 알고리즘을 제공합니다 . 본질적으로 컨볼 루션만큼 쉽습니다.

그러나 신경 쓰지 않는 여러 패턴을 검색하면 어떻게됩니까 ? 예를 들어 FFT 기반 기술로 어떻게 든 해결할 수 있습니까?

답변:


5

다중 패턴 사례의 경우, 적어도 지수 시간 가설이 실패하지 않는 한 단순히 각 요소를 스캔하는 것이 최상의 솔루션 일 수 있습니다.

주어진 세트를 상기 S1,S2,,SnT1,T2,,Tn 우주에 [m]우리가 있는지 결정할 수 있다면 SiTj 그런 SiTj=[m] 제 시간에 O(n2εpoly(m))SETH가 실패합니다. 즉, 실행 시간이있는 CNF-SAT 알고리즘이 있습니다. O(2(1ε/2)n).

주어진 세트 S1,S2,,SnT1,T2,,Tn위의 문제를 다음과 같이 이진 알파벳을 신경 쓰지 않는 다중 패턴 일치로 인코딩합니다.

  • 텍스트는
    1[T1]10m+21[T2]10m+20m+21[Tn]1,
    어디 [Ti] 자연스러운 인코딩입니다 Ti 이진 문자열로.
  • 우리는 n 형태의 패턴 1Si1, 어디 Si 문자열이다 y=y1y2ym 그런 yj=1 만약 jSiyj= 만약 jSi (여기 상관 없음 기호입니다).

이제 패턴이 분명합니다 1Si1 발생시 텍스트를 일치시킬 수 있습니다 1[Tj]1때에 만 SiTj=[m]. 총 패턴 길이와 텍스트 길이는 모두O(nm)예를 들어, 여러 패턴에 대한 선형에 가까운 단일 패스 알고리즘은 가장 잘 알려진 CNF-SAT 알고리즘에 비해 상당한 개선점을 제공 합니다 ...

(이것은 패턴의 전체 길이에서 2 차 패턴과 같이 패턴을 전처리하는 데 많은 시간을 사용하는 알고리즘에 대해서는 언급하지 않습니다.)

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