Estoy buscando un algoritmo para dibujar un gráfico mixto de circunscripción / dependencia (para una aplicación lingüística). Tal gráfico tendría dos tipos diferentes de vértices (tokens, nodos) y dos tipos diferentes de bordes (jerárquico, no jerárquico).
Soy nuevo en teoría de gráficos y algoritmos en general, y espero que esta pregunta no choque, por ejemplo, con los requisitos de nivel de investigación de este sitio. Sin embargo, generalmente debe estar dentro del alcance de la teoría .
El gráfico debería dibujarse de abajo hacia arriba (creo), ya que todos los tokens deberían mostrarse con la misma coordenada y, y las coordenadas y de los nodos que agrupan tokens y / o nodos en constituyentes deberán calcularse dinámicamente, por ejemplo, a través de su camino más largo a un token.
Los bordes jerárquicos (utilizados para agrupar tokens / nodos en constituyentes) deben tener un número mínimo de puntos de inflexión (idealmente 0), pero también debe haber un número mínimo de cruces, sobrescribiendo el requisito anterior si es necesario.
Las aristas no jerárquicas (utilizadas para dependencias) deben tener un número mínimo de cruces y dibujarse como curvas de Bézier.
La siguiente mejor cosa que he encontrado es el algoritmo descrito por Buchheim et al. , mejorando el algoritmo de Walker para ejecutarse en tiempo lineal.
Por favor, hágamelo saber si es necesario mejorar mi pregunta, y muchas gracias de antemano por cualquier sugerencia.
EDITAR:
Como se señaló en un comentario, debo mencionar que básicamente quiero un diseño de gráfico predeterminado por un algoritmo, que yo, a la larga, quiero editar y revisar dentro de las posibilidades de Eclipse GEF . Anteriormente he buscado opciones para hacer que Graphviz funcione con GEF, pero parece que no hay una solución de trabajo que conserve toda la funcionalidad de edición heredada de GEF.