Skip to main content
. 2023 Apr 20;9:e1339. doi: 10.7717/peerj-cs.1339

Algorithm 3: A modified agglomerative hierarchical clustering.

Data: n points P1,,Pn
Result: A parsimonious tree T for P1,,Pn
CiPi,i=1,,n;
E(T);
labels;
C{C1,,Cn};
while |C|>1 do
    DijdBC(Ci,Cj) for Ci,CjC;
    C^i,C^jargminCi,CjDij;
    P^i,P^jargminxC^i,yC^jdH(x,y);
    CC+C^iC^j;
    E(T)E(T)+{(C^i,C^iC^j),(C^j,C^iC^j)};
   if C^i is a leaf then
        label(C^i)Pi;
   else
        label(C^i)P^i;
   end
   if C^j is a leaf then
        label(C^j)Pj;
   else
        label(C^j)P^j;
   end
    labelslabels+{label(C^i),label(C^j);
    CC{C^i,C^j};
end