This directory contains documentation for the Universal Levenshtein Automaton implementation, including its optimal-string-alignment transposition variant (restricted Damerau distance, not unrestricted Damerau–Levenshtein).
The Universal Levenshtein Automaton is a parameter-free automaton that efficiently computes approximate string matching using offset-based positions rather than word-specific absolute positions.
PositionVariant traitState typePosition I+offset#e at input position k represents word position i = offset + k. This relative offset model differs from lazy automaton's absolute positions.
The ⟨2,2,1⟩ operation for adjacent character swaps:
i#e → i#(e+1)_t (Universal: offset - 1)i#(e+1)_t → (i+2)#e (Universal: offset + 1)Transposition is ADDITIVE - it includes ALL standard operations (insertion, deletion, substitution) plus adjacent character swaps.
Similarly, merge and split operations are ADDITIVE - they include all standard operations plus the merge/split operations.
src/transducer/universal/position.rssrc/transducer/universal/automaton.rssrc/transducer/universal/automaton.rs (lines 467-720)The Universal automaton implementation has been thoroughly cross-validated against:
src/transducer/transition.rs)Both implementations agree completely on transposition semantics and behavior.
/home/dylon/Papers/Approximate String Matching/Universal Levenshtein Automata - Building and Properties/Can you improve this documentation?Edit on GitHub
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |