以下选项属于局部搜索的是()。
以下选项属于局部搜索的是()。
A.横向移动
B.随机重启爬山法
C.局部束搜索
D.启发式函数
正确答案:ABC
A.横向移动:
横向移动是局部搜索策略的一种。在局部搜索过程中,当算法发现当前邻域内没有比当前解更好的解,但存在与当前解质量相同的解时,允许移动到这些质量相同的解上。这有助于算法跳出局部最优陷阱,继续探索其他可能通向全局最优解的区域。例如在一个求解函数极值的局部搜索场景中,若在当前点周围找不到使函数值更好的点,但有函数值相同的点,通过横向移动到这些点,有可能发现新的搜索方向,从而找到更好的解,所以横向移动属于局部搜索。
B.随机重启爬山法:
随机重启爬山法是典型的局部搜索方法。它结合了爬山法和随机化策略。首先,它使用爬山法从一个随机生成的初始解开始搜索,朝着局部最优解的方向移动。当达到局部最优解(即当前邻域内没有更好的解)时,重新随机生成一个初始解,再次应用爬山法进行搜索。通过多次随机重启,增加了找到全局最优解的可能性。因为每次随机重启后的搜索都局限于从新的初始解开始的局部区域内进行,所以属于局部搜索。例如在解决旅行商问题(TSP)时,随机重启爬山法可以多次尝试不同的初始路径,通过在每次尝试的局部路径搜索中不断优化,以期望找到更好的全局路径。
C.局部束搜索:
局部束搜索是局部搜索算法的一种变体。它在搜索过程中同时维护k个状态(称为束宽为k),而不是像爬山法那样只关注一个当前状态。在每一步,它从这k个状态的所有邻域中选择k个最优的状态,然后用这k个新状态继续下一步搜索。局部束搜索在局部范围内(即当前维护的k个状态及其邻域)进行搜索和优化,通过限制搜索范围在局部,减少了计算量,所以属于局部搜索。例如在一个资源分配问题中,局部束搜索可以同时考虑k种不同的初始分配方案,并在它们的邻域内寻找更好的分配方式,从而在局部范围内找到较优的资源分配策略。
D.启发式函数:
启发式函数本身不是一种局部搜索算法,它是在搜索算法中用于估计从当前状态到目标状态的距离或代价等信息的函数。启发式函数常被用于指导搜索方向,如在A*搜索算法中,启发式函数帮助算法决定下一步搜索的节点,使搜索更有针对性。虽然它在局部搜索以及其他搜索算法中都可能被用到,但它只是一种辅助工具,并非局部搜索方法本身。例如在八数码问题中,启发式函数(如曼哈顿距离)可以帮助搜索算法判断当前状态离目标状态的距离,从而引导搜索,但它不属于局部搜索的范畴。