zoukankan      html  css  js  c++  java
  • 西安电子科技大学week01-状态空间表示及其问题解决

    1,盲目搜索

    1.1 宽度优先搜索

            基本思想:

        •  扩展初始节点
        • 扩展初始节点的所有后继节点
        • 扩展后继节点的后继节点
        • 第n层结束,不可能到n+1层

    要点:

        • 新扩展节点放于OPEN表末端
        • 问题有解时,一定可以找到
        • 方法具有通用性
        • 数据规模大时,搜索效率低

    1.2 深度优先搜素

    基本思想:

        • 总是扩展当前节点的最深节点
        • 一直扩展直到到达最深层,直至没有下一层
        • 回退到上一个还有未扩展后继节点的上层继续扩展

    深度的定义:起始节点深度为0;

                          任何其他节点的深度为d=d(父)+1

    要点:

        • 不能保证最优解
        • 存在无穷分支时可能不能找到解(此时可以借助深度界限解决,一些问题上极为重要)

    1.3 等代价搜索

    基本思想:属于宽度优先的拓展,此时不沿着等长度路径断层扩展,沿着等代价路径断层扩展

    等代价的定义:

        • g(n)表示从初始节点到当前节点n的代价
        • c(n1,n2)表示从父节点n1到其子节点n2的代价
        • g(n2) = g(n1) + c(n1,n2)

    要点:每次扩展代价最低的节点,依据代价对OPEN表中元素进行排序。只有当目标节点位于表中第一个节点时搜索结束。

    2,启发式搜索

    启发信息:见上图中解释

    评估函数:作为启发信息,对当前搜索状态评估,根据函数值对OPEN重排,直接扩展最有希望节点。

                  f(n) = g(n) + h(n)

                  g(n)表示从起始节点到当前节点的代价

                  h(n)表示从当前节点到目标节点的代价

    2.1 A算法

    局部择优算法(瞎子爬山算法)

    •  要点:用f(n)算出每个子节点的估价,根据该估价对OPEN表进行重排,只对扩展节点这一部分重排,估价越小排在越前面。

    全局择优算法(全局择优算法)

    •  要点:用f(n)算出每个子节点的估价,根据该估价对OPEN表进行重排,对OPEN中所有节点进行重排,估价越小排在越前面。

    2.2 A*算法

    • 背景:A算法不确定能保证找到最优估价函数,A*算法在A算法的基础上添加一点小改动,使得估价函数能够使最佳,从而找到最佳路径、
    • f(n) = g(n) + h(n)

              在A算法的基础上,g(n)>0 , h(n) 是 h*(n) 的下界,即对于任意n , h(n) < =h*(n) , 在满足h(n) < =h*(n)的条件下,h(n) 越大越好。

              h(n) = 0时,则等价为等代价算法。

    3,例题理解

    宽度优先

    深度优先

    等代价

    启发式搜索可以解决结构比较复杂的问题,不大方便截图

  • 相关阅读:
    网络流之对偶图转最短路
    BZOJ5418 NOI2018屠龙勇士EXCRT
    BZOJ1951 [Sdoi2010]古代猪文 NOIP数论大杂烩
    中国剩余定理及EX及单层EXLucas定理讲解
    网络流24题之负载平衡问题
    输入一个url到浏览器页面展示都经历了哪些过程
    前端部署dist包到服务器
    img标签显示 base64格式的 图片
    字符串用react 用sha256加密
    前端下载证书文件cer用后端返回的加密数据
  • 原文地址:https://www.cnblogs.com/huyaoco/p/14354562.html
Copyright © 2011-2022 走看看