Artificial intelligence 容许启发式函数

Artificial intelligence 容许启发式函数,artificial-intelligence,heuristics,Artificial Intelligence,Heuristics,我知道一个可容许的启发式函数低估了目标的实际成本,但我想得出结论,一个启发式函数h3是两个可容许的启发式函数(h1和h2)的和,如果没有给出关于h1和h2的进一步信息,它既可以容许,也不能容许。 你认为这是正确的主张吗 多亏了一个可接受的启发式方法是永远不会高估从一个节点到目标节点的最小代价路径的代价的。因此,启发式是特定于特定状态空间的,也是特定于该状态空间中的特定目标状态的。它必须适用于该搜索空间中的所有国家。 要帮助记住它是“永远不要高估”还是“永远不要低估”,只需记住,可接受的启发式过于

我知道一个可容许的启发式函数低估了目标的实际成本,但我想得出结论,一个启发式函数h3是两个可容许的启发式函数(h1和h2)的和,如果没有给出关于h1和h2的进一步信息,它既可以容许,也不能容许。 你认为这是正确的主张吗


多亏了

一个可接受的启发式方法是永远不会高估从一个节点到目标节点的最小代价路径的代价的。因此,启发式是特定于特定状态空间的,也是特定于该状态空间中的特定目标状态的。它必须适用于该搜索空间中的所有国家。 要帮助记住它是“永远不要高估”还是“永远不要低估”,只需记住,可接受的启发式过于乐观。这将导致A*搜索比最佳路径成本更高的路径。它不会通过生成过高的启发式h值来阻止A*扩展位于最佳路径上的节点。
对启发式的一个更严格的要求是它是一致的,有时被称为单调的。如果启发式h的值沿路径不变,则它是一致的。从数学上讲,如果对于父节点p的每个节点n,

我认为原始问题尚未得到回答,也不在先前答案的注释中,则启发式h是一致的

如果h1和h2是可容许的,那么h3=h1+h2通常是不可容许的,尽管这可能发生在特殊情况下(即,空启发式是可容许的,并且可以在不违反可容许性的情况下任意多次添加到另一启发式中)。这是很容易看到的。想象一个问题,其中所有状态都是目标状态,或者它们可以转化为目标状态,只需一个代价为1的操作。因此,对于目标状态返回0,对于非目标状态返回1的任何启发式都是允许的。让我们成为一个非目标状态。然后,h1(s)=h2(s)=1都是可容许的,但h3(s)=2不是

当然,采用最大可容许启发式也是可容许的(这也很容易看出),因此h3=max(h1,h2)将支配h1和h2(即,它至少与它们中的任何一个一样好),并且仍然是可容许的


有比仅仅利用一组可接受的启发式的最大值来将它们组合成更精确的方法更复杂的方法。我所知道的最突出的技术叫做成本划分:当确保没有任何操作会对h1和h2产生成本时,添加它们的值是安全的。利用这一点的基本思想是(我想,自己检查一下!)通过创建原始问题的n个问题实例(当针对n个启发式时),并确保每当一个动作在问题编号I(用于启发式编号I)中有其原始成本m时,那么该动作在所有其他n-1问题中的成本为0。这样,所有问题/启发式仍然具有所有可用的操作,同时保证其值总和不会高估,即可接受(假设所有n个启发式也可接受)。我认为《抽象启发法的最佳可容许组合》(Optimal Acmissible composition of abstraction heuristics)一文详细解释了这一想法。

感谢Johnny的精彩解释。在不增加任何额外信息的情况下,假设h1和h2都是可容许的,我可以说一个启发式函数h3,它是h1和h2的和,也是可容许的。简言之,如果h3=h1+h2,h1和h2都是可容许的,h3也可接受,但h3可能大于h1和h2的总和,这可能会高估实际成本。所以我认为H3不能保证是一个可接受的启发。强尼HD,你的答案显然没有完成:它看起来好像在写作过程中出了问题,因为它在句子中间结束。如果你能完成你的解释或者至少去掉半写的部分,那就太好了。