Tôi có một ứng dụng cần tính toán hàng tỷ khoảng cách levenshtein giữa các cặp chuỗi. Các chuỗi là các chuỗi DNA ngắn (dài 70), chỉ bao gồm 4 ký tự. Ngoài ra, có thể giả định rằng một trong các chuỗi là cố định, nghĩa là chúng ta đang so sánh một chuỗi cố định với một tỷ chuỗi khác.
Tôi biết rằng việc triển khai lập trình động của khoảng cách levenshtein là , muốn biết liệu có chỗ nào cần cải thiện không. Tôi tìm thấy hai thuật toán:
- Thuật toán , trong đó là khoảng cách chỉnh sửa của Berghel et al . Tuy nhiên tôi không thể đưa ra giả định rằng nhỏ nên nó có thể không mang lại lợi thế nào
- xấp xỉ trong thời gian của Andoni et al . Nhưng tôi có hai mối quan tâm về điều này:
- Là thuật toán này cũng nhanh trong thực tế?
- Liệu có nghĩa là khoảng cách chỉnh sửa được tính toán trong trường hợp xấu nhất là lần so với thực tế ? Trong trường hợp đó là quá nhiều.
Bạn có biết bất kỳ thuật toán / ý tưởng / cách tiếp cận nào khác có thể áp dụng không?