【发布时间】:2015-01-01 05:07:52
【问题描述】:
我正在尝试实现一个邻居加入算法来创建一个系统发育树。该算法在此处进行了描述,我一直将其用作参考:
http://en.wikipedia.org/wiki/Neighbor_joining
我已经到了需要开始合并节点的地步,在示例中他们将 a 和 b 合并到 u 中。我在如何在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 的全新矩阵?我还需要跟踪索引,因为它们对应于特定的序列。每次合并时,它们都需要向下移动,所以我想我需要一些列表来跟踪序列的去向?
谁能告诉我如何开始?
【问题讨论】:
标签: java algorithm tree cluster-analysis