algorithm - "hill climbing"和 "branch-and-bound"搜索算法有什么区别?

标签 algorithm search artificial-intelligence computer-science heuristics

爬山搜索和分支定界是人工智能中使用的两种启发式搜索算法。这两种方法有什么区别?

最佳答案

爬山搜索的工作原理是从对解决方案的初始猜测开始,然后迭代地对其进行局部更改,直到找到解决方案或启发式算法陷入局部最大值。有很多方法可以避免陷入局部最大值,例如并行运行多个搜索,或者概率选择后继状态等。在许多情况下,爬山算法会迅速收敛到正确答案。但是,这些方法都不能保证找到最佳解决方案。

分支定界解决方案的工作原理是将搜索空间切割成多个部分,探索一个部分,然后根据每次搜索期间获得的信息尝试排除搜索空间的其他部分。他们保证最终会找到最佳答案,尽管这样做可能需要很长时间。对于许多问题,基于分支定界的算法效果很好,因为少量信息会迅速缩小搜索空间。

简而言之,爬山法不能保证找到正确的答案,但通常运行得非常快并给出很好的近似值。分支定界法总能找到正确的答案,但可能需要一段时间才能找到。

希望这对您有所帮助!

关于algorithm - "hill climbing"和 "branch-and-bound"搜索算法有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14610486/

相关文章:

java - 如何从两个不同的来源采样相同的 10000 条记录?

c - 合并给定空间中的元素数组

python - 多项式回归

artificial-intelligence - AI中<-是什么意思?

c++ - 关于简单游戏中人工智能的想法(例如 : Tic Tac Toe) C++

algorithm - 聚类算法——应用于一组地震数据

java - Java中的决策树节点方法

php - MYSQL,如何在多列中搜索关键字?

java - 在 hibernate 搜索中使用现有分析器 AnalyzerDiscriminator

mysql - phpMyAdmin 中的正则表达式搜索