如何将连续数字分配给有向图的节点?

时间:2010-07-18 20:23:16

标签: algorithm graph

有一个包含大量节点的图表,它们之间的边缘非常少 - 问题是为节点分配数字,因此大多数节点从i到i + 1或以其他方式关闭。

我的问题是很好地打印图形数据,但是像这样的算法几乎是每个编译器的一部分(中间代码只是一个图形,生成的目标代码获取内存位置)。

我认为这只是简单的深度优先搜索,但结果并不那么好 - 它似乎可以最大限度地减少链接的数量,但它留下的链接往往很可怕(如1 - > 500 - > 1)。

有更好的想法吗?

1 个答案:

答案 0 :(得分:4)

This paper讨论了这个问题,如果你使用Eyal Schneider的公式来最小化边缘增量的总和(端点标签之间差异的绝对值)。它在#2,最佳线性安排下。

遗憾的是,没有为实现最佳排序(或标记)而给出的算法,并且一般问题是NP完全的。但是,有一些关于树的多项式时间算法的参考。

如果你想进入学术界,谷歌会为“最佳线性安排”提供大量点击。