复杂环境中的搜索策略
在解决实际问题时,我们往往会遇到比之前所讨论的情况更为复杂的环境。之前的问题往往基于完全可观察、确定性、静态且已知的环境假设,而在现实中,这些假设并不总是成立。接下来,我们将放宽这些约束条件,探讨在更接近真实世界的环境中如何进行搜索。
局部搜索与优化问题
在之前的搜索问题中,我们通常关注的是找到从起始点到目标点的路径,例如从阿拉德到布加勒斯特的路线。但在许多情况下,我们只关心最终的状态,而不是到达该状态的具体路径。以 8 皇后问题为例,我们只需要找到一种能让 8 个皇后在棋盘上互不攻击的最终布局,因为一旦知道了这个布局,重建达成该布局的步骤并不困难。这种情况在许多重要的应用领域中也很常见,如集成电路设计、工厂车间布局、作业调度、自动编程、电信网络优化、作物规划和投资组合管理等。
局部搜索算法从起始状态开始,逐步搜索相邻状态,而不记录路径和已到达的状态集合。这意味着它们不是系统性的搜索,可能会错过搜索空间中存在解的部分区域。然而,局部搜索算法有两个显著的优点:一是内存使用极少;二是在大型或无限状态空间中,对于那些不适合使用系统性算法的问题,局部搜索算法往往能找到合理的解决方案。
局部搜索算法还可以解决优化问题,其目标是根据一个目标函数找到最优状态。为了更好地理解局部搜索,我们可以将问题的状态想象成一个状态空间景观,每个点(状态)的“海拔”由目标函数的值定义。如果海拔对应目标函数,那么我们的目标就是找到最高的山峰,即全局最大值,这个过程被称为爬山法;如果海拔对应成本,那么目标就是找到最低的山谷,即全局最小值,这被称为梯度下降法。
爬山搜索
爬山搜索算法是最基本的局部搜索技术之一。它只跟踪一个当前状态
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



