基于A算法的路径搜索.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于A*算法的路径搜索 路径搜索 栅格 Dijkstra算法与最佳优先搜索算法 Dijkstra算法 颜色越淡离初始点越远的 粉色是初始结点 紫色是目标结点 有色区为扫描过的区域 选择距起点最近的点 最佳优先搜索算法(BFS) 启发策略 贪心策略 选择距终点最近(启发值最小)的点 颜色越深启发值越小 粉色是初始结点 紫色是目标结点 有色区为扫描过的区域 Dijkstra算法 成功找到最短路径 运行速度较慢 最佳优先搜索算法(BFS) 运行速度较快 未能找到最短路径 有凹型路障的情况对比 Dijkstra + BFS → ? A*算法 f(n) = g(n) + h(n) g(n)表示从初始结点到任意结点n的实际代价 h(n)表示从结点n到目标点的启发式评估代价 每次检查f(n)最小的结点n A*算法 粉色是初始结点 紫色是目标结点 有色区为扫描过的区域 越黄离目标结点越远,启发代价越高 越蓝离初始结点越远,实际代价越高 启发式函数h(n)扮演着重要的角色 启发式函数h(n) h(n)越小,A*扩展的结点越多,运行就得越慢。 如果h(n)是0,则只有g(n)起作用,此时A*演变成Dijkstra算法,这保证能找到最短路径 如果h(n)比从n移动到目标的实际代价小(或者相等),则A*保证能找到一条最短路径。 如果h(n)精确地等于从n移动到目标的代价,则A*将会仅仅寻找最佳路径而不扩展别的任何结点。 如果h(n)比从n移动到目标的实际代价高,则A*不能保证找到一条最短路径,但它运行得更快。 如果h(n)比g(n)大很多,则只有h(n)起作用,A*演变成BFS算法。 距离 曼哈顿距离 ?h(n) = D * (abs ( n.x – goal.x ) + abs ( n.y – goal.y ) ) 标准的启发式函数是曼哈顿距离 距离 对角线距离 若直线和对角线的代价都为D h(n) = D * max(abs(n.x - goal.x), abs(n.y - goal.y)) 若直线和对角线的代价不相等,如D2 = sqrt(2) * D h_diagonal(n) = min(abs(n.x - goal.x), abs(n.y - goal.y)) h_straight(n) = (abs(n.x - goal.x) + abs(n.y - goal.y)) h(n) = D2 * h_diagonal(n) + D * (h_straight(n) - 2*h_diagonal(n))) 距离 欧几里得距离 h(n) = D * sqrt((n.x-goal.x)^2 + (n.y-goal.y)^2) 因为欧几里得距离比曼哈顿距离和对角线距离都短 你仍可以得到最短路径,不过A*将运行得更久一些

文档评论(0)

js1180 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档