如果一个节点的启发式值,比如说,达到目标的实际成本x 10 ^ 5怎么办?具有最低成本的节点仍然从优先级队列的顶部弹出。
例如:f(n) = g(n) + h(n)
,where h(n) = h1(n) x 10^5, where h1(n) = h1′(n)
根据定义,此处h
高估了实现目标的实际成本。
我问的原因是因为无论有没有这个常数因素,我都无法真正看到算法性能的差异。那么,如果h是否可以接受,为什么重要呢?
答案 0 :(得分:2)
如果节点的启发式值是,实际成本,那该怎么办? 达到目标x 10 ^ 5?
假设使用了完美的启发式函数 h'(n)
,那么总是等于从n
到最近的目标节点的路径的剩余成本,如果启发式函数在一个常数因子中过高估计,无论h是否可接受,都会找到相同的路径。
您可以将您的示例视为使用Dijkstra在图G
上搜索,其中所有弧的成本乘以常数因子,从而生成新的图G'
。 G
中的每条最短路径都是G'
中的最短路径。
备注:如果启发式过高估计但不是所有节点的常数因子,则答案相反。在这种情况下, A *不保证找到最佳解决方案。
编辑:在阅读@Mehrdad回答关于推广评估函数以考虑非加成本之后,从纯粹主义的角度来看,我不会说当成本不加时,我们正在应用A *。 A *解决最短路径问题,假设成本是加性的,实际上,所有正式属性都基于该假设。
如果将成本最小化标准推广到包括解决方案路径的非加性成本度量,那么恕我直言,我们正在讨论一个不同的问题,因此需要一个不同的算法来解决它。在这种情况下,我认为这个问题在文献中称为 NSAP (非加性最短路径)。本文的一个例子可以在 Rina Dechter 和 Judea Perl :http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.89.3090&rep=rep1&type=pdf(第507页)中找到,他们称算法来解决泛化问题 BF * ,因为他们正在研究A *的行为,当两个限制,添加剂成本测量和添加剂评估功能都被删除。
答案 1 :(得分:2)
一般来说:可接受性是A *最优性的足够条件,而非必要条件。当然,你可能会发现一个不可接受的启发式存在,它也会返回一个最佳结果;只是A *在那时没有提供任何保证。
特别是:“以一致的方式”是模糊的,但如果您考虑“缩放”以适合此描述,请注意您的缩放启发式可能会失败如果成本不是添加剂。请注意,A * 不要求评估函数为f = g + h。虽然乍一看不直观,但对于一个问题而言,如果甚至没有意义来增加路径成本(例如,您的成本可能是概率),那么问题就完全可能也是现实的。
另请注意“一致性”has an entirely different meaning而不是您使用的那种,因此在使用该术语时要小心。按照通常的定义,一致的启发式方法不可能被允许。