人工智能有多种不同的定义:
人工智能建立在多种学科,包括数学,神经科学,哲学,心理学,计算机工程学,控制论,语言学等学科之上。在过去的十几年中不断发展,取得了比以往更快速的进步。
Agent通过传感器感知环境并通过执行器对所处环境产生影响。机器人Agent的感知器包括红外测距仪,摄像头等,马达,机械臂为执行器。
Agent的感知序列是所有输入数据的完整历史,Agent的行动依赖于整个感知序列。Agent函数将感知序列映射为行动,描述了Agent的行为。
对于每一个Agent,必须说明其任务环境参数。不同的任务环境有不同的性质,任务环境的规范描述称为PEAS。
Agent = 程序 + 体系结构
nQueens的形式化描述:
对于启发式搜索策略,关键在于启发式函数,启发式函搜索的性能分析可以使用有效分支因子。假设有N个结点,解的深度为d, N + 1 = 1 + b ∗ + ( b ∗ ) 2 + . . . + ( b ∗ ) n N+1 = 1 + b^* + (b*)^2+...+(b*)^n N+1=1+b∗+(b∗)2+...+(b∗)n,b*即为有效分支因子。有效分支因子越小,算法性能越好,h(n)越大,有效分支因子越小。
搜索算法可以分类为:
智能优化算法属于启发式搜索算法,是根据自然界的现象,规律的启发而得出的算法,具有全局优化性能。
本章主要介绍局部搜索算法,局部搜索算法从单个当前结点触发,通常只移动到邻近状态,不关心搜索路径。
爬山算法
爬山算法是一种局部择优的算法,是对深度优先搜索的一种改进,每次从当前解的临近空间中选择一个最优解作为当前最优解,直到达到一个局部最优解。优点是避免遍历,提高搜索效率。
主要缺点是会陷入局部最优解,不一定能搜索到局部最优解,因此是不完备的。
模拟退火
模拟退火是模拟物理退火过程的算法。
束搜索
记录k个状态,从k个随机生成的状态开始,每一步生成所有的后继状态,如果有目标状态则停止,否则选择k个最佳的后继结点,重复这个过程。
遗传算法
遗传算法是模拟自然选择的进化准则和生物的遗传学原理的计算模型。核心思想是适者生存,通过选择,交叉,变异实现种群进化。
该算法对问题的解进行编码,定义一个适应值函数来评价解的好坏,适应值大的解有较高的存活率。以k个随机产生的状态开始,通过选择,交叉,变异的操作产生下一代的解。
MINIMAX
竞争环境中多个Agent的目标存在冲突的问题,称为对抗搜索问题。常用的算法是MINIMAX算法,在博弈树中,轮流选择MIN和MAX值的节点扩展。
α-β剪枝
搜索过程中,游戏状态数目指数级增长,需要通过剪枝来消除对部分分支的搜索,且被剪掉的分支不影响最终的决策。α-β搜索不断更新α和β值,当α>=β,剪去该节点的子树。剪枝的效率依赖于检查后继状态的顺序。
综上,MIN求最小上界,MAX求最大下界,当α>=β时进行剪枝,子节点直接返回评估值。(在当前结点考虑是否可能被父节点选择,例如当前是MIN,父节点是MAX,则要用父节点的下界与自己的值比较进行剪枝(比下界小就不会被选),当前是MAX,父节点是MIN,则用父节点的上界与自己的值比较进行剪枝(比上界大就不会被选))。
CSP问题
约束满足问题CSP由一个变量集合和一个约束集合组成。每个变量有自己的值域,当每个变量都有自己的赋值且满足所有约束条件时,问题得到解决。约束满足问题由以下部分构成:
实例:
形式化定义
CSP问题可以形式化定义。变量可以分为两种:
而约束条件可以分为:
约束传播
CSP中可以进行约束传播,使用约束来减小一个变量的合法取值范围,从而影响到跟此变量有约束关系的另一变量的取值,与搜索交错进行,提高搜索效率。
约束传播的核心是局部相容性,局部相容性有以下几种:
CSP搜索
CSP问题通用的搜索模式如下:
CSP采用深度优先搜索方法,每一个结点对一个变量进行赋值。当检测到不相容时,返回上一次赋值。
提高算法效率的策略:
CSP问题的一些情况
前向检验,追踪未赋值变量的剩余合法赋值,当有剩余变量没有合法赋值时搜索终止。
智能回溯。当搜索回溯无法解决冲突时,会导致无解回溯,解决方法是建立冲突集,回溯到冲突集中时间最近的赋值。
CSP中的独立子问题可以通过连通子图找到。而树结构的CSP可以应用拓扑排序解决。
A算法是一种启发式算法。A*搜索对结点的评估包含两部分,一部分是到达此结点已经花费的代价,记为g(n);另一部分是该结点到目标结点的最小代价的估计值,记为h(n)。因此,经过结点n的最小代价解的估计代价为:
f ( n ) = g ( n ) + h ( n ) f(n) = g(n) + h(n) f(n)=g(n)+h(n)
每次扩展结点时,首先扩展f(n)最小的结点。假设启发式函数h(n)满足特定的条件,则A搜索既是完备的也是最优的。
A*算法保证最优性的条件是可采纳性和一致性。
可采纳性是指估计到达目标的代价时,估计值一定小于实际值,即f(n)一定不会超过经过结点n的解的实际代价。因此当搜索到目标结点时,得到的一定是最优解,没有其他结点的估计值更小。
一致性只作用于图搜索。如果对于每一个结点n和通过任一行动a生成n的每个后继结点n’,结点n到达目标的估计代价不大于从n到n’的单步代价与从n’到达目标的估计代价之和。这保证了h(n)是经n到达目标结点的下界。
h ( n ) ≤ c ( n , a , n ′ ) + h ( n ′ ) h(n)\leq c(n,a,n') + h(n') h(n)≤c(n,a,n′)+h(n′)
如果h(n)是可采纳的,则A*进行树搜索是最优的;如果h(n)是一致的,则图搜索的A*算法是最优的。在搜索时,由于A*算法的可采纳性,扩展的结点是下界值最小的,当扩展出目标结点时,得到的一定是最优解。因为目标结点的h(n)=g(n),而这个值小于等于任何其他结点的下界,又根据一致性,之后扩展的目标结点代价不会更低,因此第一个扩展到的目标结点一定是最优解。
完备性要求代价小于等于C*(最优解路径的代价值)的结点是有穷的,每步代价都超过ε并且b是有穷的。