我目前正在研究Sven Koenig的D*Lite算法的实现。http://idm-lab.org/bib/abstracts/papers/aaai02b.pdf.基本上,在开始实现它之前,我试图理解所有的细节。似乎该算法适用于有向图,这是定义Pred
和Succ
函数的方法。
我如何定义图的方向,以及哪些参数决定了图的方向。我应该使用一些参数的值,比如g
成本(这似乎不是一个好的选择……因为g
成本和rhs
值是算法更新的值吗)还是距离的启发式估计?
D*和D*-lite都适用于有向图和无向图。
图是G = (V, E)
,其中V
是可以达到的配置(或状态)的列表。E
是顶点之间连接的列表。在有向图中,E
是有序对(u, v)
的一组边,其中u
和v
都是顶点。在无向图中,E
是一组无序对。
在无向图上规划等价于在有向图上进行规划,具有双向边。也就是说,如果(u,v)
是边缘,则(v, u)
也将是边缘。
如何构建图是特定于应用程序的,从简单的网格到更复杂的策略(如晶格近似到正向运动学)都有所不同。