有向有环图的层次布局算法(一)
来源:互联网 发布:免费语音合成软件 编辑:程序博客网 时间:2024/04/30 01:03
[本文介绍的有向有环图的层次布局算法是Sugiyama和Gansner的算法。]
目标
有向有环图(Directed Cycline Graph DCG)的定义就不解释了,这里首先列出DCG布局的期望效果:
- 显示图中的分层结构,连线均沿同一个方向。
由于是分层布局,位于同一层的顶点之间不能有弧。
对于没有环的情况,图中所有的弧的指向保持一致;
对于有环的情况,应该使尽量多的弧的方向保持一致,而部分弧的方向则与之相反。但此问题是NP完全问题。
- 避免图形上的不规则影响图形意思的表达。如连线的交叉和拐点。
不能出现弧穿越顶点的情况。
弧的拐点尽量少。
弧的交叉数尽量少。此为NP完全问题。
- 连线长度保持最短。
顶点之间保持紧凑,弧的总长度尽量短。
- 对称、平衡。
算法摘要
主要分5个步骤:
- 消除图中的环。
- 寻找最优的等级(分层)分配。
- 在同一个等级内,设置定点的顺序,使交叉数最小。
- 计算顶点的坐标。
- 绘画有拐点的弧。
- 有向有环图的层次布局算法(一)
- 有向无环图的自动布局算法
- 有向无环图的自动布局算法
- 第十一周项目一(层次遍历的算法)
- 有向图的最短路径(Floyd算法)
- 【算法】图的深度优先遍历(有向)
- 有向图的强连通分量(tarjan算法)
- 层次聚类算法(一)
- 有向图的Dijkstra算法
- 有向连通分量的Tarjan算法
- 有向图的遍历算法
- 有向图的Dijkstra算法
- Dijkstra算法python的实现(有向图/无向图)
- 第十一周项目一-二叉树算法验证(层次便利算法的验证)
- 第十一周项目一——验证算法(1)层次遍历算法的验证
- 第十一周项目一(1)二叉树算法验证-层次遍历算法的验证
- 第十一周项目一:验证算法,层次算法的验证(1)
- 第十一周 项目一 -二叉树算法验证(1)层次遍历算法的验证
- Window7 adb server is out of date. killing解决办法,屡试不爽!
- Jetty嵌入式服务器
- C++ type cast
- Gentoo使用grub2
- Android手势监听类GestureDetector
- 有向有环图的层次布局算法(一)
- 删除文件夹以及文件夹内的所有的子文件夹、文件
- listview左右滑动动画实现
- Jetty 服务器架构分析(上)
- getopt32 分析
- ubuntu下minicom和USB转串口
- MongoDB中索引的创建和使用详解
- 诺基亚Lumia 920或将于本月登陆印度
- 沙龙总结:艺术作品的IT呈现需有更多"担当"