昨天上午补了前天下午做的题,发现自己过得几道题都是签到...
下午从后往前看,主要看了搜索从剪枝到A*这几个章节,做一下小总结。
剪枝,主要是以各种方法减少搜索过程中不必要的搜索分支,每一道题都有适合自己的剪枝方法。
迭代加深,类似bfs的dfs,根据题目要求,规定出深搜的深度限制,以减少深搜所需时间。
双向搜索,对于终态和起始态都很明了的题目,可以采用双向搜索的方法(也就是两次搜索,一次从头开始,一次从尾开始)减少时间。
双端队列bfs,普通的bfs可以理解为对边权值为1的图的搜索,而对于一些边权值为1和0的图,采用双端队列的方法,权值为1放队尾,为0放队首。
优先队列bfs,利用优先队列的特点,边权值最小的点会在队首,每一次扩展队首元素即可。
A*和IDA*算法,没想好怎么实现,样题也没有题解,准备先放下这两个算法,继续向前看书。