1、什么叫代价值
答:代价值:我们暂时理解为起始点到达结束点所消耗的时长。
2、如何理解F=G+H等式
答:F就是起始点到结束点的距离,我们可以很清楚的知道平面地图就是由N个二维坐标构成的矩阵,既然是由二维坐标构成的话,那么就存在X、Y轴,由此我们就可以设起始点的对象为Start,那么这个Start就存在:Start.X与Start.Y同理我们也可以设结束点(End)为End.X与End.Y,我们取以上的假设代入F=G+H等式中得:
F=G(|Start.X-End.X|)+H(|Start.Y-End.Y|)就可以得到距离值了。
*2问的言外话,可以不用看的。如果单单是按这算法求值的话,就会形成以深度为基础的贪婪算法了,这就时间的复杂度就变高了,除非这个地图上是没有障碍物。
3、为什么广度算法+F(G+H)能求出优化代价值
答:首先第一点就是,代值低小,按照“1”观点的理解,就是代表着到达目的地的时间就越短,其次就是以起始点的单元格为中心求该起始点八个方向到达目的地的距离长度,不断的算出这个些要求的下一个边缘方块不是障碍物,如果是障碍物的话就记录下来,下次扩展广度的时候发现存在该障碍物的坐标点就不再重复算了,这样就可能得到最多个到目标点的路径出来,但是如果我们再加上F(G+H)的话,就是去比较这多个路线的那条才是最短的路线,那么在使用该路线了
最后,在没有障碍物的时候直接使用F(G+H)
在存在障碍物的时候就使用“3”方法。
因此,我是这么考虑的:
约定说明:
一、Line代表是F(G+H)线,即有Line.x,Line.y,Line.value。
二、障碍物的坐标Stop.x,Stop.y.Stop.value,其中value(0,0).
那么我们就可以判断在Line上的value有没有存在(0,0)的值,如果没有的话,那么我们就直走,否则我们就使用“3”的方式
当然,这一切都只是说明目标的静止的状态下的,毕竟在现实中目标物体是移动的,那么我们还要及时的获取目标的当前实时坐标。
以上均为个观点,如有不正确的地方欢迎指出,以便大家一起学习。