An Improved Algorithm for the Longest Common Subsequence Problem

碩士 === 國立暨南國際大學 === 資訊工程學系 === 101 === The Longest Common Subsequence (LCS) problem is a well-known problem in the field of computer science. There are many variants and applications related to LCS such as computing the edit distance between two DNA sequences, automatic typing correction and even co...

Full description

Bibliographic Details
Main Authors: Jia-Sen Wu, 吳嘉森
Other Authors: Guan-Shieng Huang
Format: Others
Language:en_US
Published: 2013
Online Access:http://ndltd.ncl.edu.tw/handle/71921485917954092341
Description
Summary:碩士 === 國立暨南國際大學 === 資訊工程學系 === 101 === The Longest Common Subsequence (LCS) problem is a well-known problem in the field of computer science. There are many variants and applications related to LCS such as computing the edit distance between two DNA sequences, automatic typing correction and even computer virus detection. This paper is about how to make a more efficient algorithm to solve the LCS problem. The main idea is that the binary search is replaced by VEB tree with a special technique called Reranking in order to reduce the time complexity of Hunt-Szymanski Algorithm. The time of search operation of VEB tree depends on the range it operates. The smaller range VEB tree operates, the more efficient searching operation would be. If we can reduce the range then we can improve the Hunt-Szymanski Algorithm as well. In short, our algorithm exploits the Reranking technique to reduce VEB tree range meanwhile decrease the memory that VEB tree needs as another advantage. Our algorithm time complexity O(n + r log log s ) where n is the time for sorting two input strings from constant alphabet, r is the number of total matched pairs in the matched list and s is the length of LCS.