[置顶] 人工智能1

状态空间及其搜索策略
AI搜索:
v问题求解技术主要是两个方面:
v问题的表示
v求解的方法
v状态空间法
v状态(state): 一组特定的值
v算符(operators/transitions):把问题从一种状态变换为另一种状态的手段
 
[置顶] 人工智能1_第1张图片
 
怎样可以从初始状态到到目标状态呢?是按照某个方法还是盲目的尝试呢??
 
有两种思想:
1移动数字,每个数字可以向(上、下、左、右)移动,则八个数码可以移动的方法8X4=32种
2移动空格,一个空格可以向(上、下、左、右)移动,则有1X4种,这种方法更高效
[置顶] 人工智能1_第2张图片
 
如何能向下面这样高效地找到目标呢??少走一些弯路。
[置顶] 人工智能1_第3张图片
 
下面是一个简单的例子,大的瓶子可以装5加仑的水,小瓶子可以装2加仑的水,这两个瓶子都没有刻度,请问怎么在第二瓶子上装1加仑的水?其中,初始状态是大瓶子的装满水(5加仑),小瓶子为空。多余的水可以倒掉。
 
这个问题很简单,大瓶子的水往小瓶子倒,倒满小瓶子,则小瓶子的水为2加仑,再将小瓶子的水倒掉,再重复一次,则大瓶子剩下1加仑的水,把这1加仑的水倒到小瓶子上。则完成任务。
怎么用状态空间树去解决呢??
定义下面的函数:
[置顶] 人工智能1_第4张图片
 
则状态空间可以这样解决:
[置顶] 人工智能1_第5张图片
 
 
下面是一个思考题。有两个空的瓶子,大瓶子可以装4加仑的水,小瓶子可以装3加仑的水。假设水源不断,怎么可以在大瓶子装2加仑的水?(这两个瓶子没有刻度)
 
状态空间树解法:
结点:状态描述
弧:操作,运算(可以保留父结点的状态,方便回溯)
假设状态为(x,y),x表示大瓶的装的水,y代表小瓶的装的水
假设初始状态为(4,0),目标状态为(2,0)
[置顶] 人工智能1_第6张图片
 
那么大的空间数,如何做到高效呢?
[置顶] 人工智能1_第7张图片
 
 
结点如此多,如何只找到我们需要的结点呢??
 
[置顶] 人工智能1_第8张图片
 
下面有几个重要的概念
[置顶] 人工智能1_第9张图片
 
海量数据搜索
结点生成----->结点扩展------->目标测试------>解   (费用代价)
[置顶] 人工智能1_第10张图片
 
[置顶] 人工智能1_第11张图片
 
结点生成就是初始化
结点扩展就是生成所有的儿子结点
从已有的(显示的)去扩展一些儿子,使得隐式的结点一步步的显示的过程。
在搜索的过程中:
结点类型分成了下面几类
[置顶] 人工智能1_第12张图片
[置顶] 人工智能1_第13张图片
 
白色虚线表示显示的结点,其中红色的虚线表示的是Close,红色和白色虚线之间的是Open
 
[置顶] 人工智能1_第14张图片
 
[置顶] 人工智能1_第15张图片
 
状态空间搜索树算法的特点
[置顶] 人工智能1_第16张图片
 
这是学习后面章节的基础,再重申一次。
[置顶] 人工智能1_第17张图片
 

你可能感兴趣的:([置顶] 人工智能1)