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
Ci←Pi,i=1,…,n;
E(T)←∅;
labels←∅;
C←{C1,…,Cn};
while |C|>1 do
    Dij←dBC(Ci,Cj) for Ci,Cj∈C;
    C^i,C^j←arg⁡minCi,CjDij;
    P^i,P^j←arg⁡minx∈C^i,y∈C^jdH(x,y);
    C←C+C^i∪C^j;
    E(T)←E(T)+{(C^i,C^i∪C^j),(C^j,C^i∪C^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
    labels←labels+{label(C^i),label(C^j);
    C←C−{C^i,C^j};
end