【章节总结】人工智能基础——搜索与问题求解

系列文章目录

【章节总结】人工智能基础——搜索与问题求解

【课程项目】BIT人工智能大作业:五子棋游戏


文章目录

  • 系列文章目录
  • 搜索是什么?
  • 1.问题求解
    • 1.1 状态空间表示法
    • 1.2 与或图
  • 2. 图搜索
    • 2.1 盲目图搜索
    • 2.2 启发式图搜索
      • A* 算法
      • 8-puzzle问题
  • 3. 博弈搜索
    • 3.1 博弈树
    • 3.2 极大极小搜索
    • 3.3 α-B剪枝


搜索是什么?

从问题所有可能的解中找到一个最优解或可行解就成为问题求解中的核心技术问题。这一问题被称为“搜索”,在数学和有关工程技术领域中也被称为“优化”,是人工智能和其他相关工程技术领域中的核心基础问题之一。
启发式搜索是人工智能的本质特征之一。

1.问题求解

  • 状态空间表示法
  • 与或图表示法

两种求解问题的思路:
①初始状态对应问题的起始状态,目标状态对应于问题的终止状态。状态空间中从初始状态到目标状态的路径就是一个可能的解。
②与或图的基础是问题规约。将复杂问题逐步转化成可以求解的本原问题。

1.1 状态空间表示法

Step1 定义问题状态的计算机描述形式,将所有可能的状态表示出来,并确定其中的初始状态和目标状态。
Step2 确定促使状态发生转换的操作,并在计算机中将其表示为相应的算符。
Step3 以状态为顶点,状态之间所允许的操作为有向边,获得“图”形式的状态空间。(这里需要指出的是:对于复杂问题,状态空间一般不是一次生成,而是逐步展开的,具体方法在下一节详述。)
Step4 应用图搜索方法,在状态空间中搜索从初始状态到目标状态的最优路径或可行路径。

二阶汉诺塔问题的状态空间
【章节总结】人工智能基础——搜索与问题求解_第1张图片
存在两个最优解{1,1} →{2,1} →{2,3} →{3,3}和{1,1}→{3,1}→{3,2} →{2,2},对应的操作序列分别为A(1,2) →B(1,3) →A(2,3)和A(1,3)→B(1,2)→A(3,2)。

1.2 与或图

【章节总结】人工智能基础——搜索与问题求解_第2张图片

①分解
只有当所有子问题Pi,i=1,…,n都有解时,原问题P才有解;任何一个子问题无解都会导致原问题无解,即子问题的“与”和原问题等价。
【章节总结】人工智能基础——搜索与问题求解_第3张图片
②变换
子问题中只要一个有解则原问题就有解;只有当所有子问题都无解时原问题才无解,即子问题的“或”与原问题 等价。

基于与或图表示的问题求解算法
Step1 确定单个问题的描述形式,可采用状态空间表示法。
Step2 从原始问题开始,逐步进行分解和变换,直到本原问题。然后将全部分解和变换过程表示为与或图。(同样,对于复杂问题,与或图一般不是一次生成,而是逐步展开的,具体方法详见下一节。)
Step3 从端顶点开始,逐级向上回溯,标注各顶点为可解顶点或不可解顶点,直到标注原始顶点为可解顶点或不可解顶点为止。
Step4 当原始顶点被确定为可解顶点时,输出相应解图为问题的解。

三阶汉诺塔问题的与或图
【章节总结】人工智能基础——搜索与问题求解_第4张图片
首先可将原始问题(1,1,1)→(3,3,3)分解为三个子问题。
(1,1,1)→(1,2,2)
(1,2,2)→(3,2,2)
(3,2,2)→(3,3,3)
然后对于每个子问题继续进行归约。子问题2已是本原问题,不需要再分解。子问题1和子问题3都是二阶梵塔问题,可以按上述方法继续进行分解。

2. 图搜索

  • 盲目图搜索
  • 启发式图搜索

图搜索的一般结构
为了完成拓展,并记录拓展过程中逐步形成的“状态空间图”或“与或图”,可以使用一个表存放未进行过拓展的顶点,称为open表;用另一个表存放已经拓展过的顶点,称为Closed表。

2.1 盲目图搜索

  • 广度优先搜索——先进先出(FIFO)
  • 深度优先搜索——后进先出 (LIFO)
  • 有界深度优先搜索——在深度优先搜索的基础上增加深度限制
  • 迭代加深深度优先搜索——逐步增加深度限制

2.2 启发式图搜索

A* 算法

评估函数:f(n) = g(n) + h(n)
g(n)作为从初始顶点S0到顶点Sn的实际代价
h(n)是从顶点Sn到目标顶点Sg的最优路径的估计代价,体现问题所提供的启发性。

8-puzzle问题

【章节总结】人工智能基础——搜索与问题求解_第5张图片
两种启发式函数
H1(n) = 不匹配的位置数
H2(n) = 曼哈顿距离累加
如果对于每个n,h2(n) > h1(n)恒成立,则认为h2优于h1,说明h2更适合搜索

3. 博弈搜索

  • 博弈树
  • 极大极小值搜索
  • α-β剪枝

现有机器博弈方法本质上是将博弈问题转变为一个与或图搜索问题来进行的。

3.1 博弈树

一般假设己方为MAX,对手为MIN
【章节总结】人工智能基础——搜索与问题求解_第6张图片
可供自己选择的行动方案之间是“或”的关系
可供对方选择的行动方案之间则是“与”的关系,原因是主动权掌握在对方手里,任何一个方案都有可能被对方选中,自己必须防止那种对自己最为不利的情况发生。

采用博弈树搜索的时间复杂度和空间复杂度都极高。
一种合理的想法是放弃对必胜策略的搜索,减少搜索的深度,不再考虑从当前状态到最终状态的完整博弈树,而是根据计算时间的限制,考虑从当前状态开始,未来若干步之内的博弈子树。(下当前局面下的好棋)

在这一思想上提出极大极小搜索,并进一步提出α-β剪枝

3.2 极大极小搜索

【章节总结】人工智能基础——搜索与问题求解_第7张图片
【总结】选择最坏的选择,换句话说,就是让自己的损失最小。

3.3 α-B剪枝

【章节总结】人工智能基础——搜索与问题求解_第8张图片


以上就是本章搜索与问题求解的全部内容啦,如果对你有帮助,欢迎点赞收藏~

你可能感兴趣的:(人工智能,人工智能)