teh*_*ynn 34 algorithm path-finding d-star
有链接到d*一些文件在这里,但他们有点太数学对我来说.有没有关于D*/D*Lite的信息更适合初学者?
mic*_*hid 13
维基百科有一篇关于这个主题的文章:http://en.wikipedia.org/wiki/D*
另外,C中的D*Lite实现可以从Sven Koenig的页面获得:http://idm-lab.org/code/dstarlite.tar然而,我发现难以理解的数学比C源代码更容易阅读;-)
D*Lite(在C++中)的另一个实现可以在这里找到:http://code.google.com/p/dstarlite/
ZXX*_*ZXX 12
好吧,如果伪代码对你来说很难(你不必阅读定理和证明 - 如果你知道标准的算法,伪代码是非常简单的)你抱怨已发布的C和C++代码然后我想你需要去做别的事情:-)
说真的,不要指望有人可以在几个网段中教你一个高级算法.拿一支笔和纸,然后在纸上写下,画出并跟踪发生了什么.您可能需要阅读两次并且谷歌一两个引用以了解它周围的一些概念,并且根本不需要深入研究定理和证明 - 除非您希望证明作者错误:-) )
没有更多的数学就无法前进 - c'est la vie.想象一下,你曾经让别人教你什么是矩阵反转,但你不知道什么是矢量.在你第一次学到足够的数学语境之前,没有人可以帮助你.
ZXX*_*ZXX 10
话虽如此,为什么不添加更多的论文,是的,他们也有数学:-)但我会尝试获得一些更近期的东西.随着时间的推移,人们通常会更好地解释自己的工作,所以重点是Stentz,Likhachev和Koenig
Layer的D*Lite解释
D*以蝇蛆开始,在Start和之间有理想主义的道路Goal; 它仅在遇到障碍物时(通常通过移动到相邻节点)处理障碍物.那就是 - D*Lite在开始沿着理想路径移动之前不知道任何障碍.
任何寻路实施的圣杯都是让它快速获得最短路径,或者至少是一条不错的路径(以及处理[所有你在这里的各种特殊条件 - 对于D*Lite来说这是一个未知的地图作为一个火星漫游者可能会这样做]).
因此,D*Lite的一大挑战是在达到障碍时便宜地适应障碍.找到它们很简单 - 您只需在移动时检查邻居的节点状态.但是,如何在不运行每个节点的情况下调整现有地图的成本估算...这可能会非常昂贵?
LPA*使用巧妙的技巧来调整成本,这是D*Lite充分利用的技巧.当前节点问邻居:你最了解我,你认为我对自己是现实的吗?具体来说,它询问了它的g值,这是从初始节点到自身即当前节点的已知成本.邻居们看看他们自己g,查看当前节点与他们相关的位置,然后估计他们认为其成本应该是多少.这些商品的最小值被设置为当前节点的rhs值,然后用于更新其g值; 在估计时,邻居考虑新发现的障碍物(或自由空间),这样当当前更新g使用时rhs,它会考虑新的障碍物(或自由空间).
当我们全面拥有现实g价值时,当然会出现一条新的最短路径.
我想出了这个
http://idm-lab.org/bib/abstracts/papers/aaai02b.pdf和这个
http://www.cs.cmu.edu/~maxim/files/dlitemap_iros02.pdf
http:// www.cs.cmu.edu/~maxim/files/dlite_icra02.pdf - 有 2 个版本的 D*
http://www.cs.cmu.edu/~maxim/files/dlite_tro05.pdf - icra02 的抛光版本
https://www.cs.cmu.edu/~maxim/files/rstar_aaai08.pdf - R* - 随机化以减少计算成本
http://www.cs.cmu.edu/~maxim/files/rstar_proofs34.pdf - 修改后的 R* http://www.cs.unh.edu/~ruml/papers/f-biased-socs-12.pdf - 实时 R* + PLRTA*
我希望这些链接会对您有所帮助:)
编辑:发布后我注意到我给您的链接也在您指出的链接中。尽管如此,我还是直接在谷歌上找到了这些。无论如何,我查了一下它们,它们似乎并没有那么复杂。如果您很了解 A*,那么您也应该能够理解 D*。
根据经验,我可以告诉你,A* 也可以用于你想要的东西。