|
|
1
7
这是一份工作 Djikstra's Algorithm . 一旦你建立了一个图形的表示,它应该很容易产生最低成本的遍历。。。因为在你的情况下,似乎所有的路径都有相同的成本(1)。
adjacency matrix 用于表示边。在这种情况下,您可以使用.NET multidimensional array
|
|
|
2
4
对于这种特殊情况,Dijkstra可以大大简化。我想这样的事情会有效果的。
|
|
|
3
3
只是为了记录。这是您的图形示例:
从A到M的最短路径用蓝色标记。 这是Mathematica的一个很短的程序:
|
|
|
4
2
a series 关于实现 A* algorithm 在C#中。A*是Dijkstra算法的一个更一般的例子:如果你的成本估算函数总是返回0,那么它完全等同于Dijkstra。 |
|
|
5
0
另一个选择是使用一个图形库,它实现了各种最短路径算法。我以前用过的一个很好的是 QuickGraph here is a page 在解释如何使用Dijkstra算法的文档中。 |
|
|
6
0
由于图是非循环的,可以使用Viterbi算法,按照拓扑顺序访问状态并更新前面顶点(状态)的代价。 下面的代码实现了搜索算法和数据结构。根据最初的问题,我不能百分之百确定有效性的定义。但是,修改代码以构造其他拓扑结构并使用DAG解决各种动态编程任务应该是很直接的。 将计算状态势时的外部for循环更改为带有队列的while循环将允许通过更改队列规则来轻松地使用不同的最短路径算法。例如,基于二进制堆的队列将给出Dijkstra算法或FIFO队列将给出Bellman-Ford算法。
|
|
|
Gary · 如何使用xsl计算有向无环图中的子节点数 8 年前 |
|
|
Phellipe Brasiliano · 如何迭代集合哈希 8 年前 |
|
|
fho · 如何从有向非循环图导出FRP? 11 年前 |
|
|
L H · DAG中的关键路径和最长路径之间有什么区别吗? 12 年前 |