《人工智能:线代方法》 第二部分问题求解 通过搜索进行问题求解(1)
《人工智能:线代方法》 第二部分问题求解 通过搜索进行问题求解(1)
3.1 通过搜索进行问题求解
3.1.1 问题求解智能体
3.1.2 问题形式化
3.2 问题示例
3.2.1 标准化问题
3.2.2 真实世界问题
3.3 搜索算法
最佳优先搜索
搜索数据结构
冗余路径
Breadth-First Search
Uniform-Cost Search
Depth-First Search
Iterative Deepening
Graph Search
Heuristic Search
Greedy Search
A* Search
Recursive Best-First Search
Beam Search
3.3.4 问题求解性能评估
小结
通过本书第二部分第三章3.1-3.3的内容,我们可以对搜索算法有一个比较初步的认识和了解,对于智能体来说,可以通过这些搜索算法在各种环境中的不同表现与条件选择其动作序列和函数功能,同时,由于环境是回合式的、单智能体的、完全可观测的、确定性的,静态的,离散的和已知的。因此算法需要在搜索所需时间、可用内存和解的质量之间进行权衡。另一方面,如果我们对于启发式函数的形式拥有额外的领域相关指示来估计给定状态离目标有多远,或者我们预计算涉及模式或地标的部分解,算法会更高效。
-
在智能体开始搜索之前,必须形式化一个良定义的问题。
-
问题由 5 部分组成:初始状态、动作集合、描述这些动作结果的转移模型、目标状态集合和动作代价函数。
-
问题的环境用状态空间图表示。通过状态空间(一系列动作)从初始状态到达一个目标状态的路径是一个解。
-
搜索算法通常将状态和动作看作原子的,即没有任何内部结构(尽管我们在学习时引入了状态特征)。
-
根据完备性、代价最优性、时间复杂性和空间复杂性来评估搜索算法。
Talk is cheap. Show me the code