3 research outputs found

    Efficient edit distance with duplications and contractions

    Get PDF
    Abstract We propose three algorithms for string edit distance with duplications and contractions. These include an efficient general algorithm and two improvements which apply under certain constraints on the cost function. The new algorithms solve a more general problem variant and obtain better time complexities with respect to previous algorithms. Our general algorithm is based on min-plus multiplication of square matrices and has time and space complexities of O (|Σ|MP (n)) and O (|Σ|n 2), respectively, where |Σ| is the alphabet size, n is the length of the strings, and MP (n) is the time bound for the computation of min-plus matrix multiplication of two n × n matrices (currently, MP ( n ) = O n 3 log 3 log n log 2 n due to an algorithm by Chan).For integer cost functions, the running time is further improved to O | Σ | n 3 log 2 n . In addition, this variant of the algorithm is online, in the sense that the input strings may be given letter by letter, and its time complexity bounds the processing time of the first n given letters. This acceleration is based on our efficient matrix-vector min-plus multiplication algorithm, intended for matrices and vectors for which differences between adjacent entries are from a finite integer interval D. Choosing a constant 1 log | D | n < λ < 1 , the algorithm preprocesses an n × n matrix in O n 2 + λ | D | time and O n 2 + λ | D | λ 2 log | D | 2 n space. Then, it may multiply the matrix with any given n-length vector in O n 2 λ 2 log | D | 2 n time. Under some discreteness assumptions, this matrix-vector min-plus multiplication algorithm applies to several problems from the domains of context-free grammar parsing and RNA folding and, in particular, implies the asymptotically fastest O n 3 log 2 n time algorithm for single-strand RNA folding with discrete cost functions.Finally, assuming a different constraint on the cost function, we present another version of the algorithm that exploits the run-length encoding of the strings and runs in O | Σ | nMP ( ñ ) ñ time and O ( | Σ | nñ ) space, where ñ is the length of the run-length encoding of the strings
    corecore