【由于专栏后几篇限制vip观看,我又把完整算法在公众号“武汉AI算法研习”进行了发布,可以查看全专栏文章。】
随着计算机性能的提高,搜索算法利用计算机的计算资源有目的穷举一个问题解空间的部分或所有的可能情况,从而求解出问题的解。现阶段搜索类算法一般有深度/广度优先搜索、枚举算法、A-Star算法、蒙特卡洛树搜索等,目前众多的搜索算法都从以下几个方面来降低搜索的时间和复杂性;
1、搜索前根据条件降低搜索规模
2、根据问题的约束条件进行剪枝
3、利用搜索过程中的中间解,避免重复计算
启发式搜索和增量式搜索的区别在于,启发式搜索是利用启发函数来对搜索进行指导,从而实现高效的搜索,启发函数用来估算当前state和目标state之间的距离,启发式搜索是一种“智能”搜索,启发式搜索算法,就是在状态空中的搜索对每一个搜索的位置进行评估,得到最好的位置,再从这个位置进行搜索直到目标,典型的算法例如A_star算法、遗传算法等。增量搜索是对以前的搜索结果信息进行再利用来实现高效搜索,大大减少搜索范围和时间,典型的例如LPA_star、D_star Lite算法等。
[资料参考]
1、https://blog.csdn.net/lqzdreamer/article/details/85175372
2、https://www.jianshu.com/p/c728bb269116