A mathematical programming approach to hierarchical clustering | Synapse