zoukankan      html  css  js  c++  java
  • 搜索算法策略

    搜索算法策略

    状态空间

    image-20201023101840026

    Example

    八数码

    image-20201023102021701

    image-20201023102053978

    image-20201023102109051

    旅行商TSP

    image-20201023102344748

    image-20201023102406935

    为了简化上述搜索过程以及避免盲目搜索,我们讨论启发式策略

    启发式策略

    image-20201023102554005

    同样以八数码为例

    image-20201023102944830

    image-20201023103327946

    A搜索算法

    使用估价函数f的最佳优先搜索

    image-20201023103601082

    image-20201023103812241

    image-20201023103911191

    image-20201023103922708

    A算法本质上就是在一般的树式搜索基础上添加了估价函数的一种启发式搜索算法

    估价函数的作用仅仅是帮助确定结点的扩展,从而避免盲目搜索

    A*搜索算法(最佳图搜索算法)

    对A算法增加限制:对任一节点x均有 h(x)<= h*(x)

    h(x)为启发函数,h*(x)为x到目标节点的实际最小代价

    问题的与或图表示

    与或图一般表示问题的变换过程

    即将一个大问题通过逻辑变换不断分解成一个个小问题

    类似递归的思想,下面一个例子以汉诺塔问题解释这种思想

    ACEC50197EC20B61D25931D23D04A615

    博弈树搜索

    顾名思义,搜索的每次结点扩展遵循以下规则:

    对于博弈双方A和B,树上每次结点的扩展按照对A最有利/最不利交替进行

    359CD8ED0ACA3ADBE084D5680D8C01C1

    1F9DAC18A0F2AE8331EC8D69304ABA1B

    α-β剪枝

    可以理解为短路逻辑,为了提高搜索效率,在生成博弈树的同时评估各节点的倒推值,若子节点的倒推值超出父节点的评估范围则不必再扩展该枝的其余子节点

    8870BFC162E84D1A5596AA990D7E5BDB

  • 相关阅读:
    序列化二叉树
    按之字形顺序打印二叉树
    C#读写文件的方法汇总_C#教程_脚本之家
    c#缓存介绍(转)
    ASP.NET 缓存技术分析
    pickle使用
    python3.4使用文件
    io的常用操作
    manven需要注意点几点
    git中一些常用的命令
  • 原文地址:https://www.cnblogs.com/potofsalt/p/13863189.html
Copyright © 2011-2022 走看看