最近的字符串
編輯在理論計算機科學中,最近的字符串是一個NP-hard計算問題,它試圖找到一組輸入字符串的幾何中心。為了理解中心這個詞,有必要在兩個字符串之間定義一個距離。通常情況下,研究這個問題時要考慮到漢明距離。
正式定義
編輯更正式地說,給定n個長度為m的字符串s1,s2,...,sn,最接近的字符串問題尋求一個新的長度為m的字符串s,使d(s,si)≤k,對于所有i,其中d表示漢明距離,k是盡可能小。最接近字符串問題的決策問題版本是NP-complete的,它將k作為另一個輸入,并詢問是否有一個字符串在所有輸入字符串的漢明距離k之內。最接近的字符串問題可以被看作是通用1中心問題的一個特例,其中元素之間的距離用漢明距離來衡量。
最近的字符串的動機
編輯在生物信息學中,最接近的字符串問題是尋找DNA中信號問題的一個深入研究的方面。
簡化和數據減少
編輯最接近字符串的實例可能包含對問題不重要的信息。從某種意義上說,最接近字符串的通常輸入包含的信息對問題的難易程度沒有幫助。例如,如果一些字符串包含字符a,但沒有包含字符z,那么用z替換所有的as,將產生一個基本等同的實例,也就是說:從修改后的實例的解決方案中,可以恢復原來的解決方案,反之亦然。
歸一化輸入
編輯當所有具有相同長度的輸入字符串被寫在彼此的上面時,它們就形成了一個矩陣。某些行的類型對解決方案的影響基本相同。例如,用另一列(x,x,y)替換有條目(a,a,b)的一列可能會導致不同的解串,但不能影響可解性,因為這兩列表達了相同的結構,即前兩個條目相等,但與第三條不同。一個輸入實例可以被規范化,方法是在每一列中用a替換出現頻率最高的字符,用b替換出現頻率第二高的字符,依此類推。給出一個歸一化實例的解決方案,通過將解決方案中的字符重新映射到每一列的原始版本,就可以找到原始實例。列的順序對問題的難易程度沒有幫助。也就是說,如果我們按照一定的排列組合π對所有的輸入字符串進行排列組合,并得到該修改后的實例的解決方案字符串s,那么π-1(s)將是原始實例的解決方案。
最近的字符串的例子
編輯給出一個有三個輸入字符串uvwx、xuwv和xvwu的實例。這可以寫成這樣的一個矩陣。xxx列是數值(u,x,x)。由于x是出現頻率最高的字符,我們用a代替它,我們用b代替u,即第二個出現頻率最高的字符,得到新的xxx列(b,a,a)。第二列的數值是(v,u,v)。與xxx列一樣,v被替換為a,u被替換為b,得到新的第二列(a,b,a)。對所有的列做同樣的處理,就得到了規范化的實例
通過歸一化得到的數據減少
編輯歸一化輸入將字母表的大小減少到最多是輸入字符串的數量。這對那些運行時間取決于字母表大小的算法很有用。
近似性
編輯Li等人發展了一個多項式時間的近似方案,由于隱藏的常數很大,實際上是無法使用的。固定參數的可操作性最接近的字符串可以在以下時間內解決{displaystyleO(kL+kdcdotd{d})},其中k是輸入字符串的數量,L是所有字符串的長度,d是所有字符串的長度。其中,k是輸入字符串的數量,L是所有字符串的長度,d是所需的從解決方案字符串到任何輸入字符串的xxx距離。
與其他問題的關系
編輯最接近字符串是更普遍的最接近子串問題的一個特例,嚴格來說,它更難。雖然最接近字符串在很多方面都是固定參數的,但最接近子串在這些參數方面是W[1]級難度。
內容由匿名用戶提供,本內容不代表www.gelinmeiz.com立場,內容投訴舉報請聯系www.gelinmeiz.com客服。如若轉載,請注明出處:http://www.gelinmeiz.com/163815/