Ich versuche das Longest Common subsequence problem zu lösen, welches das Problem ist, die längste Subsequenz zu finden, die allen Sequenzen in einer Menge von Sequenzen gemein ist (oft nur zwei Sequenzen).Längste gemeinsame Subsequenz zwischen sehr großen Strings
Ich versuche dies zu tun, um die Überlappung zwischen 2 Strings zu berechnen.
Dies ist wohl bekannt Dynamic Programming Problem. In meinem Fall sind die Saiten jedoch zu groß. Als ich versuchte, die 2D-Matrix zum Memoisieren zu verwenden, stieß ich auf Probleme mit dem Speicher außerhalb des Bandes.
Eine Lösung könnte stattdessen eine spärliche Matrix sein, aber ich bin wenig besorgt über den Leistungsaufwand damit.
Auch ich möchte diesen Algorithmus über mehrere Zeichenfolgen durchführen. Und es wird in Ordnung sein, eine ungefähre Antwort zu geben, da ich nur versuche, die Überlappung zwischen zwei Saiten zu messen.
EDIT: Nach einigen Untersuchungen fand ich folgende Alternativen
- Hirsch Algorithmus https://en.wikipedia.org/wiki/Hirschberg%27s_algorithm
Originalpapier http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.348.4360&rep=rep1&type=pdf
Ungefähre Algorithmus: http://cs.haifa.ac.il/~ilan/online-papers/cpm09.pdf
Deposition und Erweiterung Ansatz zur Suche längste gemeinsame Subsequence für mehrere Sequenzen https://arxiv.org/pdf/0903.2015.pdf
LCS auf DNA-Sequenz http://www.sersc.org/journals/IJAST/vol47/2.pdf
effizienten Algorithmus http://www.sciencedirect.com/science/article/pii/S0885064X12000635