在本章中,我们从在人工智能中经常遇到的最重要的问题之一 ——搜索开始学习。我们的目标是介绍在AI中用于求解问题的最流行方法:搜索、知识表示和学习。我们开始学习基本的搜索算法——所谓的“无信息搜索”或“盲目搜索”的方法。这些算法不依赖任何问题领域的特定知识。正如我们将看到的,这些算法通常需要大量的空间和时间。
2.0 简介:智能系统中的搜索
搜索是大多数人生活中的自然组成部分。我们都放错过房子钥匙或电视遥控器,然后检查口袋,翻箱倒柜。有时候,搜索可能更多是在大脑中进行。你可能有时突然不记得自己到访过的地方的名字、真正喜欢的电影中演员的名字,或者不记得曾经谙熟于心的歌词。要想起来这些事,可能需要几秒钟(记忆力衰退时或许更长)。
许多算法专门通过列表进行搜索和排序。当然,人们同意,如果数据按照逻辑顺序组织,那么搜索就会比较方便一些。想象一下,如果姓名和电话号码随机排列,那么搜索相对较大城市的电话簿会有多麻烦。因此,搜索和信息组织在智能系统的设计中发挥了重要作用,这并不奇怪。也许我们要搜索曾经到访过地方的名字或序列中的下一个数字(见第1章),抑或是井字游戏或跳棋游戏中下一步最佳移动(见第4章和第16章)。人们认为,可以非常快地解决此类问题的人,通常比其他人更聪明。软件系统也通常使用相同的术语,例如,人们也认为,性能更好的国际象棋博弈程序比同类型的程序更加智能。
本章介绍了几种基本搜索算法。2.1节首先介绍一个有助于形式化