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 (et ça va si les arêtes doivent être dessinées avec des points de pliage) .
Je veux donc un algorithme de graphe qui, étant donné une incorporation de graphe ( topologique ) et un sous-ensemble de ses nœuds, modifie l'incorporation (sa topologie ) sur ces nœuds uniquement afin de minimiser le nombre d'arêtes croisées.
En lisant les graphiques des sommets et en parcourant Cabello et Mohar (2013) , je suppose que ce problème est difficile à NP. Je serai donc satisfait d'un algorithme paramétré (par exemple, sur le nombre d'arêtes croisées) qui a une complexité temporelle polynomiale connue pour une valeur de paramètre donnée. Cela semble faisable, mais je ne trouve pas facile de trouver un tel algorithme par moi-même.
Des questions:
- Où chercher un tel algorithme?
- Existe-t-il?
- Dans les logiciels existants?
- Existe-t-il une expérience pratique significative avec une telle opération? (Ce qui semble bon en théorie peut ne pas être aussi bon en pratique, ou vice versa.)
(Je ne sais pas où mieux poser cette question: ici, sur StackOverflow, ou MathOverflow?)