【问题标题】:what heuristic evaluation function or algorithm can be treated as inadmissible什么启发式评估函数或算法可以被视为不可接受的
【发布时间】:2011-06-16 20:56:26
【问题描述】:

我已经学习了几个可以处理经典 8 难题问题的启发式函数,我知道您可以将一个因子乘以一个可接受函数以使其不可接受,但是,我想知道是否还有其他不可接受的启发式函数8谜题?

【问题讨论】:

    标签: artificial-intelligence heuristics


    【解决方案1】:

    启发式评估函数估计单智能体寻路问题中一对状态之间的最优路径的成本。

    阅读更多关于Heuristic evaluation function 的文章。

    【讨论】:

      【解决方案2】:

      基本上,任何高估成本的函数都是不可接受的,这意味着构造不可接受的函数很容易。

      Wikipedia有很好的描述

      【讨论】:

        【解决方案3】:

        这个谜题有各种不可接受的启发式方法。一个不可接受的启发式只需要高估解决给定难题所需的步骤数,因此一个简单的不可接受的启发式将是

        h(S) = infinity
        

        由于任何可解决的谜题都可以在少于无限的步骤中解决,因此启发式是不可接受的。

        一个更棘手和更有趣的问题是有什么好的可接受启发式方法,因为它们要求您在不高估距离的情况下提供尽可能大的值。对此,我没有很好的答案。 :-)

        【讨论】:

        • @templatetypedef:谢谢你的回答,但是不可接受有什么好处,比如你设置h(S)=infinity,基本上搜索算法最终会尝试该状态下的所有状态空间,我已经看到像 inadmissible 这样的东西有时会加速
        • @starcaller- 不允许的启发式方法并不意味着您找不到有效的答案;相反,这意味着您的 A* 搜索不能保证为您提供问题的最佳解决方案。如果您使用无限启发式,您将探索每一种可能的状态,这在某些时候可能会给您一个解决方案。只是绝对不能保证您找到的解决方案使用最佳移动次数。
        • @templatetypedef:那我为什么要使用不可接受的启发式,就像 bfs,每个状态都会被检查。
        • @templatetypedef:另外,我是否正确地说我可以将一个因子乘以一个可接受的启发式函数以使其不可接受?
        • @starcaller- 您可能希望使用可接受的启发式算法,因为它会显着提高您的搜索进度。在具有高分支因子的图中,如果启发式足够好,使用可接受的启发式可以避免以指数方式探索许多状态;实际上,给定一个完美的启发式(实际上告诉您距离的启发式),您只会探索真正让您找到解决方案的状态。不可接受的启发式可能会导致要探索的状态呈指数爆炸式增长,从而耗尽时间或内存。
        猜你喜欢
        • 1970-01-01
        • 2017-01-24
        • 1970-01-01
        • 1970-01-01
        • 2013-01-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-26
        相关资源
        最近更新 更多