Ich habe eine Anwendung, die Milliarden von Levenshtein Abstand zwischen Saitenpaaren berechnen muss. Die Strings sind kurze (70 in der Länge) DNA-Sequenzen, die nur aus 4 Zeichen bestehen. Es kann auch angenommen werden, dass eine der Zeichenfolgen fest ist, dh wir vergleichen eine feste Zeichenfolge mit einer Milliarde anderer Zeichenfolgen.
Ich weiß, dass die dynamische Programmierimplementierung der Levenshtein-Distanz , würde gerne wissen, ob es Raum für Verbesserungen gibt. Ich habe diese beiden Algorithmen gefunden:
- -Algorithmus, bei dem die Bearbeitungsentfernung von Berghel et al . Ich kann jedoch nicht davon ausgehen, dass klein ist, so dass es möglicherweise keinen Vorteil bringt
- Näherung in Zeit von Andoni et al . Aber ich habe zwei Bedenken:
- Ist dieser Algorithmus auch in der Praxis schnell?
- Bedeutet dass die berechnete Bearbeitungsentfernung im schlimmsten Fall mal der tatsächlichen ist ? In diesem Fall ist es zu viel.
Kennen Sie andere Algorithmen / Ideen / Ansätze, die möglicherweise anwendbar sind?