Ich spiele herum mit Levenshteins Edit-Distanz-Algorithmus und ich möchte dies dahingehend erweitern, dass Transpositionen - d. h. der Austausch benachbarter Buchstaben - als 1 Bearbeitung gezählt werden. Der unveränderte Algorithmus zählt Einfügungen, Löschungen oder Ersetzungen, die notwendig sind, um eine bestimmte Zeichenkette von einer anderen zu erreichen. Zum Beispiel ist der Abstand von "KITTEN" zu "SITTING" 3. Hier ist die Erklärung aus Wikipedia:
- kitten sitten (Ersetzung von 'k' durch 's')
- sitten sittin (Ersetzung von 'e' durch 'i')
- sittin sitting (am Ende ein 'g' einfügen).
Nach der gleichen Methode beträgt der Bearbeitungsabstand von "CHIAR" zu "CHAIR" 2:
- CHIAR CHAR (streichen Sie 'I')
- CHAR CHAIR (einfügen 'I')
Ich würde dies gerne als "1 Bearbeitung" zählen, da ich nur zwei benachbarte Buchstaben austausche. Wie würde ich vorgehen?