人工智能中的搜索策略大体分为两种:无信息搜索和有信息搜索。无信息搜索是指我们不知道接下来要搜索的状态哪一个更加接近目标的搜索策略,因此也常被成为盲目搜索;而有信息搜索则是用启发函数f(n)来衡量哪一个状态更加接近目标状态,并优先对该状态进行搜索,因此与无信息搜索相比往往能够更加高效得解决问题。
  要衡量一个搜索策略的好坏,我们需要从四个方面对其进行判断:完备性、时间复杂度、空间复杂度和最优性。因此以下通过这四个方面来比较常见搜索策略之间的优劣。

无信息搜索策略
宽度优先搜索(BFS)
  首先扩展根节点,然后扩展根节点的所有后继,接着再扩展它们的后继,从而一层一层的对节点进行扩展。BFS是一个简单的搜索策略,在搜索过程中会对所有状态进行遍历,因此它是完备的;假设搜索树每个节点有b个后继,深度为d,则时间复杂度和空间复杂度均为O(bd);最后考虑最优性,因为我们总会在最浅那一层找到目标状态,因此当且仅当每一步的代价都一致的时候,BFS可以得到最优解。

一致代价搜索
  在BFS的基础上,一致代价搜索不在扩展深度最浅的节点,而是通过比较路径消耗g(n),并选择当前代价最小的节点进行扩展,因此可以保证无论每一步代价是否一致,都能够找到最优解。

深度优先搜索(DFS)
  DFS扩展根节点的一个后继,然后扩展它的一个后继,直到到达搜索树的最深层,那里的节点没有后继,于是DFS回溯到上一层,扩展另外一个未被扩展的节点。在有限状态空间中,DFS是完备的,因为它可以把所有空间遍历一遍;而在无限空间中,DFS则有可能会进入深度无限的分支,因此是不完备的。DFS的时间复杂度为为O(bd),而空间复杂度仅为O(d),因为我们只需要保存当前分支的状态,因此空间复杂度远远好于BFS。然而DFS并不能保证找到最优解。

深度受限搜索
  深度受限搜索设定一个最大深度dmax,当搜索深度大于dmax的时候立即回溯,从而避免了在无穷状态空间中陷入深度无限的分支。

迭代加深的深度有限搜索
  迭代加深的深度有限搜索也设定一个最大深度dmax,开始我们把dmax设为1,然后进行深度受限搜索,如果么有找到答案,则让dmax加一,并再次进行深度有限搜索,以此类推直到找到目标。这样既可以避免陷入深度无限的分支,同时还可以找到深度最浅的目标解,从而在每一步代价一致的时候找到最优解,再加上其优越的空间复杂度,因此常常作为首选的无信息搜索策略。

有信息搜索
贪婪最佳优先搜索
贪婪最佳优先搜索总是扩展距离目标最近的节点,其启发函数f(n)=h(n)其中:

f(n)=节点n到目标节点的最小代价路径的估计值

贪婪最佳优先搜索的最大问题是它往往不能找到最优解。

A*
为了找到最优解,A*算法对一个节点的评估结合了h(n)和g(n)从开始节点到节点n的路径代价,即f(n)=g(n)+h(n)

f(n)=经过节点n的最小代价解的估计代价

因为A*搜索总是搜索f(n)最小的点,因此它总能找到最优解。

有信息搜索与无信息搜索相关推荐

  1. 【八数码问题】基于状态空间法的知识表示与状态搜索:无信息搜索(BFS/DFS) 启发式搜索(A*)

    前言 一.问题引入 二.状态空间法 1. 知识及其表示 2. 状态空间法定义 3. 问题求解 三.基于状态空间搜索法解决八数码问题 1. 八数码问题的知识表示 2. 状态空间图搜索 1. 无信息搜索 ...

  2. 基于Jsoup实现搜狗微信搜索文章获取链接、搜索公众号信息、微信登录以及登出

    2020-03-20更新 已上传至GitHub:https://github.com/Aquarius-Seven/demo-jsoup.git,相比CSDN资源,CommonUtil增加了一个处理需 ...

  3. CAD怎么去掉右上角的搜索及用户信息工具条

    CAD怎么去掉右上角的搜索及用户信息工具条 关闭CAD软件,按快捷键win+R打开运行框,输入 regedit 打开注册表 找到: 计算机\HKEY_CURRENT_USER\Software\Aut ...

  4. 新浪微博搜索页用户信息爬取

    在成功登陆之后,我们可以进行下一波操作了~ 接下来,我们的目的是通过输入关键字,找到相关用户,并收集用户的一些基本信息 环境 tools 1.chrome及其developer tools 2.pyt ...

  5. 无信息变量选择(UVE)波长筛选算法--基于OpenSA开源库实现

    系列文章目录 "光晰本质,谱见不同",光谱作为物质的指纹,被广泛应用于成分分析中.伴随微型光谱仪/光谱成像仪的发展与普及,基于光谱的分析技术将不只停留于工业和实验室,即将走入生活, ...

  6. “软硬结合”- 转转搜索少无结果模块简介

    文章目录 一.转转搜索少无结果模块简介 1.1:什么是少无结果模块 1.2 少无结果模块架构 二."软硬"结合,少无结果模块技术实现 2.1 基于少无结果QR和ElasticSea ...

  7. 试用一款干净的搜索引擎——无追搜索

    无追搜索是360公司推出的一款号称只有搜索没有追踪的搜索引擎.默认情况下无追不使用Cookie,没有历史搜索词功能和用户画像,搜索界面简单,告别无关广告的打扰. 01 访问无追搜索 访问下面的网址,打 ...

  8. 贝叶斯统计的无信息先验和共轭先验

    声明:以下为本人的理解,不一定准确,欢迎大神指正和探讨,但请言辞不要过激. 在本人博客的一篇好文转载中,可以了解一下频率派和贝叶斯派,这两个学术派的区别和联系. 简单来说 频率派是完全以出现的样本去估 ...

  9. jQuery+AJAX+PHP+MySQL数据库开发搜索功能,无跳转无刷新搜索。

    知识点:ajax提交表单,php查询数据库,php返回json数组,javascript遍历输出json数组 演示: 1.当表单无输入任何关键词的时候,返回"请输入关键词..." ...

最新文章

  1. 【源资讯 第37期】一个时代的终结 —— 再见, Flash !
  2. Linux命令(4):cat命令
  3. Docker容器的使用方法
  4. SAP创建中国版免费在线课程openSAP
  5. JavaScript Object.defineProperty()方法详解
  6. eclipse3.4+对的处理插件(附SVN插件安装实例)
  7. 的引用_左值、右值、左值引用、右值引用
  8. scrapy框架的日志等级和请求传参
  9. 使Jackson和Mybatis支持JSR310标准
  10. rtsp连接断开_海康RTSP客户端连接分析
  11. smartdns使用指南_OpenWrt之SmartDNS 使用教程(PLUS+版)
  12. PandoraBox/LEDE SDK交叉编译OpenWrt ipk安装包的方法
  13. 移动APP测试中的功能与非功能测试
  14. 转运RNA(tRNA)甲基化修饰7-甲基胞嘧啶(m7C)|tRNA-m7G
  15. mysql日期自动加1天
  16. Chapter 4 Part 5 WPAS扫描源码走读
  17. 基于spring+springmvc+mybatis的个人简易记账系统(包含数据库)
  18. OSChina 周四乱弹 —— 下班等通知,我张北华同意后才下班
  19. Redis非关系型数据库(三)持久化
  20. AD怎么输入坐标_测绘仪器怎么用?

热门文章

  1. 星痕 轻松实现大屏数据可视化_买大数据可视化大屏幕,看这篇文章就够了
  2. Java 实现sequence
  3. [Warning] incompatible implicit declaration of built-in function ‘memset‘
  4. 微机原理微型计算机组成,微机原理知识点
  5. Android智能聊天机器人的实现
  6. Awk的一些使用方法
  7. 【开源方案】2.4G遥控器,接收器全套详细设计资料
  8. 国信长天单片机竞赛训练之用定时器中断实现时钟(一)
  9. 额温枪有没有应用部分引发的探讨
  10. 【转自谭峰】PostgreSQL9.5:新增参数设置神器:pg_file_settings 视图