我想根据在有向无环图(DAG)中找到两个节点之间的最短路径所需的时间来比较几种路由算法。
我编写了算法代码,但是我遇到了生成DAG的问题,因为找到最短路径在计算上很复杂。例如,当我按照this方法生成100节点DAG时,图形非常连接,对于源节点和目标节点的任何组合,我在“最佳”情况下获得了三跳长路径。
知道如何克服这个问题吗?
答案 0 :(得分:1)
让你的图形成为路径和“半完整图形”的联合。 “半完整图”(对于愚蠢的名称感到抱歉)是一个图表,您可以将每个节点连接到具有更高id的所有其他节点(例如1 -> 2, 1 -> 3, 2 -> 3
)。由于路径,这保证了大量边缘(由于“半完整图形”)和长的最短路径。您可以将路径中的一些节点连接到“半完整图”中的节点。
示例强>
包含14个节点的图表:
1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10
11 - 12
11 - 13
11 - 14
12 - 13
12 - 14
13 - 14
2 - 13
4 - 14
You can continue adding edges from nodes 1-9 to nodes 11-14
找到1到10之间的路径。