我正在寻找一种绘制混合的选区/依赖关系图的算法(对于语言应用程序)。这样的图将具有两种不同类型的顶点(标记,节点)和两种不同类型的边(分层,非分层)。
我一般都不熟悉图论和算法,我希望这个问题不会与本网站的研究水平要求相冲突。但是,它通常应该在理论的范围之内。
该图必须自下而上绘制(我认为),因为所有令牌应以相同的y坐标显示,并且将令牌和/或节点归为组成部分的节点的y坐标必须动态计算,例如,通过其通向令牌的最长路径。
层次边(用于将标记/节点分组为组成部分)应具有最少数量的弯曲点(理想情况下为0),但也应有最少数量的交叉点,如有需要,可覆盖前一个要求。
非分层边(用于依赖性)应具有最少的交叉点,并绘制为贝塞尔曲线。
我遇到的下一个最好的事情是Buchheim等人描述的算法。,改进了Walker算法以在线性时间内运行。
请让我知道是否需要改进我的问题,并在此先感谢您的指导。
编辑:
正如评论中指出的那样,我应该提到,我基本上想要一种算法的默认图形布局,从长远来看,我希望在Eclipse GEF可能性内进行编辑和修改。我以前曾研究过让Graphviz与GEF一起使用的选项,但是似乎没有一种可行的解决方案可以保留从GEF继承的所有编辑功能。