DSM clustering-sequencing

This algorithm gets a DSM as input and finds the optimal permutation of its rows-columns. The optimality is calculated as the sum of every entry to the diagonal, giving entries below the diagonal a special weight