人工智能基础 搜索问题
介绍
一般的问题都可以归为下面三个步骤
问题求解
问题求解中最主要的就是搜索问题了,下面就来介绍搜索问题
搜索问题
如魔方的还原问题
如转动次数最少的魔方还原
特征
四个典型的搜索问题
8-数码
八皇后
旅行商
传教士野人过河
汉诺塔问题,农夫过河问题,等等也属于搜索问题,上面只是举例了几个最基本的
搜索问题的要素
搜索问题的组成
问题表示
接下来主要学习介绍的是状态空间表示法
状态空间表示法
案例 8字符的移动
这里把数字的移动转化为空格的移动,简化了问题,
在初始情况下,空格只有四种移动的方法
下图就是8数码问题得到的状态空间图
可以发现我们的目标Sg已经在图中了
上左下右就是一个解
解的搜索
生成与测试范式
案例 n皇后问题
伪代码
穷举法
如,穷举法会造成效率低下,下图中已经不满足4皇后问题的约束,但是穷举法仍然会继续放置剩下的两个皇后,造成效率低下的问题
回溯法
步骤
以此类推,这就是回溯法
如果想看看有没有其他解的话就继续执行
下图是回溯法的树
贪心算法
旅行商问题
注意 : 贪心算法可以快速的找到一个可行解,但不一定是最优解
状态空间搜索法
常用的盲目搜索算法
找到的不一定是最优解
BFS
这个数据结构都学过,看看例子就知道了
DFS
也就是深搜,看看就知道了
算发性就是可以找到解
优先深度优先搜索思想
他与dfs的唯一区别就是限制了搜索的深度
迭代加深的深度优先搜索 DFS-ID
路径代价随着深度增加而增加