Tôi đang làm việc trên các thuật toán tìm kiếm chuỗi hỗ trợ tìm kiếm nhiều mẫu. Tôi tìm thấy hai thuật toán có vẻ như là ứng cử viên mạnh nhất về thời gian hoạt động, đó là Aho-Corasick và Rabin-Karp . Tuy nhiên, tôi không thể tìm thấy bất kỳ so sánh toàn diện giữa hai thuật toán. Thuật toán nào hiệu quả hơn? Ngoài ra, cái nào phù hợp hơn cho tính toán song song và tìm kiếm nhiều mẫu? Cuối cùng, cái nào đòi hỏi ít tài nguyên phần cứng hơn?
Đối với thuật toán AC, pha tìm kiếm mất thời gian , trong khi đó là O ( n m ) cho RK. Tuy nhiên, thời gian chạy cho RK là O ( n + m ) làm cho nó tương tự như AC. Kết luận dự kiến của tôi là RK có vẻ thực tế tốt hơn vì nó không cần nhiều bộ nhớ như AC. Đúng không?