breadth-first depth-first best-first
Computer Science An Overview _J. Glenn Brookshear _11th Edition
For our example in Figure 11.7, we chose a starting configuration that produces a
manageable search tree. In contrast, the search tree generated in an attempt to
solve a more complex problem could grow much larger. In a game of chess, there
are twenty possible first moves so the root node of the search tree in such a case
would have twenty children rather than the three in the case of our example.
Moreover, a game of chess can easily consist of thirty to thirty-five pairs of
moves. Even in the case of the eight-puzzle, the search tree can become quite
large if the goal is not quickly reached. As a result, developing a full search tree
can become as impractical as representing the entire state graph.
One strategy for countering this problem is to change the order in which the
search tree is constructed. Rather than building it in a breadth-first manner
(meaning that the tree is constructed layer by layer), we can pursue the more
promising paths to greater depths and consider the other options only if these
original choices turn out to be false leads. This results in a depth-first construc-
tion of the search tree, meaning that the tree is constructed by building vertical
paths rather than horizontal layers. More precisely, this approach is often called
a best-first construction in recognition of the fact that the vertical path chosen
for pursuit is the one that appears to offer the best potential.
The best-first approach is similar to the strategy that we as humans would
apply when faced with the eight-puzzle. We would rarely pursue several options
at the same time, as modeled by the breadth-first approach. Instead, we probably
would select the option that appeared most promising and follow it first. Note
that we said appeared most promising. We rarely know for sure which option is
best at a particular point. We merely follow our intuition, which may, of course,
lead us astray. Nonetheless, the use of such intuitive information seems to give
humans an advantage over the brute-force methods in which each option was
given equal attention, and it would therefore seem prudent to apply intuitive
methods in automated control systems.
o this end, we need a way of identifying which of several states appears to
be the most promising. Our approach is to use a heuristic, which in our case is
a quantitative value associated with each state that attempts to measure the “dis-
tance” from that state to the nearest goal. In a sense, our heuristic is a measure of
projected cost. Given a choice between two states, the one with the smaller
heuristic value is the one from which a goal can apparently be reached with the
least cost. This state, therefore, would represent the direction we should pursue.
A heuristic should have two characteristics. First, it should constitute a rea-
sonable estimate of the amount of work remaining in the solution if the associ-
ated state were reached. This means that it can provide meaningful information
when selecting among options—the better the estimate provided by the heuris-
tic, the better will be the decisions that are based on the information. Second, the
heuristic should be easy to compute. This means that its use has a chance of ben-
efiting the search process rather than of becoming a burden. If computing the heuristic is extremely complicated, then we might as well spend our time conducting a breadth-first search.
breadth-first depth-first best-first的更多相关文章
- USER STORIES AND USE CASES - DON’T USE BOTH
We’re in Orlando for a working session as part of the Core Team building BABOK V3 and over dinner th ...
- linux基础-第十六单元 yum管理RPM包
第十六单元 yum管理RPM包 yum的功能 本地yum配置 光盘挂载和镜像挂载 本地yum配置 网络yum配置 网络yum配置 Yum命令的使用 使用yum安装软件 使用yum删除软件 安装组件 删 ...
- linux基础-第十五单元 软件包的管理
使用RPM安装及移除软件 什么是RPM rpm的文件名 rpm软件安装与移除工作中经常使用的选项 查看RPM软件包中的信息 查询已安装的软件包信息 RPM包的属性依赖性问题 什么是RPM包的属性依赖性 ...
- Huge CSV and XML Files in Python, Error: field larger than field limit (131072)
Huge CSV and XML Files in Python January 22, 2009. Filed under python twitter facebook pinterest lin ...
- 美国政府关于Google公司2013年度的财务报表红头文件
请管理员移至新闻版块,谢谢! 来源:http://www.sec.gov/ 财务报表下载↓ 此文仅作参考分析. 10-K 1 goog2013123110-k.htm FORM 10-K UNIT ...
- Rock the Tech Interview
Today, Infusion held a talk in Columbia University about tech interview. Talker: Nishit Shah @ Infus ...
- How do I learn machine learning?
https://www.quora.com/How-do-I-learn-machine-learning-1?redirected_qid=6578644 How Can I Learn X? ...
- (转)Applications of Reinforcement Learning in Real World
Applications of Reinforcement Learning in Real World 2018-08-05 18:58:04 This blog is copied from: h ...
- How do I learn mathematics for machine learning?
https://www.quora.com/How-do-I-learn-mathematics-for-machine-learning How do I learn mathematics f ...
- [心平气和读经典]The TCP/IP Guide(005)
The TCP/IP Guide[Page 47, 48, 49] I created The TCP/IP Guide to provide you with an unparalleled bre ...
随机推荐
- Java Hour 58 Java Virtual Machine
每每谈到Java Virtual Machine, 你必须意识到这个有三种意思: 1 一个抽象的指南 2 一个具体的实现 3 一个运行时的实例 JVM 的生命周期 每个运行时JVM 实例都是为一个特定 ...
- 利用SQL语句查询一个数据库中的所有表
SQL : select * from information_schema.tables ORACLE: select table_name from user_tables ACCESS: s ...
- cookie 暂时保存内容与恢复
<script type="text/javascript"> $(function(){ $('.ycb_anniu').click(function(){ $.co ...
- 自定义ContentProvider的一些细节探究
1. 适用范围 对于什么情况下才会用到自定义的ContentProvider,官方文档的Dev Guide是这样描述的: 如果你想要提供以下的一种或几种特性的时候你才需要构造一个ContentPr ...
- unity 播放过场动画
public var url="file:///c:/sample.ogg"; //文件路径 function Start () { //拼凑一个url url="fil ...
- BZOJ4388 : JOI2012 invitation
注意到这个过程实质就是prim算法求最大生成树的过程. 首先通过离散化+线段树将$A+B$个点缩为上下各$O(n)$个点. 设已加入集合为$S$,未加入集合为$T$. 建立两棵线段树,维护所有在$T$ ...
- BZOJ3711 : [PA2014]Druzyny
设f[i]为[1,i]分组的最优解,则 f[i]=max(f[j]+1),max(c[j+1],c[j+2],...,c[i-1],c[i])<=i-j<=min(d[j+1],d[j+2 ...
- BZOJ3461 : Jry的时间表
fl[i]表示[1,i]操作一次,且在[j+1,i]处操作的最大值 1:把[j+1,i]改为b[i]: max(sum[j]+b[i]*(i-j)) =b[i]*i+max(-j*b[i]+sum[j ...
- java Android SDK安装与环境变量配置以及开发第一个Android程序
JAVA的安装与环境变量的配置 1.先下载JAVA,并且安装. 下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk-7u3 ...
- xfce4桌面自动整理脚本
转自http://blog.chinaunix.net/uid-22101074-id-91073.html (有修改) xfce4桌面没有自动排列的功能,如果文件多了,超出了桌面的范围,就不好找了, ...