複数のシーケンスで最長共通部分文字列 (LCS) を見つけようとしています。
CPAN には、次のような 2 つのシーケンスの LCS アルゴリズムを実装するモジュールが多数あります。Algorithm::差分と String::LCSS_XSですが、複数のシーケンスにわたる LCS は必ずしもそれらの 2 つの間の LCS であるとは限らないため、2 つ以上のシーケンスで動作するようにそれらを拡張するのに苦労しています。
その名前に反して、Algorith::MLCSは実際には LCS を返すのではなく、多数の配列のすべての共通要素 (これも非連続) を返すことに注意してください。設計上壊れているという印象ですが、間違っているかもしれません。
Algorithm::DiffとAlgorith::MLCSは、最長共通部分文字列の問題ではなく、最長共通部分列の問題を解決します。
n=2 アルゴリズムを拡張する明白な方法はありますか、それとも自分のバージョンを実装する必要がありますか? はいの場合、どのように?
ありがとう。