Comment réduire le nombre d'arêtes croisées dans un diagramme?

Je travaille sur un éditeur de diagrammes. Les diagrammes affichent des formes 2D ( nœuds ) connectées à des connecteurs ( bords ). Je voudrais ajouter une opération qui, étant donné une sélection de nœuds, les "démêle" : elle les repositionne pour réduire le nombre d'arêtes croisées, si possible...