下面介绍以目标为导向的机器人(Goal-based agent),也称为解决问题型机器人(Problem-Solving Agent)。 这种机器人分为四步走:
1.建立目标
2.建立问题:主要是指根据目标,有什么动作(action)和什么状态(state)需要考虑,这个过程是求解的关键。
3.搜索:根据问题求出到达目标的动作序列(sequence)。
4.执行解决方案
其中建立问题是最关键的一步,那么一个问题又可以分为四个部分:
1)初始状态(Initial State)
2)后续方程(Succesor function):
用来求后续状态的方程,它求出的后续状态很可以能是一个集合。 例如,给定一个状态X,SUCCESSOR-FN(X),返回(action,succesor)的集合对,即从状态X出发采取那种动作可以得到那种后续状态。
初始状态和后续方程就可以隐式地定义了状态空间(State Space)。一个路径(path)就是状态空间从一个状态到另一个状态所经过的一系列状态。
3)目标测试:
用来测试当前状态是否目标状态的函数。
4)路径费用(path cost):
整个路径所需的费用。包括每步的费用,叫做step cost。
为了建立问题,可以把细节去掉,保留关键的过程称为抽象(Abstraction)。
搜索:
建立问题后,就用到搜索,搜索是在搜索树中进行的,搜索树上的节点是搜索节点,它可以是一个状态(state),但是搜索树并不等同于状态空间,因为搜索树有很多相同的状态。
搜索是同时展开当前状态而得以进行的,我们可以选择不同的搜索策略去完成搜索,正在展开的状态集合称为边缘(fringe)。
描述搜索算法的表现有四个:
1)Completeness: 是否能保证找到解决方案(solution)。
2)Optimality: 是否能找到最优解。
3)Time Complexity
4)Space Complexity
最后介绍一下搜索算法:
1)宽度优先(Breadth first search)
2) Uniform-cost search
3) Depth-first search
4) 双向搜索(Bidirectional search)