Je recherche un algorithme pour dessiner un graphe mixte de circonscription / dépendance (pour une application linguistique). Un tel graphique aurait deux types de sommets différents (jetons, nœuds) et deux types d'arêtes différents (hiérarchique, non hiérarchique).
Je suis nouveau dans la théorie des graphes et les algorithmes en général, et j'espère que cette question ne se heurtera pas par exemple aux exigences de recherche de ce site. Elle devrait cependant généralement être du domaine de la théorie .
Le graphique devrait être tracé de bas en haut (je pense), car tous les jetons devraient être affichés avec la même coordonnée y, et les coordonnées y des nœuds regroupant des jetons et / ou des nœuds en constituants devront être calculées dynamiquement, par exemple, via leur plus long chemin vers un jeton.
Les arêtes hiérarchiques (utilisées pour regrouper les jetons / nœuds en constituants) devraient avoir un nombre minimum de points de pliage (idéalement 0), mais il devrait également y avoir un nombre minimum de croisements, écrasant l'ancienne exigence si nécessaire.
Les arêtes non hiérarchiques (utilisées pour les dépendances) doivent avoir un nombre minimum de croisements et être tracées sous forme de courbes de Bézier.
La deuxième meilleure chose que j'ai rencontrée est l'algorithme décrit par Buchheim et al. , améliorant l'algorithme de Walker pour fonctionner en temps linéaire.
S'il vous plaît, faites-moi savoir s'il devrait être nécessaire d'améliorer ma question, et merci beaucoup à l'avance pour tous les conseils.
ÉDITER:
Comme indiqué dans un commentaire, je dois mentionner que je veux essentiellement une disposition de graphique par défaut par un algorithme, que je - à long terme - souhaite éditer et réviser dans les possibilités Eclipse GEF . J'ai déjà examiné des options pour que Graphviz fonctionne avec GEF, mais il ne semble pas y avoir de solution de travail qui préserve toutes les fonctionnalités d'édition héritées de GEF.