图搜索策略

    xiaoxiao2021-03-25  138

    问题求解

    状态空间表示状态改变:算符和重写规则

    状态空间搜索方法

    BF–Breadth First open表 close表 open表是一个队列,close起记录的作用DF–Depth First open表是一个栈 深度限制(和数据结构里学的一个不同是,数据结构中强调被访问过就不再访问,就没有找父节点判断是否是祖先的问题)等费用搜索 BF的推广,在每一层的时候,选择队列中费用最小的路径扩展 找到到目标节点G的最短路径–发展G的一个子节点时停止爬山法 扩展open表中距离目标节点的结点(曼哈顿距离) 连续问题上适合单峰函数的寻优,因为它强调每次的下一步都比当前这步要离目标节点更近(局部最优)。启发式搜索 优先考虑最有希望的节点加以扩展考虑已经走过的路和距离目标节点的路的总的带价值A*算法中注意事项:   如果当前待加入的节点 ni 已经在open表中,则比较 f(ni) ,若新节点的比较小,则代替原来节点,改变指针方向   如果当前待加入的节点 ni 已经在close表中,则比较,若新节点的比较小,则把该节点移回open表   不注意这点会导致内存占用大(open表长)以及算法复杂度高。

    算法的性质

    完备性可采纳性 影响A*算法搜索性能的因素 扩展节点数目 h(n) 的计算量

    算法举例:重排九宫

    h(n)=P(n)+3S(n)

    P(n) 是每一张牌距离其目标位置的距离的和 S(n) 是所有牌的分数之和。 对于非中心位置的牌 i <script type="math/tex" id="MathJax-Element-5">i</script>,顺着一个方向检查,如果其后面的牌和目标状态中相应牌之间顺序不一致,则给分数2,否则给分数0中心有牌给分1,没牌给分0
    转载请注明原文地址: https://ju.6miu.com/read-3256.html

    最新回复(0)