π 접두사 함수를 사용하여 O (m | Σ |)의 문자열 일치 자동 연산에 대해 전이 함수 δ를 계산하는 데 효율적인 알고리즘을 어떻게 제공합니까?전이 함수 계산
유한 오토 마톤에서 전환 함수를 계산하고 싶습니다. 정규 변환 함수는 O (m^3 | Σ |) 복잡도를 가지며, 여기서 m은 패턴 P의 길이이고 Σ는 알파벳입니다. COMPUTE_TRANSITION_FUNCTION (P, Σ)이
m = length(P);
for q = 0 through m do
for each character x in Σ
k = min(m+1, q+2); // +1 for x, +2 for subsequent repeat loop to decrement
repeat k = k-1 // work backwards from q+1
until Pk 'is-suffix-of' Pqx;
d(q, x) = k; // assign transition table
end for; end for;
return d;
End algorithm.
π는 O가