Để cho các automaton chuỗi phù hợp cho mô hình, đó là
- cho tất cả và
với độ dài của tiền tố dài nhất của đó là một hậu tố của , đó là
.
Bây giờ, hãy các chức năng tiền tố từ thuật toán Knuth-Morris-Pratt , đó là
.
Hóa ra, người ta có thể sử dụng để tính toán một cách nhanh chóng; quan sát trung tâm là:
Giả sử các khái niệm trên và . Đối với với hoặc , nó giữ điều đó
Nhưng làm thế nào tôi có thể chứng minh điều này?
Để tham khảo, đây là cách bạn tính toán :
m ← length[P ]
π[0] ← 0
k ← 0
for q ← 1 to m − 1 do
while k > 0 and P [k + 1] =6 P [q] do
k ← π[k]
if P [k + 1] = P [q] then
k ← k + 1
end if
π[q] ← k
end while
end for
return π