Abstract
一段音樂序列是由 n 個正整數所組成的序列,其中每個正整數代表的是音符與音符的間隔時間。一段節奏是由「快」(Q) 跟「慢」(S) 這兩種符號所組成的序列,長度為 m 。其中 Q 跟 S 分別代表音樂中的一段時間間隔,並且 S 所代表的時間長度為 Q 的兩倍。「最大覆蓋問題」要找出在一段音樂序列中,被給定的節奏所覆蓋住的最長的子序列。「容錯最大覆蓋問題」是最大覆蓋問題的一個延伸版本,其中每個匹配允許誤差的產生。這兩個問題是本篇論文的核心。Christodoulakis 等人證明最大覆蓋問題可以在 O(n log H) 的時間內被簡化至「節奏搜尋問題」,此處 H 代表的是給定的音樂序列中最大的值。在此篇論文中,我們先證明節奏搜尋問題可以更進一步在線性時間內被簡化至萬用字元匹配問題的一個特例。若引用萬用字元匹配問題現有的演算法,我們可以直接得到一個 O(n log H + n log m) 的結果。此時間複雜度與目前最好的結果相符。另外,當 k <= log m 時,我們可以得到一個更佳的時間複雜度 O(n log H + nk),此處 k 是給定的節奏當中符號 S 的數量。針對容錯最大覆蓋問題,Chan 等人提出了時間複雜度 O(cn^2) 的演算法,此處 c 是允許被合併的元素的最大數量。在本篇論文中,我們也證明他們的演算法的時間複雜度可以被降低至 O(n^2)。