ASD的搜索
代码说明:
应用背景*(A)啊…现在在寻路的心,一个*!你都可能听到这个算法,因为它的领先的寻路算法(加上,这是本教程的名字,我会是一个猴子的叔叔,如果你不是寻找一个*教程)。这是通常使用的游戏如魔兽争霸III A*算法不是BFS,DFS也不是。事实上,这是一个结合Dijkstra算法(它在本教程说我没有…然而)和最好的第一。不过不要担心,该算法是很容易理解的。问题出现在编程的BFS和DFS:如果不是盲目猜测下一节点遍历喜欢简单的DFS我们选择的节点它看起来最有前途?一个*搜索完全一样:简而言之,我们产生我们的可能性,并选择一个与最少的投影成本。一旦产生的可能性和它的成本计算,它停留在列表的可能性,直到所有的更好的节点之前已被搜索过。首先,让我们定义成本函数。一个节点的成本,f,由下面的偏微分方程(只是开玩笑:关键技术克+小时“聪明的”,你说,“但什么是什么,是什么?。好问题。 ; ;是的成本把它得到的节点,最可能数平方我们走过的从一开始。& nbsp; ;我们想达到的目标节点会花费多少钱。它的启发式(一个启发式,非正式的,是什么这是一个不明确的系列步骤(如算法)的解决方案,但它可以帮助我们确定我们的答案是一个粗糙的方式)。在一个非常短的时间内,你会发现你的最佳路径是完美的。在这种情况下,我们显然不能确定H完全没有做一些其他的寻路,所以我们就用一个近似。很少(如果有)是你的完美。看下面的图,一看,一个正方形网格,如你在RTS找到。被阻塞的棕色点(由建筑物、人或自然屏障)。蓝色和绿色是起点和目标,分别。在寻找,我们说,我们生成紫色广场。其 ;G,栗色的固体线,是从起始点的距离。自从我们搬到5广场东(在距离成本1)和一个广场东北(2√成本),我们 ;G & nbsp;是+5 &;RAD IC;2,约6.414。我们不需要重新计算 ;G ;完全的每个节点。我们可以只添加距离父节点加的父母的 ;G这样的地图,我们可以定义 ; ;直线距离的目标。我不会去计数这些广场,所以这是左,呃,“读者的练习”。);提示:我们是否真的需要存储的欧氏距离在和?想想看。如果我们用距离的*平方*,我们的节点之间的比较将仍然是相同的。
下载说明:请别用迅雷下载,失败请重下,重下不扣分!