1
我想實現一個鄰居加入算法來創建系統發育樹。該算法在這裏所描述的,我已經使用作爲參考:Java中的鄰居加入算法
http://en.wikipedia.org/wiki/Neighbor_joining
我已經得到的地方,我需要開始合併節點的點,在該示例它們被合併a和b成ü。我遇到了如何在java中實現這個問題。我有一個距離矩陣是這樣的:
double[][] distanceMatrix = new double[][]{
{0, 7,11,14},
{7, 0,6,9},
{11,6,0,7},
{14,9,7,0}
};
我創建了一個Q矩陣沒有問題,並確定最小值,因此哪些節點需要合併。但是當涉及到實際編碼時,我很難過。我需要創建一個新的相似性矩陣,用A和B替換爲U,所以我假設我需要製作一個比我開始使用的矩陣小的新矩陣,所以我需要製作一個大小爲-1的全新矩陣?我還需要跟蹤索引,因爲它們對應於特定的序列。每次我合併時都需要向下移動,所以我想我需要一些列表來跟蹤序列的進展情況。
有人可以給我一個如何開始的想法嗎?