《人工智能:计算Agent基础》——3.4 一个通用搜索算法

3.4 一个通用搜索算法

这一节描述在图中寻找解路径的一个通用算法。这个算法独立于任何特定的搜索策略和特定的图。

通用搜索算法背后的直观理念就是给定一个图、一个起始节点集和一个目标节点集,循序渐进地从起始节点探索路径。这要通过维持已经探索过的从起始节点开始的路径的边界(或外围)来实现。边界包含能构成从起始节点到目标节点的初始部分的所有路径。(见图3-3,边界就是指通向灰色节点的那组路径。)77最初,边界包括从起始节点开始的无出弧的那些平凡的(不重要的)路径。随着搜索的深入,边界扩展到未扩展节点,最终到达目标节点。为了扩大边界,搜索者继续挑选,从边界去除路径,从最新节点出弧扩展新的路径并将这些新路径加入边界。搜索策略就界定了在每一步中需要选择哪些边界要素。
图3-4中给出了通用搜索算法。最初,边界是一组从起始节点开始的空路径。每一步中,算法通过从边界去除路径〈s0,…,sk〉而继续推进边界。如果goal(sk)是真(即sk是目标节点),它就找到了解并返回已找到的路径,即〈s0,…,sk〉。否则就通过增加一条出弧来寻找sk的邻居,从而扩展路径。因为对于sk的每一个邻居s,路径〈s0,…,sk,s〉都会加入到边界中。这一步叫做扩展(expanding)节点sk。

1:procedure Search(G,S,goal)
2: Inputs
3:  G:具有N个节点和A条边的图
4:  S:开始节点集
5:  goal:布尔状态函数
6: Output
7:  从S的一个成员到goal值为真的节点的一条路径,
8:  或者如果无解路径则⊥
9: Local
10:  边界:路径集合
11: Frontier←{〈s〉∶s∈S}
12: While Frontier≠{}do
13:  select and remove 〈s0,…,sk〉from Frontier
14:  if goal(sk) then
15:   return〈s0,…,sk〉
16:  Frontier←Frontier∪{〈s0,…,sk,s〉∶〈sk,s〉∈A}
17: return ⊥

https://yqfile.alicdn.com/c8fed22ca726cd395ddfb87650cd80f5b721bf7c.png" >

这个算法有一些要注意的特征:

  • 13行中路径的选择是不确定性的。路径的选择会影响效率,5.2.2节中“不确定性选择”处有更多关于路径筛选使用的详细描述。特定的搜索策略决定选择哪一条路径。
  • 15行中的return应视为临时返回,通过继续进行的16行指令可得出另一条到达目标的搜索路径。78
  • 如果该过程返回⊥,则不存在解(或者即使再次试验进行验证也无其余解)。
  • 这个算法只能用来测试从边界挑选的路径是否能终止在目标节点,而不是测试任意加入到边界的路径。对此有两点主要原因。有时边界上的节点到目标节点的弧花费很大,搜索就不应当通过这条弧返回路径,因为可能存在更低花费的路径。当要求最低花费路径的时候,这就显得尤为重要了。第二点原因是确定一个节点是目标节点的代价很大。

如果选择的路径不在目标节点处终止,并且终止节点没有邻居,那么扩展路径意味着去除路径。这种结果是合理的,因为这条路径不能看做是从起始节点到目标节点的路径的一部分。

时间: 2024-09-15 20:39:04

《人工智能:计算Agent基础》——3.4 一个通用搜索算法的相关文章

《人工智能:计算Agent基础》——导读

前 言 本书是一本关于人工智能(AI)科学的图书.本书认为AI所要研究的是如何设计智能计算Agent(智能体).本书采用教科书的组织形式,适合广大读者阅读.过去几十年,我们见证了AI这门综合学科的兴起.正如其他学科一样,AI具有清晰.规范的理论和难操控的实验部分.本书平衡了理论和实验,并将两者密切地结合.俗话说"好的理论必须有其实用价值",因此我们将工程应用融入到AI的科学研究中.本书所述方法都秉承了格言"凡事都应尽量从简,但不可过简".我们认为科学必须有其坚实的基

《人工智能:计算Agent基础》——1.6 原型应用

1.6 原型应用 人工智能领域的应用广泛而且多样化,包括医疗诊断.工厂流程调度.险恶环境中的机器人.博弈.太空中的无人驾驶车辆.自然语言处理系统.指导系统等.这些应用并不是独立进行的,我们抽象出这些应用的本质特点,来研究智能推理及动作背后的原理. 本节概述了4个应用领域,其中的几个实例将贯穿整本书.尽管我们介绍的几个实例都很29简单(如此他们才适用于本书),但其应用领域代表了人工智能技术能够或正在应用的领域范围. 4个应用领域如下所示: 自主传送机器人会在某个建筑物旁徘徊,负责给里面的人传送包裹

《人工智能:计算Agent基础》——1.2 人工智能简史

1.2 人工智能简史 纵观人类历史,人们曾一直用技术为人类自身建立模型,例如古代的中国.古埃及和古希腊都可以证明,每一种新技术都不断地用来建造Agent或其他意识模型.发条装置.水力学.电话转换系统.全息图.模拟计算机以及数字计算机等都被提出作为智能装置和意识模型的技术原理.大约400年前,人们开始解释思维与推理的本质.Hobbes(1588-1679)被Haugeland6[1985,P.85]称为人工智能的始祖,认为思考是符号推理,例如大声说话或用纸笔计算出某个答案.Descartes(15

《人工智能:计算Agent基础》——3.7 更复杂的搜索方

3.7 更复杂的搜索方法 之前的策略可以进行很多优化.首先,我们给出两种适用于图中有环的方法:一种是对环路的明确检查,而另一种是对到某一节点的多路径检查.然后,我们给出迭代深度算法和深度分支界限搜索法,92这两种方法是能保证找到解路径(甚至是最优解)的一般方法,就像宽度优先搜索算法或者A搜索算法,但是利用了深度优先搜索的空间优点.我们将搜索问题分解为很多小的搜索问题来简化搜索方法,这样每一个都更容易解决.最后,我们说明利用动态规划法如何寻找路径和构建启发函数.3.7.1 环检查用来代表搜索空间

《人工智能:计算Agent基础》——1.5 复杂性维度

1.5 复杂性维度 从自动调温器到在竞争性环境中有多种目标的企业,Agent在环境中行为的复杂性各不相同.Agent的设计存在多个维度的复杂性.这些维度可以分开来考虑,但建造智能Agent时必须组合起来.这些维度定义了人工智能的一个设计空间,空间里的不同点可以通过改变维度值来得到.这里我们介绍9个维度:模块性.表示方案.规划期.感知不确定性.效用不确定性.偏好.Agent数量.学习和计算限制.这些维度对智能系统的设计空间做了粗糙的划分.有时为了建立智能系统必须做出很多其他的选择.1.5.1 模块

《人工智能:计算Agent基础》——第二部分 表达和推理第3章 状态和搜索3.1 用搜索进行问题求解

第二部分 表达和推理 第3章 状态和搜索 你看到过海岸上的螃蟹在寻找大西洋的过程中一直向后爬行,最终消失吗?人们也是同样的思考方式.--H.L.Mencken (1880-1956) 前面一章讨论了Agent是如何理解和动作的,但是没有讲到它们的目标是如何影响动作的.一个Agent可以根据既定的目标集有规划的去动作,但是如果不能适应变化的目标,这样的Agent就是非智能的.或者,Agent能够根据自身能力和既定目标去推理,从而决定应该做什么.这一章介绍将Agent决定做什么的问题描述为在一个图中

《人工智能:计算Agent基础》——第一部分 世界中的Agent:什么是Agent及如何创建它们第1章人工智能与Agent1.1 什么是人工智能

第一部分 世界中的Agent:什么是Agent及如何创建它们 第1章人工智能与Agent 人工智能的历史充满幻想.可能.验证和希望.自从荷马描绘机器"鼎"服侍在众神的餐桌旁,那想象中的机器佣人便成为我们文化的一部分.然而,我们人工智能的研究者,直到50年前,才首次制造出实验性机器来验证那些假想,即有关具备思维和智能行为机器人的假想,使得之前仅在理论上具备可能性的机器人得到验证.--Bruce Buchanan [2005] 历经几个世纪的思想构建,人工智能学科被公认为有超过50年的历史

《人工智能:计算Agent基础》——2.2 Agent系统

2.2 Agent系统 图2-1展示了Agent与环境的一般交互过程,该图所示整体即是我们所说的Agent系统.44一个Agent系统是由Agent和其所在环境构成.Agent接收环境中的刺激,然后做出相应动作.一个Agent由主体(body)和控制器(controller)两部分组成.控制器从主体处接收感知,然后将命令送至主体处.主体包括传感器和执行器,传感器将外部刺激转化为感知,执行器能将命令转换成动作.刺激包括光.声音.键盘上输入的单词.鼠标移动或者物理冲击,也包括从网页或者数据库中获取的

《人工智能:计算Agent基础》——2.4 嵌入式和仿真Agent

2.4 嵌入式和仿真Agent Agent控制器有许多可使用的方法: 嵌入式Agent是一个可以在实际世界中运行的Agent,其行为会在一个实际领域内执行,感知也来自此领域. 仿真Agent是一个运行在模拟主体和环境中的Agent,即一个可以接收命令并返回适当感知的程序,经常用于控制器实际实现之前进行纠错. Agent系统模型是一个包括控制器模型(这个不能确定是否为真实编程).主体模型和环境模型,它可以回答Agent会有何种动作.这样一个模型可用于Agent创建前证明其性质,或者用于回答那些实际