I have some difficulties understanding your algorithm, but I assume it is something like
UPGMA. Is your "concepts" graph really a bifurcating tree? In Phylogeny, one assumes that all observed "concepts" have a common ancestor. If this is the case, it is straightforward to apply simple algorithms like
Neighbor-joining or UPGMA. They take as input a distance matrix.