![]() |
1
1
关键是 函数单调递增 . 有一种算法利用了这个特性,叫做 A* . 累计成本: 您的教授希望您使用两个距离,一个是累积成本(这很简单,是将上一个节点的成本加上移动到下一个节点所需的成本/时间)。 启发式成本: 这是一些预测成本。 Disjkstra方法不起作用,因为您正在与 启发式成本/预测 和 累计成本 . 单调递增均值 h(A)<=h(A)+f(A.B) A. 到节点 B 然后,成本不应小于前一个节点(在本例中为A),这是 启发式+累积。 如果此属性成立,则第一条路径 A* 选择永远是通往目标的道路,永远不需要回溯。 注: 该算法的威力完全取决于您预测价值的方式。 如果您低估了将用累积值校正的值,但如果您高估了该值,它将选择错误的路径。 算法:
在这里,我使用*实现了一个8-puzzle-solve,它可以让您了解如何定义成本以及它的工作原理。 `
链接到 full 代码在这里。 |
![]() |
Rosie Lomas · 在ggplot中设置数字刻度 1 年前 |
![]() |
nedlaback · 在O(V+E)图中寻找瓶颈边 6 年前 |
|
Skampak · R visNetwork:创建新类型的边 6 年前 |
![]() |
Anuja · 长度l在R中的最短路径 6 年前 |
![]() |
Cbhihe · 优化Neo4j查询,有条件地创建新关系 6 年前 |
![]() |
fghjk · 绘制轨迹(python) 6 年前 |
![]() |
LBerger · 计算图形图像中的名称使用(TensorBoard) 6 年前 |