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 ...
随机推荐
- html select 下拉箭头隐藏
html select 下拉箭头隐藏 <!DOCTYPE html> <html> <head lang="en"> <meta char ...
- 关于setTimeout的妙用前端函数节流
最近在某团队忙于一个项目,有这么一个页面,采用传统模式开发(吐槽它为什么不用React),它的DOM操作比较多,然后性能是比较差的,尤其当你缩放窗口时,可怕的事情发生了,出现了卡顿,甚至浏览器瘫痪.为 ...
- 电赛总结(二)——AD芯片总结之AD7705
1.特性参数 (1)16位无丢失代码性AD转化器 (2)只需要3.3V供电(即只需要单片机即可供电) (3)双通道差分输入 (4)基准电压为2.5V时,在单极性信号下,输入范围是0到2.5V,在双极性 ...
- 【JNI】锅炉压力监测器
public class MainActivity extends Activity { private MyProgressBar pb; static{ System.loadLibrary(&q ...
- poj 2524 并查集 Ubiquitous Religions
//#include<bits/stdc++.h> #include<iostream> #include<stdio.h> #define max1 50005 ...
- LMT 装机记录
老毛桃是一个存在很久的文物了,当年在大学的时候,学习委员还专门做了一个PPT来讲老毛桃,现在想想,有点后悔那是不去试一下. 但万幸的是,最近终于彻底理解了工作流程: 1)安装一个LMT的软件,从其官网 ...
- Comparing the Performance of .NET Serializers(zz)
The .NET framework comes with a variety of different serializers. Hopefully, my overview of these se ...
- CSS3 box-shadow快速教程
box-shadow 属性向框添加一个或多个阴影.这个CSS3的属性很常用,盒阴影.按钮状态等各种地方都有用到,但是你了解并记住各个参数的作用及用法吗? 展示 源码:http://codepen.io ...
- CC150 - 11.3
Question: Given a sorted array of n integers that has been rotated an unknown number of times, write ...
- BZOJ3091: 城市旅行
Description Input Output Sample Input 4 5 1 3 2 5 1 2 1 3 2 4 4 2 4 1 2 4 2 3 4 3 1 4 1 4 1 4 Sample ...