- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
假设您使用 A* 算法,其中启发式算法可能会高估剩余距离几米。最终路径会不会比真正的最短路径长几公里?你能举一个发生这种情况的图的例子吗,它是什么样的图?欧几里德(直线)距离可以高估剩余距离的场景是:
在给定 A* 启发式算法高估剩余距离的上限的情况下,是否有一个公式可以说明最终路径次优性的上限?
最佳答案
A* 在它检索到的部分答案(这是达到目标的估计总距离最小的部分答案)实际上已经达到目标时返回。标准 A* 保证找到正确的答案,因为根据启发式的定义,所有估计的达到目标的总距离都是下限,因此没有其他答案可以做得更好。
假设实际上以总距离 T 结束的答案的启发式可以达到 KT,其中 K > 1。如果 A* 检索到成本为 KT 的答案并认为它已经成功,因为答案达到了目标,那么它可能不是最佳答案。我们知道仍然在池中的每个部分答案至少花费了 KT,但是由于启发式,具有启发式 KT 的答案实际上可能会变成总成本 T < KT 的答案(但不能变成任何更便宜成本的答案).因此,使用这种启发式算法,A* 返回的答案可能是最佳答案的 K 倍,但不会更多。
这实际上在 http://en.wikipedia.org/wiki/A 的维基百科条目中进行了总结。 _search_algorithm#Bounded_relaxation - 有意使用此类启发式算法是加速 A 的一种方法,但代价是返回更差的答案。
关于algorithm - 使用启发式算法的 A* 可以找到多少次优路径,它稍微高估了剩余距离?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26551024/
我有一个可视化 C# 项目,我想从中编译两个可执行文件:Full.exe 和 Limited.exe。 Limited.exe 只是隐藏了几个 UI 控件。 我正在考虑添加另一对解决方案配置(Debu
我和我的伙伴正计划将我们拥有的 python 应用程序移植到 iOS。我们使用 numpy 的 SVD、范数和 pinv功能,我不知道如何转换为 iOS。我查看了 Accelerate文档,没有看到任
即,它永远不会使用某些特定的 upperBound 参数连续生成超过 16 个偶数: Random random = new Random(); int c = 0; int max = 17; in
我的问题是我必须使用第三方函数/算法,它采用 double 数组作为输入,但显然对输入数据中的非常小的变化很敏感.但是对于我的应用程序,我必须为(几乎)相同的输入获得相同的结果!特别是我有两个测试输入
mouse_event 函数将光标发送到稍有错误的坐标(偏离 1-20 像素)。它“关闭”的程度取决于我不太清楚的模式。 这是我的代码 int x, y; int repeats = 1000; in
在 C++ 类(class)中,我学到了避免重复计算、使用更多加法而不是更多乘法、避免幂等技巧来提高性能。然而,当我尝试让他们用 Julia-Lang 优化代码时,我对相反的结果感到惊讶。 例如,这里
好的。请耐心听我说,我不擅长解释事情。 我有一个通过网站上的表格收集的联系信息数据库。显然,人们不小心(或故意,但修复是一个不同的问题)多次按下“提交”,因此该数据库中有很多重复的行。 因此,tabl
我一直在用各种语言和实现实现相同的代码(在 Blackjack 中发牌而不爆牌的方法的数量)。我注意到的一个奇怪之处是,Python 在 C 中调用分区函数的实现实际上比用 C 编写的整个程序快一点。
我在使用 Pandas 解析数据的时间戳时遇到问题。 我尝试解析的日期时间格式示例类似于 2012-05-02 01:00:00-05:00。从 Pandas 文档中,我被驱动到相关的 Python
下面函数模板的目标是取任意unordered_map并产生一个新的unordered_map与 key_type和 mapped_type倒。下面的函数适用于 std::unorderd_map .我
我是一名优秀的程序员,十分优秀!