人工智能导论课件第4章第3-4节
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4.3 知情搜索
• 爬山、最佳优先搜索和集束搜索这些算法“从不回头”。在状态空间中,它们 的路径完全由到目标的剩余距离的启发式评估(近似)引导。假设某人从纽约 市搭车到威斯康星州的麦迪逊。一路上,关于应该选择哪条高速公路出现了许 多选择。这类搜索也许会采用到目标的最小直线距离的启发法(例如麦迪逊)。
4.3.1 启发法
• 让我们再考虑几个启发法的例子。例如,人们可以根据季节选择车辆的机油。 冬天,由于温度低,液体容易冻结,因此应使用较低黏度(稀薄)的发动机油; 而在夏季,由于温度较高,因此选择具有较高黏度的油是明智的。类似地,冬 天,气体冷缩了,应在汽车轮胎内充入更多的空气;反之,夏天,当气体膨胀 时,应减少轮胎内的空气。
4.3.3 最陡爬坡法
• 最陡爬坡法知道你将能够接近某个目标状态,能够在给定的状态下做出决策, 并且从多个可能的选项中做出最好的决定。从本质上讲,相比于上述简单的爬 山法,这解释了最陡爬坡法的优势。这个优势是,从多个比当前状态可能“更 好的节点”中做出一个选择。而不仅仅是选择向当前状态“更好”(更高)的 目标移动,这种方法从给定的可能节点集合中选择了“最好”的移动(在这个 情况下是最高的分数)。
4.3.1 启发法
• 启发式应用与纯计算算法的问题求解比较的一个常见示例是大城市的交通。许 多学生使用启发法,在上午7:00到9:00从不开车到学校,而在下午4:00到6:00从 不开车回家,因为在大部分的城市中,这是高峰时间,正常情况下45分钟的行 程很容易需要一到两个小时完成。如果在这些时间必须开车,那么这则是例外 情况。
4.3.3 最陡爬坡法
• 图4-9说明了最陡爬坡法。如果程序按字母顺序选择节点,则从节点A(-30)开 始,我们可以得出结论:下一个最好的状态是节点B,具有(-15)的分数。但 是这比当前的状态(0)更差,因此最终它将移动到节点C(50)。从节点C, 我们将考虑节点D、E或F。但是,由于节点D处于比当前状态更糟的状态,因 此不选择节点D。在节点E(90)改进了当前的状态(50),因此我们选择节点 E。
• 博尔克和西斯基说,启发式研究方法在特定的问题领域寻求更形式化、更严格 的类似算法的解,而不是发展可以从特定的问题中选择并应用到特定问题中的 更一般化方法。
ຫໍສະໝຸດ Baidu
4.3.1 启发法
• 启发式搜索方法的目的是在考虑到要达到目标状态情况下极大地减少节点数目。 它们非常适合组合复杂度快速增长的问题。通过知识、信息、规则、见解、类 比和简化,再加上一堆其他的技术,启发式搜索方法旨在减少必须检查的对象 数目。好的启发式方法不能保证获得解,但是它们经常有助于引导人们到达解 路径。
4.3.1 启发法
• 现在,使用如谷歌地图、高德地图等程序来获取两个位置之间建议的行车路线, 这是很常见的。你想知道这些程序是否具有内置AI,采用启发法使它们能够智 能地执行任务?如果它们采用了启发法,那么这些启发法是什么?例如,程序 是否考虑道路是国道、省道、高速公路还是林荫大道?是否考虑驾驶条件?这 将如何影响在特定道路上驾驶的平均速度和难度,以及它们选择某种方式到特 定目的地?
4.3.1 启发法
• “启发式之父”乔治·波利亚所描述的启发法是,当面对一个困难的问题时,首 先尝试解决一个相对简单但相关的问题。这通常提供了有用见解,以帮助找到 原始问题的解决方法。波利亚的工作侧重于问题的求解、思考和学习,他建立 了启发式原语的“启发式字典”,运用形式化观察和实验的方法来寻求创立和 获得人类问题求解过程的见解。
• 如果使用这里的描述,标准爬山法将永远不会检查可以返回比节点E更高分数 的节点F,即100。与标准爬山法相反,最陡爬坡法将评估所有的3个节点D、E 和F,并总结出F(100)是从节点C出发选择的最好节点。
4.3.3 最陡爬坡法
F(100)
E(90)
C(50)
D(40)
START(0)
H(-15)
• 求解问题通常涉及求解子问题。在某些情况下,必须解决所有的子问题,但有 时解决一个子问题就足够了。例如,如果一个人在洗衣服,则需要洗涤和干燥 衣服。但是,干燥衣服可以将湿衣服放入机器中或将其悬挂在晾衣绳上来实现。
4.3.1 启发法
• 启发法是解决问题的经验法则。换句话说,启发法是用于解决问题的一组常用 指南。与算法相比,算法是规定的用于解决问题的一组规则,其输出是完全可 预测的,例如排序算法(包括冒泡排序和快速排序)以及搜索算法(包括顺序 搜索和二分查找)。而使用启发法,我们可以得到一个很有利但不能保证的结 果。
4.3.4 最佳优先搜索
• 最佳优先搜索是我们讨论的第一个智能搜索算法,为了达到目标节点,它会做 出探索哪个节点和探索多少个节点的决定。最佳优先搜索维持着开放节点和封 闭节点的列表,就像深度优先搜索和广度优先搜索一样。开放节点是搜索边缘 上的节点,以后可能要进一步探索到。封闭节点是不再探索的节点,将形成解 的基础。在开放列表中,节点是按照它们接近目标状态的启发式估计值顺序排 列的。因此,每次迭代搜索,考虑在开放列表上最有希望的节点,从而将最好 的状态放在开放列表前端。重复状态(例如,可以通过多条路径到达的状态, 但是具有不同的代价)是不会被保留的。相反,花费最少代价、最有希望以及 在启发法下最接近目标状态的重复节点被保留了。
• Bolc和Cytowski补充说:“……在构建解过程中,使用启发式方法增加了获得 结果的不确定性……由于非正式知识的使用(规则、规律、直觉等),这些知 识的有用性从未得到充分证明。因此,在算法给出不满意的结果或不能保证给 出任何结果的情况下采用启发式方法。在求解非常复杂的问题时,特别是在语 音和图像识别、机器人和博弈策略问题中,它们特别重要(精确的算法失败 了)。”
4.3 知情搜索
• 爬山法是贪婪且原始的,但是有时候这种方法也能够“幸运”地找到在最陡爬 坡法中找到的最佳方法。更常见的是,爬山法可能会受到3个常见问题的困扰: 山麓问题、高原问题和山脊问题。比较智能、优选的搜索方法是最佳优先搜索, 使用这个方法,在评估给定路径如何接近解时,要保持开放节点列表,接受反 馈。集束搜索提供了更集中的视域,通过这个视野,可以寻找到一条狭窄路径 通往解。
• 如上所述,最佳优先搜索维持开放节点列表的优先级队列。回想一下,优先级 队列具有的特征:可以插入的元素、可以删除最大节点(或最小节点)。图410说明了最佳优先搜索的工作原理。注意,最佳优先搜索的效率取决于所使用 的启发式测度的有效性。
4.3.4 最佳优先搜索
A(18)
B(14)
C(4)
D(9)
E(2)
4.3.2 爬山法
• 假设有一位试图到达山顶的爬山者。她唯一的装备是一个高度计,以指示她所 在的山有多高,但是这种测度不能保证她会到达山顶。爬山者在任何一点都要 做出一个选择,即总是向所标识的最高海拔方向前进,但是除了给定的海拔, 她不确定自己是否在正确的路径上。显然,这种简单的爬山方法的缺点是,做 出决策的过程(启发式测度)太过朴素简单,以致登山者没有真正足够的信息 确定自己在正确的路径上。爬山只会估计剩余距离,而忽略了实际走过的距离。 在图4-8中,在A和B中做出的爬山决定,由于A估计的剩余距离小于B,因此选 择了A,而“忘记”了节点B。然后,爬山从A的搜索空间看去,在节点C和D 之间考虑,很明显我们选择了C,接下来是H。
4.3.1 启发法
• 启发式信息可以添加到搜索中。 – 决定接下来要扩展的节点,而不是严格按照广度优先或深度优先的方式进 行扩展。 – 在生成节点过程中,决定哪个是后继节点,以及待生成的后继节点,而不 是一次性生成所有可能的后继节点。 – 确定某些节点应该从搜索树中丢弃(或裁剪掉)。
4.3.1 启发法
4.3.2 爬山法
• 接下来,介绍三种为找到任何解的知情搜索的特定搜索算法,它们使用启发法 指导智能搜索过程。最基本的是爬山法,更聪明一点的是最陡爬坡法,还有一 种算法在效率上可算得上最优算法――最佳优先搜索算法。
• 爬山法背后的概念是,在爬山过程中,即使你可能更接近顶部的目标节点,但 是你可能无法从当前位置到达目标/目的地。换句话说,你可能接近了一个目标 状态,但是无法到达它。传统上,爬山法是所讨论的第一个知情搜索算法。它 最简单的形式是一种贪婪算法,在这个意义上说来,这种算法不存储历史记录, 也没有能力从错误中或错误路径中恢复。它使用一种测度(最大化这种测度, 或是最小化这种测度)来指导它到达目标,来指导下一个“移动”选择。
F(1)
H(3)
J(21)
J(31)
G1(0)
K(34)
1. Open=[A]; Closed[] 2. Open=[C, B]; Close[A] 3. Open=[F, H, B]; Closed[C, A] 4. Open=[H, B, L, M]; Closed[F, C, A] 5. Open=[G2, N, B, L, M]; Closed[H, F, C, A]
4.3.1 启发法
• 下面是启发式搜索的几个定义。 • “启发”作为一个名词,是特定的经验法则或从经验衍生出来的论据。相关问
题的启发式知识的应用有时候称为启发法。 – 它是一个提高复杂问题解决效率的实用策略。 – 它引导程序沿着一条最可能的路径到达解,忽略最没有希望的路径。 – 它应该能够避免去检查死角,只使用己收集的数据。
A(-30)
图4-9 最陡爬坡法:这里有一位登山者,我们按照字母表顺序将节点呈现给他。 从节点C(50),爬山算法选择了节点E(90),最陡爬坡法选择了F(100)
4.3.4 最佳优先搜索
• 爬山法是一种短视的贪婪算法。由于最陡爬坡法在做出决定之前,比较了可能 的后继节点,因此最陡爬坡法的角度比爬山法更开阔、然而这依然存在着与爬 山相关的(山麓、高原和山脊)问题。如果考虑可能的补救措施并将其形式化, 那么我们会得到最佳优先搜索。
4.3.3 最陡爬坡法
START(25)
28
10
A(16)
15
8
C(10)
5
20
G(29)
H(18)
D(13)
12
3
I(0)
J(30)
B(19)
7
11
B(18)
16
29
K(32)
L(21)
B(11)
1
33
M(0)
N(17)
图4-8 爬山示例注意:在这个示例中,节点中的数字是到目标状态估计的距离, 顶点的数字仅仅指示爬过的距离,没有添加任何重要的信息
4.3.4 最佳优先搜索
• 从以上讨论可以看出,在爬山法中,最佳优先搜索的最显著优势是它可以通过 回溯到开放列表的节点,从错误、假线索、死胡同中恢复。如果要寻找可替代 的解,它可以重新考虑在开放列表中的子节点。如果按照相反的顺序追踪封闭 节点列表,忽略到达死胡同的状态,就可以用来表示所找到的最佳解。
第3节
1
启发法、爬山法
2
最陡爬坡法、最佳优先搜索
3
分支定界法——找到最佳解
4
A* 算法
4.3 知情搜索
• 由人工智能处理的大型问题通常不适合通过以固定方式搜索空间的盲目搜索算 法来求解。这一节我们学习知情搜索的方法——用启发法,通过限定搜索深度 或是限定搜索宽度来缩小问题空间,常利用领域知识来避开没有结果的搜索路 径。作为经验法则的启发法在问题求解中通常是很有用的工具。
• Pearl声明,使用启发式方法可以修改策略,显著降低成本,达到一个准最优 (而不是最优)解。博弈,特别是二人零和博弈,具有完全的信息,如国际象 棋和跳棋。实践证明,二人零和博弈是进行启发法的研究和测试一个非常有前 景的领域。
4.3.1 启发法
• “启发式”作为通过智能猜测而不是遵循一些预先确定的公式来获得知识或一 些期望结果的过程相关。这个术语有两种用法: – (1)描述一种学习方法,这种方法不一定用一个有组织的假设或方式来证 明结果,而是通过尝试来证明结果,这个结果可能证明了假设或反驳了假 设。也就是说,这是“凭经验”或“试错法”的学习方式。 – (2)根据经验,有时候表达为“使用经验法则”获得一般的知识(但是, 启发式知识可以应用于简单或者复杂的日常问题。人类棋手即使用启发式 方法)。
• 当使用任何行车指南或地图时,最好检查并确保道路仍然存在,注意是否为施 工地段,并遵守所有交通安全预防措施。这些地图和指南仅用作交通规划的辅 助工具。
4.3.1 启发法
• 谷歌地图、高德地图这样的程序正在不断变得“更智能”,以满足应用的需要, 并且它们可以包括最短时间、最短距离、避免高速公路(可能存在驾驶员希望 避开高速公路的情况)、收费站、季节性关闭等信息。