эффективная библиотека алгоритмов самой длинной общей подпоследовательности?

Я ищу эффективную (пространственную) реализацию алгоритма LCS для использования в программе на C ++. Входными данными являются две последовательности целых чисел с произвольным доступом.
В настоящее время я использую подход динамического программирования со страницы википедии о LCS. Однако это имеет поведение O (mn) в памяти и времени и умирает для меня с ошибками нехватки памяти для больших входных данных.
Я читал об алгоритме Хиршберга, который значительно улучшает использование памяти, а также об алгоритме Ханта-Шимански, Масека и Патерсона. Поскольку реализовать их нетривиально, я бы предпочел попробовать их на моих данных с существующей реализацией. Кто-нибудь знает о такой библиотеке? Я полагаю, поскольку инструменты сравнения текста довольно распространены, должны быть какие-то библиотеки с открытым исходным кодом?

12
задан BuschnicK 7 September 2010 в 13:25
поделиться