這裏是一個二次時間算法,它給出了關於以下模型的最大似然估計。讓A1 < ... <是真實的間隔並讓B1 < ... < Bn是報告的間隔。數量sub(i,j)是Ai變成Bj的對數似然。數量del(i)是Ai被刪除的對數似然值。數量ins(j)是插入Bj的對數似然值。隨處做獨立假設!我要選擇子,德爾和插件等等,對於每一個我< i「和每次J的< J」,我們有
sub(i, j') + sub(i', j) <= max {sub(i, j) + sub(i', j')
,del(i) + ins(j') + sub(i', j)
,sub(i, j') + del(i') + ins(j)
}.
這確保了間隔之間的最佳匹配noncrossing,因此該我們可以使用如下的Levenshtein-like動態程序。
該動態程序作爲記憶遞歸函數score(i, j)
呈現,其計算匹配A1,...,Ai與B1,...,Bj的最佳分數。調用樹的根是score(m, n)
。可以修改它以在最佳解決方案中返回sub(i, j)
操作的順序。
score(i, j) | i == 0 && j == 0 = 0
| i > 0 && j == 0 = del(i) + score(i - 1, 0 )
| i == 0 && j > 0 = ins(j) + score(0 , j - 1)
| i > 0 && j > 0 = max {sub(i, j) + score(i - 1, j - 1)
,del(i) + score(i - 1, j )
,ins(j) + score(i , j - 1)
}
以下是sub,del和ins的一些可能的定義。我不確定他們是否會有好處;您可能希望通過比2。其他常量或使用權力來增加他們的值如果艾= [S,T]和Bj = [U,V],然後定義
sub(i, j) = -(|u - s|^2 + |v - t|^2)
del(i) = -(t - s)^2
ins(j) = -(v - u)^2.
(道歉到現存無疑學術誰在幾十年前的生物信息學文獻中發表了類似的文章)。
多少間隔?太快了? –
你能否最終得出一個不考慮這個列表中的其他事件的最佳候選人不是總體最佳候選人的情景?所以說所有的事件都是1小時的時間,一個列表有3個事件,分別從5,6和7開始。另一個事件的事件從5.31,6.31和7.31開始。如果只看6,你會得出結論5.31是最好的事件,但這會使5不成對。這是期望的行爲還是應該在這個例子中將它們全部配對?另外,究竟哪裏應該說事件距離太遠而無法配對呢? – Dukeling
編輯該問題以回答@David發表的評論。 – user3328492